Vibocode Mcp

io.github.vnbochkarev-netizen由 GitHub 帳號 vnbochkarev-netizen 發布v0.1.3更新於 Nov 7, 2026

Two MCP tools instead of an API catalog: search endpoints, run Python in a sandbox.

已驗證STDIO僅桌面知識與記憶開發者工具

概覽

AI 產生的概覽

本機 MCP 伺服器,以兩個工具取代龐大的 API 工具目錄:搜尋端點,並在沙箱中執行可呼叫白名單 API、可寫入記憶的 Python。

可以做什麼
  • 在服務的動作目錄與已存記憶事實中搜尋端點,回傳精簡簽章
  • 在沙箱中執行模型撰寫的 Python,透過 api.get 呼叫白名單內的 HTTP 端點
  • 新增、尋找並讀取跨工作階段持久記憶事實的統計資料
  • 從 OpenAPI 規格產生目錄,而不必手寫
適用情境
適合助理需要操作大型 API(例如 GitHub、Stripe、Slack 等),又不想為每個端點各佔一個工具而耗費數萬 token 的情境;也適合希望把某次工作階段學到的事實留到下次工作階段重複使用的情況。
執行需求
透過 npx 在本機執行,需要 Node 18+ 與 Python 3.10+。需在 VIBOCODE_CATALOG 提供 catalog.json 路徑,描述基礎 URL、允許的網域與動作;VIBO_MEM_FILE 為選用,用於啟用持久記憶。網路存取僅限目錄中允許的網域。
安裝前請注意
沙箱屬於 Python 層級(AST 檢查、資源限制、獨立行程),並非強化隔離環境,只能防範誤寫的程式碼,無法防範蓄意攻擊。run 工具會執行模型撰寫的程式碼,並可向白名單主機發出 HTTP 請求;記憶寫入會持久保存到 VIBO_MEM_FILE 指定的檔案。以工作階段為基礎的端點可能需要 cookie 或服務權杖。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Vibocode Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

vibocode-mcp

Two tools instead of an API catalog. An MCP server that keeps the agent's context small and its reach long.

search  — finds the right endpoints and memory facts, returns compact signaturesrun     — executes model-written Python in a sandbox: api.get(path) + vi.add/find/stats

The whole toolset is 217 tokens (o200k_base tokenizer). The same GitHub REST catalog — 1,272 endpoints — costs 79,525 tokens as plain MCP tools: a 366x difference. Slack's 174 endpoints: 42x. Measurements and reproduction commands are in Benchmarks.

Install

bash
npx vibocode-mcp

Requires Node 18+ and Python 3.10+ (the server is Python).

MCP client configuration:

json
{  "mcpServers": {    "vibocode": {      "command": "npx",      "args": ["-y", "vibocode-mcp"],      "env": {        "VIBOCODE_CATALOG": "/path/to/catalog.json",        "VIBO_MEM_FILE": "/path/to/memory.web"      }    }  }}

Action catalog

catalog.json describes a service: base URL, allowed domains and the list of actions.

json
{  "service": "example",  "base_url": "http://127.0.0.1:4174",  "allow_domains": ["127.0.0.1"],  "actions": [    {"name": "health", "method": "GET", "path": "/api/health", "auth": false,     "desc": "Service health: storage, notification channels, server time"}  ]}

The catalog is not written by hand: for OpenAPI it is generated.

bash
python3 tools/openapi_to_catalog.py openapi.json -o catalog.json \  --base-url https://api.example.com --allow api.example.com --service example

What it looks like in use

python
h = api.get("/api/health")print(h["status"], h["data"]["storage"])vi.add("Service health", "health ok, storage local-json")print(vi.stats())

One run call: an API request, a memory write and a stats read. Without memory it is just a sandbox; the value is that the next session does not rediscover what is already known.

What is inside

bin/vibocode-mcp.js        — npm entry point (starts the Python server)vibocode/server.py         — MCP server (JSON-RPC over stdio)vibocode/catalog.py        — catalog search, compact signaturesvibocode/aliases.json      — query alias data (natural language -> catalog terms)vibocode/bridge.py         — bridge: ViBo memory + allowlisted HTTPvibocode/sandbox.py        — AST validation + isolated process with limitsvibocode/runner.py         — model code executortools/openapi_to_catalog.py — catalog generator from OpenAPItests/test_mcp.py          — 19 checksskill/                     — packaging as an agent skill (SKILL.md + CLI)

Security

  • imports: json, math, re, datetime, statistics, itertools
  • forbidden: open, eval, exec, compile, __import__, getattr, setattr, dunder attributes, global/nonlocal, infinite loops
  • network: only api.get(path), only hosts from allow_domains
  • limits: 40 s wall clock, 1.5 GB memory, 20 s CPU, output capped at 4,000 characters
  • writing the same fact to memory twice is skipped

This is a Python-level sandbox (AST + rlimits + a separate process), not a V8 isolate: it protects against accidental and careless code, not against a deliberate OS-level attack.

Tests

bash
python3 tests/test_mcp.py     # protocol, search, memory, API, limits, blocks

Benchmarks

Tokenizer: o200k_base (tiktoken). Catalogs are generated from official OpenAPI specs. "Full catalog" means one tool per endpoint, with name, description and an empty input schema — the lower bound, generous to the alternative.

CatalogActionsFull catalogvibocodeRatio
GitHub REST1,27279,525 tokens217366x
Stripe61238,020 tokens217175x
Slack Web API1749,129 tokens21742x

For GitHub this is 40% of a 200,000-token window before the user says a word.

End-to-end: one run call with 196 tokens of code performed three requests to api.github.com, wrote a fact to memory and read the stats back. The whole five-step exchange: 2,202 tokens.

Search quality

Search is lexical and alias-aware. aliases.json maps the words a user types to catalog terms, so a query can be phrased naturally rather than in endpoint vocabulary.

Shipped configuration (English aliases):

CatalogQueriesTop-1Top-4
Stripe1283%92%
GitHub REST540%80%

With a language pack loaded through VIBOCODE_ALIASES (a mixed 28-query set, half of it non-English): Stripe 80% / 95%, GitHub 38% / 75%.

Known weakness in both cases: queries that describe a whole scenario instead of an object. Next step: hybrid BM25 + embeddings.

Limitations

  • transport is line-delimited JSON-RPC (not Content-Length); sufficient for stdio clients
  • session-based endpoints need a cookie or a service token
  • the catalog is static: new endpoints are added to catalog.json (or generated from OpenAPI)
  • search is lexical, without a vector index

License

MIT. ViBo memory is a separate product with its own license.

來源:README.md,提交 5ed68c5

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.3最新Nov 7, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分