Polyglot CPP:C++MCP服务器
 ](https://www.python.org/downloads/)  
一个功能强大、高性能的MCP(模型驱动的联合编程协议)服务器,旨在动态编译、运行、调试和分析C++代码。作为不断发展的MCP生态系统的重要组成部分,该工具非常适合竞争性编程平台、人工智能驱动的开发工具、教育平台和快速C++原型。
🌟 为什么是这个项目?
模型上下文协议(MCP)正在彻底改变人工智能模型与外部工具的交互方式。虽然生态系统正在迅速扩展,但存在一个关键的差距:一个用于C++语言的专用、功能齐全的MCP服务器,这是性能关键计算的基石之一。
polyglot-cpp 是为了填补这一空白而建造的。它不仅仅是另一个在线编译器;它是一个现成的、API驱动的桥,将C++的强大功能(包括调试和分析)连接到任何MCP-兼容的人工智能助手或工作流程。它的创建是因为GitHub上的公共MCP生态系统中缺少具有此特定功能集的工具。
✨ 主要特点
- 🚀 在飞行编译:使用编译C++代码
clang++启用了基本标志。 - 🏃♂️ 超时控制执行:以10秒的执行超时运行编译后的代码,以防止无限循环和进程失控。
- 🐞 集成内存调试:自动启用AddressSanitizer(
-fsanitize=address)捕获常见的内存错误,如分段错误和缓冲区溢出,并提供详细的报告。 - ⏱️ 性能分析:使用生成简洁的绩效报告
gprof以识别热点和函数调用时间。 - 💾 持久性伪影:编译后的程序将存储24小时,允许在不重新编译的情况下重复执行。
- 🔌 简单API:使用三个简单的工具,通过MCP协议展示一个干净直观的API。
🛠️ 先决条件
在开始之前,请确保您的系统上安装了以下内容:
- Python 3.9+
clang++编译器gprof(通常是binutils的一部分)
这些工具必须在您的系统中可用 PATH.
⚙️ 安装
- 克隆存储库:
git clone https://github.com/CassiopeiaCode/Polyglot-CPP.git
cd Polyglot-CPP- 安装依赖项:
此项目使用 uv 用于包管理。
pip install uv
uv pip install -r requirements.txt
# If you don't have a requirements.txt, you can install from pyproject.toml
# uv pip install .*(注意:您可能需要创建一个 requirements.txt 从 pyproject.toml 或直接安装依赖项)。*
🚀 运行服务器
要启动MCP服务器,请运行 main.py:
python main.py服务器将在上启动并可访问 0.0.0.0:53482 使用SSE传输。
🌐 MCP生态系统
此服务器由以下组件构建 FastMCP,用于 模型上下文协议(MCP).MCP是一个开放标准,旨在成为“AI的USB-C端口”,允许语言模型与外部工具和数据源无缝连接。
通过符合MCP, polyglot-cpp 任何兼容MCP的客户端或AI助手都可以立即发现和使用它,使其成为这个不断发展的生态系统中有价值的即插即用的补充。
📚 API/工具
服务器通过MCP协议提供三个主要工具。
1. create_program
编译C++代码并返回 file_id 对于已编译的二进制文件。
- 描述:接受C++代码作为字符串,使用分析和地址清理标志对其进行编译,并存储二进制文件。
- 参数:
- content (string,必填):要编译的C++源代码。
- 退货:
- success (布尔值): true 如果编译成功, false 否则。 - file_id (string):编译程序的唯一ID。 - error (字符串,可选):如果编译失败,则显示编译错误消息。
2. run_program
使用其 file_id.
- 描述:运行已编译的程序。您可以为差异化提供标准输入和预期输出。
- 参数:
- file_id (string,必填):要运行的程序的ID。 - custom_input (string,可选):传递给程序的标准输入。 - expected_output (string,可选):要比较的预期标准输出。
- 退货:
- success (布尔值): true 如果执行成功。 - stdout (string):程序的标准输出。 - stderr (string):程序的标准错误。 - diff (string,可选):实际输出和预期输出之间的统一差异。 - run_time (float):执行时间(秒)。 - profiling_report (string):一份简明的报告 gprof.
3. create_and_run_program
一个方便的工具,可以在一个步骤中编译和运行代码。
- 描述联合
create_program和run_program. - 参数:与
create_program和run_program结合。 - 退货:一个包含创建和执行结果的组合JSON对象。
🤝 贡献
欢迎投稿!如果您对新功能、错误修复或改进有想法,请打开问题或提交拉取请求。
- 分叉项目
- 创建功能分支(
git checkout -b feature/AmazingFeature) - 提交您的更改(
git commit -m 'Add some AmazingFeature') - 推到分支机构(
git push origin feature/AmazingFeature) - 打开拉取请求
📄 许可证
该项目在MIT许可证下分发。看 LICENSE 文件以获取更多信息。
