C++MCP桥演示
该项目演示了如何使用支持Socket和gRPC通信的Python MCP服务器在C++应用程序和AI助手之间创建桥梁。
项目结构
cpp_app/:具有业务逻辑的核心C++应用程序mcp_server/:Python MCP服务器实现proto/:gRPC的协议缓冲区定义
特性
- Python MCP服务器:实现AI辅助集成的模型上下文协议
- C++应用程序:具有命令处理功能的核心业务逻辑
- 双重通信:支持Socket和gRPC协议
快速开始
先决条件
- C++编译器:Visual Studio 2019+(在Windows上测试)
- CMake:3.10或更高
- python:使用UV包管理器时为3.10或更高
构建和设置
# 1. Clone and navigate to the project
git clone
cd cpp-mcp-bridge-demo
# 2. Build C++ application
cmake --preset MSVC_x64-debug
cmake --build --preset MSVC_x64-debug
# 3. Install Python dependencies
uv venv
uv pip install -r requirements.txt
# 4. Generate Python protobuf files for gRPC support
uv run python -m grpc_tools.protoc --python_out=./mcp_server --grpc_python_out=./mcp_server --proto_path=./proto ./proto/mcp_service.proto⚠️ 注: 重新生成后,您必须手动检查并更新顶部的导入样式mcp_server/mcp_service_pb2_grpc.py致: ``python from . import mcp_service_pb2 as mcp__service__pb2``
运行服务器
套接字模式(默认)
# Start C++ backend (socket server, default port 9876)
.\bin\cpp_app.exe socket 9876
# Start MCP server (in another terminal)
uv run mcp-server-demo --mode socket --socket-host localhost --socket-port 9876gRPC模式
# Start C++ backend (gRPC server, default 0.0.0.0:50051)
.\bin\cpp_app.exe grpc localhost:50051
# Start MCP server (in another terminal)
uv run mcp-server-demo --mode grpc --grpc-address localhost:50051📋 可用命令
对象管理
create_object(name, type, properties):创建对象(立方体、球体、摄影机)delete_object(object_id):按ID删除对象list_objects():列出场景中的所有对象get_object_info(object_id):获取详细的对象信息
软件操作
get_software_info():获取软件信息和版本get_software_status():获取当前软件状态execute_software_command(command, params):执行命令(渲染、clear_scene、reset_camera)
项目管理
save_project(filename):将当前项目保存到文件load_project(filename):从文件加载项目
🏗️ 建筑
通信流
AI Assistant ←→ Python MCP Server ←→(Socket or gRPC)←→ C++ Application命令格式
请求:
{
"type": "command_name",
"params": {
"param1": "value1",
"param2": "value2"
}
}响应:
{
"status": "success|error",
"result": {...},
"message": "error message if applicable"
}🔧 发展
添加新命令
- C++端:将方法添加到
commandHandler类 - Python端:在中添加相应的MCP工具功能
server.py
📄 许可证
MIT许可证-您可以根据自己的项目自由使用和修改。
🔗 参考文献
- 模型上下文协议(MCP)
- FastMCP -Python MCP框架
