Toolkien

io.github.epavanello由 GitHub 账号 epavanello 发布v0.0.1更新于 Nov 14, 2026

One MCP server for all your MCP servers: code mode, per-tool permissions, approvals and audit.

已验证Streamable HTTP可网页运行开发者工具安全与监控

概览

AI 生成的概览

一个 MCP 网关:让客户端通过一个连接使用工作区内所有远程 MCP 服务器,以工具搜索和沙箱内 TypeScript 脚本方式调用。

可以做什么
  • 搜索并查看工作区中已配置的所有 MCP 服务器工具,并生成 TypeScript 声明
  • 在 Deno 沙箱中运行 TypeScript 脚本调用这些工具,无需加载成百上千个工具定义
  • 按工具设置权限级别(允许、询问、阻止),写入操作可暂停等待人工批准并在不重复调用的情况下继续
  • 记录每次调用的审计元数据,并加密保存凭据
  • 通过带 OAuth 登录的网页界面管理连接器、权限与执行记录
适用场景
当助手需要同时使用多个远程 MCP 服务器,希望只建立一个连接、减少上下文中的工具定义,并明确控制哪些调用可直接执行、哪些需要批准时适用。
运行要求
需要远程 Streamable HTTP 端点;托管服务位于提供方域名,自托管需运行 Docker Compose 栈(应用、OpenBao、出口代理、runner)。客户端通过 OAuth 2.1 与免密码邮件登录认证。本地开发需要 Node 22+、pnpm 10 和 Deno 2。
安装前请注意
它作为网关保存上游 MCP 服务器的凭据,因此能触达这些服务器可做的一切;写入可设为需人工批准,但实际是否自动执行取决于权限设置。上游调用经其出口代理发出,审计仅记录元数据。自托管需配置 BETTER_AUTH_SECRET、TOOLKIEN_DEV_MASTER_KEY 等密钥,以及用于登录的邮件服务密钥。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Toolkien,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.epavanello%2Ftoolkien/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "toolkien": {
      "type": "http",
      "url": "https://toolkien.emadev.co/mcp"
    }
  }
}

README

Toolkien

One MCP to rule them all. Toolkien is an MCP gateway in "code mode": connect one MCP server to your clients (Claude, Codex, Cursor…) and use every remote MCP server configured in your workspace. Instead of hundreds of tool definitions, the agent searches tools, reads their TypeScript declarations and runs one TypeScript script in a Deno sandbox. Every call is checked against explicit permissions; writes can pause for a human approval and resume without repeating calls. Tokens are encrypted, content is never logged.

Open source (AGPL-3.0) and available as a managed service. Product spec: docs/spec.md (Italian) · Decisions: DECISIONS.md · Conventions: docs/conventions.md · Client compatibility: docs/compatibility.md.

Architecture

PartWhat it does
App (SvelteKit 3)Web UI, /mcp (Streamable HTTP, MCP 2026-07-28 and 2025-11-25), OAuth 2.1 authorization server for MCP clients (Better Auth), connectors, permissions, executions
Database (libSQL)Turso in production, a local file in development; Drizzle migrations in drizzle/
OpenBaoTransit key that wraps one data key per workspace (envelope encryption of credentials and paused executions)
Runner (runner/)Deno supervisor: type-checks scripts in a sandboxed TypeScript compiler, runs each one in a permission-less Deno process; tool calls come back to the app's bridge
Egress proxy (egress/)The only way out to upstream MCP servers and the email provider (CONNECT, port 443, SSRF rules)
Email (Resend)Passwordless sign-in (code + link) and workspace invitations

Flow: the agent calls tools_search → tools_describe → execute. The app resolves the workspace and the visible tools, generates .d.ts declarations, and sends the script to the runner over a WebSocket. Each tool call goes through the bridge: kill switches, permission level (allow / ask / block), approval gate, encrypted credential, upstream call, sealed result for durable replay, audit (metadata only).

Local development

Requirements: Node 22+, pnpm 10 (corepack enable picks the pinned version), Deno 2.

sh
pnpm installcp .env.example .env    # then fill:#   BETTER_AUTH_SECRET=$(openssl rand -base64 32)#   TOOLKIEN_DEV_MASTER_KEY=$(openssl rand -base64 32)# Leave RUNNER_URL empty: the app starts a local runner with your `deno`.# Leave RESEND_API_KEY empty: sign-in codes and links are printed to the server console.pnpm db:migrate         # creates local.db from the migrationspnpm dev                # http://localhost:5173 — sign up with any email, you land in your personal workspace

Connect a client: add http://localhost:5173/mcp as a remote MCP server (Streamable HTTP). It discovers OAuth, opens the consent page and asks which workspace to start in. For a local MCP server to connect to, development (only) accepts http://localhost… connector URLs.

Useful commands:

sh
pnpm check                  # svelte-checkpnpm lint                   # prettier --check + eslintpnpm test                   # vitest: server (node) + component (browser) projectspnpm build                  # production build (adapter-node)pnpm db:generate            # migration from schema changes (src/lib/server/db/schema/*)pnpm auth:schema            # regenerate Better Auth tables after changing auth pluginspnpm directory:validate     # check directory/servers/*.jsoncd runner && deno task test # runner (sandbox, checker, escape attempts)cd egress && deno task test # egress proxypnpm exec playwright install chromium   # once, for component tests

Every environment variable is declared and documented in src/env.ts.

Self-hosting

One docker compose project (app, OpenBao, egress proxy, runner): see docs/self-hosting.md, and docs/deploy-coolify.md for Coolify. Migrations run when the app container starts.

Contributing to the directory

The curated server directory is data: one JSON file per server in directory/servers/. Read directory/CONTRIBUTING.md, add or edit a file, run pnpm directory:validate, open a pull request.

Before launch

Placeholders that need real values:

The repository URL is REPOSITORY_URL in src/lib/brand.ts.

  • Legal drafts in legal/*.md: operator legal name and address, privacy / DPO / security / contact emails, VPS provider and region, Resend legal entity, transfer mechanism and sending region, liability cap, governing law, notice periods. All drafts need review by a lawyer or DPO.
  • Resend: verified sender domain (EU region), EMAIL_FROM, an API key with sending access only.
  • VPS provider (EU) for the compose stack; Turso database in an EU region.
  • OG image endpoint (not implemented).

License

AGPL-3.0. If you run a modified Toolkien as a network service, you must offer its source to its users.

来源:README.md,提交 8510bd7

工具

0
SourceWeft 尚未读取此服务器的工具。

版本历史

1
  1. v0.0.1最新Nov 14, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式必需10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分