MCP服务器SDK

用于使用Bun和Deno构建简单MCP服务器的SDK,支持标准Schema验证和WHATWG fetch标准。

  • by aklinker1
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 aklinker1/mcp-server-sdk

使用说明

@aklinker1/mcp-server-sdk

用于使用Bun和Deno构建简单MCP服务器的SDK。

替代官方 @modelcontextprotocol/sdk@v1 与:

[!警告]

第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