x86_64组件中的MCP服务器
一个完全用x86_64程序集编写的最小化模型上下文协议(MCP)服务器实现。
特性
- 纯x86_64程序集实现
- 支持MCP协议的HTTP服务器
- MCP的基本功能包括:
- 服务器初始化 - 工具列表 - 工具执行(回声工具)
- web客户端的CORS支持
- 系统化服务支持
- 没有GNU binutils之外的外部依赖
先决条件
确保您在Arch Linux上安装了所需的工具:
# Install build tools
sudo pacman -S binutils
# Optional: Install curl for testing
sudo pacman -S curl建筑
# Check dependencies
make check-deps
# Build the server
make all
# Or build with debug symbols
make debug用法
运行服务器
# Run directly
make run
# Or run the binary
./mcp_server服务器将在端口8080上启动并显示:
MCP Server starting on port 8080...测试
使用内置测试套件测试服务器:
make test或者用curl手动测试:
# Test server initialization
curl -X POST http://localhost:8080/ \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
# List available tools
curl -X POST http://localhost:8080/ \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
# Call the echo tool
curl -X POST http://localhost:8080/ \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"echo","arguments":{"text":"Hello, World!"}}}'安装
系统安装
# Install to /usr/local/bin
make install
# Create and install systemd service
make service
sudo cp mcp-server.service /etc/systemd/system/
sudo systemctl enable mcp-server.service
sudo systemctl start mcp-server.service卸载
# Stop and disable service
sudo systemctl stop mcp-server.service
sudo systemctl disable mcp-server.service
sudo rm /etc/systemd/system/mcp-server.service
# Remove binary
make uninstall建筑
协议支持
服务器实现了MCP 2024-11-05规范的一个子集:
- 初始化:服务器初始化和能力协商
- 工具/列表:返回可用工具(回声工具)
- 工具/调用:执行回声工具
装配结构
- 套接字管理:使用Linux系统调用创建和管理TCP套接字
- HTTP处理:解析基本的HTTP请求并发送正确的响应
- JSON处理:MCP JSON-RPC消息的简单字符串匹配
- 错误处理:为未知方法返回正确的MCP错误响应
使用的系统调用
sys_socket(41):创建套接字sys_bind(49):绑定到地址sys_listen(50):倾听连接sys_accept(43):接受客户端连接sys_read(0):读取请求数据sys_write(1) :发送回复sys_close(3) :关闭连接
局限性
这是一个具有以下限制的最小实现:
- 单线程(一次处理一个客户端)
- 基本JSON解析(仅字符串匹配)
- 有限的错误处理
- 修复了工具调用的响应
- 无身份验证或安全功能
- 不记录文件
发展
生成文件目标
make all-构建服务器make clean-清理构建工件make run-构建并运行make debug-使用调试符号构建make test-运行自动化测试make install-系统安装make service-创建systemd服务make help-显示所有可用目标
调试
使用调试符号构建并使用GDB:
make debug
gdb ./mcp_server在关键功能处设置断点:
(gdb) break _start
(gdb) break server_loop
(gdb) break handle_mcp_request
(gdb) run贡献
这是一个展示低级MCP实现的演示项目。要扩展它:
- 为复杂的请求添加适当的JSON解析
- 实施其他MCP方法
- 添加多线程支持
- 改进错误处理和日志记录
- 添加更复杂的工具
许可证
此代码按原样提供,用于教育和演示目的。在生产环境中使用,风险自负。
安全通知
此服务器以最低限度的安全功能运行。对于生产使用,请考虑:
- 以非特权用户身份运行
- 添加请求验证
- 实施速率限制
- 使用正确的JSON解析
- 如果需要,添加身份验证
