MCP服务器-渲染部署(SSE传输)
此项目是一个示例 模型上下文协议(MCP) 在Render上运行的服务器 SSE(服务器发送事件) 运输。
特性
- HTTP+SSE传输: 作为渲染Web服务运行
- 工具:
- get_users:列出所有用户 - get_user_by_id:按ID获取用户 - get_server_stats:获取服务器统计信息 - calculate:基础数学(加、减、乘、除) - erp_list_customers:模拟ERP客户(只读) - erp_get_customer:按ID模拟ERP客户 - erp_list_orders:模拟ERP订单(只读) - erp_get_order:按ID模拟ERP订单 - erp_list_invoices:ERP模拟发票(只读) - erp_list_inventory:模拟ERP库存(只读) - db_create:创建SQLite数据库(可选架构) - db_list_tables:列出SQLite表(只读) - db_table_schema:显示表架构(只读) - db_query:运行SELECT/WITH查询(只读) - db_exec:运行INSERT/UPDATE/DELETE/CREATE(写入)
- 资源:
- data://users:用户列表(JSON) - data://stats:服务器统计数据(JSON)
端点
| 端点 | 方法 | 描述 |
|---|---|---|
/ | 获取 | API信息 |
/health | GET | 健康检查(用于渲染) |
/sse | GET | SSE连接(MCP客户端在此处连接) |
/message | POST | MCP消息(客户端到服务器) |
本地开发
# Install dependencies
npm install
# Build TypeScript
npm run build
# Start server
npm start
# Watch mode
npm run dev服务器运行在 http://localhost:8080.
部署以渲染
1.推送到GitHub
git init
git add .
git commit -m "MCP Server SSE"
git remote add origin https://github.com/yourusername/mcp-server-sse.git
git push -u origin main2.创建渲染Web服务
- 登录到渲染仪表板
- 选择 新建>Web服务
- 连接您的GitHub仓库
- 使用这些设置:
- 运行时间: 码头工人 - 计划: 免费(或您喜欢的计划) - Dockerfile路径: ./Dockerfile - 端口: 8080
- 点击 部署
3.使用蓝图进行部署(可选)
您可以使用部署 render.yaml:
- 转到渲染蓝图
- 选择 新建蓝图实例
- 选择您的仓库
- 部署
MCP客户端使用情况
要通过SSE连接到MCP服务器,客户端必须使用SSE URL。
Claude桌面配置(示例)
{
"mcpServers": {
"render-server": {
"url": "https://your-service.onrender.com/sse"
}
}
}地方发展配置
{
"mcpServers": {
"local-server": {
"url": "http://localhost:8080/sse"
}
}
}API测试
健康检查
curl http://localhost:8080/healthSSE连接(在新终端中)
curl http://localhost:8080/sse发送MCP消息
curl -X POST http://localhost:8080/message \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}'日志记录
工具调用以JSON行记录。默认情况下,日志会转到stdout。\ 集 LOG_FILE 将日志写入文件。
SQLite
服务器可以创建和查询本地SQLite数据库。
环境变量:
SQLITE_FILE(默认值:./data/app.db)
示例用法:
db_create和schema_sql: "CREATE TABLE items(id INTEGER PRIMARY KEY, name TEXT);"db_list_tablesdb_table_schema和table: "items"db_query和sql: "SELECT * FROM items"db_exec和sql: "INSERT INTO items(name) VALUES('Elma'),('Armut')"
项目结构
.
├── src/
│ └── index.ts # MCP server code (Express + SSE)
├── dist/ # Compiled JavaScript (after build)
├── Dockerfile # Docker image
├── render.yaml # Render blueprint
├── package.json # NPM dependencies
├── tsconfig.json # TypeScript config
└── README.md # This file技术
- @modelcontextprotocol/sdk: MCP服务器SDK
- 快递: HTTP框架
- 上海证券交易所 服务器发送事件传输
- TypeScript: 类型安全开发
- Docker: 容器化
- 提供: 云部署
许可证
麻省理工学院
