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 分