Connectors — MCP
Connect any MCP client to the tools of a desk with kode mcp.
Last updated
On this page
Overview
kode mcp is a stdio MCP server. An MCP client starts it as a program and calls the tools of one desk through it. The server serves every workspace, environment, and workspace tool of the desk. Each tool names its target with workspace or env, as an id. No command, file read, or file write runs on your computer. The client keeps its own local tools.
| Argument | Meaning |
|---|---|
team | The team whose desk to serve. Your own team when absent. |
--desk | The desk to serve, by name or id. |
Nothing is current. Every call that acts in a desk names it in desk (id, name, or team/name); a call without desk is refused with pass `desk` (id or name); `desk` `list` shows yours. desk list and desk create need no desk.
Tools
The client gets the tools of the desk: the desk, workspace, code, package, image, environment, volume, account, web, and board tools. Every tool, with its arguments and its API route, is in Agent tools. Every tool except desk list and create takes a required desk. The desk tool has the actions list (your desks, each with its environment), create (makes a desk, and connects environment if given; it moves nothing), connect (sets the environment of desk; null disconnects it), start, stop, delete, and ttl.
Add the kode skill to the client too, if the client reads skills. The skill tells the agent which tool does which job. See Skills.
Sign-in and limits
The server uses the login of kode login, saved in ~/.config/kode. It needs no token in the client settings. Every call acts as you, with your rights and limits. A call over a quota gets the same 409 as any other client, and a paused team access gets 403. See Limits.
The server writes stdout for the client only. Its messages for you go to stderr. If the link to the desk drops, the server stays up and connects again after 5 seconds. A call that the dropped link carried returns an error, and the client repeats it.
Remote server
https://dev.kloudlite.io/mcp is the same server on the internet. An app that cannot start a program on your computer (claude.ai, the Claude desktop and mobile apps, ChatGPT) connects to it. The desktop client's CLI can use it too. You sign in with your Kode account on a consent page. You need no laptop and no kode login.
| Item | Rule |
|---|---|
| Tools | The tools of kode mcp, without web_fetch and web_search. The app brings its own web tools. Withholding is a filter on what the app is offered, not a security boundary: exec still runs commands in the workspaces of the desk. |
| Teams | A connection works in your own team, which is always included because the tools act as you, and in the shared teams that you select on the consent page. You must be an active member of a shared team. The consent page asks for no desk. The app lists and makes desks with the desk tool and its actions list and create, and names the desk in desk on every other call. create takes team to make a desk in another team of the connection. A call for another team is refused. The connection keeps no current desk, so two conversations of one app do not move each other. |
| Limits | 120 calls a minute for each connection. |
| Lifetime | A connection lasts 30 days. Then the app asks you to sign in again. |
| Revoke | Settings, Connected apps, Disconnect. The next call of the app is refused. |
The connection acts through the desk, with your rights and limits. It holds no credential for /v1. Every call checks each team. A team that you left stops within 30 seconds. A paused team gives a tool error that names the pause.
Tasks
Add the server to an MCP client
Reason for the task
Give an MCP client the tools of a desk.
Job set-up
- Access: you.
- Agent tool: none; an agent uses the SDK.
- Conditions:
kodeis installed and you are signed in. See Install kode. - References:
kode mcp.
For Claude Code, the plugin adds the server and the skills. See Install the Claude Code plugin.
Procedure
Add the server to the client. For Claude Code, run this command.
claude mcp add kd -- kode mcpAdd this entry to
mcpServersfor a client with a JSON settings file.{ "mcpServers": { "kd": { "command": "kode", "args": ["mcp"] } }}Add this table to
~/.codex/config.tomlfor Codex.[mcp_servers.kl]command = "kode"args = ["mcp"]Add the team to the arguments to serve another team, for example
["mcp", "acme"].Close the client and open it again.
Close-out
- Make sure that the client lists the server
kdas connected and shows its tools.
Connect a desk to an environment
Reason for the task
Set the environment that a desk reaches.
Job set-up
- Access: you.
- Agent tool:
desk - Conditions: the server
kdis connected. - References:
PUT /v1/desks/{id}/environment,GET /v1/desks.
Procedure
Find the desk by name or
id.{"tool": "desk", "arguments": {"action": "list"}}Connect the desk to an environment with
environment, byidor name.environmentset tonulldisconnects it.{"tool": "desk", "arguments": {"action": "connect", "desk": "dev", "environment": "api"}}
Close-out
- Run
deskwithactionset tolist. Make sure that the desk shows the environment.
Show the desk
Reason for the task
Find the desk that the tools drive, and its environment.
Job set-up
- Access: you.
- Agent tool:
desk - Conditions: the server
kdis connected. - References:
GET /v1/desks/{id}.
Procedure
Show the desk.
{"tool": "desk", "arguments": {"action": "list"}}
Close-out
- Make sure that the answer names the desk that you expect. If it does not, connect the desk.
Add the connector in claude.ai
Reason for the task
Give claude.ai, and the Claude desktop and mobile apps of the same account, the tools of a desk.
Job set-up
- Access: you.
- Agent tool: none; an agent uses the SDK.
- Conditions: you are signed in to Kode in this browser.
- References: OAuth endpoints.
For a Team or Enterprise plan, an owner adds the connector first: Organization settings, Connectors, Add, Custom, Web. Then each member selects Connect.
Procedure
- Open Customize in claude.ai, then Connectors, then Add custom connector.
- Enter the name
Kodeand the URLhttps://dev.kloudlite.io/mcp. - Keep the sign-in choice "Use Claude's published identity". Select "Register automatically" if the first choice fails.
- Select Connect. Select the teams on the consent page, then select Approve.
Close-out
- Run
deskwithactionset tolistin a chat. Make sure that it lists your desks. - If it says that there is no desk, ask the app to make one with
deskandactionset tocreate.
Add the server to the desktop client's CLI
Reason for the task
Give the desktop client's CLI the tools of a desk without a program on your computer.
Job set-up
- Access: you.
- Agent tool: none; an agent uses the SDK.
- Conditions: the CLI is installed and you are signed in to Kode in the browser.
- References: OAuth endpoints.
The consent page says that only a program on this computer can receive this sign-in. That is correct for the CLI.
Procedure
Add the server.
claude mcp add --transport http kl https://dev.kloudlite.io/mcpRun
/mcpin the client, selectkd, then sign in.Select the teams on the consent page in the browser, then select Approve.
Close-out
- Run
/mcp. Make sure thatkdis connected.
Add the server to ChatGPT
Reason for the task
Give ChatGPT the tools of a desk.
Job set-up
- Access: you.
- Agent tool: none; an agent uses the SDK.
- Conditions: your ChatGPT plan offers "Add custom MCP server". This is documented for Business, Enterprise, and Edu plans.
- References: OAuth endpoints.
ChatGPT asks you to confirm every tool that changes something. A tool that only reads runs without a question.
Procedure
- Open chatgpt.com/plugins, select +, then Add custom MCP server.
- Enter the URL
https://dev.kloudlite.io/mcpand select OAuth for the sign-in. - Select Create as a plugin. Sign in on the consent page, select the teams, then select Approve.
Close-out
- Run
deskwithactionset tolistin a chat. Make sure that it lists your desks. - If it says that there is no desk, ask the app to make one with
deskandactionset tocreate.
Revoke a connection
Reason for the task
Stop an app from using your desks.
Job set-up
- Access: you.
- Agent tool: none; an agent uses the SDK.
- Conditions: none.
- References:
DELETE /v1/oauth/grants/{id}.
Procedure
- Open Settings, then Connected apps.
- Select Disconnect for the app, then confirm.
Close-out
- Make sure that the app is gone from the list. The next call of the app asks it to sign in again.
Troubleshooting
| Symptom | Possible cause | Corrective action |
|---|---|---|
not logged in — run `kode login` on stderr, and the server exits | This computer has no login. | Run kode login, then restart the client. |
pass `desk` (id or name); `desk` `list` shows yours | A tool was called without desk. | Call desk with action set to list, then the tool again with desk set to the name or id. |
kode: mcp: …; retrying or …; reconnecting on stderr | The server cannot reach the desk. | Wait. The server tries again every 5 seconds. If it repeats, run kode login. |
The client lists no server kd | The client does not find kode, or was not restarted. | Give the full path of kode in command, then restart the client. |
403 with your access to acme is paused | A team admin paused your access. | Ask a team admin to unpause it. |
409 with a limit name, for example workspaces: 5 of 5 in use; request more under Quota | The owner has no quota left. | Delete an unused item, or see Quota and requests. |
| The consent page says that the return address is not registered | The app is not one of the clients that Kode knows, or it sent a return address that is not allowed. | Use the choice "Register automatically" in the app. Return addresses are limited to claude.ai, chatgpt.com, and your own computer. |
The app shows invalid_target | The app asked for another resource than https://dev.kloudlite.io/mcp. | Enter exactly https://dev.kloudlite.io/mcp as the URL. |
A tool answers the desk is starting; call again | The desk of the connection is waking. A wake can take up to a minute. | Call the tool again. |
429 | The connection made more than 120 calls in a minute. | Wait one minute. |
unknown tool: web_fetch | The remote server withholds web_fetch and web_search. | Use the web tools of the app. |