针对不喜欢臃肿的MCP构建者的extra-small MCP SDK。
[!警告] xsMCP已停止维护
由于频繁的MCP更新以及缺乏实际用户,我们在2025年7月归档了xsMCP。
如果MCP足够稳定且有用户兴趣,我们可能会重启此项目。
@modelcontextprotocol/sdk体积较大,并且依赖于诸如zod、express等库,而这些库你可能根本不想使用。
类似xsAI,xsMCP不会强制你使用特定的服务器或模式库,并且非常小巧。
我们的当前目标是可流式传输的HTTP客户端/服务器,而标准I/O具有较低优先级。
xsMCP v0.1旨在与2025-03-26修订版兼容,并不向后兼容。
@xsmcp/server-http基于Web标准,而不是Express。
import { createFetch } from '@xsmcp/server-http'
import { createServer } from '@xsmcp/server-shared'
import { serve } from 'srvx'
import * as tools from '...'
const server = createServer({ ...options })
for (const tool of tools) {
server.addTool(tool)
}
// (req: Request) => Promise<Response>
const fetch = createFetch(server)
// node.js, deno, bun
serve({ fetch })
// cloudflare workers, pages
export default { fetch }
它可以作为一个独立的服务器使用,也可以与hono、elysia和itty-router结合以获得更多的功能:
import { createFetch } from '@xsmcp/server-http'
import { createServer } from '@xsmcp/server-shared'
import { Elysia } from 'elysia'
import { Hono } from 'hono'
import { AutoRouter } from 'itty-router'
import * as tools from '...'
const server = createServer({ ...options })
for (const tool of tools) {
server.addTool(tool)
}
const fetch = createFetch(server)
// hono
new Hono()
.post('/mcp', ({ req }) => fetch(req.raw))
// elysia
new Elysia()
.post('/mcp', ({ request }) => fetch(request))
// itty-router
AutoRouter()
.post('/mcp', req => fetch(req))
同时,它并不依赖任何服务器框架,从而最小化了大小。
为了简化起见,该服务器仅返回JSON响应,而不支持SSE。
本项目部分复制了以下项目的代码:
| 项目 | 许可证 |
|---|---|
| modelcontextprotocol/specification | MIT |
| modelcontextprotocol/servers | MIT |
| modelcontextprotocol/typescript-sdk | MIT |
| crouchcd/pkce-challenge | MIT |
| denoland/std | MIT |