Sheriff

io.github.ryansmith4由 GitHub 账号 ryansmith4 发布v1.0.2更新于 Oct 24, 2026

MCP server for fixing static analysis issues from SARIF reports with AI agents

已验证STDIO仅桌面开发者工具安全与监控

概览

AI 生成的概览

Sheriff 让 AI 助手把 SARIF 报告中的静态分析问题当作可分批、可续做的修复队列来处理。

可以做什么
Sheriff 只暴露一个工具,包含七个动作:load、next、done、progress、summary、reopen 和 export。它读取 Qodana、Semgrep、ESLint、CodeQL、SpotBugs、Bandit、Checkov、Trivy 或 SonarQube 等工具生成的 SARIF 报告,按文件对问题分组,并一次把一个文件的问题连同代码片段交给助手。进度会被保存,因此能跨上下文压缩、重启和切换助手继续使用,还可用范围过滤只处理特定规则、严重级别或文件模式。
适用场景
当助手需要修复庞大的静态分析报告、而原始问题列表会挤爆上下文窗口时使用。它适合跨多个文件反复修复并标记完成的流程,以及进度需要在会话之间保留的场景。
运行要求
通过 stdio 在本地运行。需要 Java 21 或更高版本以运行一体化 JAR,或使用 Docker 运行已发布的容器镜像。必须存在进程可访问的 SARIF 报告文件。未声明任何账号、API 密钥或环境变量。
安装前请注意
该工具读取 SARIF 报告文件并记录修复状态;源代码仍由助手自行修改,请审查这些改动。发布产物使用 Sigstore 签名,可在使用前验证。不要求任何凭据或付款。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Sheriff,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Sheriff-MCP

[CI] [OpenSSF Scorecard] [OpenSSF Best Practices] [License] [Java 21+] [GitHub release]

Sheriff is an MCP server that helps AI agents efficiently fix static analysis issues from SARIF reports.

Documentation | Installation | Tool Reference


Why Sheriff?

AI agents struggle with large static analysis reports:

  • Context overload - 100+ issues overwhelm context windows
  • Lost progress - Work is lost on context compaction or session restart
  • Inefficient navigation - No batching means jumping between files repeatedly

Sheriff solves this by acting as a work queue manager:

  • Intelligent batching - Issues grouped by file for efficient fixing
  • Persistent progress - State survives compaction, restarts, and agent switches
  • Scope filtering - Focus on specific rules, severities, or file patterns
  • Compact responses - Minimal context usage with abbreviated field names

Supported Static Analysis Tools

Sheriff works with any tool that produces SARIF output:

ToolLanguageSARIF Command
QodanaJava/Kotlin/JS/Pythonqodana scan
SemgrepMulti-languagesemgrep --sarif -o results.sarif
ESLintJavaScript/TypeScripteslint --format @microsoft/sarif
CodeQLMulti-languageBuilt-in SARIF output
SpotBugsJavaspotbugs -sarif
BanditPythonbandit -f sarif
CheckovIaCcheckov -o sarif
TrivyContainer/IaCtrivy --format sarif
SonarQubeMulti-languageBuilt-in SARIF export

Quick Start

1. Install

JAR (All Platforms) — Requires Java 21+

Download sheriff-mcp-1.0.2-all.jar from Releases.

Docker
bash
docker pull ghcr.io/ryansmith4/sheriff-mcp:latest
MCP Registry

Clients that support the MCP Registry can install directly by name: io.github.ryansmith4/sheriff-mcp

See the Installation Guide for full details.

2. Configure Your MCP Client

Add Sheriff to your MCP client (Claude Code, Cursor, ChatGPT Desktop, etc.):

json
{  "mcpServers": {    "sheriff": {      "command": "java",      "args": ["-jar", "/path/to/sheriff-mcp-1.0.2-all.jar", "start"]    }  }}

Or with Docker:

json
{  "mcpServers": {    "sheriff": {      "command": "docker",      "args": ["run", "-i", "--rm", "-v", ".:/data", "ghcr.io/ryansmith4/sheriff-mcp:latest"]    }  }}

See the Agent Setup Guide for client-specific instructions and recommended agent instructions.

3. Use It

1. Run static analysis     →  qodana scan2. Load into Sheriff       →  sheriff load target="results.sarif"3. Get next file's issues  →  sheriff next4. Fix all issues in file  →  [edit the code]5. Mark as done            →  sheriff done fps=[...] status="fixed"6. Repeat 3-5              →  until remaining = 0

Sheriff exposes a single sheriff tool with 7 actions: load, next, done, progress, summary, reopen, and export. See the Tool Reference for full documentation.


Example Session

User: "Fix all ConstantValue issues in my codebase"
Agent: sheriff load target="build/qodana/qodana.sarif.json"       → 136 total issues, 22 ConstantValue, 15 unused...
Agent: sheriff next scope={rule: "ConstantValue"}       → 3 issues in Service.java with code snippets
Agent: [reads Service.java, fixes all 3 issues]
Agent: sheriff done fps=["88d32cab35478753", "ab1c2d3e12345678", "f9e8d7c6a1b2c3d4"] status="fixed"       → 3 marked fixed, 19 remaining
       ... continues until remaining = 0

Security

All release artifacts are signed with Sigstore for supply chain security.

Verify JAR:

bash
VERSION=1.0.2cosign verify-blob \  --signature sheriff-mcp-${VERSION}-all.jar.sig \  --certificate sheriff-mcp-${VERSION}-all.jar.pem \  --certificate-identity-regexp "https://github.com/ryansmith4/sheriff-mcp" \  --certificate-oidc-issuer "https://token.actions.githubusercontent.com" \  sheriff-mcp-${VERSION}-all.jar

Verify Docker image:

bash
cosign verify ghcr.io/ryansmith4/sheriff-mcp:latest \  --certificate-oidc-issuer=https://token.actions.githubusercontent.com \  --certificate-identity-regexp="github.com/ryansmith4/sheriff-mcp"

See SECURITY.md for our security policy.


Contributing

Contributions welcome! See CONTRIBUTING.md for guidelines.

License

Apache License 2.0 - see LICENSE

来源:README.md,提交 d57af51

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v1.0.2最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分