ThinMCP

ThinMCP

A local MCP gateway that compresses multiple upstream servers into two tools, search and execute, to minimize model context usage. It provides a compact, code-driven interface for discovering and calling tools across various upstream sources on demand.

Category
访问服务器

README

ThinMCP

ThinMCP is a local MCP gateway that compresses many upstream MCP servers into two tools:

  • search()
  • execute()

You give your model only ThinMCP. ThinMCP keeps the full upstream tool surface out of model context and exposes a compact, code-driven interface.

Current Status

Progress Log

  • [x] Project scaffold (TypeScript, MCP SDK, config layout)
  • [x] Local catalog store (SQLite) and snapshot persistence
  • [x] Upstream MCP sync pipeline (tools/list -> normalized catalog)
  • [x] search() and execute() tool registration in gateway MCP server
  • [x] On-demand refresh when execute() sees stale or missing tool metadata
  • [x] Basic sandbox hardening (frozen runtime globals + timeout + code-length limit)
  • [x] Targeted sync for one upstream with --server <id>
  • [x] doctor command to validate config + auth env wiring
  • [x] Optional HTTP transport for ThinMCP server (--transport http)
  • [x] execute() argument validation against cached tool input schemas
  • [x] Non-text/large tool outputs normalized before model return
  • [x] Worker-isolated sandbox runtime with memory limits and hard termination
  • [x] Automated test suite (npm test) for sandbox/proxy/validation/output shaping
  • [x] Client integration guide (docs/CLIENT_INTEGRATIONS.md)
  • [x] Upstream MCP support over stdio in addition to Streamable HTTP
  • [x] HTTP gateway auth + rate limits (--http-auth-token*, --http-rate-*)
  • [x] Real-upstream e2e test entrypoint (npm run test:e2e)
  • [x] Redis-backed shared HTTP rate limiter (--redis-url)
  • [x] JWT/JWKS inbound auth mode (--http-auth-mode jwt)
  • [x] Stdio upstream auto-restart/backoff + health snapshots (/healthz, /metrics)

Architecture

Model Client
  -> ThinMCP MCP Server (search, execute)
      -> Search runtime (catalog API over SQLite)
      -> Execute runtime (tool.call -> MCP proxy)
          -> Upstream MCP servers

Sync scheduler
  -> tools/list from upstreams
  -> snapshots/*.json
  -> normalized catalog in SQLite

Token Reduction (Measured)

Using Exa as a real upstream MCP server, we measured tool-schema context cost with tiktoken (o200k_base) on minified tools/list JSON:

  • Direct Exa MCP (web_search_exa, company_research_exa, get_code_context_exa): 686 tokens
  • ThinMCP gateway tools (search, execute): 188 tokens
  • Reduction: 72.59% fewer tokens (3.65x smaller tool surface in context)

Configure Upstream MCP Sources

Edit /Users/sri/Desktop/silly_experiments/ThinMCP/config/mcp-sources.yaml.

Reference template: /Users/sri/Desktop/silly_experiments/ThinMCP/config/mcp-sources.example.yaml.

Auth tokens are read from environment variables when auth.type = bearer_env.

Run

cd /Users/sri/Desktop/silly_experiments/ThinMCP
npm install
npm run typecheck
npm run build
npm test
npm run test:e2e   # runs only if THINMCP_RUN_E2E=1

Sync only:

npm run sync

Sync only for a single server:

npm run sync -- --server cloudflare

Start ThinMCP MCP server (stdio):

npm run dev

Start ThinMCP MCP server over HTTP (Streamable HTTP):

npm run dev:http

Custom host/port:

npm run dev -- --transport http --host 0.0.0.0 --port 8787

HTTP auth + rate limit options:

npm run dev -- \
  --transport http \
  --http-auth-mode bearer \
  --http-auth-token-env THINMCP_HTTP_TOKEN \
  --redis-url redis://127.0.0.1:6379 \
  --http-rate-limit 120 \
  --http-rate-window-seconds 60

Or set THINMCP_HTTP_TOKEN directly in environment.

JWT auth mode:

npm run dev -- \
  --transport http \
  --http-auth-mode jwt \
  --http-jwt-jwks-url https://issuer.example.com/.well-known/jwks.json \
  --http-jwt-issuer https://issuer.example.com \
  --http-jwt-audience thinmcp-clients

Validate local setup:

npm run doctor

Example Usage in Model Tool Calls

search()

async () => {
  const tools = catalog.findTools({ query: "dns", limit: 10 });
  return tools.map((t) => ({ serverId: t.serverId, toolName: t.toolName }));
}

execute()

async () => {
  const result = await tool.call({
    serverId: "cloudflare",
    name: "zones.list",
    arguments: { account_id: "abc123" }
  });

  return result;
}

Notes

  • ThinMCP supports upstream MCP servers over both Streamable HTTP and stdio transports.
  • Sandboxing runs in a dedicated worker with memory limits and wall-clock termination, still intended for local trusted usage rather than hostile multi-tenant workloads.
  • Client setup examples are in /Users/sri/Desktop/silly_experiments/ThinMCP/docs/CLIENT_INTEGRATIONS.md.
  • Real-upstream e2e tests are opt-in: set THINMCP_RUN_E2E=1 and configure enabled servers (plus tokens) in config.
  • HTTP health and metrics are available at /healthz and /metrics in HTTP mode and include upstream stdio health snapshots.
  • Parallel Web Systems MCP endpoints (search-mcp.parallel.ai, task-mcp.parallel.ai) require API auth (x-api-key or Authorization bearer token).

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选