xsmcp
xsmcpはTypeScriptで構築されたツールで、開発者が効率的にコードを生成し、管理するための機能を提供します。特に、APIとの連携やデータ処理の自動化が得意で、開発フローをスムーズにします。ユーザーは簡単にカスタマイズ可能な設定を使って、自分のニーズに合わせた開発環境を整えることができます。
GitHubスター
45
ユーザー評価
未評価
お気に入り
0
閲覧数
49
フォーク
2
イシュー
3
xsMCP
extra-small MCP SDK for mcp builders hating bloat.
[!CAUTION]
xsMCP has been sunsetDue to frequent MCP updates and a lack of actual users for xsMCP, we archived xsMCP in July 2025.
If MCP is stable enough and there is user interest, we may restart this project.
About
Why is there this project?
@modelcontextprotocol/sdk
is large and has dependencies on libraries like zod
, express
, etc. that you probably don't even want to use.
Like xsAI, xsMCP does not force you to use a particular server or schema library and is very small.
Roadmap
Our current target is Streamable HTTP Client / Server, Stdio have lower priority.
Compatibility
xsMCP v0.1 is targeted to be compatible with the 2025-03-26
revision and is not backward compatible.
HTTP Server Structure
@xsmcp/server-http
is based on Web Standards, not 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 }
It can be used as a server on its own or with hono
, elysia
and itty-router
for more features:
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))
At the same time, it does not depends on any server framework thus minimizing the size.
For simplicity reasons, this server only returns JSON Response, not SSE.
License
Third Party Licenses
This project partially copies code from the following projects:
Project | License |
---|---|
modelcontextprotocol/specification | MIT |
modelcontextprotocol/servers | MIT |
modelcontextprotocol/typescript-sdk | MIT |
crouchcd/pkce-challenge | MIT |
denoland/std | MIT |