Tandem ships a Model Context Protocol server. Drop one config block into Cursor, Claude Code, Windsurf, OpenAI Codex CLI, VS Code Copilot, or OpenClaw — your agent gets read/write access to your task pipeline, project switcher, and activity log without leaving the chat. No API keys. No round-trips through a browser.
Every editor and CLI below speaks MCP natively. Tandem's server is just another entry in their server list — no plugin, no extension, no marketplace install.
.mcp.json also supported.Click a tab, copy the block, paste it into the listed file. That's the whole setup. Restart your editor's chat panel and ask “list my tasks” to verify.
{
"mcpServers": {
"tandem": {
"command": "python3",
"args": ["/home/user/Desktop/claude-brain/project-workspace/Tandem/app/mcp/__main__.py"]
}
}
}
tandem in the tools list, check View → Output → Cursor MCP for stderr.{
"mcpServers": {
"tandem": {
"command": "python3",
"args": ["/home/user/Desktop/claude-brain/project-workspace/Tandem/app/mcp/__main__.py"]
}
}
}
.mcp.json takes precedence and travels with the repo — preferred for team setups. Run claude mcp list to confirm registration.{
"mcpServers": {
"tandem": {
"command": "python3",
"args": ["/home/user/Desktop/claude-brain/project-workspace/Tandem/app/mcp/__main__.py"]
}
}
}
Cascade → MCP servers → Refresh. Windsurf surfaces tool errors in the Cascade panel directly.[mcp_servers.tandem]
command = "python3"
args = ["/home/user/Desktop/claude-brain/project-workspace/Tandem/app/mcp/__main__.py"]
[mcp_servers.<name>] — one per server. Run codex --help for transport flags.{
"mcpServers": {
"tandem": {
"command": "python3",
"args": ["/home/user/Desktop/claude-brain/project-workspace/Tandem/app/mcp/__main__.py"]
}
}
}
Agent — tools will appear in the tool picker.Six tools, one purpose: keep your agent in the loop on what you're working on without context-switching to the dashboard.
Every MCP-aware client supports multiple servers running in parallel. Tandem is one entry next to GitHub, Linear, Notion, and anything else you already use — they don't conflict, they compose.
mcp.json:{
"mcpServers": {
"tandem": {
"command": "python3",
"args": ["/home/user/Desktop/claude-brain/project-workspace/Tandem/app/mcp/__main__.py"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_..." }
},
"linear": {
"command": "npx",
"args": ["-y", "@linear/mcp-server"],
"env": { "LINEAR_API_KEY": "lin_api_..." }
},
"notion": {
"command": "npx",
"args": ["-y", "@notionhq/mcp-server"],
"env": { "NOTION_API_KEY": "secret_..." }
}
}
}