使用说明
@aklinker1/mcp-server-sdk
用于使用Bun和Deno构建简单MCP服务器的SDK。
替代官方 @modelcontextprotocol/sdk@v1 与:
- 标准模式兼容验证库 支持
- 网页超文本技术工作小组
fetch标准 支持(Bun和Deno服务器) - 最小依赖性(3个包的总大小为62KB 对比 90加起来为14MB)
- 结果类型构建器
[!警告]
第2版 官方SDK可能会添加对我所有更改的支持。等待该版本发布。
支持的协议版本
| 协议版本 | 支持吗? |
|---|---|
| 2025-11-25 | ✅ |
| 2025-06-18 | ✅ |
| 2025-03-26 | ✅ |
| 2024-11-05 | ❌ |
| 草案 | ❌ |
支持的功能
| MCP功能 | 支持吗? |
|---|---|
| 交通>stdio | ❌ |
| 传输>流式HTTP | ✅ |
| 提示 | ✅ |
| 资源 | ✅ |
| 工具 | ✅ |
| 授权 | ❌ |
| 基本实用程序>取消 | ❌ |
| 基础实用程序>Ping | ✅ |
| 基础实用程序>进度 | ❌ |
| 服务器实用程序>完成 | ❌ |
| 服务器实用程序>日志记录 | ❌ |
| 服务器实用程序>分页 | ❌ |
这里的目标是创建一个通用的MCP
fetch我可以在家庭实验室中托管并在支持的聊天中使用的功能 包子.
安装
npm i @aklinker1/mcp-server-sdk
bun add @aklinker1/mcp-server-sdk
deno add @aklinker1/mcp-server-sdk
快速开始
// main.ts
import {
createMcpFetchTransport,
definePrompt,
defineTool,
defineResourceTemplate,
} from "@aklinker1/mcp-server-sdk";
import z from "zod";
// Define your prompts, resources, and tools
const examplePrompt = definePrompt({
argsSchema: z.object({
param: z.string(),
}),
handler: async ({ args }) => {
// ...
},
});
const exampleResource = defineResourceTemplate({
uriTemplate: "example://{id}",
uriSchema: z.object({
id: z.string(),
}),
handler: async ({ uri }) => {
// ...
},
});
const exampleTool = defineTool({
inputSchema: z.object({
param: z.string(),
}),
handler: async ({ input }) => {
// ...
},
});
// Create a server-side fetch function
const fetch = createMcpFetchTransport({
toJsonSchema: z.toJSONSchema,
prompts: {
examplePrompt,
},
resources: {
exampleResource,
},
tools: {
exampleTool,
},
});
// Serve the MCP server at http://localhost:3000
Bun.serve({ fetch });
// or
Deno.serve({ fetch });
然后运行你的服务器!
bun run main.ts
deno run --allow-net main.ts
MCP检查员
使用 @modelcontextprotocol/inspector 用于检查服务器的包:
bunx @modelcontextprotocol/inspector@latest --transport http --server-url http://localhost:3000