这是一个使用 libclang 分析 C++ 代码库的 MCP(模型上下文协议)服务器。
与其让 Claude 在你的 C++ 代码库中使用 grep 来理解结构,这个服务器提供了对代码的语义理解。Claude 可以立即找到类、函数及其关系,而不会迷失在数千个文件中。它理解 C++ 语法、继承层次结构和调用图——使 Claude 能够像集成开发环境一样导航你的代码库。
上下文高效的 C++ 代码分析:
git clone <repository-url>
cd CPlusPlus-MCP-Server
运行适用于您平台的设置脚本(这会创建虚拟环境,安装依赖项,并尽可能获取 libclang):
server_setup.bat
./server_setup.sh
测试安装(推荐):
# 首先激活虚拟环境
mcp_env\Scripts\activate
# 运行安装测试
python scripts\test_installation.py
这将验证所有组件是否正确安装并运行正常。测试脚本位于 scripts/test_installation.py。
要将此 MCP 服务器与 Claude Code 结合使用,需要将其添加到您的 Claude 配置文件中。
找到并打开您的 Claude 配置文件。常见位置包括:
C:\Users\<YourUsername>\.claude.json
C:\Users\<YourUsername>\AppData\Roaming\Claude\.claude.json
%APPDATA%\Claude\.claude.json
具体位置可能因您的 Claude 安装而异。
将 C++ MCP 服务器添加到 mcpServers 部分:
{
"mcpServers": {
"cpp-analyzer": {
"command": "python",
"args": [
"-m",
"mcp_server.cpp_m_服务器"
],
"cwd": "YOUR_INSTALLATION_PATH_HERE",
"env": {
"PYTHONPATH": "YOUR_INSTALLATION_PATH_HERE"
}
}
}
}
重要: 将 YOUR_INSTALLATION_PATH_HERE 替换为您克隆此仓库的实际路径。
重启 Claude Desktop 以使更改生效。
要在 OpenAI Codex CLI 中使用此 MCP 服务器:
确保已创建虚拟环境(参见上述设置)。
在使用 Codex 打开的项目中创建一个 .mcp.json 文件。CLI 读取此文件以发现 MCP 服务器。
添加一个指向虚拟环境中 Python 模块的条目。将 YOUR_REPO_PATH 替换为此仓库的绝对路径。
{
"mcpServers": {
"cpp-analyzer": {
"type": "stdio",
"command": "YOUR_REPO_PATH/mcp_env/bin/python",
"args": [
"-m",
"mcp_server.cpp_mcp_server"
],
"env": {
"PYTHONPATH": "YOUR_REPO_PATH"
}
}
}
}
在 Windows 上将 command 更改为 YOUR_REPO_PATH\\mcp_env\\Scripts\\python.exe。
重新启动 Codex CLI(或运行 codex reload),以便它识别新的服务器定义。
在 Codex 内部,使用 MCP 调色板或提示指令(例如,“使用 cpp-analyzer 工具将项目目录设置为...”)来开始索引您的 C++ 项目。
如果将 .mcp.json 文件放在此仓库内,还可以添加一个 "cwd": "YOUR_REPO_PATH" 条目,以便 Codex 从正确的目录启动服务器。
配置完成后,您可以在与 Claude 的对话中使用 C++ 分析器:
首先,请 Claude 使用 MCP 工具设置项目目录:
"使用 cpp-analyzer 工具将项目目录设置为 C:\path\to\your\cpp\project"
注意: 对于非常大的项目(数千个文件),初始索引可能需要很长时间(几分钟)。服务器会缓存结果以加快后续查询速度。
然后您可以提问:
服务器行为可以通过 cpp-analyzer-config.json 进行配置:
{
"exclude_directories": [".git", ".svn", "node_modules", "build", "Build"],
"exclude_patterns": ["*.generated.h", "*.generated.cpp", "*_test.cpp"],
"dependency_directories": ["vcpkg_installed", "third_party", "external"],
"include_dependencies": true,
"max_file_size_mb": 10
}
“未找到 libclang” 错误
server_setup.bat(Windows)或 ./server_setup.sh(Linux/macOS)以让项目自动下载 libclangclang+llvm-*-x86_64-pc-windows-msvc.tar.xzclang+llvm-*-x86_64-apple-darwin.tar.xzclang+llvm-*-x86_64-linux-gnu-ubuntu-*.tar.xzbin\libclang.dll 复制到 lib\windows\libclang.dlllib\libclang.dylib 复制到 lib\macos\libclang.dyliblib\libclang.so.* 复制到 lib\linux\libclang.so服务器无法启动
python --versionpip install -r requirements.txtmcp_env\Scripts\activate
python -m mcp_server.test_installation
Claude 无法识别服务器
.claude.json 中的路径是绝对路径Claude 使用 grep/glob 而不是 C++ 分析器
CLAUDE.md 文件中添加指示,告诉 Claude 在进行 C++ 符号搜索时优先使用 cpp-analyzer