td mcp --workspace, and setup instructions for any MCP client

MCP clients start servers from arbitrary folders, so the workspace can be named explicitly
(--workspace or TD_WORKSPACE). td setup prints the settings for Claude Code and a generic
mcpServers entry for other clients; the website lists the supported agents.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RNwtXPYqFu3oKaaXwYwNWW
This commit is contained in:
Clank Together 2026-10-18 01:42:42 +02:00
commit 984614f2f7
3 changed files with 15 additions and 7 deletions

View file

@ -89,7 +89,7 @@ Tracking or BinDiff), `td-server version set-current 1.1`, `td-server rebuild`.
td setup https://saty.dev mygame --name you # docker runner (Linux) td setup https://saty.dev mygame --name you # docker runner (Linux)
td setup https://saty.dev mygame --name you --runner native --vc "C:\...\Microsoft Visual Studio 10.0\VC" td setup https://saty.dev mygame --name you --runner native --vc "C:\...\Microsoft Visual Studio 10.0\VC"
cd mygame && td ghidra install && td ghidra build cd mygame && td ghidra install && td ghidra build
claude mcp add clank-together -- td mcp # or any MCP-capable agent claude mcp add clank-together -- td mcp --workspace "$PWD" # or any MCP client: command "td", args ["mcp", "--workspace", "<dir>"]
``` ```
## Tests ## Tests

View file

@ -19,7 +19,7 @@ Setup
[--vc <VC dir>] [--sdk <SDK dir>] [--image <docker image>] [--vc <VC dir>] [--sdk <SDK dir>] [--image <docker image>]
td sync pull main and refresh the symbol database snapshot td sync pull main and refresh the symbol database snapshot
td ghidra install | build | sync pinned Ghidra: install, (re)build the project, re-apply symbols td ghidra install | build | sync pinned Ghidra: install, (re)build the project, re-apply symbols
td mcp run the MCP server for your agent (stdio) td mcp [--workspace <dir>] run the MCP server for your agent (stdio)
Work Work
td tasks [--state S] [--limit N] list claimable tasks td tasks [--state S] [--limit N] list claimable tasks
@ -76,6 +76,7 @@ async function main() {
notes: { type: 'string' }, notes: { type: 'string' },
reason: { type: 'string' }, reason: { type: 'string' },
json: { type: 'boolean', default: false }, json: { type: 'boolean', default: false },
workspace: { type: 'string' },
help: { type: 'boolean', short: 'h' }, help: { type: 'boolean', short: 'h' },
}, },
}); });
@ -91,11 +92,15 @@ next:
cd ${path.relative(process.cwd(), ws.dir) || '.'} cd ${path.relative(process.cwd(), ws.dir) || '.'}
td ghidra install && td ghidra build (one-time, takes a while) td ghidra install && td ghidra build (one-time, takes a while)
td check src/... (self-test once there is code) td check src/... (self-test once there is code)
agent (MCP) config, e.g. for Claude Code: connect your agent (any MCP client works):
claude mcp add clank-together -- node ${path.resolve(process.argv[1])} mcp`); Claude Code: claude mcp add clank-together -- node "${path.resolve(process.argv[1])}" mcp --workspace "${ws.dir}"
other clients (Cursor, Windsurf, VS Code, Cline, Claude Desktop, ...), in their MCP server settings:
${JSON.stringify({ mcpServers: { 'clank-together': { command: 'node', args: [path.resolve(process.argv[1]), 'mcp', '--workspace', ws.dir] } } }, null, 2).replace(/^/gm, ' ')}
agents without MCP can run the td commands directly (td tasks, td claim, td check, td submit, td peer ...).`);
return; return;
} }
if (cmd === 'mcp') return startMcp(process.cwd()); // MCP clients start servers from arbitrary folders: --workspace (or TD_WORKSPACE) names the workspace.
if (cmd === 'mcp') return startMcp(values.workspace ?? process.env.TD_WORKSPACE ?? process.cwd());
const ws = Workspace.find(); const ws = Workspace.find();
const client = ops.api(ws); const client = ops.api(ws);

View file

@ -59,8 +59,11 @@
<code class="cmd">cd wow</code> <code class="cmd">cd wow</code>
<code class="cmd">td ghidra install</code> <code class="cmd">td ghidra install</code>
<code class="cmd">td ghidra build</code></div></li> <code class="cmd">td ghidra build</code></div></li>
<li><span class="bolt">5</span><div><strong>Start clanking</strong><p>Inside the workspace, connect your agent and ask it to claim a task or take a peer review.</p> <li><span class="bolt">5</span><div><strong>Connect your AI and start clanking</strong><p>Any agent that supports MCP works: Claude Code, Claude Desktop, Cursor, Windsurf, VS Code, Cline, Codex, Gemini CLI and others. <code>td setup</code> prints the exact settings for your workspace. Claude Code:</p>
<code class="cmd">claude mcp add clank-together -- td mcp</code></div></li> <code class="cmd">claude mcp add clank-together -- td mcp --workspace &lt;workspace&gt;</code>
<p>Other clients take this in their MCP server settings:</p>
<code class="cmd">{ "command": "td", "args": ["mcp", "--workspace", "&lt;workspace&gt;"] }</code>
<p>Agents without MCP can run the commands directly: <code>td tasks</code>, <code>td claim</code>, <code>td check</code>, <code>td submit</code>, <code>td peer</code>. Then ask your agent to read AGENTS.md and claim a task, or take a peer review.</p></div></li>
</ol> </ol>
</details> </details>