这是一个将code2flow命令行工具打包为MCP(模型上下文协议)服务器的项目。它允许AI应用程序通过标准化的MCP协议生成并访问代码调用图。
git clone https://github.com/kursk-ye/code2flow-mcp-server.git
cd code2flow-mcp-server
python -m venv venv
.\venv\Scripts\Activate.ps1 # 在 PowerShell 中
pip install -r requirements.txt
pip install code2flow
python server.py
mcp dev server.py
mcp install server.py
"code2flow": {
"command": "cmd",
"args": [
"/c",
"python",
"path/to/server.py"
]
}
服务器提供了以下MCP工具:
generate_call_graph -生成代码调用图check_code2flow_version -检查code2flow版本analyze_code_complexity -分析代码复杂度服务器提供了以下MCP资源:
help://code2flow -帮助文档languages://supported -支持的语言列表call-graph://图像ID -生成的调用图图像import asyncio
from mcp.client import MCPClient
async def main():
# 连接到服务器
client = MCPClient("http://localhost:8000")
# 创建新会话
session = await client.create_session()
# 调用工具生成调用图
result = await session.call_tool("generate_call_graph", {
"source_paths": ["path/to/your/code"],
"language": "python"
})
# 获取资源ID
print(result)
# 检查code2flow版本
version_info = await session.call_tool("check_code2flow_version")
print(version_info)
# 分析代码复杂度
complexity = await session.call_tool("analyze_code_complexity", {
"source_path": "path/to/your/code",
"language": "python"
})
print(complexity)
if __name__ == "__main__":
asyncio.run(main())
在生成调用图时,支持以下参数:
source_paths:要分析的源代码文件或目录路径列表output_path:(可选)输出文件路径language:(可选)源代码语言(Python、JS、Ruby、PHP)exclude:(可选)要排除的文件模式列表include:(可选)要包含的文件模式列表server.py -主服务器代码mcp_client_example.py -客户端示例代码test_server.py -测试代码requirements.txt -依赖文件MIT