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 = 30robocop 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项目。
