使用说明
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 main
2.创建渲染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/health
SSE连接(在新终端中)
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: 容器化
- 提供: 云部署
许可证
麻省理工学院
