OpenAI代理生成器的MCP服务器模板
 ](https://nodejs.org/) 
最小的、可重复使用的 模型上下文协议 (MCP)服务器模板,专为与OpenAI Agent Builder和其他MCP兼容的AI平台一起使用而设计。此模板使用Streamable HTTP传输以实现广泛的兼容性。
设计理念
此模板是故意的 最小和UI无关。它只提供MCP服务器基础架构,允许您:
- 将其连接到 任何AI接口 (OpenAI Agent Builder、Claude、自定义UI等)
- 构建自己的前端或使用现有的AI聊天界面。
- 专注于没有UI约束的业务逻辑。
- 部署为独立的微服务。
该模板包括一个演示该模式的工作示例(黎巴嫩、NH分区查找)。用您自己的数据源和工具替换它。
快速开始
npm install
npm start服务器在端口5000上运行。MCP端点位于 POST /mcp.
定制检查表
分叉此模板时,更新以下内容:
所需更改
- \[ \]
config.js-更新所有值:
- SERVER_NAME -您的项目名称(例如,“任何城镇许可证”) - LOCATION_NAME -您所在的城市/地区(例如,“美国Anytown”) - DATA_SOURCES -您的数据源名称 - TOOL_DESCRIPTIONS -工具说明 - ERROR_EXAMPLES -您所在位置的示例值 - ZONING_LAYER, ADDRESS_LAYER -您的图层ID
- \[ \] 秘密 -添加所需的机密:
- ARCGIS_BASE_URL -FeatureServer端点URL(请参阅环境变量部分)
- \[ \]
package.json-更新:
- name -您的包裹名称 - description -你的服务器做什么 - author -您的姓名或组织 - keywords -相关关键词
- \[ \]
mcp-server.js-更新业务逻辑:
- 修改 lookupZoningByCoordinates() 和 lookupZoningByAddress() 为您的数据 - 更新 TOOLS 带有工具定义的数组 - 更新 TOOL_HANDLERS 将工具映射到功能
可选更改
- \[ \]
.env-复制自.env.example并设置环境变量 - \[ \]
README.md-更新用例的文档
与OpenAI Agent Builder一起使用
- 将此服务器部署到可公开访问的URL(例如,使用Replit Deployment)
- 在OpenAI Agent Builder中,添加一个新的MCP工具
- 使用以下命令输入服务器URL
/mcp端点(例如。,https://your-app.replit.app/mcp) - Agent Builder将自动发现您可用的工具
项目结构
config.js # All customizable configuration (START HERE)
mcp-server.js # Main server file with business logic
package.json # Dependencies and scripts
.env.example # Example environment variables
.gitignore # Git ignore rules根据您的用例进行定制
步骤1:更新配置(config.js)
所有特定于位置的字符串和API端点都集中在 config.js:
export const SERVER_NAME = "my-city-lookup";
export const LOCATION_NAME = "My City, ST";
export const DATA_SOURCES = {
zoningLayer: "My City Zoning Data",
addressTable: "My City Address Database",
};步骤2:更新业务逻辑(mcp-server.js)
服务器分为几个部分:
第1节:业务逻辑功能 在此处实现您的工具功能。每个功能都应该:
- 接受工具inputSchema中定义的参数
- 返回一个结果对象(将为AI进行JSON字符串化)
- 如果出现问题,请抛出错误并显示有用消息
第2节:工具定义 通过以下方式定义您的MCP工具:
name:唯一标识符(建议使用snake_case)description:该工具的功能(从config.js导入)inputSchema:定义参数的JSON模式
然后在中添加处理程序 TOOL_HANDLERS 将工具连接到您的功能。
第3节:MCP锅炉板 标准MCP协议处理。很少需要修改。
工具定义示例
const TOOLS = [
{
name: "my_custom_tool",
description: "Description of what this tool does",
inputSchema: {
type: "object",
properties: {
param1: {
type: "string",
description: "Description of param1",
},
},
required: ["param1"],
},
},
];
const TOOL_HANDLERS = {
my_custom_tool: async (args) => {
return await myFunction(args.param1);
},
};API终点
| 端点 | 方法 | 描述 |
|---|---|---|
/mcp | POST | 主MCP端点(初始化、工具/列表、工具/调用) |
/mcp | GET | 服务器信息(无会话)或SSE流(有会话) |
/mcp | DELETE | 会话终止 |
/health | GET | 健康检查 |
示例响应
当AI调用你的工具时,它会收到一个JSON响应:
{
"found": true,
"district": "R-1",
"attributes": { ... },
"source": "Your Data Source"
}环境变量和秘密
必需的秘密
此服务器要求将数据源URL存储为 秘密 (不在代码中):
| 秘密名称 | 描述 |
|---|---|
ARCGIS_BASE_URL | FeatureServer端点URL(必填) |
关于回复: 将其添加到“秘密”选项卡(“工具”面板中的挂锁图标)中。
为什么是秘密? 虽然端点可能是公开访问的,但将其存储为机密可以将其排除在公共代码库之外,并防止意外发现。
可选环境变量
这些可以设置为常规环境变量或机密:
PORT=5000 # Server port (default: 5000)
ZONING_LAYER=24 # Your zoning layer ID
ADDRESS_LAYER=6 # Your address layer ID特性
- 可流式HTTP传输:与OpenAI Agent Builder和MCP Inspector配合使用
- 无状态客户端支持:为不处理MCP握手的客户端自动初始化会话
- CORS已启用:已准备好处理跨来源请求
- 健康检查端点:用于监控和负载平衡器
- 集中式配置:通过以下方式轻松定制
config.js
依赖项
@modelcontextprotocol/sdk:MCP协议实施express:HTTP服务器cors:跨来源支持
许可证
ISC许可证-有关详细信息,请参阅许可证文件。
