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 分