Shift MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Shift MCP Servercheck me in, working on index.js"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Tools
Two tools for multi-agent coordination:
Tool Name | Description |
| Register or update a worker session. Returns worker ID, coordination instructions, and active peers. |
| End a working session. Removes from active worker list. |
shift_check_in
Register a new worker or update an existing session. Called at the start of every working session.
Accepts a gist of current work and optional file paths being modified
Returns a 6-character worker ID, coordination protocol, and the full active workers table
Pass an existing worker ID to update your session (patch semantics — omitted fields preserved)
Error responses include the active workers table so agents can self-identify or start fresh
shift_check_out
End a working session and remove from the active worker list.
Accepts a worker ID and optional summary of what was accomplished
Idempotent — succeeds silently if the worker ID doesn't exist or was already checked out
Resources
URI | Description |
| All currently active workers with gists, declared files, and timestamps. |
Features
Built on @cyanheads/mcp-ts-core:
Declarative tool definitions — single file per tool, framework handles registration and validation
Unified error handling across all tools
Structured logging with request-scoped context
Runs locally (stdio/HTTP) from the same codebase
Coordination-specific:
In-memory worker session store — no database, no filesystem writes, clears on restart
Coordination protocol injected on every check-in so agents know how to behave
Active workers table returned with every response for situational awareness
Patch semantics on session updates — only provided fields change
Getting Started
MCP Client Config
Add to your MCP client config (e.g., claude_desktop_config.json):
{
"mcpServers": {
"shift": {
"type": "stdio",
"command": "bunx",
"args": ["@cyanheads/shift-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio"
}
}
}
}Prerequisites
Bun v1.2.0 or higher
Installation
git clone https://github.com/cyanheads/shift-mcp-server.git
cd shift-mcp-server
bun installConfiguration
No server-specific environment variables required. Framework defaults:
Variable | Description | Default |
| Transport: |
|
| Port for HTTP server. |
|
| Hostname for HTTP server. |
|
| Log level (RFC 5424). |
|
Running the Server
Local Development
bun run build
bun run start:stdio # or start:httpDev mode with watch:
bun run dev:stdio # or dev:httpChecks and tests:
bun run devcheck # Lints, formats, type-checks
bun test # Runs test suiteDocker
docker build -t shift-mcp-server .
docker run -p 3010:3010 shift-mcp-serverProject Structure
Directory | Purpose |
| Entry point — registers tools and resources with |
| Tool definitions ( |
| In-memory worker session store and formatting utilities. |
| Resource definitions ( |
Development Guide
See CLAUDE.md for development guidelines and architectural rules. The short version:
Handlers throw, framework catches — no
try/catchin tool logicUse
ctx.logfor request-scoped loggingRegister new tools and resources in
src/index.ts
Contributing
Issues and pull requests are welcome. Run checks before submitting:
bun run devcheck
bun testLicense
Apache-2.0 — see LICENSE for details.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cyanheads/shift-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server