nuanced-mcp 使用说明
项目简介
nuanced-mcp 是一个 MCP 服务器,旨在弥合大型语言模型 (LLM) 与代码库分析之间的差距。它通过提供结构化的工具和资源,使 LLM 能够深入了解 Python 代码的内部结构,例如函数调用关系和模块依赖性。该服务器利用 'nuanced' 库构建代码调用图,并将其以 LLM 可以理解和利用的方式暴露出来。这使得 LLM 能够执行更上下文感知的代码辅助、依赖分析和变更影响评估等任务。
主要功能点
- 代码调用图初始化与管理: 允许 LLM 初始化和切换代码仓库的调用图,支持多仓库管理。
- 函数调用关系探索: 提供工具查询特定函数的调用图,帮助 LLM 理解函数的功能和上下文。
- 依赖关系分析: 支持查找代码库中模块或文件的依赖关系,辅助 LLM 理解代码模块间的耦合度。
- 变更影响分析: 评估修改特定函数可能带来的影响,帮助 LLM 预判代码变更风险。
- 资源访问: 通过资源接口 (Resources) 提供代码图谱的摘要信息和函数详情,方便 LLM 获取结构化数据。
- Prompt 模板: 内置多种 Prompt 模板,支持用户自定义 Prompt 以引导 LLM 进行代码分析和理解。
安装步骤
- 克隆仓库:
git clone https://github.com/MattMorgis/nuanced-mcp.git cd nuanced-mcp - 安装依赖 (推荐使用 uv):
或者使用 pip:uv pip install .
注意: 确保你的 Python 环境中已安装 'uv' 或 'pip'。pip install .
服务器配置
MCP 客户端 (例如 Claude Desktop) 需要配置以下 JSON 信息来连接 nuanced-mcp 服务器。请根据你的实际 nuanced-mcp 仓库路径修改 'directory' 参数。
{ "mcpServers": { "nuanced": { "command": "uv", "args": [ "--directory", "/path/to/nuanced-mcp", # 替换为 nuanced-mcp 仓库的绝对路径 "run", "nuanced_mcp_server.py" ] } } }
参数说明:
- 'server name': 'nuanced' (服务器名称,客户端配置中用于标识服务器)
- 'command': 'uv' (启动服务器的命令,这里使用 'uv' 运行 Python 脚本)
- 'args': 启动参数,包括:
- '--directory': '/path/to/nuanced-mcp' (指向 nuanced-mcp 仓库目录的绝对路径,请务必替换为实际路径)
- 'run': 'uv run' 命令的子命令,用于运行 Python 脚本
- 'nuanced_mcp_server.py': MCP 服务器的 Python 脚本文件名
基本使用方法
-
启动服务器: 在 nuanced-mcp 仓库目录下,使用 uv 或 python 运行 'nuanced_mcp_server.py'。
uv run nuanced_mcp_server.py或
python nuanced_mcp_server.py -
配置 MCP 客户端: 将上述提供的 JSON 配置添加到 MCP 客户端的配置文件中 (例如 Claude Desktop 的 'claude_desktop_config.json')。
-
在 MCP 客户端中使用: 客户端连接到 nuanced-mcp 服务器后,即可使用预定义的工具 (Tools)、资源 (Resources) 和 Prompt 模板 (Prompts) 与服务器交互,进行代码分析。
常用工具示例:
- 'initialize_graph': 初始化代码图谱,参数为代码仓库路径 ('repo_path')。
- 'get_function_call_graph': 获取函数调用图,参数为文件路径 ('file_path') 和函数名 ('function_name')。
- 'analyze_dependencies': 分析依赖关系,参数为文件路径 ('file_path') 或模块名 ('module_name')。
- 'analyze_change_impact': 分析变更影响,参数为文件路径 ('file_path') 和函数名 ('function_name')。
常用资源示例:
- 'graph://summary': 获取当前代码图谱的摘要信息。
- 'graph://function/{file_path}/{function_name}': 获取特定函数的详细信息。
常用 Prompt 模板示例:
- 'analyze_function': 用于分析函数的 Prompt 模板,参数为文件路径 ('file_path') 和函数名 ('function_name')。
- 'impact_analysis': 用于变更影响分析的 Prompt 模板,参数为文件路径 ('file_path') 和函数名 ('function_name')。
注意: 首次使用前,需要使用 'initialize_graph' 工具初始化代码仓库的图谱。
信息
分类
开发者工具