使用说明
集成OpenAI的MCP服务器
生产准备就绪 模型上下文协议 服务器用TypeScript实现。服务器提供:
- OpenAI连接演示 –通过以下方式证明API密钥端到端有效
npm run demo:openai. - MCP工具演示 –使用以下命令通过MCP客户端生成服务器和调用工具
npm run demo:tool. - 可扩展性演示 –通过磁盘热加载第三方工具
npm run demo:ext或MCP_TOOL_MODULES. - 浏览器UI演示 –启动一个交互式网页,使用OpenAI调用和知识搜索工具
npm run demo:ui.
代码库侧重于干净的抽象、模式验证和商业准备(日志记录、配置安全、测试)。
需求
- Node.js 18+(建议使用Node 20以避免可选的引擎警告)。
- NPM9+。
- 有效的
OPENAI_API_KEY可以访问所需的模型。
快速开始
npm install
cp .env.example .env # fill in OPENAI_API_KEY
npm run build
npm start # runs the compiled MCP server on stdio
在开发过程中直接运行TypeScript条目:
npm run dev
环境变量
| 变量 | 描述 |
|---|---|
OPENAI_API_KEY |
必修的。 OpenAI的API密钥。 |
OPENAI_BASE_URL |
覆盖Azure/OpenAI代理的基本URL。 |
OPENAI_TIMEOUT_MS |
应用于OpenAI API调用的超时(ms)。默认为 20000. |
MCP_SERVER_NAME |
向MCP客户宣传的名称。 |
LOG_LEVEL |
fatal → trace.默认为 info. |
MCP_TOOL_MODULES |
逗号分隔的额外工具模块的绝对路径(请参阅可扩展性演示)。 |
MCP_PORT |
为未来的运输预留;默认为 7337. |
UI_DEMO_PORT |
浏览器UI演示的可选端口。默认为 4399. |
演示工作流程
1.OpenAI连接
验证凭据和模型访问权限:
npm run demo:openai
通过Pino日志输出模型回复和令牌使用指标。
2.MCP工具调用
生成已编译的MCP服务器(node dist/index.js)并与官方MCP客户端SDK连接:
npm run build
npm run demo:tool
集 MCP_DEMO_SERVER_COMMAND / MCP_DEMO_SERVER_ARGS 如果您希望客户端启动其他命令(例如 npx tsx src/index.ts).脚本列出工具并调用 knowledge_search 端到端。
3.通过插件进行扩展
船舶与 src/examples/plugins/stockQuoteTool.ts.之后 npm run build 编译后的模块位于 dist/examples/plugins/stockQuoteTool.js.
通过演示脚本加载它:
npm run build
npm run demo:ext
或者在启动服务器之前设置环境变量:
export MCP_TOOL_MODULES=$(pwd)/dist/examples/plugins/stockQuoteTool.js
npm start
服务器会自动注册从引用模块导出的每个工具。
4.浏览器UI演练
启动一个轻量级的HTTP服务器 public/ui-demo.html:
npm run demo:ui
访问 http://localhost:4399 (或 UI_DEMO_PORT)致:
- 使用配置的API密钥直接向OpenAI发送提示。
- 调用内置
knowledge_search工具通过REST外观。
响应以内联方式呈现,因此您可以在不离开浏览器的情况下验证这两个流。
工具
- TypeScript 严格模式
tsc对于建筑。 - Vitest 用于单元测试(
npm test). - ESLint+Pretier 用于修剪/格式化(
npm run lint,npm run format). - 皮诺 结构化测井,开发中打印效果很好。
测试和质量门
npm run lint
npm test
覆盖率报告发布于 coverage/ 通过V8仪表。
项目结构
src/config/env.ts–集中、经过验证的环境加载。src/clients/openaiClient.ts–实现弹性OpenAI包装器LLMProvider合同。src/mcp/registry.ts–工具生命周期管理+动态模块加载。src/mcp/server.ts–MCP服务器接线、工具适配器和插件API。src/demos/*–涵盖三种所需场景的可运行脚本。src/examples/plugins/*–可扩展性演示的示例插件。tests/*–为关键单位提供最全面的覆盖。
如需更深入的架构概述,请阅读 docs/architecture.md.
