Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Read-only, tenant-scoped access to Tracelane agent traces and guardrail verdicts
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
TRACELANE_API_KEY, TRACELANE_GATEWAY_URL, CLICKHOUSE_URL, CLICKHOUSE_USER, CLICKHOUSE_PASSWORD, CLICKHOUSE_DB, TRACELANE_MCP_TRANSPORT标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"tracelane": {
"command": "npx",
"args": [
"-y",
"@tracelanedev/mcp"
],
"env": {
"TRACELANE_API_KEY": "your-value",
"TRACELANE_GATEWAY_URL": "your-value",
"CLICKHOUSE_URL": "your-value",
"CLICKHOUSE_USER": "your-value",
"CLICKHOUSE_PASSWORD": "your-value",
"CLICKHOUSE_DB": "your-value",
"TRACELANE_MCP_TRANSPORT": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add tracelane --env TRACELANE_API_KEY=your-value --env TRACELANE_GATEWAY_URL=your-value --env CLICKHOUSE_URL=your-value --env CLICKHOUSE_USER=your-value --env CLICKHOUSE_PASSWORD=your-value --env CLICKHOUSE_DB=your-value --env TRACELANE_MCP_TRANSPORT=your-value -- npx -y @tracelanedev/mcp运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"tracelane": {
"command": "npx",
"args": [
"-y",
"@tracelanedev/mcp"
],
"env": {
"TRACELANE_API_KEY": "your-value",
"TRACELANE_GATEWAY_URL": "your-value",
"CLICKHOUSE_URL": "your-value",
"CLICKHOUSE_USER": "your-value",
"CLICKHOUSE_PASSWORD": "your-value",
"CLICKHOUSE_DB": "your-value",
"TRACELANE_MCP_TRANSPORT": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"tracelane": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@tracelanedev/mcp"
],
"env": {
"TRACELANE_API_KEY": "your-value",
"TRACELANE_GATEWAY_URL": "your-value",
"CLICKHOUSE_URL": "your-value",
"CLICKHOUSE_USER": "your-value",
"CLICKHOUSE_PASSWORD": "your-value",
"CLICKHOUSE_DB": "your-value",
"TRACELANE_MCP_TRANSPORT": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
CLICKHOUSE_URL envCLICKHOUSE_USER envCLICKHOUSE_DB envTRACELANE_MCP_TRANSPORT env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 tracelane 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:TRACELANE_API_KEY, TRACELANE_GATEWAY_URL, CLICKHOUSE_PASSWORD
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.4.0)于28天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, EmbeddedCI BenchPod
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Drive a BenchPod hardware-in-the-loop bench: power, flash, UART, I2C, CAN, analog and logic.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
@tracelanedev/mcp — Tracelane MCP ServerRead-only MCP server exposing Tracelane trace data to any MCP-compatible client — Claude Desktop, Claude Code, Cursor, or any agent using the Model Context Protocol.
On npm since 2026-09-07:
npx @tracelanedev/mcpinstalls the published version; the
config blocks below work as written. From-source is still documented under self-hosting.
The same run submits
apps/mcp/server.jsonto the MCP registry; the name it will be listed under isio.github.tracelane/tracelane-mcp.
Default mode reads through the gateway — the same tenant-scoped /v1/* routes the dashboard uses — with just TRACELANE_API_KEY and TRACELANE_GATEWAY_URL. That is the Cloud-tenant path and needs no ClickHouse credentials. Set CLICKHOUSE_URL to switch to self-host mode, reading ClickHouse directly instead — see Self-hosting.
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS), %APPDATA%\Claude\claude_desktop_config.json (Windows), or .mcp.json at your project root for Claude Code:
{
"mcpServers": { "tracelane": { "command": "npx", "args": ["@tracelanedev/mcp"], "env": { "TRACELANE_API_KEY": "tlane_YOUR_KEY", "TRACELANE_GATEWAY_URL": "https://gateway.tracelane.dev" } } } }
No CLICKHOUSE_URL — its absence is what selects gateway mode. Every read goes through the gateway's existing tenant-scoped routes, so a key from another tenant, or one lacking the read scope, gets a clear tool error rather than an empty result.
Swap the two launch keys for a path into your clone — every env key is unchanged:
"command": "node",
"args": ["/path/to/tracelane/apps/mcp/dist/index.js"]
Build it first with pnpm install && pnpm --filter @tracelanedev/mcp build.
The Streamable HTTP transport ships in this package (TRACELANE_MCP_TRANSPORT=http, see Transports) — run it yourself. There is no hosted endpoint: https://mcp.tracelane.dev does not resolve, so a url-style client entry has nothing to connect to.
Set CLICKHOUSE_URL to read ClickHouse directly instead of the gateway — for a self-hosted or local Tracelane stack:
{
"mcpServers": { "tracelane": { "command": "npx", "args": ["@tracelanedev/mcp"], "env": { "TRACELANE_API_KEY": "tlane_YOUR_KEY", "TRACELANE_GATEWAY_URL": "https://gateway.tracelane.dev", "CLICKHOUSE_URL": "http://localhost:8123", "CLICKHOUSE_USER": "default", "CLICKHOUSE_PASSWORD": "…" } } } }
TRACELANE_GATEWAY_URL is still needed in self-host mode — it is where TRACELANE_API_KEY is validated (/v1/auth/whoami) even though trace reads go to ClickHouse instead.
| Tool | Description |
|---|---|
list_traces | List recent traces for the tenant. Params: limit (default 20), model_filter, has_error |
get_trace | Get all spans for a trace. Params: trace_id |
get_span | Get full details for a span including all LLM GenAI attributes. Params: span_id, trace_id — required in Cloud (gateway) mode (no span-by-id gateway route; the span is picked out of the trace's span list), optional in self-host mode |
search_traces | Free-text search across span names and attributes. Params: query (gateway mode requires ≥4 chars), model_filter?, has_error?, limit. Gateway mode returns content-filtered trace summaries; self-host mode returns per-span match detail (matched_spans, first_match_*) |
explain_guardrail_block | Human-readable explanation of a guardrail signal. Self-host mode: trace_id + span_id (a detection-layer AFT flag on a recorded span). Gateway mode: EITHER correlation_id (from a block's 403 body, for a request blocked pre-flight with no trace) OR trace_id + span_id (same AFT-flag case, still available since spans carry the flag either way) |
list_evals | List every pain-point + fault-tolerance eval id and count, read from the manifest bundled at build time from evals/. Params: none |
get_eval_result | Read a specific eval's assertions. Needs a repo checkout for the source; says so when there is none. Params: eval_id |
replay_trace | Return a recorded trace as-is (ordered spans with LLM/tool attributes) for offline step-through. Read-only — it does not re-execute any model or tool. Params: trace_id, include_tool_calls? |
Once connected, you can ask Claude:
"Show me the last 5 traces that had a guardrail block, and explain what fired."
"Compare the latency of traces using claude-haiku-4-5 vs claude-sonnet-4-6 in the last hour."
"Show me the assertions that eval makes."
TRACELANE_API_KEY environment variable passed via the MCP env block. The server resolves the tenant from the API key — tenant_id is never accepted as a tool argument.
| Transport | How to select it | When to use |
|---|---|---|
| Stdio | default | Local use — Claude Desktop, Claude Code, Cursor. Zero network exposure. |
| Streamable HTTP | TRACELANE_MCP_TRANSPORT=http TRACELANE_MCP_PORT=8081 | Self-run remote deployments. Every request must carry Authorization: Bearer ; the tenant is resolved per request through the gateway. No hosted endpoint is operated for you. |
crates/gateway/src/trace_reads.rs) — the tenant comes from the bearer's claims server-side, this server never sends or sees a tenant id. Self-host mode: every ClickHouse query includes WHERE tenant_id = {tenantId: String} (parameter-bound, never string-interpolated).TRACELANE_API_KEY via the gateway and refuses to start if the key is rejected; HTTP resolves it per request from the bearer token and binds it through AsyncLocalStorage.read scope, or another tenant's trace id all read back as isError: true carrying the gateway's own status and message — not [].get_eval_result looks the id up in the bundled manifest and uses the manifest's path, so a traversal string cannot name a file.Operator note: span content is returned as stored. Scope the API key you give this server to workspaces whose spans you are comfortable handing to the connected model.
# From source, against your own stack
pnpm dev:mcp
No container image is published for the MCP server — ghcr.io/tracelane/mcp does not exist. Run it from source or from the npm package.
@modelcontextprotocol/sdk — official MCP SDK (stdio + Streamable HTTP)@clickhouse/client — parameter-bound ClickHouse queriesnoUncheckedIndexedAccess: trueApache 2.0 — see LICENSE.