快速上手
最小 MCP Server:TypeScript
mkdir mcp-demo && cd mcp-demo
npm init -y
npm i @modelcontextprotocol/sdk
// server.ts
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
const server = new McpServer({
name: 'demo-server',
version: '1.0.0',
});
// 定义一个 Tool:加法
server.tool('add', { a: { type: 'number' }, b: { type: 'number' } }, async ({ a, b }) => ({
content: [{ type: 'text', text: String(a + b) }],
}));
// 用 stdio 传输跑起来
const transport = new StdioServerTransport();
await server.connect(transport);
npx tsx server.ts # 本地启动(stdio:等客户端来连接)
最小 MCP Server:Python(FastMCP 更简洁)
pip install mcp
# server.py
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("demo-server")
@mcp.tool()
def add(a: int, b: int) -> int:
"""两数相加"""
return a + b
if __name__ == "__main__":
mcp.run() # 默认 stdio 传输
接到客户端:Claude Code / Claude Desktop
本地 stdio Server 配置成"命令 + 参数",客户端会自动拉起并连接:
// .mcp.json(Claude Code 项目级)或 claude_desktop_config.json
{
"mcpServers": {
"demo": {
"command": "node",
"args": ["server.ts"] // 或 ["server.js"](先编译)
}
}
}
配置后,在 Claude Code / Claude Desktop 里就能直接让 AI 用 add 工具(比如问"3 加 5 等于几",它会调 MCP 工具而不是猜答案)。
远程 Server(Streamable HTTP)
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
// 在 Express / 任意 HTTP 框架里,把请求交给 MCP transport 处理
// POST 到 https://your-host/mcp 即可;远程部署必须配鉴权(OAuth)
远程场景注意:不鉴权就暴露工具 = 把数据库/文件系统裸奔给全世界。
验证一个 Server 好不好用
- 本地先跑通:stdio 启动,看有没有报错;
- 接进客户端:在 Claude Code / Claude Desktop 里看到它暴露的 Tools / Resources / Prompts;
- 最小闭环:让 AI 实际调用一次工具,确认结果正确、错误处理合理。