关于 ZapToMCP
ZapToMCP 是一个仍在开发中的 TypeScript monorepo,包含用于构建 MCP 服务端和客户端的包。其 SDK 提供类型化 API 和多种传输方式,另有用于简化服务端创建的高层抽象。
主要功能
- 01TypeScript MCP SDK
- 02类型化 API
- 03内存、SSE、stdio 和 HTTP 传输
- 04高层服务端抽象
- 05支持 ESM 和 CommonJS
适用场景
- 01用 TypeScript 构建 MCP 服务端
- 02使用 SDK 创建 MCP 客户端
- 03为 MCP 连接选择传输方式
MCP 相关
该 monorepo 提供 MCP TypeScript SDK 和高层服务端包。SDK 支持内存、SSE、stdio 和可流式传输的 HTTP,可用于实现服务端和客户端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
ZapToMCP
⚠️ 正在开发中
警告:此仓库目前正在积极开发中。API 和实现细节可能会发生变化。使用风险由您自行承担。
ZapToMCP 是一个单体仓库,包含用于构建模型上下文协议(MCP)服务和客户端的工具与库。它提供了一种简化的方式来创建、部署和管理兼容 MCP 的服务。
概览
模型上下文协议(MCP)是一种用于 AI 助手与工具之间通信的开放标准。ZapToMCP 简化了构建兼容 MCP 的服务和客户端的流程,让开发者能够专注于打造强大的 AI 体验,而不必实现协议细节。
仓库结构
此单体仓库包含以下软件包:
@zaptomcp/sdk:模型上下文协议的 TypeScript 实现@zaptomcp/server:用于创建 MCP 服务的更高层抽象- 更多软件包即将推出……
开始使用
前提条件
- Node.js >= 20
- pnpm >= 10.8.1
安装
克隆仓库:
git clone https://github.com/hoghweed/zaptomcp.git
cd zaptomcp
安装依赖:
pnpm install
安装
# Install dependencies
pnpm install
# Bootstrap the monorepo
pnpm bootstrap
开发
可用脚本
pnpm dev:启动所有软件包的开发模式pnpm build:构建所有软件包pnpm clean:清理构建产物pnpm lint:对所有软件包运行代码检查pnpm format:格式化所有软件包中的代码pnpm typecheck:运行类型检查pnpm commit:使用约定式提交格式创建提交
代码质量
本项目使用:
- Biome 进行代码检查和格式化
- TypeScript 进行类型检查
- Husky 管理 git 钩子
- Commitlint 验证提交消息
@zaptomcp/sdk
SDK 软件包提供了用于与模型上下文协议(MCP)交互的 TypeScript 实现。
功能
- 多种传输方式:
- 内存
- SSE(服务器发送事件)
- 标准输入/输出
- 可流式传输的 HTTP
- 类型安全的 API
- 基于 Fastify 构建,性能出色
- 支持 ESM 和 CommonJS
安装
pnpm add @zaptomcp/sdk
使用
使用:创建 MCP 服务
import { McpServer } from '@zaptomcp/sdk';
// Create a server with basic information
const server = new McpServer(
{
name: "my-mcp-server",
version: "1.0.0"
},
{
capabilities: {
// Define your server capabilities
sampling: {},
prompts: {},
resources: {},
tools: {},
logging: {}
},
instructions: "This is an MCP-compatible server"
}
);
// Connect the server to a transport
import { FastifyTransport } from '@zaptomcp/sdk/transports';
const transport = new FastifyTransport();
await server.connect(transport);
// Start listening for requests
await transport.listen(3000);
console.log("MCP server running on port 3000");
创建 MCP 客户端
import { Client } from '@zaptomcp/sdk';
// Create a client with basic information
const client = new Client(
{
name: "my-mcp-client",
version: "1.0.0"
},
{
capabilities: {
// Define your client capabilities
sampling: {}
}
}
);
// Connect to an MCP server
import { HTTPClientTransport } from '@zaptomcp/sdk/transports';
const transport = new HTTPClientTransport('http://localhost:3000');
await client.connect(transport);
// Read a resource
const resource = await client.readResource({
uri: "test://example/resource"
});
console.log(resource);
API 文档
SDK 提供以下主要导出项:
Server:主要的服务类transports:各种传输方式in-memory:内存传输sse:服务器发送事件传输stdio:标准输入/输出传输streamable-http:支持流式传输的 HTTP 传输
开发
要参与 SDK 的开发:
# Navigate to the SDK package
cd packages/sdk
# Install dependencies
pnpm install
# Start development mode
pnpm dev
# Run tests
pnpm test
# Build the package
pnpm build
贡献
欢迎贡献!欢迎提交 Pull Request。
- Fork 此仓库
- 创建功能分支( git checkout -b feature/amazing-feature )
- 使用约定式提交提交更改( pnpm commit )
- 将分支推送到远程仓库( git push origin feature/amazing-feature )
- 发起 Pull Request
许可证
本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。
致谢
- ZapToMCP 是受 FastMCP 启发移植而来
- Model Context Protocol Typescript SDK —— 本项目实现的开放标准
- FastMCP 受 Jonathan Lowin 的 Python 实现 启发。
- 代码库的部分内容采用自 LiteMCP。
- 代码库的部分内容采用自 Model Context protocolでSSEをやってみる。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。