跳到主要内容

快速上手

最小 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 好不好用

  1. 本地先跑通:stdio 启动,看有没有报错;
  2. 接进客户端:在 Claude Code / Claude Desktop 里看到它暴露的 Tools / Resources / Prompts;
  3. 最小闭环:让 AI 实际调用一次工具,确认结果正确、错误处理合理。