Token导航 LogoToken导航TokenDH.com
BYOB MCP Server logo
AI代理stdio官方级别未说明来源级核验

BYOB MCP Server

MCP Server

wrangler

一个基于Cloudflare Workers、Containers和D1构建的动态MCP服务器,使AI代理能够在运行时发现和调用容器化工具,无需重新部署。

工具数

4

提示词数

0

GitHub Stars

0

资源数

0
TypeScriptClaudeAI代理Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ndisidore

提供方

ndisidore

最后核验

2026/5/17 20:20

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx wrangler d1 execute byob-tools-registry --remote \

详细介绍

BYOB MCP服务器🚀

自带二进制文件:基于Cloudflare Workers、Containers和D1构建的动态MCP服务器。

使AI代理能够发现和调用在运行时注册的容器化工具,无需重新部署。

快速开始

# Install dependencies
npm install

# Start local dev server
npm run dev

# In another terminal, test the API
bash test-api.sh

# Deploy to production
npm run deploy

这是什么

概念证明,证明:

  • 动态工具注册表 -存储在D1中的工具,由MCP服务器查询
  • 容器化执行 -每个工具都在隔离的Cloudflare容器中运行
  • MCP协议 -AI代理通过模型上下文协议发现工具
  • HTTP注册API -注册新工具而无需重新部署
  • 缩放到零 -容器仅在调用工具时运行

建筑

AI Agent (Claude) ──[MCP]──> Cloudflare Worker ──[HTTP]──> Universal Container
                                    │                         (ToolRunner)
                                    └──[SQL]──> D1 Registry
                                                              Supports:
                                                              • Echo
                                                              • Uppercase
                                                              • JQ
                                                              • Git Clone

预构建演示工具

所有四个工具都在一个通用容器中运行:

  1. echo消息 -回显任何JSON输入
  2. 为什么大喊大叫 -将文本转换为大写
  3. query_json -使用jq过滤器处理JSON
  4. 总结报告 -克隆GitHub仓库并总结其README

API终点

得到/

健康检查和服务器信息

GET/api/工具

列出所有已注册的工具

POST/api/注册工具

注册新工具

{
  "name": "my_tool",
  "description": "What this tool does",
  "containerClass": "echo",
  "schema": {
    "type": "object",
    "properties": {
      "input": {"type": "string"}
    }
  }
}

POST/mcp

MCP协议端点(在此处连接您的AI代理)

示例:注册工具

curl -X POST http://localhost:8787/api/register-tool \
  -H "Content-Type: application/json" \
  -d '{
    "name": "whisper",
    "description": "Echoes message in lowercase",
    "containerClass": "toolrunner",
    "schema": {
      "type": "object",
      "properties": {
        "message": {"type": "string"}
      },
      "required": ["message"]
    }
  }'

连接到克劳德桌面

编辑您的Claude Desktop配置:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "byob-server": {
      "url": "http://localhost:8787/mcp"
    }
  }
}

重新启动Claude Desktop,然后问:

  • “你们有什么工具?”
  • “你能回应一下‘你好,毕博!’吗?”
  • “使用why_are_we_shring和文本:你好,世界”
  • “总结READMEhttps://github.com/fiberplane/mcp-lite"

文档

项目结构

├── src/
│   ├── index.ts          # Main Worker + MCP server
│   ├── containers.ts     # Container class definitions
│   └── types.ts          # TypeScript interfaces
├── containers/
│   ├── Dockerfile        # Universal container image
│   ├── server.js         # Multi-tool HTTP server
│   └── README.md         # Container documentation
├── migrations/
│   ├── 0001_initial_schema.sql
│   └── 0002_seed_example_tools.sql
└── wrangler.jsonc        # Cloudflare configuration

添加新工具

由于所有工具都使用相同的通用容器,因此添加新工具很简单:

选项1:通过API(无需重新部署)

curl -X POST http://localhost:8787/api/register-tool \
  -H "Content-Type: application/json" \
  -d '{"name":"my_tool", "description":"...", ...}'

选项2:扩展容器

要添加新的操作类型,请执行以下操作:

  1. 编辑 containers/server.js 处理新的输入模式
  2. 将新工具定义添加到 migrations/0002_seed_example_tools.sql
  3. 重新部署

单容器方法使演示变得简单,同时仍演示BYOB架构。

技术栈

  • 运行时间: Cloudflare Workers(V8隔离)
  • MCP: mcp-lite(不是@modelcontextprotocol/sdk)
  • Web框架: 荣誉
  • 数据库: Cloudflare D1(SQLite)
  • 容器: Cloudflare容器(持久对象)
  • 架构: Zod+JSON模式

部署

地方发展

npm run dev
# Server runs on http://localhost:8787

生产部署

  1. 在远程数据库上运行迁移:
npx wrangler d1 execute byob-tools-registry --remote \
  --file=./migrations/0001_initial_schema.sql
npx wrangler d1 execute byob-tools-registry --remote \
  --file=./migrations/0002_seed_example_tools.sql
  1. 部署Worker和容器:
npm run deploy

注: 首次部署需要2-5分钟来构建Docker镜像。

  1. 使用您的生产URL更新Claude Desktop配置:
{
  "mcpServers": {
    "byob-server": {
      "url": "https://byob-mcp-server.YOUR_ACCOUNT.workers.dev/mcp"
    }
  }
}

测试

# Automated API tests
bash test-api.sh

# Manual health check
curl http://localhost:8787/

# List tools
curl http://localhost:8787/api/tools | jq

# Test MCP protocol
curl -X POST http://localhost:8787/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

主要特点

动态发现

在D1中注册的工具会立即显示给所有连接的AI代理,无需重新部署。

安全隔离

每个容器都在一个具有资源限制和临时存储的隔离沙箱中运行。

无服务器规模

容器在空闲时缩放到零。仅为实际工具调用付费。

标准接口

所有容器暴露 POST /execute 端点接受/返回JSON。

局限性

必须在部署时定义容器类wrangler.jsonc真正的运行时BYOB需要在注册新容器时自动重建/重新部署Worker。

解决方法: 多个逻辑工具可以共享同一个容器类,无需重新部署即可实现极大的灵活性。

资源

许可证

麻省理工学院-专为黑客马拉松演示而建

贡献

这是一个黑客马拉松原型。如有疑问或建议,请打开一个问题!

______________________________________________________________________

内置 ☁️ Cloudflare员工|🐳 集装箱|🗄️ D1|🤖 主控程序

目录标签

目录标签

TypeScriptClaudeAI代理动态工具注册本地部署容器化执行MCP协议AI代理工具无服务器架构

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

部署方式(deploymentType,部署类型)

remote-capable

来源包(packageName,安装包名)

wrangler

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiononeremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP