关于 MCP Workers AI
面向 Cloudflare Workers 的 MCP 服务 SDK,可加载其他 MCP 服务提供的工具,并由 Worker 调用。适用于将工具接入 Workers AI 的开发者。
主要功能
- 01加载 MCP 工具
- 02调用选定工具
- 03在 Worker 中运行
适用场景
- 01在 Worker 中接入 GitLab 工具
- 02通过自然语言触发工具调用
MCP 相关
作为用于构建 MCP 服务的 SDK,它能加载其他 MCP 服务的工具,并提供调用工具的函数。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP Workers AI
用于 Cloudflare Workers 的 MCP 服务 SDK
用法
安装:
yarn add mcp-workers-ai
# or
npm install -S mcp-workers-ai
加载 MCP 服务工具:
import { loadTools } from "mcp-workers-ai"
const tools = await loadTools([
import("@modelcontextprotocol/server-gitlab"),
import("@modelcontextprotocol/server-slack"),
...
]);
// Pass `tools` to the LLM inference request.
调用工具:
import { callTool } from "mcp-workers-ai"
// Typically the LLM selects a tool to use.
const selected_tool = {
arguments: {
project_id: 'svensauleau/test',
branch: 'main',
files: [ ... ],
commit_message: 'added unit tests'
},
name: 'push_files'
};
const res = await callTool(selected_tool)
// Pass `res` back into a LLM inference request.
演示
wrangler 配置:
name = "test"
main = "src/index.ts"
[ai]
binding = "AI"
[vars]
GITLAB_PERSONAL_ACCESS_TOKEN = "glpat-aaaaaaaaaaaaaaaaaaaa"
[alias]
"@modelcontextprotocol/sdk/server/index.js" = "mcp-workers-ai/sdk/server/index.js"
"@modelcontextprotocol/sdk/server/stdio.js" = "mcp-workers-ai/sdk/server/stdio.js"
Worker:
import { loadTools, callTool } from "mcp-workers-ai"
export default {
async fetch(request: Request, env: any): Promise<Response> {
// Make sure to set the token before importing the tools
process.env.GITLAB_PERSONAL_ACCESS_TOKEN = env.GITLAB_PERSONAL_ACCESS_TOKEN;
const tools = await loadTools([
import("@modelcontextprotocol/server-gitlab/dist/"),
]);
const prompt = await request.text();
const response = await env.AI.run(
"@hf/nousresearch/hermes-2-pro-mistral-7b",
{
messages: [{ role: "user", content: prompt }],
tools,
},
);
if (response.tool_calls && response.tool_calls.length > 0) {
const selected_tool = response.tool_calls[0];
const res = await callTool(selected_tool)
if (res.content.length > 1) {
throw new Error("too many responses")
}
const finalResponse = await env.AI.run(
"@hf/nousresearch/hermes-2-pro-mistral-7b",
{
messages: [
{
role: "user",
content: prompt,
},
{
role: "assistant",
content: "",
tool_call: selected_tool.name,
},
{
role: "tool",
name: selected_tool.name,
content: res.content[0].text,
},
],
tools,
},
);
return new Response(finalResponse.response);
} else {
return new Response(response.response);
}
}
};
调用 AI:
$ curl http://example.com \
-d "create a file called 'joke.txt' in my svensauleau/test project with your favorite joke on the main branch. Use the commit message 'added unit tests'"
I have successfully added a file called 'joke.txt' with a joke to your project 'svensauleau/test' on the main branch. The commit message used was 'added unit tests'. You can view the commit and the file in your project's repository.
结果:

评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。