通用MCP服务器
使用TypeScript和Express构建的生产就绪模型上下文协议(MCP)服务器实现,旨在将AI代理与外部API无缝连接。
概述
本项目演示了如何使用 @modelcontextprotocol/sdk它为开发人员提供了一个实用的参考,用于将API暴露给AI代理和大型语言模型(LLM),重点是电影数据库交互。
实施细节见 src/mcp/tools.ts, src/mcp/prompts.ts, src/helpers/ 目录和相关文件。
什么是MCP?
模型上下文协议(MCP)为AI模型建立了一个标准化的接口,以便安全有效地与外部系统交互。它定义了一个结构化框架,用于:
- 资源:模型可以访问的数据对象
- 工具:模型可以调用的可执行函数
- 鼓励:指导模型交互的模板
这种标准化简化了人工智能功能与现有应用程序和服务的集成。
有关综合文档,请访问 模型上下文协议存储库.
主要特点
- 全面实施MCP规范
- 通过服务器发送事件(SSE)进行实时通信
- 模块化架构,易于扩展
- 内置电影数据库集成,用于搜索人物和发现电影
- API响应的类型安全接口
- 全面的错误处理
- 用于测试和参考的示例客户端
先决条件
- Node.js 18或更高版本
- npm或yarn包管理器
入门指南
安装
- 克隆存储库:
git clone https://github.com/yourusername/generic-mcp-server.git
cd generic-mcp-server- 安装依赖项:
npm install- 配置您的环境:
cp .env.example .env- 将您的API凭据添加到
.env文件:
PORT=8089
ACCESS_TOKEN=your_movie_db_access_token运行服务器
热重载开发模式:
npm run dev生产方式:
npm run build
npm start服务器将在以下时间可用 http://localhost:8089 (或您指定的端口 .env 文件)。
api参考
端点
| 端点 | 方法 | 描述 |
|---|---|---|
/sse | GET | MCP通信的服务器发送事件端点 |
/messages | POST | 客户端向MCP服务器发送消息的端点 |
MCP组件
资源
greeting://welcome:静态欢迎消息users://{userId}:动态用户数据资源
工具
服务器实现了强大的电影数据库工具:
- 电影_数据库_搜索_人:搜索演员、导演和电影专业人士的详细信息,包括他们的职业生涯、传记数据和电影作品。
- movie_database_discover_films:先进的电影发现,按演员、流派、上映日期、收视率等进行过滤。
鼓励
greeting:友好的用户问候help:详细的指挥协助ask-question:用于引导对话的问题模板error:优美的错误处理提示
电影数据库功能
服务器通过以下功能提供对电影数据库(TMDB)API的访问:
- 寻找电影行业专业人士 包括演员和导演
- 发现电影 具有广泛的过滤选项:
- 按发布日期、受欢迎程度或评级 - 由演员或工作人员 - 按流派、关键字或公司 - 按运行时或语言 - 按货币化类型(免费、订阅、租赁等)
环境配置
| 变量 | 描述 | 默认值 |
|---|---|---|
PORT | 服务器端口号 | 8089 |
ACCESS_TOKEN | 需要电影数据库API | 的身份验证令牌 |
使用示例客户端进行测试
该存储库包括一个演示客户端,显示如何连接到MCP服务器并与之交互:
npm run client客户将:
- 建立与服务器的连接
- 显示可用资源、工具和提示
- 阅读问候语资源
- 演示工具使用方法
- 检索提示模板
与AI模型集成
此服务器可以与支持MCP协议的任何LLM集成。标准化的接口确保了与各种AI框架和平台的兼容性。
建筑
该项目采用模块化架构:
src/mcp/:核心MCP协议实现src/helpers/:API特定的帮助器函数src/utils/:实用函数和共享代码src/types.ts:TypeScript接口定义
可用接口
该项目包括API响应的类型化接口:
ApiResponse:具有数据、错误和状态字段的通用API响应包装ApiConfig:使用baseUrl和可选标头配置API客户端
这些接口有助于确保使用API数据时的类型安全。
贡献
欢迎投稿!请随时提交拉取请求。
许可证
麻省理工学院
