Streamable HTTP

Remote MCP

Career OS exposes a public Streamable HTTP MCP at /api/mcp with OAuth 2.1 (PKCE, dynamic client registration, CIMD). Claude, ChatGPT, Cursor, VS Code / Copilot Chat, and other remote MCP clients can add that URL. After you Connect, every tool runs as your Career OS user.

Connector URL

/api/mcp

Use that HTTPS URL in any MCP host that speaks Streamable HTTP. Cloud agents call it — not your laptop. Short UI steps: /connectors.

Claude

  1. Open claude.aiCustomize → Connectors.
  2. Add custom connector (type Web if asked).
  3. Paste the MCP URL. Leave OAuth Client ID/Secret empty.
  4. Connect and sign in to Career OS. Enable the connector in a chat.

ChatGPT

Create a custom connector / developer connector, paste the MCP URL, then complete OAuth. Do not paste a static bearer token. Career OS issues tokens after you sign in.

Cursor

Settings → Tools & MCP, or MCP config:

{
  "mcpServers": {
    "career-os": {
      "url": "https://your-host/api/mcp"
    }
  }
}

Replace the host with this origin: /api/mcp.

VS Code / GitHub Copilot

{
  "servers": {
    "career-os": {
      "type": "http",
      "url": "https://your-host/api/mcp"
    }
  }
}

Put that in .vscode/mcp.json or user MCP settings, then start the server from the MCP view.

Stdio-only hosts

Windsurf, Cline, and some CLI tools only spawn a local process. Point them at npx -y mcp-remote plus the MCP URL, or use local stdio MCP (bin/career-os-mcp.js) for Cursor, Claude Desktop, Gemini CLI, Amazon Q, Zed, and OpenCode.

What tools can do

  • Read and overwrite the cloud resume (same row the editor uses) with save_my_resume.
  • Generate the main PDF (DOCX → iLovePDF) when conversion keys are configured on the server.
  • Normalize JSON, convert to Jake-style LaTeX, or compile LaTeX on the beta public compiler.
  • Delete the cloud resume with reset_my_resume if a test row is stuck.

Remote MCP does not get login / logout. OAuth already signed you in. Full tool list: MCP tools.

Save behavior

  • First save inserts. Later saves PATCH the existing user_id row. You can edit forever.
  • generate_resume_pdf saves provided JSON unless you pass saveToAccount: false.
  • Unknown header keys are rejected on save. website / url / site map to portfolio with a warning.

OAuth notes

  • Protected resource: /.well-known/oauth-protected-resource and /.well-known/oauth-protected-resource/api/mcp.
  • Authorization server: /.well-known/oauth-authorization-server and /.well-known/oauth-authorization-server/api/mcp.
  • Authorize URL: /oauth/authorize (unsigned-in users are sent to Career OS login).
  • Redirects are allowlisted (Claude, ChatGPT, VS Code, Cursor, loopback). Arbitrary HTTPS hosts are rejected even if a client registers them.
  • The host must set MCP_OAUTH_SECRET on the deployment.