mcpField
E
endoflife.ai

endoflife.ai

認証済みおすすめリモート
endoflife.ai開発ツール01 週間前に更新

endoflife.ai について

endoflife.aiは、ソフトウェアのサポート期間とEOLリスクを確認する、開発・運用チーム向けの読み取り専用MCPサーバーです。バージョン状態、リスクスコア、スタックとSBOMの検査、安全情報フィードを扱い、結果に出典URLを含めます。

主な機能

  1. 01バージョンのサポート状態を確認
  2. 02EOLリスクをスコア化
  3. 03スタックとSBOMをスキャン
  4. 04製品のライフサイクル履歴を表示
  5. 05KEVとデバイス情報フィードを確認
  6. 06アップグレード経路と今後のEOLを確認

活用シーン

  1. 01スタック全体の依存関係のサポート状況を監査
  2. 02SBOM内のライフサイクルリスクを評価
  3. 03製品のEOL前にアップグレードを計画
  4. 04製品のKEV該当状況を確認

MCP 対応

Streamable HTTPで、読み取り専用のライフサイクルツール、リソース、プロンプトをMCPクライアントに提供します。ツールはendoflife.aiのAPIと公開フィードを参照し、結果に出典URLを含めます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://mcp.endoflife.ai
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

すべてのエンドポイント
Streamable HTTPhttps://mcp.endoflife.ai認証が必要

ツール

5
パラメーター型必須説明
productstringはい製品のスラッグまたは名前。例:"postgresql"、"nodejs"、"ubuntu"。
versionstringはいバージョン/サイクル。例:"14"、"18"、"20.04"。

詳細

endoflife.ai — MCP サーバー

Node.js EOL status EOL data: endoflife.ai

endoflife.ai のライフサイクルに関する情報を、Model Context Protocol(MCP、Streamable HTTP トランスポート)経由で AI エージェントに提供します。依存関係のない Cloudflare Worker が、公開されている api.endoflife.ai/v1 エンドポイントとサイトが公開するフィードをラップします。データは重複して保持せず、すべての回答にソース URL が含まれます。

現在のバージョン:1.4.0(src/index.js の SERVER_INFO.version、server.json、 package.json、Dockerfile の ARG VERSION、およびサイトの endoflife/.well-known/mcp/server-card.json。すべて同じバージョンにしてください。レジストリと Glama は server.json を参照します)。

1.4.0:check_sbom は API の POST /v1/sbom へのシンプルなプロキシです(すべてのインターフェースで同じリゾルバーを使用し、バージョンはリリース系列を保持します。例:python 3.12、ubuntu 20.04)。 プランの上限を超えた場合は、スコアリング済みの対象に加えて limit_note と not_scored_count を返します。scan_stack はプランで許可される先頭の N 件をスコアリングし、残りを not_checked に一覧表示します。1.4.0 より前の check_sbom はすべてのバージョンをメジャーバージョンに切り詰めており、キーなしの SBOM で一致したコンポーネントが 5 件を超えると何も返しませんでした。

ツール(すべて読み取り専用)

ツール機能データソース
check_eol製品 X のバージョン Y はサポート終了していますか?GET /v1/status/:slug/:version
get_risk_scoreEOL リスクスコア(0~100)+要因の内訳GET /v1/score/:slug[/:version]
scan_stackスタック全体を一度にスコアリングPOST /v1/batch
list_products追跡対象の 700 以上の製品を検索 → スラッグを特定GET /v1/products
get_product_lifecycle1 つの製品の全バージョン履歴と日付GET /v1/product/:slug
get_kev_exposure製品に紐付けられた CISA KEV エントリーすべて(日付、期限、必須アクションの原文)+Exploit 済みおよびパッチ適用不可のエントリーendoflife.ai/kev-products.json, exploited-and-unpatchable.json
get_upcoming_eol今後 N 日以内にサポート終了となるすべての対象(カタログ全体または製品リスト)endoflife.ai/scanner-db.json
get_edge_device_statusBOD 26-02 のステータスを含む EOS Edge Device フィード。プラットフォーム/ステータス/モデルで絞り込みendoflife.ai/eos-edge-devices.json
get_upgrade_pathサポート対象の移行先、サイトの推奨、ベンダーが明示する後継製品GET /v1/product/:slug, checker-db.json, edge フィード
check_sbomCycloneDX / SPDX JSON → package URL(完全一致、purl-map.json)でコンポーネントを特定。purl がない場合は名前で特定 → プラン上限までスコアリングし、残りは注記に件数を記載。一致しない項目は理由とともに一覧表示し、推測は行いませんPOST /v1/sbom

各ツールは annotations(readOnlyHint、idempotentHint)と 制限の緩い outputSchema を提供します。結果は JSON テキストと structuredContent の両方で返されます。検索で見つからない場合は、稼働中の製品リストを対象にしたスラッグ候補(先頭一致/部分一致/編集距離 ≤ 2)を「もしかして」として提示します。

リソース(resources/list / resources/read):llms.txt、EOS Edge Device フィード、Exploited & Unpatchable、製品別 KEV、edge の変更履歴。

プロンプト(prompts/list / prompts/get):audit_stack、eol_calendar、 edge_device_review。

エンドポイント: POST /(JSON-RPC)、GET /(情報ページ)、GET /health(稼働状態の JSON)、 GET /.well-known/mcp/server-card.json(検出カード)。

使用状況のテレメトリー

USAGE Analytics Engine バインディングを設定すると(wrangler.toml、データセット endoflife_mcp_usage を参照)、各メソッド/ツールの呼び出しで 1 つのデータポイントが記録されます。内容は、ツール名、 クライアントのユーザーエージェント、成功/エラー、キーあり/匿名、レイテンシー(ミリ秒)です。リクエスト本文は記録されません。たとえば、Cloudflare Analytics Engine SQL API 経由でクエリできます。

SELECT blob1 AS tool, count() AS calls, sum(_sample_interval) AS weighted
FROM endoflife_mcp_usage WHERE timestamp > NOW() - INTERVAL '7' DAY
GROUP BY tool ORDER BY calls DESC

このバインディングは任意です。設定しなくてもコードは問題なく動作します。

デプロイ

本番環境へのデプロイは GitHub Actions から実行します。ローカルの wrangler は使用しません。

gh workflow run mcp-server-deploy.yml

(.github/workflows/mcp-server-deploy.yml。wrangler のバージョンは固定されています。リポジトリのシークレット CLOUDFLARE_API_TOKEN/CLOUDFLARE_ACCOUNT_ID が必要です。)開発では引き続きローカルの wrangler dev を使用できます。API サービスバインディングと USAGE データセットは、デフォルト環境と production 環境の両方で宣言されています。

カスタムドメイン(mcp.endoflife.ai)

wrangler.toml の route で、mcp.endoflife.ai が Cloudflare 経由で名前解決される必要があります。AAAA レコード、名前 mcp、IPv6 100::、プロキシ有効の設定です。設定済みです。

デプロイ前のテスト

Node のハーネスで、ライブ API とフィードに対するすべてのメソッドをテストします(env.API = { fetch } を設定すれば、モジュールは Node でも変更なしで実行できます)。

node scratch/mcp_test.mjs   # see the session scratchpad; 22 RPC calls, expects 0 failures

オフラインのユニットテスト(fetch をモックし、ネットワークは使用しません):mcp-server/ で npm test を実行します(node --test test/)。

コンテナーとして実行(Red Hat UBI)

server.mjs は、mcp.endoflife.ai のリクエストを処理するものと同じハンドラーを、通常の Node.js プロセス内で実行します。Dockerfile は、クラスターへのデプロイ用に registry.access.redhat.com/ubi9/nodejs-22-minimal をベースとしてパッケージ化します(OpenShift AI の MCP カタログが想定する形式です)。ビルド手順や依存関係はありません。コンテナーは HTTPS 経由で https://api.endoflife.ai に接続し、権限のない UBI ユーザー(uid 1001)として実行されます。

docker build -t endoflife-mcp mcp-server/
docker run --rm -p 8080:8080 endoflife-mcp
curl -s localhost:8080/health

エンドポイントは Worker 自身のものです:POST /(Streamable HTTP JSON-RPC)、GET /health(レディネス)、GET /.well-known/mcp/server-card.json。ENDOFLIFE_API_KEY を設定すると(docker run -e ENDOFLIFE_API_KEY=...)、サーバーは独自のキーがないすべての呼び出しに X-API-Key としてこのキーを送信します。セルフホストのサーバーでは、2026 年 11 月 16 日 00:00 UTC からキーが必要になります。この時刻以降、キーなしでは API がデータリクエストに応答しなくなります。キーなしで利用できるのは、mcp.endoflife.ai のホスト済みエンドポイントのみです。無料キーは https://endoflife.ai/api#free-key から即時にメールで送信されます(1 日 150 リクエスト、有効期限なし。より多くの利用には有料キーが必要です)。.github/workflows/rhel-validation.yml により、Node 20 および 22 を使用して RHEL 9 と 10 で検証済みです(証跡は docs/company/redhat-validation-evidence.md にあります)。

MCP クライアントから接続する

Claude Desktop/Cursor/VS Code(mcpServers):

{
  "mcpServers": {
    "endoflife": { "command": "npx", "args": ["mcp-remote", "https://mcp.endoflife.ai"] }
  }
}

リモート MCP にネイティブ対応しているクライアントでは、URL を直接使用できます。

{ "mcpServers": { "endoflife": { "url": "https://mcp.endoflife.ai" } } }

クライアントを使わずにテストする

# tools/list
curl -s https://mcp.endoflife.ai -X POST -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | jq

# KEV exposure for a product
curl -s https://mcp.endoflife.ai -X POST -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_kev_exposure","arguments":{"product":"ivanti-connect-secure"}}}' | jq

# health + discovery card
curl -s https://mcp.endoflife.ai/health | jq
curl -s https://mcp.endoflife.ai/.well-known/mcp/server-card.json | jq

認証とプラン

読み取りツールは、ホスト済みエンドポイント mcp.endoflife.ai を通じて、個人利用および評価目的であればキーなしで利用できます(各エージェントは 1 日 200 リクエスト、1 回あたり 5 件まで)。API を直接呼び出す場合、またはこのサーバーを自分で実行する場合は、2026 年 11 月 16 日 00:00 UTC まではキーなしで利用できます(匿名プラン:1 日 50 リクエスト、SBOM または一括呼び出しで 1 回あたり 3 コンポーネントまで)。それ以降は、すべてのデータリクエストにキーが必要です(セルフホストのサーバーでは ENDOFLIFE_API_KEY を設定してください。無料キーは https://endoflife.ai/api#free-key から取得できます)。企業のツール内で動作するエージェント、インベントリを確認するエージェント、または定期的に呼び出しを行うエージェントは本番利用に該当するため、有料キーが必要です。Starter(月額 $89、1 日 10,000 リクエスト、1 回あたり 25 件まで)または Pro(月額 $199、1 日あたりの上限なし、1 回あたり 50 件まで)は、https://endoflife.ai/api?utm_source=mcp#get-key のチェックアウト時に発行されます。X-API-Key ヘッダーとして転送してください。Worker はそのまま api.endoflife.ai に渡します。

備考

  • 同一ゾーンの落とし穴: api.endoflife.ai はこのゾーン上の Worker です。通常の fetch() を呼び出すとオリジンに送られて失敗します。本番環境では API サービスバインディングが必須です。
  • 静的フィードは、cf.cacheTtl = 600 を指定してサイトのオリジンから取得し、分離環境内に 10 分間メモ化されます。
  • クライアントごとのレート制限: 上流 API の制限に依存します。MCP トラフィックが増えた場合は、上流への呼び出しの前に CF-Connecting-IP をキーとする KV レートリミッターを追加してください。
  • 検出カードは、メインサイトの https://endoflife.ai/.well-known/mcp/server-card.json からも提供されます。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。