Skip to content

Set up other AI apps (Cursor, Claude Code, VS Code and more)

Updated

Baca dalam Bahasa Melayu

Connect Cursor, Claude Code or VS Code to BCL (0:30)

Coding assistants and AI apps other than Claude and ChatGPT connect to BCL with the same server address, https://bcl.my/mcp. Some sign you in through the browser (OAuth), and some need a Personal Access Token from BCL. This page gives the setup for each app on the Connect AI Agent page.

For claude.ai, Claude Desktop and ChatGPT, see Connect Claude or ChatGPT to BCL.

BCL lists 15 apps under Platform Setup → Connect AI Agent, on the Quick start tab. Each one supports the methods below:

App OAuth (browser sign-in) Personal Access Token Where the setting goes
Claude Desktop / claude.ai Yes No Settings → Connectors → Add custom connector
ChatGPT Yes No Settings → Apps & Connectors → Advanced → Developer mode → Create
Claude Code Yes (recommended) Yes claude mcp add, or .mcp.json in the project root
Cursor Yes (recommended) Yes ~/.cursor/mcp.json (global) or .cursor/mcp.json (project)
VS Code (GitHub Copilot) Yes Yes code --add-mcp, or .vscode/mcp.json
Codex Yes No ~/.codex/config.toml
Gemini CLI Yes (recommended) Yes gemini mcp add, or ~/.gemini/settings.json
Windsurf Yes (recommended) Yes ~/.codeium/windsurf/mcp_config.json
Warp Yes Yes Settings → Agents → MCP servers → + Add
Zed Yes (recommended) Yes Agent Panel → Add Remote Server, or ~/.config/zed/settings.json
OpenCode Yes No opencode.json or ~/.config/opencode/opencode.json
Cline No Yes MCP Servers → Configure MCP Servers
JetBrains AI No Yes Settings → Tools → AI Assistant → Model Context Protocol (MCP) → Add
Hermes Agent No Yes ~/.hermes/config.yaml
OpenClaw / Custom No Yes openclaw mcp set, or any MCP SDK

The Pick your agent step on the Quick start tab, listing all 15 apps, with Cursor highlighted

With OAuth, the app opens BCL in your browser. Sign in, check the permissions and click Authorize, as described in Approve the connection. Access and revoking work the same as for Claude.

Skip this section if your app uses OAuth. For a token, you must be an Admin:

  1. Go to Platform Setup → Integrations and open the API Token tab.

  2. Click Create New API Token.

    The API Token tab of Integrations with the Create New API Token button highlighted

  3. Enter a Token Name that says where you will use it, such as “Cursor on office laptop”.

  4. Under Permissions, tick MCP Read. Tick MCP Write too only if the app should make changes. Untick API Read and API Write unless the same token also calls the BCL API.

    The Create New API Token panel, with the MCP Read and MCP Write permissions highlighted

  5. Choose an Expiration, for example 90 days.

  6. Click Create Token, then copy the token from the list with the copy icon.

For more on tokens, including how to view or delete one, see Create an API token.

In every snippet below, replace <YOUR_PAT_HERE> with your token. Keep the word Bearer and the space before it.

Claude Code signs in through your browser. Add the server with one command:

Terminal window
claude mcp add --transport http bcl https://bcl.my/mcp

Then run /mcp in Claude Code, choose bcl and sign in with your BCL account.

For CI or a machine without a browser, use a token instead:

Terminal window
claude mcp add --transport http bcl https://bcl.my/mcp \
--header "Authorization: Bearer <YOUR_PAT_HERE>"

To share the server with your team, commit a .mcp.json file in the project root. Do not put a token in it.

The Claude Code setup on the Quick start tab, with the OAuth and Personal Access Token commands

Save this in ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project), then turn the server on under Settings → MCP. Cursor shows Needs login next to the server: click it and sign in with your BCL account.

{
"mcpServers": {
"bcl": {
"url": "https://bcl.my/mcp"
}
}
}

With a token instead:

{
"mcpServers": {
"bcl": {
"url": "https://bcl.my/mcp",
"headers": {
"Authorization": "Bearer <YOUR_PAT_HERE>"
}
}
}
}

The Cursor setup on the Quick start tab, with the OAuth and Personal Access Token configs

VS Code uses MCP in GitHub Copilot Agent Mode. Turn on Agent Mode in Copilot Chat, then run:

Terminal window
code --add-mcp '{"name":"bcl","type":"http","url":"https://bcl.my/mcp"}'

VS Code asks you to trust the server, then opens the browser to sign in. With a token, put this in .vscode/mcp.json. Note that VS Code uses servers, not mcpServers, and needs a type:

{
"servers": {
"bcl": {
"type": "http",
"url": "https://bcl.my/mcp",
"headers": {
"Authorization": "Bearer <YOUR_PAT_HERE>"
}
}
}
}

The VS Code setup on the Quick start tab, with the code –add-mcp command and the .vscode/mcp.json config

Windsurf uses serverUrl instead of url. Save this in ~/.codeium/windsurf/mcp_config.json, then click Refresh in the Cascade MCP panel. With no headers, Windsurf opens the browser to sign in:

{
"mcpServers": {
"bcl": {
"serverUrl": "https://bcl.my/mcp"
}
}
}

For a token, add "headers": { "Authorization": "Bearer <YOUR_PAT_HERE>" } next to serverUrl.

Zed connects to remote servers natively. The easiest way is Agent Panel → Settings → Add Remote Server. Or add this to ~/.config/zed/settings.json; with no headers, Zed asks you to sign in in the browser:

{
"context_servers": {
"bcl": {
"url": "https://bcl.my/mcp"
}
}
}

For a token, add "headers": { "Authorization": "Bearer <YOUR_PAT_HERE>" } next to url.

Cline needs a token. The easiest way is to paste this into a Cline chat, with your token in place of the placeholder:

Add this MCP server to your Cline MCP settings: name "bcl", type "streamableHttp", url https://bcl.my/mcp, with an Authorization header of "Bearer <YOUR_PAT_HERE>". Then confirm the BCL tools are available.

Or add it by hand under MCP Servers → Configure MCP Servers. The type must be exactly streamableHttp:

{
"mcpServers": {
"bcl": {
"type": "streamableHttp",
"url": "https://bcl.my/mcp",
"headers": {
"Authorization": "Bearer <YOUR_PAT_HERE>"
},
"disabled": false,
"autoApprove": []
}
}
}

IntelliJ IDEA, PhpStorm, WebStorm, PyCharm and the other JetBrains IDEs need a token. Go to Settings → Tools → AI Assistant → Model Context Protocol (MCP) → Add, choose As JSON and paste:

{
"mcpServers": {
"bcl": {
"url": "https://bcl.my/mcp",
"headers": {
"Authorization": "Bearer <YOUR_PAT_HERE>"
}
}
}
}

If the IDE does not pick up the header, use the mcp-remote bridge instead. It needs Node.js:

{
"mcpServers": {
"bcl": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://bcl.my/mcp",
"--header",
"Authorization: Bearer <YOUR_PAT_HERE>"
]
}
}
}

The JetBrains AI setup on the Quick start tab, with the native config and the mcp-remote bridge

These apps sign in through the browser.

Codex (CLI, desktop app and IDE extension share one file): add this to ~/.codex/config.toml, then run codex mcp login bcl.

[mcp_servers.bcl]
url = "https://bcl.my/mcp"
oauth_resource = "https://bcl.my/mcp"

Gemini CLI: run the command below. On first use it opens the browser to sign in.

Terminal window
gemini mcp add --transport http --scope user bcl https://bcl.my/mcp

With a token: gemini mcp add --transport http --scope user --header "Authorization: Bearer <YOUR_PAT_HERE>" bcl https://bcl.my/mcp. In ~/.gemini/settings.json, the key is httpUrl, not url.

OpenCode: add this to opencode.json, then run opencode mcp auth bcl.

{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"bcl": {
"type": "remote",
"url": "https://bcl.my/mcp"
}
}
}

Warp: under Settings → Agents → MCP servers → + Add, choose Streamable HTTP or SSE Server (URL) and paste:

{
"mcpServers": {
"bcl": {
"url": "https://bcl.my/mcp"
}
}
}

These use a token.

Hermes Agent: add this to ~/.hermes/config.yaml, then restart the agent.

mcp_servers:
bcl:
url: "https://bcl.my/mcp"
headers:
Authorization: "Bearer <YOUR_PAT_HERE>"

OpenClaw: it defaults to SSE, so set the transport:

Terminal window
openclaw mcp set bcl '{"url":"https://bcl.my/mcp","headers":{"Authorization":"Bearer <YOUR_PAT_HERE>"},"transport":"streamable-http"}'

Your own agent: point your MCP SDK’s Streamable HTTP client at https://bcl.my/mcp with the Authorization: Bearer header. To test the connection, list the tools:

Terminal window
curl -X POST https://bcl.my/mcp \
-H "Authorization: Bearer <YOUR_PAT_HERE>" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'

A token with MCP Read and MCP Write gets back 62 tools. BCL answers every request as plain JSON over POST; it does not open an event stream. For the tool list, limits and errors, see MCP tools reference.

After you save the settings, restart the app and ask it:

What tools do you have? Summarise what I can ask you to do.

It should list the BCL tools. Each request then shows in Tools → MCP Audit Log, with pat or oauth in the Auth column. See Check what your AI agent did.

A few habits make tokens and connections easier to manage:

  • One token per app and computer. If a laptop is lost, you delete only that token and the other apps keep working.
  • Prefer OAuth where you can. There is no token to copy, and you can revoke the app under Connected Apps.
  • Set an expiry on tokens. A token with Never keeps working until someone deletes it.

Common issues

Which is better, OAuth or a Personal Access Token?

Use OAuth when your app supports it: you sign in with your BCL account in the browser and there is no token to copy or leak. Use a token for JetBrains AI, Cline, Hermes Agent, OpenClaw, scripts and machines without a browser.

My token works with the BCL API but the AI app says it is not allowed. Why?

MCP needs its own permissions. The token must have MCP Read (and MCP Write to make changes). API Read and API Write alone are refused.

The AI app connects but shows no BCL tools. What do I check?

Check the address is exactly https://bcl.my/mcp, that you replaced <YOUR_PAT_HERE> with your token, and that the token is not expired. Then restart the app and ask "What tools do you have?".

Was this article helpful?

Cookie settings

We use Google Analytics to see which guides help and where readers get stuck. It is on by default; you can turn it off. Your choice is saved on this device.