模型上下文协议服务器

基于SSE传输的模型上下文协议服务器,提供多种工具和数据库操作功能,适用于企业资源规划(ERP)和本地开发环境。

  • by devemree
  • JavaScript
  • 混合部署
  • 1 星标
  • 更新于
在 GitHub 查看 emredeveloper/MCP-Render

使用说明

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服务

  1. 登录到渲染仪表板
  2. 选择 新建>Web服务
  3. 连接您的GitHub仓库
  4. 使用这些设置:
    • 运行时间: 码头工人
    • 计划: 免费(或您喜欢的计划)
    • Dockerfile路径: ./Dockerfile
    • 端口: 8080
  5. 点击 部署

3.使用蓝图进行部署(可选)

您可以使用部署 render.yaml:

  1. 转到渲染蓝图
  2. 选择 新建蓝图实例
  3. 选择您的仓库
  4. 部署

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_tables
  • db_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: 容器化
  • 提供: 云部署

许可证

麻省理工学院