该项目是一个示例模型上下文协议(MCP)服务器,构建为现有API的包装器。本质上,MCP服务器挂载在一个端点(例如 /mcp),并且注册的工具(在server对象上)可供MCP主机/客户端使用。
// index.ts
app.post('/mcp', async (req: Request, res: Response) => {
try {
const transport: StreamableHTTPServerTransport = new StreamableHTTPServerTransport({
sessionIdGenerator: undefined,
});
await server.connect(transport);
await transport.handleRequest(req, res, req.body);
...
// mcp-server.ts
server.tool(
'create_ticket',
'创建新的支持工单',
{
customer_email: z.string().describe('客户电子邮件地址'),
customer_name: z.string().describe('客户姓名'),
issue_message: z.string().describe('客户消息'),
issue_type: z.enum(['bug', 'feature_request', 'other']).describe('问题类型'),
}
...
# 安装依赖
npm install
# 构建项目
npm run build
# 运行开发服务器
npm run dev
要将Claude连接到MCP封装的API,请在claude_desktop_config.json文件中添加服务器。
{
"mcpServers": {
"mcp-api-wrapper": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:4000/mcp"
]
}
}
}
现在你应该能够向Claude发出请求以创建一个支持工单,并且它会通过MCP执行API上的操作。
能否为Mark Evans(mark@example.com)创建一个工单?他在遇到密码重置流程失败的问题。