SuperAPI AI 工具集

mcp-server

MCP Server(模型上下文协议服务器)是一个通用、模块化的服务器框架,用于实现 Model Context Protocol(MCP)。它通过标准化 API 提供控制与交互各种 AI 模型的框架,支持动态模块加载和模块搜索。可集成 OpenAI、Stability AI、Anthropic、Hugging Face 等主流模型提供商,支持文本生成、图像生成和语音转文本模型,并兼容流式推理。项目采用 Node.js 18.x 及以上和 pnpm 10.x 及以上运行,默认监听 http://localhost:3000。提供托管部署(Fronteir AI)、Docker 容器化支持、Mocha/Chai 测试基础设施以及 Husky 和 lint-staged 的预提交钩子。开发者可通过模块机制扩展功能,每个模块是独立包,可添加新能力。

访问官网

工具介绍

MCP Server(模型上下文协议服务器)是一个通用、模块化的服务器,用于实现 Model Context Protocol(MCP)。该项目旨在提供一个框架,通过标准化 API 控制与交互各种模型。

主要能力

  • 模块化架构,便于扩展
  • 动态模块加载
  • 核心模型管理功能
  • 标准化的模型上下文 API
  • 简单的配置系统
  • 日志工具
  • 增强的模块结构,具有适当的关注点分离
  • 支持带依赖管理的模块 package.json
  • 使用 Mocha 和 Chai 的全面测试基础设施
  • 强大的模块搜索功能
  • API 响应中显示模块元数据
  • 集成真实 AI 模型提供商(OpenAI、Stability AI、Anthropic、Hugging Face)
  • 支持文本生成、图像生成和语音转文本模型
  • 兼容模型的流式推理支持

使用方式

环境要求

  • Node.js 18.x 或更高版本
  • pnpm 10.x 或更高版本

该项目仅使用 ES Modules(ESM)。所有导入使用 import 语法而非 require()。

运行服务器

默认情况下,服务器将在 http://localhost:3000 启动。 复制示例环境文件并编辑 API 密钥: 至少需要添加要使用的模型提供商的 API 密钥。API 密钥获取地址:

  • OpenAI: https://platform.openai.com/api-keys
  • Stability AI: https://platform.stability.ai/account/keys
  • Anthropic: https://console.anthropic.com/settings/keys

服务器没有全局认证层,因此任何能访问端口的东西都可以调用任何模块路由。涉及文件系统或发出站请求的模块受到以下约束:

  • 模块令牌:具有副作用的路线通过 Authorization: Bearer <token> 或 X-API-Key: <token> 接受令牌。当变量未设置时,路线保持开放,并在启动时记录警告。
  • 路径包含:readme-badges 根据 README_BADGES_ROOT(默认:工作目录)解析 readmePath 和 rootDir,并拒绝任何逃逸、目标为非 markdown 文件或通过符号链接到达外部的内容。scanner 以相同方式将导出限制在其报告目录中。
  • 出站请求允许列表:获取调用者命名 URL 的模块会拒绝回环、链路本地(云元数据)、RFC1918、CGNAT 和其他非公共地址,解析主机名并检查每个返回的地址,并重新验证每个重定向跳。当模块与一个已知服务通信时,主机也会被允许列表。
  • 跨源请求:CSRF_PROTECTION_ENABLED(默认 true)拒绝携带外来 Origin 头的状态更改请求,因此恶意网页无法驱动浏览器访问本地绑定的服务器。不发送 Origin 的客户端(curl、MCP 客户端、服务器到服务器调用)不受影响。在 CORS_ORIGINS 中列出受信任的浏览器源。如果服务器暴露在 localhost 之外,请在认证反向代理后面运行。

测试服务器

仓库包含使用 Mocha 和 Chai 的全面测试: 测试基础设施包括:

  • 核心服务器测试(模块加载、路由和其他核心功能)
  • 每个模块功能的模块特定测试
  • 测试中对 ES 模块的支持
  • 使用 Sinon 的模拟和打桩工具 测试组织方式:
  • 核心测试在 /test/core/
  • 模块测试在每个模块的 test/ 目录中

预提交钩子

仓库包含使用 Husky 和 lint-staged 的预提交钩子:

  • 对 JavaScript 文件运行 ESLint
  • 对所有暂存文件运行 Prettier

Docker 支持

仓库包含 Docker 支持,便于容器化和部署:

  • 使用 Node.js 20 Alpine 作为基础镜像
  • 暴露端口 3000
  • 将模块目录挂载为卷,便于模块管理
  • 包含健康检查

标准 MCP 方法

MCP 服务器实现了一组所有 MCP 服务器都应提供的标准化方法:

服务器信息

  • GET / - 基本服务器信息
  • GET /status - 详细服务器状态
  • GET /health - 健康检查端点
  • GET /metrics - 服务器指标

模型管理

  • GET /models - 列出可用模型
  • GET /model/:modelId - 获取模型信息
  • POST /model/:modelId/activate - 激活特定模型
  • POST /model/deactivate - 停用当前模型
  • GET /model/active - 获取活动模型信息
  • POST /model/infer - 使用活动模型进行推理
  • POST /model/:modelId/infer - 使用特定模型进行推理

支持的模型类型示例:

  • 使用 GPT-4 的文本生成
  • 使用 Stable Diffusion 的图像生成
  • 流式文本生成

模块管理

  • GET /modules - 列出已安装模块
  • GET /modules/:moduleId - 获取模块信息
  • GET /modules/search/:query - 按 package.json 或元数据中的任何字段搜索模块

工具和资源

  • GET /tools - 列出可用工具
  • GET /resources - 列出可用资源

配置

配置从环境变量加载,存储在 src/core/config.js 中。最简单的配置方式是编辑项目根目录下的 .env 文件。 关键环境变量参见 sample.env 中的完整配置选项列表。

示例

仓库包含几个示例帮助入门:

  • 客户端示例:examples/client.js 演示如何从客户端应用与 MCP 服务器交互。
  • 自定义模块示例:examples/custom-module/ 展示如何创建向服务器添加计算器工具的自定义模块。 运行客户端示例: (具体命令暂未提供) 使用自定义模块示例,将其复制到 modules 目录: (具体命令暂未提供)

创建模块

模块是扩展 MCP 服务器的主要方式。每个模块是一个自包含的包,可以为服务器添加新功能。

模块结构

模块遵循增强结构,具有更好的组织。每个模块应包含 package.json 文件,包含:

  • 名称、版本、描述
  • 作者和许可证信息
  • 依赖和开发依赖
  • 脚本(尤其是测试)
  • 关键词和其他元数据

模块实现

主模块文件(index.js)必须导出一个 register 函数,在模块加载时调用。

示例模块

  • 简单示例模块在 mcp_modules/example/
  • 带计算器工具的复杂示例在 examples/custom-module/
  • 健康检查模块在 mcp_modules/health-check/
  • 新模块模板在 mcp_modules/template/

创建新模块

可以使用提供的脚本创建新模块。脚本将:

  • 在 mcp_modules/ 中创建新模块目录
  • 复制模板文件
  • 替换占位符为模块信息
  • 提供实现模块的后续步骤

模块搜索

MCP 服务器包含强大的搜索功能,允许根据 package.json 或元数据中的任何信息查找模块。

搜索端点

  • GET /modules/search/:query - 搜索任何字段中包含指定查询字符串的模块 搜索会全面匹配任何字段,包括依赖、关键词和其他元数据等嵌套对象。

模型提供商

MCP 服务器集成多个 AI 模型提供商:

  • OpenAI 提供 GPT 模型用于文本生成,Whisper 用于语音转文本
  • Stability AI 提供 Stable Diffusion 用于图像生成
  • Anthropic 提供 Claude 模型用于文本生成
  • Hugging Face 提供对数千个开源模型的访问

文档

  • MCP Standard Methods:所有 MCP 服务器应实现的标准方法文档。
  • MCP Interface:MCP 协议的 TypeScript 接口定义。
  • Architecture:MCP 服务器架构概述。