Fetter MCP について
Fetter MCPは、Pythonパッケージの脆弱性情報を必要とするコーディングエージェント向けのリモートサーバーです。PyPIとOSVを照会し、バージョン、CVE、深刻度スコア、リリース情報をローカル導入なしで確認できます。
主な機能
- 01固定バージョンのCVE確認
- 02最新の既知脆弱性なしリリースの検索
- 03バージョンと脆弱性の照会
- 04CVSSスコアによる結果の絞り込み
- 05ローカル導入不要のHTTP接続
活用シーン
- 01依存関係のバージョン固定前に確認
- 02パッケージ追加時に安全なリリースを検索
- 03バージョン指定範囲の脆弱性を監査
MCP 対応
リモートMCPサーバーは、特定バージョンの確認、最新の既知安全リリースの検索、バージョンと脆弱性情報の照会を行う3つのツールを公開します。MCPクライアントはHTTPエンドポイントに接続します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.fetter.io/mcpclaude mcp add --transport http fetter-io-fetter https://mcp.fetter.io/mcp{"mcpServers":{"fetter-io-fetter":{"type":"http","url":"https://mcp.fetter.io/mcp"}}}Cursor で開く{"servers":{"fetter-io-fetter":{"type":"http","url":"https://mcp.fetter.io/mcp"}}}VS Code で開く{"mcpServers":{"fetter-io-fetter":{"type":"http","url":"https://mcp.fetter.io/mcp"}}}{"mcpServers":{"fetter-io-fetter":{"serverUrl":"https://mcp.fetter.io/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
3| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| name | string | はい | 検索するパッケージ名(例:"requests"、"numpy>=2.0"、"flask==3.0.0")。正確な "==" バージョンを指定した場合、`limit` と `retain_passing` パラメーターは適用されません。 |
| limit | integer | いいえ | 名前が正確なバージョンでない場合に、確認する直近のバージョン数を制限します。 |
| cvss_filter | string | いいえ | CVSS スコアフィルター:すべての脆弱性を表示するには "all"、観測された最高スコアのみを表示するには "max"、しきい値で絞り込むには数値(0.0-10.0)を指定します。 |
| retain_passing | boolean | いいえ | 名前が正確なバージョンでない場合、これを True に設定すると、脆弱性のないものも含め、すべてのパッケージの参照情報を返します(デフォルト:false) |
詳細
Fetter MCP
Fetter は、Model Context Protocol(MCP)のリモートサーバーを https://mcp.fetter.io/mcp で提供し、AI コーディングエージェントが Python パッケージの脆弱性データにリアルタイムでアクセスできるようにします。fetter を基盤とし、PyPI と OSV に問い合わせて、既知の CVE、CVSS スコア、安全なバージョンを提示するため、エージェントはコードを書きながら、依存関係について十分な情報に基づいた判断を行えます。
ツール:
most_recent_not_vulnerable:既知の脆弱性がないパッケージの最新リリースを検索しますis_vulnerable:特定の固定バージョンに既知の CVE があるかどうかを確認しますlookup:任意のパッケージやバージョン指定子について、利用可能なバージョンとその脆弱性を検索します
インストール
Fetter MCP サーバーは HTTP トランスポートを使用するため、ローカルへのインストールは不要です。リモート URL を MCP クライアントに登録するだけです。
Claude Code
claude mcp add --transport http fetter https://mcp.fetter.io/mcp
Codex
codex mcp add fetter --url https://mcp.fetter.io/mcp
その他の MCP クライアント
その他の MCP 対応クライアントには、HTTP トランスポートを使用して、次のリモートサーバー URL を指定してください。
https://mcp.fetter.io/mcp
エージェントでの使用
インストールすると、コーディングセッション中に Fetter MCP ツールを AI エージェントが利用できるようになります。依存関係の追加や監査の際に、エージェントが自動的にツールを呼び出すため、プロンプトで明示的にツールを呼び出す必要はありません。
プロンプトの例
- 「requests の最新の安全なバージョンを requirements.txt に追加してください」
- 「現在の依存関係に既知の脆弱性はありますか?」
- 「CVE がない pillow の最新バージョンは何ですか?」
- 「cryptography のバージョンを固定する前に、42.0.5 に脆弱性があるか確認してください」
エージェントは状況に応じて適切なツールを選択します:
- 新しいパッケージの追加:安全なバージョンを見つけるために
most_recent_not_vulnerableを使用します - 特定の固定バージョンの検証:確定的な回答を得るために
is_vulnerableを使用します - 既存のバージョン指定子の監査:影響を受けるバージョンを確認するために
lookupを使用します
most_recent_not_vulnerable
既知の脆弱性がないパッケージの最新バージョンを検索します。パッケージ名だけを指定すると、サーバーが最近のリリースを検索して安全なバージョンを見つけます。依存関係を最新の問題のないリリースに固定する場合に便利です。
パラメーター
package_name— バージョン指定子を含まないパッケージ名。例:"requests"
リクエストの例
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 2,
"params": {
"name": "most_recent_not_vulnerable",
"arguments": {
"name": "cryptography"
}
}
}
レスポンスの例:
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"content": [],
"structuredContent": {
"package": "cryptography",
"version": "46.0.5",
"vulnerabilities": [],
"vulnerable": false
},
"isError": false
}
}
is_vulnerable
特定のパッケージバージョンに既知の脆弱性があるかどうかを確認します。バージョンを正確に指定する必要があります。脆弱性 ID、概要、CVSS スコア、深刻度、参照 URL を返します。
パラメーター
dep_spec— 正確なバージョン指定子。例:"requests==2.31.0"
リクエストの例
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 2,
"params": {
"name": "is_vulnerable",
"arguments": {
"name": "requests==2.19.1"
}
}
}
レスポンスの例:
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"content": [],
"structuredContent": {
"package": "requests",
"version": "2.19.1",
"vulnerabilities": [
{
"cvss_score": 5.3,
"id": "GHSA-9hjg-9r4m-mvj7",
"severity": "(Medium):",
"summary": "Requests vulnerable to .netrc credentials leak via malicious URLs",
"url": "https://osv.dev/vulnerability/GHSA-9hjg-9r4m-mvj7"
},
{
"cvss_score": 5.6,
"id": "GHSA-9wx4-h78v-vm56",
"severity": "(Medium):",
"summary": "Requests Session object does not verify requests after making first request with verify=False",
"url": "https://osv.dev/vulnerability/GHSA-9wx4-h78v-vm56"
},
{
"cvss_score": 6.1,
"id": "GHSA-j8r2-6x86-q33q",
"severity": "(Medium):",
"summary": "Unintended leak of Proxy-Authorization header in requests",
"url": "https://osv.dev/vulnerability/GHSA-j8r2-6x86-q33q"
},
{
"cvss_score": 7.5,
"id": "GHSA-x84v-xcm2-53pg",
"severity": "(High):",
"summary": "Insufficiently Protected Credentials in Requests",
"url": "https://osv.dev/vulnerability/GHSA-x84v-xcm2-53pg"
},
{
"cvss_score": null,
"id": "PYSEC-2018-28",
"severity": null,
"summary": "",
"url": "https://osv.dev/vulnerability/PYSEC-2018-28"
},
{
"cvss_score": null,
"id": "PYSEC-2023-74",
"severity": null,
"summary": "",
"url": "https://osv.dev/vulnerability/PYSEC-2023-74"
}
],
"vulnerable": true
},
"isError": false
}
}
lookup
パッケージ名と省略可能なバージョン指定子を使ってパッケージを検索し、利用可能なバージョンと既知の脆弱性の有無を確認します。"requests"、"numpy>=2.0"、"flask==3.0.0" などの指定子に対応しています。
パラメーター
dep_specs— パッケージ名またはバージョン指定子cvss_threshold— この CVSS スコア以上の脆弱性に絞り込みます(0~10)max_observed_score— 個々の脆弱性すべてではなく、バージョンごとの最高 CVSS スコアのみを返しますcount— 確認する最近のバージョン数を制限しますretain_passing— 既知の脆弱性がないバージョンを結果に含めます
リクエストの例
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 2,
"params": {
"name": "lookup",
"arguments": {
"name": "requests>=2.32.0",
"retain_passing": true
}
}
}
レスポンスの例:
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"content": [],
"structuredContent": {
"package": "requests",
"versions": [
{
"version": "2.32.0",
"vulnerabilities": [
{
"cvss_score": 5.3,
"id": "GHSA-9hjg-9r4m-mvj7",
"severity": "(Medium):",
"summary": "Requests vulnerable to .netrc credentials leak via malicious URLs",
"url": "https://osv.dev/vulnerability/GHSA-9hjg-9r4m-mvj7"
}
],
"vulnerable": true
},
{
"version": "2.32.1",
"vulnerabilities": [
{
"cvss_score": 5.3,
"id": "GHSA-9hjg-9r4m-mvj7",
"severity": "(Medium):",
"summary": "Requests vulnerable to .netrc credentials leak via malicious URLs",
"url": "https://osv.dev/vulnerability/GHSA-9hjg-9r4m-mvj7"
}
],
"vulnerable": true
},
{
"version": "2.32.2",
"vulnerabilities": [
{
"cvss_score": 5.3,
"id": "GHSA-9hjg-9r4m-mvj7",
"severity": "(Medium):",
"summary": "Requests vulnerable to .netrc credentials leak via malicious URLs",
"url": "https://osv.dev/vulnerability/GHSA-9hjg-9r4m-mvj7"
}
],
"vulnerable": true
},
{
"version": "2.32.3",
"vulnerabilities": [
{
"cvss_score": 5.3,
"id": "GHSA-9hjg-9r4m-mvj7",
"severity": "(Medium):",
"summary": "Requests vulnerable to .netrc credentials leak via malicious URLs",
"url": "https://osv.dev/vulnerability/GHSA-9hjg-9r4m-mvj7"
}
],
"vulnerable": true
},
{
"version": "2.32.4",
"vulnerabilities": [],
"vulnerable": false
},
{
"version": "2.32.5",
"vulnerabilities": [],
"vulnerable": false
}
]
},
"isError": false
}
}
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。