使用说明
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 │
协议流
- 初始化:客户端建立WebSocket连接并执行协议握手
- 发现:客户端请求具有完整输入/输出模式的工具列表
- 执行:AI代理根据用户查询选择和调用工具
- 迭代:执行多步工具链,直到任务完成
可用工具
系统与监控
health_check-全面的系统诊断(CPU、内存、磁盘、网络)dir_query-目录结构探索
代码执行(沙盒)
run_js_code-在VM2沙盒中执行JavaScriptrun_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协议功能的参考实现。根据您的安全和操作要求定制工具实现。