ClaudeにConviso MCPをつないで脆弱性とチケットを扱う手順
Conviso MCPサーバーをClaudeに接続し、CONVISO_API_KEYで認証して脆弱性・プロジェクト・チケットを扱う手順。npm・mcpb・Dockerの導入と、書き込み系ツールの歯止めの掛け方まで。
Conviso MCPサーバーを入れると、ClaudeからConviso Platformの脆弱性・プロジェクト・アセット・チケットを会話で引けます。認証はConvisoのAPIキー(CONVISO_API_KEY)1つで、導入はnpm・Claude Desktopのワンクリックバンドル・Dockerから選べます。
読み取りだけでなく、脆弱性の作成やステータス変更といった書き込みもできます。読み取り専用のコネクタが多いなかで、ここは大きな違いです。導入手順のあとで、書き込みに歯止めを掛ける方法まで扱います。
Conviso MCPサーバーとは何か
Conviso MCPサーバーは、Conviso PlatformをMCPクライアントから使えるようにするサーバーです。Claudeのコネクタ一覧では「Anthropic verified」の表示があり、提供元はConvisoで、追加は2026年7月と記載されています。
接続すると、AIがソフトウェア資産・脆弱性・セキュリティプロジェクト・リスク指標の文脈を持てるようになります。対象領域は次のとおりです。
- 企業(company)
- プロジェクト
- 脆弱性(issue)
- アセット
- チケット
- 要件(requirements)
- アプリケーション
- スキャン
- サプライチェーン
- AIペンテスト
- 脅威モデリング
ツールは全部で42個です。コネクタ一覧の表示には先頭の24個までしか出ないため、全体はREADMEの一覧とあわせて見ることになります。
導入前に用意するもの
用意するのは3つだけです。
- Node.js 20.10以降
- Conviso PlatformのAPIキー(プロフィール設定から取得)
- MCP対応のクライアント(Claude Desktopなど)
APIキーの権限がそのままサーバーの権限になります。サーバーは、渡したAPIキーに割り当てられた権限で動きます。読み取りだけ任せたい場合は、キーの側で権限を絞る発想が要ります。
導入方法は3通り
導入経路ごとの違いを先に並べます。
| 経路 | 向く場面 | 認証の渡し方 |
|---|---|---|
npm(npx -y @convisoappsec/mcp) | 向く場面設定JSONを書ける環境。READMEが推奨 | 認証の渡し方設定JSONの env |
Claude Desktopのバンドル(.mcpb) | 向く場面JSONを書かずに済ませたい | 認証の渡し方開いたときに入力欄へ貼る |
| Docker | 向く場面Nodeを手元に入れたくない | 認証の渡し方-e CONVISO_API_KEY=... |
npmで入れる
推奨されている経路です。クローンは要らず、クライアントの設定に次のJSONを足します。
{
"mcpServers": {
"conviso": {
"command": "npx",
"args": ["-y", "@convisoappsec/mcp"],
"env": { "CONVISO_API_KEY": "your_api_key_here" }
}
}
}Claude Desktopの設定ファイルは、macOSなら ~/Library/Application Support/Claude/claude_desktop_config.json、Windowsなら %APPDATA%\Claude\claude_desktop_config.json です。Linuxは ~/.config/Claude/claude_desktop_config.json にあります。同じJSONはCursorの .cursor/mcp.json など他のクライアントでも使えます。
nvmでNodeを管理している環境などで npx がクライアントのPATHに無いときは、command にNodeの絶対パスを書きます。npm install -g @convisoappsec/mcp のあと、node_modules/@convisoappsec/mcp/src/conviso_mcp/server.js を絶対パスで指す形にします。
Claude Codeで登録する
READMEが例に挙げるクライアントはClaude DesktopとCursorです。このサーバーは標準入出力(stdio)で動くMCPサーバーなので、Claude Codeの claude mcp add で登録する形に読み替えられます。コマンドの書式はClaude Codeの公式ドキュメントにある、環境変数付きstdioサーバーの例に沿っています。
claude mcp add --transport stdio \
--env CONVISO_API_KEY=your_api_key_here \
conviso -- npx -y @convisoappsec/mcp-- より後ろがサーバーの起動コマンドで、その手前がClaude Code自身のオプションです。サーバー名を conviso にしたのは、あとで権限ルールに mcp__conviso__... と書くためです。
APIキーをコマンド履歴に残したくない場合は、環境変数をシェル側で持たせておく運用も考えられます。いずれの場合も、プロジェクトの .mcp.json にキーを直書きしたままコミットしない点だけは外せません。
Claude Desktopのワンクリックバンドル
GitHubのReleasesから conviso-mcp-<version>.mcpb を落とし、Claude Desktopで開きます。開くとAPIキーの入力を求められるので、そこへ貼ります。設定JSONを触らない分だけ、手戻りが少ない経路です。
Dockerで動かす
ソースからビルドして、コンテナで動かす経路もあります。
git clone https://github.com/convisoappsec/conviso-mcp.git
docker build -t conviso-mcp-node-image -f conviso-mcp/node/Dockerfile conviso-mcp/node/クライアント側の設定は、command を docker にして、run -i --rm --init -e CONVISO_API_KEY=... conviso-mcp-node-image を引数に並べます。標準入出力でやり取りするため、-i は外せません。
つながったかを確かめる
クライアントを再起動し、MCPの接続状態を見ます。Claudeではプラグのアイコンです。確認の基準は、conviso-mcpがactive/greenになっていることです。Claude Codeなら claude mcp get conviso か、セッション内の /mcp で状態を確かめられます。
読み取りに使うツール
ツールを用途で束ねると次のとおりです。
| 用途 | 主なツール |
|---|---|
| 企業の特定 | 主なツールget_companies、get_company_info |
| 脆弱性 | 主なツールget_issues、get_issue、get_top_vulnerabilities |
| プロジェクト・アセット | 主なツールget_projects、get_project、get_assets、get_asset |
| チケット | 主なツールget_tickets、get_ticket |
| 指標 | 主なツールget_mttr_over_time、get_overall_risk_score_history |
| 要件 | 主なツールget_requirements、get_project_requirements など |
| スキャン・SBOM | 主なツールget_scan_histories、get_asset_scans_count、get_sbom_components |
| ペンテスト・脅威モデル | 主なツールget_pentest_artifacts、get_threat_model_artifacts など |
get_issues は、プロジェクト・アセット・深刻度・ステータス・日付などで絞れます。get_issue は技術的な詳細を返し、コード断片や生のリクエスト・レスポンスも含みます。脆弱なコード断片は「AIでの分析のために明示的に求めたとき」に返ります。
create_issue_url と create_project_url は、Conviso Platform上の該当ページへの直リンクを作るツールです。Claudeに調べさせた結果を、そのままチケットやレビューに貼れます。
READMEの表には載っておらず、コネクタ一覧にだけ出ているツールもあります。get_project_types、get_project_statuses、get_today_date です。両方の一覧は完全には一致しないので、実際に使えるツールは接続後に確かめるのが確実です。
依頼の例
最初は読み取りだけで試します。次のような頼み方が成立します。
Conviso上の自社(company)を確認して、深刻度が高い未対応の脆弱性を
プロジェクト別に一覧にしてください。各行にConvisoへの直リンクを付けて。get_companies で会社IDを引き、get_issues の絞り込みで一覧を作る流れが想定されます。ここで返ってくる件数や内容は、キーが見える範囲そのままです。
書き込みはどこまでできるか
書き込みは顧客向けの機能に限られます。それ以外はプラットフォームにあっても、意図的に公開されていません。
| 領域 | できる書き込み |
|---|---|
| 脆弱性 | できる書き込み作成・更新・削除・ステータス変更 |
| アセット | できる書き込み作成・更新、DASTスキャンの実行 |
| チケット | できる書き込み作成 |
| プロジェクト | できる書き込み作成・更新・ステータス変更・削除 |
| 要件 | できる書き込み作成・更新 |
| AIペンテスト | できる書き込みアーティファクトの作成、スケジュール、実行、再テスト |
| アプリケーション | できる書き込み作成・更新 |
| 脅威モデリング | できる書き込みアーティファクトとバージョンの作成・更新 |
サプライチェーンとスキャンは読み取り専用です。SBOMの依存関係を一覧にはできますが、そこから書き換える操作は用意されていません。
探す、調べる、実行するの3段
書き込みは execute_mutation 1本に集約されています。手順は3段です。
list_mutationsで、やりたい操作を検索するdescribe_mutationで、入力項目と取りうる値を確かめるexecute_mutationで、company_id、操作名、変数を渡して実行する
READMEの例では、changeIssueStatus に status: "FALSE_POSITIVE" と理由を渡して、脆弱性のステータスを変えます。IDしか分からないときは、get_company_id_from_object で、脆弱性・アセット・プロジェクトなどのIDから所属企業を引きます。すべての書き込みに company_id が要るためです。
これとは別に、よく使う書き込みの近道も用意されています。脆弱性・プロジェクト・アセット・チケットの作成、DASTの実行、AIペンテストのトリガーです。近道のツール名はREADMEには出ないので、接続後にツール一覧で確認します。
破壊的な操作の扱い
execute_mutation には destructiveHint: true が付いています。削除・一括・取り消し系の操作は破壊的として印が付き、MCPクライアントは確認を求めます。
company_id による企業ごとの書き込みポリシー確認は、LLMが意図せず書き込むのを防ぐクライアント側の協調的な安全策で、認可の境界ではありません。通常のAPI認可はConviso Platform側で効き続けます。つまり歯止めはあくまで補助で、キーの権限設計が本体です。
Claude Code側で歯止めを掛ける
Claude Codeでは、権限ルールをMCPのツール単位で書けます。公式の書式は mcp__<server>__<tool> で、サーバー全体は mcp__<server> か mcp__<server>__* です。
読み取りは通し、書き込みは毎回確認する構成は、たとえば次のようになります。ツール名はREADMEの一覧に沿った形です。
{
"permissions": {
"allow": [
"mcp__conviso__get_issues",
"mcp__conviso__get_issue",
"mcp__conviso__get_projects",
"mcp__conviso__get_tickets"
],
"ask": [
"mcp__conviso__execute_mutation"
]
}
}近道の書き込みツールがある場合は、接続後に /mcp でツール名を確認し、同じく ask へ足します。allowにワイルドカードを書けるのは mcp__conviso__ のようにサーバー名を固定した形だけです。mcp__* のような広い許可は、警告つきで無視されます。
扱うデータの注意
このコネクタは、脆弱性という機微なデータを扱います。要点は3つです。
- 動作範囲はAPIキーの権限で決まる
get_issueはコード断片を返すことがある- エラーログは標準エラー出力へ送られ、MCPの通信を邪魔しない
プライバシーポリシーでは、通信先はConviso PlatformのAPIだけで、データを収集・保存・第三者共有しないと書かれています。ただし、ツールの結果はClaudeの会話に入ります。脆弱なコード断片が含まれる会話を、共有できる場所で開いていないかは、運用側で気をつける点です。
コネクタ一覧のページにも、信頼できる開発元のコネクタだけを使うよう注意書きがあります。Anthropicは開発元が提供するツールを管理せず、動作や変更を保証できないという趣旨です。
つまずきやすい点
- 接続が緑にならない: Node.jsが20.10未満、または
npxがクライアントのPATHに無い可能性があります。絶対パス指定に切り替えます - 書き込みが通らない:
company_idが必要です。IDが分からなければget_company_id_from_objectで引きます - ツール名が記事と違う: READMEとコネクタ一覧で、載っているツールに差があります。接続後の一覧を正とします
試す順番
- APIキーを取得し、npmの設定で接続する
get_companiesとget_issuesで、読み取りだけ確かめる- 権限ルールで
execute_mutationをaskに入れる list_mutationsとdescribe_mutationで、書き込みの入力項目を読む- 検証用のプロジェクトに、チケットを1件作らせる
脆弱性管理のツールをClaude Codeに組み込む別の例は、Snyk StudioをClaude Codeに入れる手順にあります。削除系のツールに歯止めを掛ける考え方は、HTTP接続のStytch MCPを扱ったStytch MCPの接続手順と共通です。MCPサーバーを入れるときの安全面はMCPセキュリティガイドでも扱っています。
まとめ
Conviso MCPサーバーは、読み取りに強く、書き込みも用意された脆弱性管理向けのコネクタです。接続はAPIキー1つで済み、npmが標準の入口です。
効き目を決めるのは、キーの権限と、execute_mutation を確認つきにする設定の2点です。読み取りで慣らしてから、書き込みを少しずつ開ける進め方が、事故の少ない順序になります。