xsMCP
为讨厌臃肿的MCP构建者提供的超小型MCP SDK。
\[!小心\] xsMCP已经日落 由于频繁的MCP更新和xsMCP缺乏实际用户,我们在2025年7月存档了xsMCP。 如果MCP足够稳定并且有用户兴趣,我们可能会重新启动这个项目。
关于
为什么会有这个项目?
@modelcontextprotocol/sdk 很大 并且依赖于以下库 zod, express等等,你可能甚至不想使用。
喜欢 xsAI,xsMCP不会强制您使用特定的服务器或模式库,而且非常小。
路线图
我们目前的目标是流式HTTP客户端/服务器,Stdio的优先级较低。
兼容性
xsMCP v0.1的目标是与 2025-03-26 修订版,不向后兼容。
HTTP服务器结构
@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
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。
许可证
第三方许可证
此项目部分复制了以下项目的代码:
|项目|许可证| | -- | -- |
