About sourcery
@abyssbugg/sourcery provides an MCP server, CLI, and Agent Skills for Sourcery security-finding workflows, including triage and remediation. Built against a pinned OpenAPI snapshot, it supports finding queries, counts, bulk updates, and minimal-change fix prompts.
Key features
- 01Filter and paginate security findings
- 02Retrieve finding and group details and counts
- 03Bulk-update findings or groups
- 04Build minimal-change fix prompts
- 05Query through a CLI with JSON output
Use cases
- 01Summarize finding status and severity
- 02Filter open findings by repository or status
- 03Create a fix prompt for a finding
- 04Change statuses of findings or groups in bulk
MCP support
The MCP server exposes tools for querying Sourcery security findings and groups, retrieving counts, bulk updates, and building fix prompts. Its API surface is based on a pinned OpenAPI snapshot.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @abyssbugg/sourcerySOURCERY_API_KEYSecretSourcery Team-plan API key with security scanning enabledLocal servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMESourcery Agent Bundle
A hybrid plugin bundle for agent-driven Sourcery security workflows: an MCP server (12 tools over Sourcery's public security API, pinned OpenAPI snapshot), two Agent Skills, and adapters for Claude Code, Cursor, Codex/ChatGPT, VS Code, Devin, Grok (CLI + Bot), Amp, Hermes, OpenClaw, and Rovo Dev CLI. The server ships as the npm package @abyssbugg/sourcery — most hosts just register npx -y @abyssbugg/sourcery@latest. See docs/COMPATIBILITY.md for per-host install steps.
What is confirmed
Sourcery's current docs say the only public API is a Team-plan REST API for security findings. The documented API base is https://api.sourcery.ai/api, and the first documented request is:
curl https://api.sourcery.ai/api/v1/security-issues \
-H "Authorization: Bearer $SOURCERY_API_KEY"
Verified and pinned. The live OpenAPI document (https://api.sourcery.ai/api/openapi.json) is committed as a snapshot at openapi/sourcery-openapi.json:
- Info:
Sourcery API 0.1.0 (OpenAPI 3.1.0) - Fetched: 2026-09-10
- SHA-256:
9fdb45e657a6406c86ea0d0def2963d534e20bec1a9c88f7d62dbc2e6807f877
Every tool and the client allow-list are wired from that snapshot. The verified surface is exactly eight operations:
| Method | Path | Purpose |
|---|---|---|
| GET | /v1/security-issues | List issues (filters + cursor pagination) |
| GET | /v1/security-issues/stats | Counts by status and severity |
| GET | /v1/security-issues/{id} | Fetch one issue |
| PATCH | /v1/security-issues | Bulk update (max 100 ids) |
| GET | /v1/security-issue-groups | List groups (same filters) |
| GET | /v1/security-issue-groups/stats | Counts by status and severity |
| GET | /v1/security-issue-groups/{id} | Fetch one group including its issues |
| PATCH | /v1/security-issue-groups | Bulk update groups (max 100 ids) |
Why the Sourcery API + Git connector split
Sourcery's PR review controls are currently documented as GitHub/GitLab comment or label commands (review, summary, guide, title, resolve, dismiss, create issue) rather than public REST endpoints. Those actions are therefore best implemented through your GitHub/GitLab connector, while Sourcery is used for security findings.
Bundle shape
Repo root = plugin root. The portable core (plugin.json + skills/ + mcp.json) follows the Agent Plugins 1.0.0 standard, which Cursor and OpenAI (Codex, ChatGPT desktop) load natively; the other files are thin per-host adapters.
sourcery-agent-bundle/
plugin.json # Agent Plugins core manifest
mcp.json # portable stdio wiring -> bin/sourcery
skills/
sourcery-triage/SKILL.md # findings triage workflow
sourcery-remediate/SKILL.md # minimal-change fix workflow
bin/
sourcery # launcher: dist/cli.js when built, else npx @abyssbugg/sourcery
agents/
sourcery-triager.md # read-only triage sub-agent (Claude format)
.claude-plugin/plugin.json # Claude Code manifest + userConfig API key
.mcp.json # Claude Code MCP wiring (npx)
.agents/plugins/marketplace.json # Codex/ChatGPT local marketplace entry
scripts/
install-rovodev.sh # Rovo Dev CLI wiring (mcp.json + skills)
install-local-hosts.sh # grok, amp, hermes, openclaw, VS Code, Devin
examples/
mcp.http.json # remote deployment template
hooks/ # optional hooks example (SessionStart echo; not enabled)
docs/
COMPATIBILITY.md # per-host setup matrix
grok-bot-skill.md # paste-in skill for Grok Bot
openapi/
sourcery-openapi.json # pinned spec snapshot (SHA-256 above)
src/ # TypeScript: MCP server + findings CLI (@abyssbugg/sourcery)
constants.ts # pinned facts: operations, enums, spec hash
tests/ # TypeScript tests (constants drift pin, tools, client)
python/ # Python reference implementation (server, client, prompts)
src/sourcery_agent/
tests/
package.json # npm package manifest (@abyssbugg/sourcery)
.env.example
README.md
Tools
sourcery_security_snapshot: counts by status/severity plus the first page of active issues — start here for a triage overview.sourcery_list_findings: list issues withrepository_ids,issue_types,statuses,search,limit,cursor.sourcery_get_finding: fetch one issue (full record incl. source snippet and dependency graph).sourcery_get_security_counts: aggregate counts by status and severity.sourcery_bulk_update_findings: bulk status/severity changes (≤100 ids;SOLVEDis scanner-owned and rejected).sourcery_list_groups,sourcery_get_group,sourcery_get_group_counts,sourcery_bulk_update_groups: the same capabilities for issue groups.sourcery_build_fix_prompt: builds the Sourcery-style minimal-change agent prompt from a finding; the DEPENDENCY path usesfixed_versions+manifest_file_pathand renders the dependency chain.sourcery_capabilities: describes the verified surface, spec pin, and enum values.sourcery_api_request: compatibility bridge restricted to the eight verified operations.
CLI
npx -y @abyssbugg/sourcery@latest snapshot # counts + first page of active findings
npx -y @abyssbugg/sourcery@latest list --status ACTIVE --limit 50 # filterable list
npx -y @abyssbugg/sourcery@latest get 1234 # one finding in full
npx -y @abyssbugg/sourcery@latest fix-prompt 1234 # minimal-change agent prompt
Inside an enabled plugin host, bin/sourcery runs the same CLI (it prefers a locally built dist/cli.js and otherwise falls back to npx). Add --json to any query command for scripting.
Setup
Requirements: Node 20+. Most hosts register the MCP server directly:
export SOURCERY_API_KEY='...'
npx -y @abyssbugg/sourcery@latest # stdio MCP server (no args)
npx -y @abyssbugg/sourcery@latest http # Streamable HTTP (127.0.0.1:8765/mcp)
Or install it as a plugin bundle — one step per host (details in docs/COMPATIBILITY.md):
| Host | Quick start |
|---|---|
| Claude Code | claude --plugin-dir . — prompts for the API key on enable |
| Cursor | symlink the repo into ~/.cursor/plugins/local/, reload |
| Codex CLI / ChatGPT desktop | codex plugin marketplace add ./ |
| ChatGPT web | run npx -y @abyssbugg/sourcery@latest http behind HTTPS, add via developer mode |
| VS Code / Grok / Amp / Hermes / OpenClaw | scripts/install-local-hosts.sh (idempotent; registers plugin, MCP, and skills) |
| Devin | skill links via the installer; devin plugins install --local . for the full plugin |
| Grok Bot | paste-in skill from docs/grok-bot-skill.md |
| Rovo Dev CLI | scripts/install-rovodev.sh |
For development and tests, see the Python reference implementation (its suite doubles as the bundle-packaging checker) and run npm test for the TypeScript suite. The server is built on the official MCP TypeScript SDK (@modelcontextprotocol/sdk).
Regenerating the pinned snapshot
When Sourcery publishes a spec change:
curl -sS --fail -o openapi/sourcery-openapi.json https://api.sourcery.ai/api/openapi.json
shasum -a 256 openapi/sourcery-openapi.json # update SPEC_SHA256 in src/constants.ts (+ python/src/sourcery_agent/constants.py, README/docs)
npm test # tests/constants.spec.ts fails on drift
Sourcery's PR review commands (review, summary, guide, title, resolve, dismiss, create issue) remain GitHub/GitLab comment or label commands — implement those through your Git provider connector, not the Sourcery REST API.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.