使用说明
我的mcp服务器
Node.js/TypeScript中的模型上下文协议(MCP)服务器实现。该项目为MCP提供了多个服务器实现,支持用户待办事项、日志文件读取和AI应用程序的提示模板。
特性
- 获取并添加用户todo(伪API)
- 将应用程序日志文件作为资源读取
- 为代码解释和git提交消息提供提示模板
- 使用MCP兼容服务器
@modelcontextprotocol/sdk - 多种服务器传输:stdio和HTTP流式传输
服务器实现
1.标准MCP服务器(src/index.ts)
- 作为基于stdio的MCP服务器运行(用于CLI/桌面集成)
- 支持待办事项、日志读取和提示功能
2.HTTP流式MCP服务器(src/index-http-streamable-server.ts)
- 作为HTTP服务器运行(默认端口:7171)
- 支持与stdio服务器相同的功能
- 适用于需要HTTP传输的集成
3.自定义HTTP服务器(src/server.ts)
- 实现一组不同的功能(有关详细信息,请参阅代码)
- 作为HTTP服务器运行(默认端口:7171)
设置
- 安装依赖项:
npm install - 构建项目:
- 构建所有服务器:
npm run build - 或者单独构建:
npm run build:stdio # For stdio MCP server npm run build:http # For HTTP streamable MCP server npm run build:custom # For custom HTTP server
- 构建所有服务器:
运行服务器
标准MCP服务器
npm run start:stdio
HTTP流式MCP服务器
npm run start:http
自定义HTTP服务器
npm run start:custom
您还可以使用相应的
inspect,inspect:http,以及inspect:custom使用模型上下文协议检查器进行调试的脚本。
在VS代码中使用MCP服务器
示例 mcp.json 对于stdio:
{
"servers": [
{
"name": "My MCP Stdio Server",
"transport": "stdio",
"command": "node",
"args": [
"/Users/sofikulmallick/Documents/pprojects/GenAI/my-mcp-server/build/index.js"
]
}
]
}
示例 mcp.json 对于HTTP:
{
"inputs": [
{
"type": "promptString",
"id": "AUTHORIZATION_TOKEN",
"description": "MCP Server Authorization JWT",
"password": true
}
],
"servers": {
"my-mcp-server-d959f687": {
"transport": "http",
"url": "http://localhost:7171/mcp",
"headers": {
"Authorization": "Bearer ${input:AUTHORIZATION_TOKEN}"
}
}
}
}
在Claude Desktop中使用MCP服务器
{
"servers": [
{
"name": "My MCP Stdio Server",
"transport": "stdio",
"command": "node",
"args": [
"/Users/sofikulmallick/Documents/pprojects/GenAI/my-mcp-server/build/index.js"
]
}
]
}
Claude还不支持HTTP流式MCP服务器。
项目结构
src/-TypeScript源文件build/-编译的JavaScript输出sample_logs.txt-资源读取的示例日志文件
API概述
- 获取用户待办事项: 使用dummyjson.com为用户获取待办事项
- 添加用户待办事项: 使用dummyjson.com为用户添加todo
- 计算BMI: 根据体重(kg)和身高(m)计算体重指数
- 读取日志: 阅读来源
sample_logs.txt - 提示: 提供代码解释和git提交消息的提示模板
使用Postman测试MCP HTTP API
您可以使用Postman测试MCP HTTP API。提供可直接导入的Postman收藏:
- 文件:
mcp-server-postman-collection.json
步骤:
- 导入收藏 成为邮差。
- 获取令牌:使用“获取令牌”请求获取JWT。
- 初始化MCP会话:使用“MCP HTTP服务器初始化”请求。替换
<token>你的JWT。 - 通话工具(例如,计算BMI):使用“计算BMI工具”请求。替换
<token>和<session-id>使用您之前步骤中的值。
cURL命令示例
获取令牌:
curl --location 'http://localhost:7171/login' \
--header 'Content-Type: application/json' \
--data '{"username":"user1","password":"password1"}'
MCP HTTP服务器初始化:
curl --location 'http://localhost:7171/mcp' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json, text/event-stream' \
--header 'Authorization: Bearer <token>' \
--data '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": { "interactive": true },
"clientInfo": { "name": "example-client", "version": "1.0.0" }
}
}'
计算BMI工具:
curl --location 'http://localhost:7171/mcp' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json, text/event-stream' \
--header 'mcp-session-id: <session-id>' \
--header 'Authorization: Bearer <token>' \
--data '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "calculate-bmi",
"arguments": { "weightKg": 70, "heightM": 1.75 }
}
}'
