AI工具协调服务器

MCP Server是一个生产就绪的Node.js后端,通过WebSocket上的JSON-RPC 2.0协议协调AI工具交互,适用于构建自主系统和智能自动化流程。

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

使用说明

MCP服务器

生产就绪的实施 模型上下文协议(MCP) -一个模块化、可扩展的Node.js后端,通过WebSocket上的JSON-RPC 2.0编排AI工具交互。

概述

MCP Server弥合了AI代理(如OpenAI的GPT模型)和系统级操作之间的差距,通过统一的协议实现了智能自动化。该服务器公开了一个可插拔的工具注册表,人工智能代理可以动态发现和调用,使其成为构建自主系统、智能自动化管道和人工智能驱动操作的理想选择。

主要特点

  • 协议优先设计:通过WebSocket实现JSON-RPC 2.0,实现可靠的双向通信
  • 动态工具发现:AI代理可以在运行时使用完整的模式信息查询可用的工具
  • 可扩展架构:通过实现简单的异步处理程序添加新工具
  • OpenAI集成:支持GPT-4函数调用的即用型客户端
  • 沙盒执行:使用VM2和Docker容器的安全代码执行环境
  • 系统监控:CPU、内存、磁盘和网络的内置健康检查
  • 多语言支持:使用Python、JavaScript、Bash、C、C++、Java、Go和Rust执行代码

建筑

┌─────────────────┐         ┌─────────────────┐         ┌─────────────────┐
│   AI Client     │         │   MCP Server    │         │  Tool Registry  │
│  (OpenAI GPT)   │◄───────►│  (WebSocket)    │◄───────►│  (Pluggable)    │
└─────────────────┘         └─────────────────┘         └─────────────────┘
         │                           │                           │
         │    JSON-RPC 2.0           │                           │
         │    over WebSocket         │                           │
         │                           │                           │
         │  1. initialize            │                           │
         │  2. tools/list            │                           │
         │  3. tools/call            │   Execute Tool            │
         │                           │──────────────────────────►│
         │                           │◄──────────────────────────│
         │◄──────────────────────────│         Result            │

协议流

  1. 初始化:客户端建立WebSocket连接并执行协议握手
  2. 发现:客户端请求具有完整输入/输出模式的工具列表
  3. 执行:AI代理根据用户查询选择和调用工具
  4. 迭代:执行多步工具链,直到任务完成

可用工具

系统与监控

  • health_check -全面的系统诊断(CPU、内存、磁盘、网络)
  • dir_query -目录结构探索

代码执行(沙盒)

  • run_js_code -在VM2沙盒中执行JavaScript
  • run_js_test_suite -在隔离环境中运行单元测试
  • run_docker_code -多语言执行(Python、JS、C、C++、Java、Go、Rust)
  • run_docker_command -在容器中任意执行命令
  • run_docker_script -带有环境变量的多行脚本
  • docker_list_images -Docker镜像清单

数据库操作

  • db_users -从MySQL查询用户数据
  • sql_query -执行任意SQL查询

沟通

  • send_email -SMTP电子邮件传递

文档

  • api_login_documentation -API认证文档
  • api_groups_doc -API集团管理文档

文件操作

  • save_html_file -将HTML内容写入文件系统

快速开始

先决条件

  • Node.js v25+
  • npm v11.6.2+
  • OpenAI API密钥(在这里买一个)
  • Docker(用于容器化执行工具)

安装

# Clone the repository
git clone https://github.com/yzhbankov/mcp-server.git
cd mcp-server

# Install dependencies
yarn install

配置

服务器配置

创建 apps/server/.env:

SERVER_PORT=8080

客户端配置

创建 apps/client/.env:

MCP_SERVER_URL=ws://localhost:8080
OPEN_AI_API_KEY=your_openai_api_key_here

运行服务器

# Start MCP Server (in one terminal)
yarn start:server

# Start AI Client (in another terminal)
yarn start:client

使用示例

客户端运行后,尝试以下查询:

# Discover available tools
show me a set of available tools

# System health analysis
provide me system health check analysis

# Conditional automation
provide me system health check and if disk usage is greater than 10% send email to admin@example.com

# AI-powered code generation
using api documentation provide me curl requests how I can login and create group entity

# Execute Python code
run this python code: print([x**2 for x in range(10)])

# Multi-step automation
analyze system health, save results to HTML, and email the report to ops@example.com

扩展服务器

添加新工具

工具已在中注册 apps/server/lib/models/Tools.ts:

registerTool(
  'my_custom_tool',
  {
    title: 'My Custom Tool',
    description: 'Performs a specific operation',
    inputSchema: {
      type: 'object',
      properties: {
        input: { type: 'string', description: 'Input parameter' }
      },
      required: ['input']
    },
    outputSchema: {
      type: 'object',
      properties: {
        result: { type: 'string' }
      }
    }
  },
  async (args) => {
    // Your implementation here
    const result = await performOperation(args.input);

    return {
      content: [{
        type: 'text',
        text: JSON.stringify({ result })
      }]
    };
  }
);

该工具自动对所有连接的AI客户端可用。

项目结构

mcp-server/
├── apps/
│   ├── server/                 # MCP Server implementation
│   │   ├── app.ts              # WebSocket server entry point
│   │   └── lib/
│   │       ├── controller/     # JSON-RPC message routing
│   │       ├── models/         # Tool registry and definitions
│   │       ├── utils/          # Helper functions
│   │       └── config.ts       # Server configuration
│   └── client/                 # AI Client implementation
│       ├── app.ts              # Interactive CLI
│       └── lib/
│           ├── models/         # MCP client, AI integration
│           └── config.ts       # Client configuration
├── CLAUDE.md                   # Development guidelines
├── LICENSE                     # MIT License
└── README.md                   # This file

技术栈

  • 运行时:带ES模块的Node.js v25+
  • 语言:TypeScript(ES2022目标)
  • 协议:基于WebSocket的JSON-RPC 2.0
  • WebSocket: ws 图书馆
  • 人工智能集成:带函数调用的OpenAI GPT-4
  • 沙箱VM2,Docker容器
  • 数据库:MySQL(可选)
  • 生成工具:tsx(无需编译)

安全考虑

  • API密钥应存储在 .env 文件(永远不要提交这些!)
  • 数据库凭据应外部化到环境变量中
  • 代码执行工具在沙盒环境中运行
  • Docker容器为不受信任的代码提供了额外的隔离
  • 所有工具调用都会记录下来以供审计

发展

# Run server in development
cd apps/server && yarn start

# Run client in development
cd apps/client && yarn start

# Both servers support hot-reload via tsx

贡献

欢迎投稿!请随时提交拉取请求。对于重大更改,请先打开一个问题来讨论您想要更改的内容。

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

作者

雅罗斯拉夫博士

致谢

  • 基于模型上下文协议规范构建
  • 受标准化AI到系统通信需求的启发
  • 专为可扩展性和实际生产使用而设计

备注:这是一个展示MCP协议功能的参考实现。根据您的安全和操作要求定制工具实现。