MCP ExplorerExplorer

Xsmcp

@moeru-aion a year ago
23 MIT
FreeCommunity
AI Systems
🤖📎 extra-small MCP SDK for quick client/server builds.

Overview

What is Xsmcp

xsmcp is an extra-small MCP SDK designed for rapid development of client/server applications.

Use cases

Use cases for xsmcp include building chat applications, real-time data synchronization tools, and lightweight APIs for mobile or web platforms.

How to use

To use xsmcp, integrate the SDK into your project, follow the documentation for setup, and utilize the provided APIs to build your client and server functionalities.

Key features

Key features of xsmcp include its lightweight design, ease of integration, and quick setup process, making it ideal for developers looking to create efficient client/server applications.

Where to use

xsmcp can be used in various fields including web development, mobile applications, and IoT projects where quick client/server communication is essential.

Content

xsMCP

extra-small MCP SDK for mcp builders hating bloat.

About

🚧 This project is under active development, stay tuned!

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

MIT

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

Tools

No tools

Comments

Recommend MCP Servers

View All MCP Servers