MCP servers
A sleeve can use tools from any Model Context Protocol server: hosted servers such as GitHub, Linear, Notion, Sentry or Stripe, your own company's server, or one of the thousands of servers published as npx or uvx packages. You list the servers in the stack's spec; the sleeve connects to them from your Dock, and their tools appear to the model next to its built-in ones.
The MCP page
The MCP page in the console is your organization's list of servers. Add a server there once, from the catalog of servers checked to work with sleeves or with your own details, and it is offered in every stack's form on the Specs page. Viewers can read the page; Architects and Owners add, change and remove servers.
- Each card shows where the server is, which tools it offers, which keys it reads (and whether they are on the Keys page yet) and which stacks use it.
- A spec keeps its own copy of a server. Changing or removing a server on the MCP page does not change a running sleeve: open its spec, update the server in the form and save and apply the new version.
- The catalog today: DeepWiki, Context7, GitHub (needs a
github-token), ClickUp (needs aclickup-token), Fetch, Time and Sequential thinking.
Add a server in YAML
Add an mcpServers list to the spec (the form on the Specs page writes the same thing):
mcpServers:
- name: deepwiki
url: https://mcp.deepwiki.com/mcp
- name: github
url: https://api.githubcopilot.com/mcp/
headers:
Authorization: { secretRef: github-token, prefix: "Bearer " }
tools: [list_issues, get_issue, search_code]
The model sees each tool as <server>__<tool>, for example github__list_issues, with the description and inputs the server publishes. Every call shows up in Observe like any other tool call.
A local server
Many servers are published as packages that run next to the program using them. The sleeve runs them itself, inside its own locked-down container:
mcpServers:
- name: time
command: uvx
args: [mcp-server-time==2026.10.28]
- name: memory-graph
command: npx
args: ["@modelcontextprotocol/[email protected]"]
env:
MEMORY_FILE_PATH: { value: /workspace/graph.json }
commandisnpx(Node.js packages) oruvx(Python packages);argsandenvare passed to it.envvalues follow the same rules as headers.- The first start downloads the package into the sleeve's workspace volume, so it can take a minute; later starts reuse it.
- Pin the version (
[email protected]orname==1.2.3): the sleeve then runs exactly the code you chose, and the console warns when a version is missing. - The package runs as the sleeve's own user with the sleeve's limits: no root, a read-only system, no host folders. It can reach the internet like the sleeve can, and it can read and write the sleeve's
/workspace.
Tokens
Most hosted servers want a token. Never write it into the spec:
- On the Keys page, choose Token for an MCP server or tool, name it (for example
github-token) and paste it. Your browser seals it to your Docks, exactly like a model key. - In the spec, name it in a header with
secretRef.prefixputs text such asBearerin front of it.
A header that is not secret can be written as { value: "..." }. Sleevecast refuses a spec that looks like it contains a key.
Servers whose instructions say "sign in"
Many hosted servers document only a browser sign-in (OAuth), because that is what chat apps use. A sleeve runs unattended and cannot open a browser, so Sleevecast does not support sign-in yet. Most of these servers also accept a token in the Authorization header; look for a personal API token or access token in the service's settings.
For example, ClickUp's server takes a personal API token:
- In ClickUp, open your avatar, then Settings, Apps, API Token, and generate or copy the token (it starts with
pk_). - Add it on the Keys page as
clickup-token(Token for an MCP server or tool). - Add ClickUp from the catalog on the MCP page, or write it in the spec:
mcpServers:
- name: clickup
url: https://mcp.clickup.com/mcp
headers:
Authorization: { secretRef: clickup-token, prefix: "Bearer " }
tools: [clickup_search, clickup_filter_tasks, clickup_get_task, clickup_get_task_comments,
clickup_get_list, clickup_get_workspace_hierarchy, clickup_get_custom_fields, clickup_get_user,
clickup_resolve_assignees, clickup_create_task, clickup_update_task, clickup_create_comment,
clickup_add_tag_to_task]
The token acts as you: the sleeve can see and change everything you can in every workspace you belong to. For a team, consider a separate ClickUp user for sleeves with access to only the spaces they need. ClickUp's server has 65 tools (the list). All of them add about 22,000 tokens of definitions to every model turn, more than a sleeve's whole task usually needs, and one more than a sleeve takes from one server. The catalog entry therefore starts with the 13 triage tools above (about 4,000 tokens); tick more in the form when a sleeve needs them, for example the Docs or time-tracking tools.
Fields
| Field | Meaning |
|---|---|
name |
Lowercase letters, digits or dashes, up to 31 characters, starting with a letter. Unique within the stack; it prefixes the tools. |
url |
A remote server's address. Use HTTPS; plain HTTP only for a server on your own network. |
command, args, env |
A local server: npx or uvx, its arguments, and environment values ({ secretRef } or { value }). A server has either url or command. |
transport |
streamable-http (the default) or sse for older servers. |
headers |
Up to 10 headers, each { secretRef, prefix } or { value }. |
tools |
The server's own tool names the sleeve may use. Without it the sleeve gets all of them, up to 64; listing only the ones a sleeve needs keeps it focused and cheaper. |
timeoutSeconds |
How long one call may take, 5 to 300. The default is 60. |
A stack can have up to 10 servers. A tool result longer than 20,000 characters is cut, and the model is told so.
When a server is down
A sleeve starts even if one of its servers cannot be reached: those tools are missing until the server answers, and the sleeve keeps trying in the background (every few seconds at first, then once a minute). If a server drops a connection, the sleeve reconnects and repeats a call only when the server cannot have received it, so a tool with side effects never runs twice.
Coming next
- Servers that sign in only through a browser (OAuth). Until then, use a server's token or API key option where it has one.
Good to know
- Tools come from the server's operator or the package's author: a server's answers reach your model, and a local package runs code in your sleeve. Add only servers you trust, pin local packages, and give a sleeve only the
toolsit needs. - The sleeve calls the server from your machine. Sleevecast sees which tools were called (in Observe, while you watch) but never stores what they returned.