
SPOC
io.github.SPOC-App由 GitHub 帳號 SPOC-App 發布v0.1.3更新於 Oct 24, 2026
stdio bridge for the SPOC MCP server — for Claude Desktop, Cursor, Zed
概覽
本機 stdio 橋接器,讓僅支援 stdio 的 MCP 用戶端(如 Claude Desktop、Cursor、Zed)透過 HTTP+SSE 連線遠端 SPOC MCP 伺服器。
- 可以做什麼
- 在 stdio 用戶端與 SPOC HTTP 端點之間原樣轉送 MCP JSON-RPC 訊框,讓 SPOC 的工具出現在用戶端的工具清單中。透過 SSE 事件流轉送伺服器發起的通知,此功能可關閉。為需要身分的工具傳遞 bearer 權杖,唯讀工具也可匿名存取。透過環境變數調整端點、事件端點與請求逾時。將除錯輸出寫入 stderr 以便排查問題。
- 適用情境
- 當你的 MCP 用戶端只支援 stdio 傳輸,但需要存取託管的 SPOC MCP 伺服器時使用,例如 Claude Desktop、Cursor、Zed、Windsurf 或 Continue。若用戶端已直接支援 HTTP+SSE,則不需要此橋接器。
- 執行需求
- 需要 Node.js 與 npx,或全域安裝此 npm 套件。需要連線至 SPOC 端點的網路存取,預設使用託管的 RPC 與事件位址。可選 SPOC_BEARER 權杖,來自 SPOC 的 API 金鑰設定;匿名唯讀存取可省略。可選變數 SPOC_ENDPOINT、SPOC_EVENTS_ENDPOINT、SPOC_TIMEOUT_MS、SPOC_DISABLE_SSE 與 SPOC_DEBUG。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 SPOC,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
@spocapp/mcp-bridge
Small stdio bridge that lets Claude Desktop, Cursor, Zed, Windsurf and other stdio-only MCP clients talk to the SPOC MCP server at spoc.com/mcp/rpc.
- npm:
@spocapp/mcp-bridge - MCP Registry:
io.github.SPOC-App/mcp-bridge - Live server:
https://spoc.com/mcp/rpc— reports itself asspoc / 1.27.0
What this is (and isn't)
Most current MCP clients only speak the stdio transport — JSON-RPC over a subprocess's stdin/stdout. SPOC's MCP server speaks HTTP+SSE so it can serve many clients at once. This bridge is the shim between the two: install it, point your MCP client at it, and SPOC's tools appear in the client's tool picker.
It is not a rewrite of the MCP protocol, and it doesn't cache, batch, or reinterpret requests. Every JSON-RPC frame goes through unchanged. If you need behaviour that differs from what the bridge does today, it's usually easier to fix in SPOC itself than in the shim.
Install
You don't need to install it — most MCP clients will fetch it on demand with npx:
Or install it once and point clients at the binary:
Configure your MCP client
Claude Desktop
Edit the config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Restart Claude Desktop. SPOC's tools should appear in the tool picker within a few seconds.
Cursor
~/.cursor/mcp.json (or Settings → MCP → Edit mcp.json):
Zed
~/.config/zed/settings.json:
Windsurf, Continue, etc.
Any client that speaks the MCP stdio transport works the same way. Set the command to npx -y @spocapp/mcp-bridge and pass a bearer via environment.
Environment variables
Bearer tokens
Generate one at https://spoc.com/settings/api-keys. Make sure the harness:issue scope is checked or SPOC will reject calls that need to issue harnesses.
Anonymous access works for read-only tools that don't need a principal. Bearer is only required for tools that act on behalf of an identity.
Smoke test
Confirm the bridge and the upstream are both healthy:
You should get a single JSON line back that includes "name":"spoc" and "version":"1.27.0". If you see that, MCP-aware clients will work.
Troubleshooting
Tools don't appear in the client after restart. Run the smoke test above in a plain terminal. If it returns an error frame, the error.data field will tell you why. If it returns nothing at all, check the client's log for a spawn error — the usual cause is npx not being on the client's PATH.
ERR_INTERNAL on tool calls. Almost always an upstream issue rather than a bridge issue. Set SPOC_DEBUG=1 and re-run — the bridge will log the raw upstream response.
401 errors. The bearer token is missing, wrong, or lacks scope. Verify at https://spoc.com/settings/api-keys.
SSE won't connect. Notifications are optional. Set SPOC_DISABLE_SSE=1 and everything except server-initiated notifications continues to work.
Testing
The client-integration suite spawns spoc-mcp-bridge as a real subprocess and drives it through the same stdio protocol that Claude Desktop, Cursor, Zed, and Windsurf use — initialize, notifications/initialized, tools/list, tools/call, concurrent in-flight calls, mixed-type ids, SSE notifications, upstream errors, and timeouts. If it passes, MCP clients that speak stdio will work.
To also exercise the real production endpoint:
CI runs the offline suite on Node 18 / 20 / 22 for every push and PR; the live suite runs on main only.
Writing your own client
If you're implementing SPOC's report-event HMAC signing directly (rather than going through this bridge), one thing to watch out for: SPOC's canonical form matches JavaScript JSON.stringify behaviour, which leaves non-ASCII characters as themselves rather than escaping them to \uXXXX. Python's default json.dumps(...) escapes non-ASCII — you'll get a bad_signature 401 the first time you include an em-dash, curly quote, or accented character. Pass ensure_ascii=False.
Links
https://spoc.com— the underlying servicehttps://spoc.com/mcp/manifest— the tool cataloguehttps://spoc.com/docs/api— the full HTTP APICHANGELOG.md— release history and what changed between versionsRELEASING.md— how to cut a new release
License
MIT
來源:README.md,提交 371b4cc
工具
0版本歷史
1- v0.1.3最新Sep 21, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分