使用说明
Robocop MCP服务器
Robocop MCP服务器帮助用户解决静态代码分析问题 在LLM的帮助下显示错误和警告。它有两个工具可以帮助 解析Robocop规则:
获取robocop报告
获取robocop报告工具允许通话 robocop check 命令和
向LLM返回一个规则违规(一个规则最多20个)。
规则违规摘要还包含默认建议
如何修复违规行为。用户可以接受
建议提出建议或告诉法学硕士一种不同的方法来修正规则
违反。
规则违规的最大数量,建议对规则进行修复
并且可以在中配置更多内容 pyproject.toml
文件。看 配置 第章了解更多细节。
运行robocop格式
您还可以运行robocop格式化工具。因为robocop很复杂
命令行语法,robocop mcp仅支持指定文件或文件夹
作为论据 format 命令。其余配置
应该放在
robocop配置文件.
这 --reruns 选项设置为10。
安装
使用pip安装:
pip install robocop-mcp
正在运行robocop mcp服务器
在VS Code工作区中运行MCP服务器:
- 创建一个
.vscode/mcp.json您工作区中的文件。 - 将以下配置添加到mcp.json文件中:
{
"servers": {
"robocop-mcp":{
"type": "stdio",
"command": "${workspaceFolder}/.venv/bin/python",
"args": [
"-m",
"robocop_mcp",
],
}
}
}
- 将您的CopPilot聊天更改为代理模式,然后选择 适合您使用的型号。
- 记得单击
mcp.json文件
关于在VS Code中配置MCP服务器的一般细节, 查看VS代码 文档
使用robocop mcp
https://github.com/user-attachments/assets/f446f31f-a91e-4cc1-bae0-6b691469dfba
配置
robocop mcp服务器可以通过以下方式配置
pyproject.toml
文件。robocop mcp服务器使用 [tool.robocop_mcp] toml文件中的部分。
要使用robocop mcp服务器,请参阅toml文件,即ROBOCPMCP_CONFIG_file环境
必须设置变量。示例在 mcp.json 文件:
{
"servers": {
"robocop-mcp":{
"type": "stdio",
"command": "python",
"args": [
"-m",
"robocop_mcp",
],
"env": {"ROBOCOPMCP_CONFIG_FILE": "${workspaceFolder}/pyproject.toml"},
}
}
}
Robocop规则的优先级
有些规则比其他规则更重要,或者你可能想使用
某些类型的LLM来解决某些类型的规则违规。在这种情况下
你可以使用 rule_priority (列表)定义首先由
robocop-mcp并给出LLM模型。这 rule_priority 是一个列表
robocop规则id。您可以使用命令列出所有规则:
> robocop list rules
如果有一条规则看起来像这样:
Rule - ARG01 [W]: unused-argument: Keyword argument '{name}' is not used (enabled)
那么规则id就是 ARG01.
例如,如果用户想优先考虑 ARG01 和 ARG02 先固定,然后
rule_priority 看起来像这样。
[tool.robocop_mcp]
rule_priority = [
"ARG01",
"ARG02"
]
还可以按规则名称定义规则优先级。例如,如果需要
定义 ARG01 和 ARG02 按名称规则,然后 rule_priority 看起来像:
[tool.robocop_mcp]
rule_priority = [
"unused-argument",
"argument-overwritten-before-usage"
]
如果 rule_priority 未定义,robocop mcp将选择先取规则
返回由 robocop 并使用它来查找类似的违规行为。如果没有
规则匹配 rule_priority 列表中,使用Robocop返回的第一条规则。
退回的最大金额违规
为了避免在LLM上下文中发现所有违反规则的情况
默认情况下,robocop mcp的测试数据将返回二十(20)次违规
来自robocop。这可以通过在
violation_count (int)设置。
要使robocop mcp返回30条违反规则的行为:
[tool.robocop_mcp]
violation_count = 30
robocop mcp应该返回多少违反规则的行为取决于 正在使用LLM模型,建议的修复有多冗长,修复时间有多长 LLM模型上下文已被使用。很难给出好的指导 这个主题,因为LLM模型变化很快,而且有一些 有许多不同的型号可供选择。
自定义修复建议
每个规则违规都包含robocop默认规则文档
这个问题是可以解决的。在某些情况下,这可能会导致LLM出错
解决方案,或者您想应用自定义方式来修复特定规则。
自定义解决方案可以在文本文件中定义(建议使用markdown,
因为LLM很容易理解。)并定义自定义规则
文件在 pyproject.toml.定义自定义修复的每个规则
被定义为toml文件中的键,值必须指向文本文件。
如果需要定义自定义修复程序,请举例说明 ARG01,创建
ARG01.md 文件,示例a my_rules 文件夹。然后 pyproject.toml
应具备:
[tool.robocop_mcp]
ARG01 = "my_rules/ARG01.md"
还可以按规则名称定义自定义修复建议。
提供自定义修复建议的示例 ARG01 按名字,然后
toml文件看起来像:
[tool.robocop_mcp]
unused-argument = "my_rules/unused-argument.md"
忽略规则
建议忽略规则的方法是忽略
robocop工具部分 pyproject.toml那样的话
Robocop会忽略规则,忽略的规则对
robocop mcp也提供服务。
如果只需要忽略robocop mcp的规则,则添加
ignore (列表)设置为 pyproject.toml 文件。例如,如果存在
需要忽略 DOC02, DOC03 和 COM04 那么,规则 pyproject.toml
应具备:
[tool.robocop_mcp]
ignore = ["DOC02", "DOC03", "COM04"]
也可以按规则名称忽略规则。如果规则相同 如上所述,需要忽略,那么忽略列表如下:
[tool.robocop_mcp]
ignore = [
'missing-doc-test-case',
'missing-doc-suite',
'ignored-data'
]
支持单独的robocop配置文件
虽然robocop mcp只支持 pyproject.toml,robocop本身
确实支持多种不同的配置文件。如果你的robocop
配置不在 pyproject.toml,然后是单独的配置
文件可以在中定义 ROBOCOPMCP_ROBOCOP_CONFIG_FILE 环境
变量。示例 mcp.json:
{
"servers": {
"robocop-mcp":{
"type": "stdio",
"command": "${workspaceFolder}/.venv/bin/python",
"args": [
"-m",
"robocop_mcp",
],
"env": {
"ROBOCOPMCP_CONFIG_FILE": "${workspaceFolder}/pyproject.toml",
"ROBOCOPMCP_ROBOCOP_CONFIG_FILE": "${workspaceFolder}/robocop.toml",
}
}
}
}
Robocop重播
可以配置如何 robocop format --reruns 命令行参数
已设置。这在 pyproject.toml 逐一归档 reruns (int)设置。
默认情况下,值设置为10,但将其设置为2时,会添加以下内容
pyproject.toml 文件:
[tool.robocop]
reruns = 2
为规则提供修复说明
用户可以在存储库中为规则修复提供说明。这
在
贡献.md
文件。如果没有修复,无论是来自robocop mcp还是用户定义的修复,那么
robocop 文档被用作LLM的修复指令。用户始终可以写入
他们在提示中给出了自己的修复解释,但如果这不是一次性的,那么它就是
更容易在文件中定义用户定义的规则修复或为
robocop mcp项目。