模型上下文协议服务器

一个基于TypeScript和Express构建的生产级MCP服务器实现,旨在无缝连接AI代理与外部API,特别适用于电影数据库交互场景。

  • by csainath0210
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 csainath0210/generic-mcp-server

使用说明

通用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包管理器

入门指南

安装

  1. 克隆存储库:

    git clone https://github.com/yourusername/generic-mcp-server.git
    cd generic-mcp-server
    
  2. 安装依赖项:

    npm install
    
  3. 配置您的环境:

    cp .env.example .env
    
  4. 将您的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<T>:具有数据、错误和状态字段的通用API响应包装
  • ApiConfig:使用baseUrl和可选标头配置API客户端

这些接口有助于确保使用API数据时的类型安全。

贡献

欢迎投稿!请随时提交拉取请求。

许可证

麻省理工学院