sourcery について
@abyssbugg/sourcery は、Sourcery のセキュリティ検出事項を扱う MCP サーバー、CLI、エージェントスキルを提供し、調査と修正を支援します。固定された OpenAPI スナップショットに基づき、検出事項の検索、集計、一括更新、最小変更の修正プロンプト作成に対応します。
主な機能
- 01セキュリティ検出事項の絞り込みとページング
- 02検出事項・グループの詳細と件数取得
- 03検出事項やグループの一括更新
- 04最小変更の修正プロンプトを作成
- 05JSON 出力対応の CLI クエリ
活用シーン
- 01検出事項の状態と重大度を集計
- 02リポジトリや状態で未解決項目を絞り込み
- 03検出事項の修正プロンプトを作成
- 04検出事項やグループの状態を一括変更
MCP 対応
MCP サーバーは、Sourcery のセキュリティ検出事項やグループの検索、件数取得、一括更新、修正プロンプト作成のツールを公開します。固定された OpenAPI スナップショットに基づく API を扱います。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Sourcery Agent Bundle
エージェント主導の Sourcery セキュリティワークフロー向けハイブリッドプラグインバンドルです。MCP サーバー(Sourcery の公開セキュリティ API を使用する 12 個のツール、固定された OpenAPI スナップショット)、2 つの Agent Skills、Claude Code、Cursor、Codex/ChatGPT、VS Code、Devin、Grok(CLI + Bot)、Amp、Hermes、OpenClaw、Rovo Dev CLI 向けのアダプターが含まれています。サーバーは npm パッケージ @abyssbugg/sourcery として提供されます。ほとんどのホストでは npx -y @abyssbugg/sourcery@latest を登録するだけで使えます。ホストごとのインストール手順については、docs/COMPATIBILITY.md をご覧ください。
確認済みの内容
Sourcery の現在のドキュメントによると、唯一の公開 API は、セキュリティ検出結果向けの Team プラン用 REST API です。ドキュメントに記載された API ベース URL は https://api.sourcery.ai/api で、最初に記載されたリクエストは次のとおりです。
curl https://api.sourcery.ai/api/v1/security-issues \
-H "Authorization: Bearer $SOURCERY_API_KEY"
検証済みで固定されています。 ライブの OpenAPI ドキュメント(https://api.sourcery.ai/api/openapi.json)は、スナップショットとして openapi/sourcery-openapi.json にコミットされています。
- Info:
Sourcery API 0.1.0 (OpenAPI 3.1.0) - 取得日:2026-09-10
- SHA-256:
9fdb45e657a6406c86ea0d0def2963d534e20bec1a9c88f7d62dbc2e6807f877
すべてのツールとクライアントの許可リストは、このスナップショットを基に構成されています。検証済みの範囲は、次の 8 つの操作のみです。
| メソッド | パス | 用途 |
|---|---|---|
| GET | /v1/security-issues | 問題の一覧表示(フィルター + カーソルページネーション) |
| GET | /v1/security-issues/stats | ステータスと重大度別の件数 |
| GET | /v1/security-issues/{id} | 1 件の問題を取得 |
| PATCH | /v1/security-issues | 一括更新(最大 100 個の ID) |
| GET | /v1/security-issue-groups | グループの一覧表示(同じフィルター) |
| GET | /v1/security-issue-groups/stats | ステータスと重大度別の件数 |
| GET | /v1/security-issue-groups/{id} | 問題を含む 1 件のグループを取得 |
| PATCH | /v1/security-issue-groups | グループの一括更新(最大 100 個の ID) |
Sourcery API と Git コネクターを分ける理由
Sourcery の PR レビュー機能は、現在、公開 REST エンドポイントではなく、GitHub/GitLab のコメントまたはラベルコマンド(review、summary、guide、title、resolve、dismiss、create issue)としてドキュメント化されています。そのため、これらの操作には GitHub/GitLab コネクターを使用し、Sourcery はセキュリティ検出結果に使用するのが最適です。
バンドルの構成
リポジトリのルートがプラグインのルートです。移植可能なコア(plugin.json + skills/ + mcp.json)は Agent Plugins 1.0.0 標準に準拠しており、Cursor と OpenAI(Codex、ChatGPT デスクトップ)でネイティブに読み込まれます。その他のファイルは、ホストごとの薄いアダプターです。
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
ツール
sourcery_security_snapshot:ステータス/重大度別の件数と、アクティブな問題の最初のページを表示します。トリアージの概要を把握するには、ここから始めてください。sourcery_list_findings:repository_ids、issue_types、statuses、search、limit、cursorを指定して問題を一覧表示します。sourcery_get_finding:1 件の問題を取得します(ソーススニペットと依存関係グラフを含む完全なレコード)。sourcery_get_security_counts:ステータスと重大度別の件数を集計します。sourcery_bulk_update_findings:ステータス/重大度を一括変更します(ID は 100 個以下。SOLVEDはスキャナーが管理する値のため拒否されます)。sourcery_list_groups、sourcery_get_group、sourcery_get_group_counts、sourcery_bulk_update_groups:問題グループに対して同じ機能を提供します。sourcery_build_fix_prompt:検出結果から Sourcery 形式の最小変更エージェントプロンプトを作成します。DEPENDENCY パスではfixed_versions+manifest_file_pathを使用し、依存関係チェーンを表示します。sourcery_capabilities:検証済みの範囲、仕様の固定情報、列挙値を説明します。sourcery_api_request:検証済みの 8 つの操作に制限された互換性ブリッジです。
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
有効化されたプラグインホスト内では、bin/sourcery が同じ CLI を実行します(ローカルでビルドされた dist/cli.js を優先し、存在しない場合は npx にフォールバックします)。スクリプトで使用する場合は、クエリコマンドに --json を追加してください。
セットアップ
要件:Node 20 以降。ほとんどのホストでは、MCP サーバーを直接登録します。
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)
または、プラグインバンドルとしてインストールします。ホストごとに 1 つの手順で完了します(詳細は docs/COMPATIBILITY.md を参照してください)。
| ホスト | クイックスタート |
|---|---|
| Claude Code | claude --plugin-dir . — 有効化時に API キーの入力を求められます |
| Cursor | リポジトリを ~/.cursor/plugins/local/ にシンボリックリンクし、再読み込みします |
| Codex CLI / ChatGPT desktop | codex plugin marketplace add ./ |
| ChatGPT web | HTTPS の背後で npx -y @abyssbugg/sourcery@latest http を実行し、開発者モードから追加します |
| VS Code / Grok / Amp / Hermes / OpenClaw | scripts/install-local-hosts.sh(冪等性あり。プラグイン、MCP、スキルを登録します) |
| Devin | インストーラーでスキルをリンクします。プラグイン全体をインストールするには devin plugins install --local . を実行します |
| Grok Bot | docs/grok-bot-skill.md のスキルを貼り付けます |
| Rovo Dev CLI | scripts/install-rovodev.sh |
開発とテストについては、Python のリファレンス実装(そのテストスイートはバンドルのパッケージングチェッカーも兼ねています)を参照し、TypeScript のテストスイートには npm test を実行してください。このサーバーは公式の MCP TypeScript SDK(@modelcontextprotocol/sdk)を基盤としています。
固定スナップショットの再生成
Sourcery が仕様変更を公開した場合:
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 の PR レビューコマンド(review、summary、guide、title、resolve、dismiss、create issue)は、引き続き GitHub/GitLab のコメントまたはラベルに関するコマンドです。Sourcery REST API ではなく、Git プロバイダーコネクターを通じて実装してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。