Threat Intelligence MCP Server

World Intelligence MCP Server
30以上のドメインにわたるリアルタイムのグローバルインテリジェンス、120のMCPツール、ライブ運用センターのダッシュボード、CLI、そして蓄積されたインテリジェンス全体に対するエンタープライズ級のセマンティック検索を実現するQdrantベクターストアを備えています。すべてのデータは無料の公開APIから取得され、有料サブスクリプションは不要です。
世界認識を必要とするAIエージェント向けに構築されています。市場状況、地政学リスク、軍事態勢、サプライチェーン障害、サイバー脅威など、すべてModel Context Protocol経由でクエリ可能です。ベクターストアにより、*「台湾近辺の軍事活動」や「医療機関を標的としたサイバー脅威」*といった自然言語クエリを、すべての履歴データに対して実行できます。
提供内容
ドメイン | ツール数 | データソース |
金融市場 | 7 | Yahoo Finance、CoinGecko、Alternative.me、Mempool |
外国為替・通貨 | 3 | ECB/Frankfurter(主要8ペア、時系列、クロスレート) |
債券・利回り | 2 | FRED、Yahoo Finance(イールドカーブ、債券ETF、スプレッド分析) |
決算 | 2 | Yahoo Finance(メガキャップ決算カレンダー、サプライズ履歴) |
SEC提出書類 | 3 | SEC EDGAR(全文検索、企業提出書類、8-K重要事象) |
企業エンリッチメント | 1 | Yahoo Finance + GDELT + SEC + GitHub(複合プロファイル) |
マクロ複合指標 | 1 | 加重6シグナル市場判定(Fear&Greed、VIX、セクター、DXY、BTC、利回り) |
経済指標 | 6 | AAA燃料価格、EIAエネルギー、FREDマクロ、World Bank |
中央銀行 | 1 | 15中央銀行の政策金利 |
BTCテクニカル | 1 | SMA 50/200、ゴールデンクロス/デッドクロス、Mayer Multiple |
自然災害 | 2 | USGS地震、NASA FIRMS山火事 |
環境 | 2 | NASA EONET、GDACS災害警報 |
気候 | 1 | Open-Meteo気温・降水量異常 |
紛争・安全保障 | 4 | ACLEDイベント、UCDP、騒乱検知、人道データ |
軍事・防衛 | 6 | adsb.lol、OpenSky、hexdb.io、急増検知、戦域態勢、航空機バッチ |
インフラ | 4 | Cloudflare Radar、海底ケーブル、カスケード分析、クラウドステータス |
海事 | 2 | NGA航行警報、船舶スナップショット |
航空 | 2 | FAA空港遅延、国内便スナップショット |
ニュース・メディア | 3 | 119のRSSフィード(4段階)、GDELT、トレンドキーワード |
インテリジェンス分析 | 8 | シグナル収束、焦点、不安定指数、リスクスコア、エスカレーション |
NLPインテリジェンス | 4 | エンティティ抽出、イベント分類、ニュースクラスタリング、キーワード急増 |
戦略統合 | 4 | 戦略態勢、ワールドブリーフ、艦隊レポート、人口曝露 |
地理空間 | 11 | 軍事基地、港湾、パイプライン、原子力施設、ケーブル、データセンター、宇宙港、鉱物、取引所、貿易ルート、クラウドリージョン |
AI・テクノロジー | 4 | arXiv論文、HuggingFaceモデル、Hacker News、GitHubトレンド |
サイバー脅威 | 1 | URLhaus、Feodotracker、CISA KEV、SANS |
健康 | 1 | WHO DON、ProMED、CIDRAP疾病発生 |
宇宙天気 | 1 | NOAA SWPC(Kp指数、太陽フレア、警報) |
社会・制裁 | 3 | Reddit速度、OFAC SDNリスト、核実験場監視 |
国別インテリジェンス | 3 | 国別ブリーフ、国別株式、金融センター |
予測市場 | 1 | Polymarketイベント契約 |
選挙 | 1 | リスクスコア付き世界選挙カレンダー |
避難民 | 1 | UNHCR難民・国内避難民データ |
海運 | 1 | ドライバルク海運ストレス指数 |
政府 | 1 | USAspending.gov連邦契約 |
交通 | 2 | 道路交通流、リアルタイム事故 |
クロスドメインアラート | 2 | アラートダイジェスト、週間トレンド |
モニタリング | 2 | ウェブカメラ、サーバーヘルス/ステータス |
ベクター検索 | 5 | Qdrantセマンティック検索、類似性、タイムライン、統計 |
クロスドメイン分析 | 3 | 相関、ドメイン要約、トレンド検出 |
レポート | 1 | PDF/HTMLマルチドメインインテリジェンスレポート |
デイリーダイジェスト | 1 | 引用付きMarkdown朝刊ブリーフ:主要イベント、見出し、トレンド、タイムライン |
AOIジオフェンス | 5 | ユーザー定義の関心領域:定義/一覧/削除、引用付きマルチドメインブリーフ、ユーザー自身の領域に対するホットスポットエスカレーションスコアリング |
状況ブリーフ | 1 | MCP上の引用付き状況認識ブリーフ:ローカルOllama経由で合成されるサーバー側の境界付き概要、機械的に引用されるフォールバック付き |
合計: 30以上のインテリジェンスドメインにわたる120ツール
Related MCP server: MCP Threat Intel Server
クイックスタート
インストール
git clone https://github.com/marc-shade/world-intel-mcp.git
cd world-intel-mcp
pip install -e .
# Optional extras
pip install -e ".[dashboard]" # Live ops-center dashboard
pip install -e ".[vector]" # Qdrant vector store + FastEmbed
pip install -e ".[dev]" # pytest, respx, coverageMCPサーバーとして実行
world-intel-mcp # stdio mode for Claude Code, Cursor, etc.Claude Code設定
~/.claude.jsonに追加:
{
"mcpServers": {
"world-intel-mcp": {
"command": "world-intel-mcp"
}
}
}ダッシュボード
intel-dashboard # http://localhost:8501
intel-dashboard --port 9000 # custom portPDF/HTMLレポート
pip install -e ".[pdf]" # requires: brew install pango (macOS)
intel report # full PDF report → ~/.cache/world-intel-mcp/
intel report --format html # HTML (no native deps needed)
intel report -o brief.pdf # custom output path
intel report -s markets,cyber,earthquakes # select sectionsマップ優先の運用センター: レイヤー切替可能なLeafletマップ(地震、軍事、紛争、火災、収束、核、インフラ)、47のライブSSEフィード、HUDバー、ガラスモーフィズムパネル、ソース別サーキットブレーカーヘルス。
CLI
intel markets # stock indices
intel earthquakes --min-mag 5.0
intel status # cache + circuit breaker healthアーキテクチャ
server.py (MCP stdio) ─┐ ┌─ VectorStore (Qdrant)
cli.py (Click CLI) ├─> sources/*.py ─> Fetcher ─> CircuitBreaker ─┤
dashboard.py (SSE) │ analysis/*.py └─ Cache (SQLite)
collector.py (daemon) ─┘Fetcher: 集中型非同期HTTPクライアント(httpx)。リトライ、ソース別レート制限、古いデータへのフォールバック。新規フェッチ時に結果を自動的にベクターストアに保存。
CircuitBreaker: ソース別追跡。3回連続失敗で5分間遮断。各RSSフィードに独自のブレーカー。
Cache: SQLite WALモードTTLキャッシュ。
get()はライブデータを返し、get_stale()はフォールバック用に期限切れデータを返す。VectorStore: Qdrant + FastEmbed(BAAI/bge-small-en-v1.5、384次元)。非ブロッキング保存のための非同期バックグラウンドワーカーキュー。蓄積されたすべてのインテリジェンスに対するセマンティック検索を実現。
Collector: 全46ソースを並列でフェッチし、ベクターストアに投入するスタンドアロンデーモン。一度だけ実行するか、デーモンとして実行(デフォルト: 5分間隔)。
Sources(
sources/*.py): 30以上のモジュール。各モジュールはasync def fetch_*(fetcher, **kwargs) -> dictをエクスポート。Analysis(
analysis/*.py): クロスドメイン統合 — シグナル集約、不安定指数、NLP、企業エンリッチメント、マクロ複合指標。Config(
config/*.py): キュレーション済みデータセット — 22のホットスポット、70以上の基地、40の港湾、24のパイプライン、24の原子力施設、34のケーブル、48のデータセンター、27の宇宙港、82の取引所。
MCPツールリファレンス
金融市場(7)
ツール | 説明 |
| 株価指数のクォート(S&P 500、Dow、Nasdaq、FTSE、Nikkei) |
| CoinGeckoの主要暗号通貨の価格と時価総額 |
| ステーブルコインのペッグ健全性(USDT、USDC、DAI、FDUSD) |
| ビットコイン現物ETFの価格と出来高 |
| 米国株式セクターのパフォーマンス(11のSPDR ETF) |
| 7つのマクロ指標(Fear & Greed、VIX、DXY、金、10Y、BTC) |
| 商品先物(金、銀、原油、天然ガス、穀物) |
外国為替・通貨(3)
ツール | 説明 |
| ECB提供の最新為替レート。基準通貨・対象通貨でフィルタリング可能 |
| トレンド分析付きの過去為替レート(日数を設定可能) |
| 主要8通貨ペア+クロスレート+DXYプロキシ |
債券・利回り (2)
ツール | 説明 |
| 米国債利回り曲線(2Y-30Y)、2s10s/3m10yスプレッド、逆転フラグ |
| 債券ETF:AGG、TLT、HYG、LQD、TIPの価格・変動 |
決算 (2)
ツール | 説明 |
| 大型株20銘柄の今後の決算発表とEPS予想 |
| 過去の決算サプライズ(実績と予想の比較、トレンド) |
SEC提出書類 (3)
ツール | 説明 |
| 全EDGAR提出書類の全文検索 |
| ティッカー別の企業提出書類(10-K、10-Q、8-K)とCIK解決 |
| 最新の8-K重要事象(M&A、役員交代、決算) |
企業エンリッチメント (1)
ツール | 説明 |
| 複合プロファイル:株価+財務+ニュース+SEC+GitHub |
マクロ複合指標 (1)
ツール | 説明 |
| 加重市場スコア(0-100)と判定:RISK_ONからSTRONG_CAUTION |
経済 (6)
ツール | 説明 |
| AAA提供の米国小売ガソリン・ディーゼル・E85価格(日次) |
| EIA提供の米国住宅用天然ガス価格 |
| EIA提供の米国電力小売料金(セクター・州別) |
| EIA提供のブレント/WTI原油と天然ガス |
| FRED経済データ(GDP、CPI、失業率、金利) |
| 世界銀行の国別開発指標 |
中央銀行 (1)
ツール | 説明 |
| 主要中央銀行15行の政策金利 |
BTCテクニカル (1)
ツール | 説明 |
| ビットコインSMA 50/200、ゴールデンクロス/デッドクロス、マイヤーマルチプル |
自然災害 (2)
ツール | 説明 |
| USGS地震(マグニチュード・期間・件数を設定可能) |
| NASA FIRMS衛星火災ホットスポット(世界9地域) |
環境 (2)
ツール | 説明 |
| NASA EONET自然現象 |
| GDACS災害警報と深刻度スコアリング |
紛争・安全保障 (4)
ツール | 説明 |
| ACLED武力紛争イベント |
| ウプサラ紛争データプログラムのイベント |
| ハバーサイン距離による重複排除付き社会不安 |
| HDX人道危機データセット |
軍事・防衛 (6)
ツール | 説明 |
| adsb.lol経由の軍用機(フォールバック:OpenSky) |
| 5つの戦域(EU、インド太平洋、中東、北極、韓国)での活動 |
| ICAO24ヘックスによる航空機検索(hexdb.io) |
| 航空機の一括検索(複数ヘックスコード) |
| 外国航空機の集中異常検知 |
| USNI News海軍艦隊トラッカー |
インフラ (4)
ツール | 説明 |
| Cloudflare Radarインターネット障害 |
| 海底ケーブル回廊の健全性 |
| インフラ連鎖シミュレーション |
| クラウドプラットフォームの稼働状況(AWS、Azure、GCP、Cloudflare、GitHub) |
海事 (2)
ツール | 説明 |
| NGA海事航行警報 |
| 戦略的水路9か所での艦艇活動 |
地理空間データセット (10)
ツール | 説明 |
| 9つの運用主体による70の軍事基地 |
| 6タイプにわたる40の戦略港湾 |
| 24の石油・ガス・水素パイプライン |
| 24の原子力発電・濃縮・研究施設 |
| 34の海底通信ケーブル |
| 世界48か所のAI/HPCデータセンター |
| 世界27の宇宙港 |
| 27の戦略的鉱床 |
| 世界82の証券取引所 |
| 主要貿易ルートとチョークポイント |
ニュース・メディア (3)
ツール | 説明 |
| 世界119のRSSフィードと4段階のソースランキング |
| スパイク検出付きトレンド用語 |
| GDELT 2.0グローバルニュース検索 |
インテリジェンス分析 (8)
ツール | 説明 |
| マルチドメインシグナルの地理的収束 |
| マルチシグナルの焦点検出 |
| 国レベルのシグナル集約 |
| ベースラインからの活動逸脱 |
| 国家不安定指数v2(0-100) |
| ACLEDベースの紛争リスクスコアリング |
| 22のインテルホットスポットのエスカレーションスコア |
| 包括的な国家インテリジェンス資料 |
NLPインテリジェンス (4)
ツール | 説明 |
| 固有表現抽出(国、指導者、組織、CVE、APT) |
| 14の脅威カテゴリへのイベント分類 |
| ジャカード類似度によるトピッククラスタリング |
| ウェルフォードのアルゴリズムによるキーワードスパイク検出 |
戦略統合 (4)
ツール | 説明 |
| 9つの加重ドメインによる複合グローバルリスク |
| 構造化された日次インテリジェンス要約 |
| 即応性スコアリング付き海軍艦隊活動レポート |
| 活動中のイベント周辺のリスク人口(105都市データセット) |
気候 (1)
ツール | 説明 |
| Open-Meteo気温・降水量異常 |
予測市場 (1)
ツール | 説明 |
| Polymarket予測契約 |
選挙 (1)
ツール | 説明 |
| リスクスコアリング付き世界選挙カレンダー |
避難民 (1)
ツール | 説明 |
| UNHCR難民・国内避難民統計 |
航空 (2)
ツール | 説明 |
| FAA空港遅延状況 |
| OpenSkyによる世界の航空交通スナップショット |
サイバー脅威 (1)
ツール | 説明 |
| 集約されたサイバーインテル(URLhaus、CISA KEV、SANS) |
宇宙天気 (1)
ツール | 説明 |
| 太陽活動(Kp指数、X線フラックス、SWPC警報) |
AI・テクノロジー (4)
ツール | 説明 |
| arXivのAI論文、HuggingFaceモデル |
| Hacker Newsのトップ記事 |
| GitHubのトレンドリポジトリ |
| arXiv論文検索 |
ヘルス (1)
ツール | 説明 |
| WHO DON、ProMED、CIDRAPの発生情報 |
ソーシャルと制裁 (3)
ツール | 説明 |
| Redditの地政学ディスカッションの速度 |
| OFAC SDNリスト検索 |
| 核実験場付近の地震監視 |
海運と貿易 (1)
ツール | 説明 |
| ドライバルク海運ストレス指数 |
政府 (1)
ツール | 説明 |
| USAspending.govの連邦契約 |
国別インテリジェンス (3)
ツール | 説明 |
| 国の状況のクイックサマリー |
| 国別の証券取引所と上場銘柄 |
| 世界の金融センターランキング |
拡張地理空間 (1)
ツール | 説明 |
| 世界中のクラウドプロバイダーリージョン |
交通 (2)
ツール | 説明 |
| 道路の交通流データ |
| リアルタイムの交通インシデント |
クロスドメインアラート (2)
ツール | 説明 |
| クロスドメインのアラート集約 |
| 週次トレンド分析 |
モニタリング (2)
ツール | 説明 |
| 公開ウェブカメラの場所とライブプレビュー |
| サーバーヘルス、キャッシュ統計、サーキットブレーカーのステータス |
ベクトル検索 (5)
ツール | 説明 |
| 蓄積されたすべてのインテリジェンスにわたる自然言語検索 |
| 指定されたデータポイントに類似するイベントを検索 |
| ドメイン/カテゴリのインテリジェンスの時系列ビュー |
| ベクトルストアのコレクション統計 |
| オンデマンドの収集サイクルをトリガー |
クロスドメイン分析 (3)
ツール | 説明 |
| 指定されたトピックについて全ドメインにわたる相関シグナルを検索 |
| 保存されたインテリジェンスのカテゴリ別サマリー(件数、ソース、新しさ) |
| 最近の期間とベースライン期間を比較してアクティビティの急増/減少を検出 |
レポート (1)
ツール | 説明 |
| 18ドメインを並列にカバーするPDFまたはHTMLのインテリジェンスレポートを生成 |
AOIジオフェンス (5)
ツール | 説明 |
| 名前付き関心領域を定義:ポイント + 半径(km、1〜2000) |
| ユーザー定義のAOIをすべて一覧表示 |
| 名前でユーザー定義のAOIを削除 |
| AOIの引用付きブリーフ:地震、軍用機、山火事、紛争イベント、航空、近隣インフラ、ニュース言及。すべてAOIの半径にフィルタリング |
| ユーザーAOIに適用されるホットスポットエスカレーションスコアリング(22の組み込みホットスポットと同じエンジン) |
状況ブリーフ (1)
ツール | 説明 |
| 引用付きの状況認識ブリーフ。MCP経由でオンデマンド生成:制限付きサーバーサイド概要(地震、軍用機、ACLED紛争イベント、山火事、サイバー脅威、疾病発生、ニュース、宇宙天気、戦略的姿勢、アラートダイジェスト)。ローカルのOllamaまたはOllamaが到達不能な場合の機械的に引用されたフォールバックで合成 |
自分のエリアを監視する(ジオフェンス/AOI)
静的インフラストラクチャの結果(基地、港湾、原子力、ケーブル、データセンター、宇宙港)は、このリポジトリの厳選された戦略的データセットに基づいています。これらはグローバルで意図的に疎であり、網羅的なローカルレジストリではありません。AOIブリーフが静かであるということは、それらの厳選されたセットから範囲内に何もないということであり、あなたのエリアにインフラがないということではありません。
120のツールのうち28は何らかの地理的パラメータを受け取りますが、AOIファミリー以前は、intel_signal_convergenceだけが実際のポイント+半径を受け入れ、intel_military_flightsはbboxを取り、ホットスポットエスカレーションスコアリングは22のハードコードされたINTEL_HOTSPOTSに制限されていました。intel_aoi_*ツールを使用すると、自分のエリア(都市、国境地域、施設)に名前を付けて、同じ引用付きのマルチドメイン処理を得ることができます。
AOIを一度定義し、必要に応じてブリーフとスコアリングを行います:
intel_aoi_define(name="Pittsburgh", lat=40.4406, lon=-79.9959, radius_km=50)
intel_aoi_brief(name="Pittsburgh")
intel_aoi_escalation(name="Pittsburgh")intel_aoi_briefは、地理対応のすべてのドメインをピッツバーグ周辺の50km半径にフィルタリングします:地震、軍用機(半径から導出されたbbox)、山火事(NASA FIRMSにはポイント+半径クエリがないためリージョンマッピング)、ACLED紛争イベント、近隣の航空交通のサンプル、近隣の静的インフラ(軍事基地、港湾、パイプライン、原子力施設、海底ケーブル、データセンター、宇宙港)と距離(km)、および「ピッツバーグ」のニュース見出し言及。応答内の各項目には、番号付きのsourcesリストへの[n]引用が含まれ、data_gapsはAOIにスコープできなかったドメイン(たとえば、AOIがNASA FIRMSのカバレッジ地域外にある場合の山火事、またはACLED資格情報が設定されていない場合の紛争イベント)を黙って省略するのではなく名前を挙げます。
intel_aoi_escalationは、22の組み込みホットスポットに対してintel_hotspot_escalationを動かすのと同じベースライン/軍事/紛争/社会不安スコアリングエンジンを実行しますが、固定の2度ウィンドウではなく、AOI自身の半径にスコープされます。
AOIは、サーバーがすでに使用している同じSQLiteキャッシュデータベース内の専用テーブルに永続化されます(デフォルトでは~/.cache/world-intel-mcp/cache.db、または$WORLD_INTEL_CACHE_DB)。そのため、スケジュールされたエージェントは、intel_aoi_list / intel_aoi_deleteを使用して再起動をまたいで任意の名前付きエリアを監視し、管理できます。
ベクトルストア
オプションのQdrantベクトルストアは、セマンティック検索のために時間とともにインテリジェンスを蓄積します。Fetcherを通じて取得されたすべてのデータは自動的に埋め込まれ、保存されます。
セットアップ
# Install Qdrant (Docker)
docker run -p 6333:6333 qdrant/qdrant
# Install vector dependencies
pip install -e ".[vector]"
# Run the collector daemon (populates vector store 24/7)
intel-collector --daemon # every 5 minutes
intel-collector --daemon --interval 120 # every 2 minutes
intel-collector --sources markets,cyber # specific domains only
intel-collector # single collection cyclemacOS launchdサービスとして実行
scripts/collector-daemon.shは、コレクターをlaunchdエージェントとして管理し、再起動後も存続します。このチェックアウト自身のパス(スクリプト自身の場所から解決されるため、どのクローンからでも機能します)をcom.agentic.intel-collector.plist.templateに記入し、結果を~/Library/LaunchAgents/にインストールします。
scripts/collector-daemon.sh start # install + load the launchd job
scripts/collector-daemon.sh status # check state and log info
scripts/collector-daemon.sh logs # tail stdout (logs err for stderr)
scripts/collector-daemon.sh stop # unload the launchd job
scripts/collector-daemon.sh restart
scripts/collector-daemon.sh render # print the filled-in plist without installing itセマンティック検索の例
データが蓄積されると、AIエージェントはすべてのドメインにわたってクエリを実行できます:
"台湾海峡付近の軍事活動" — 軍用機、海軍警告、戦域態勢データを検索
"医療を標的としたサイバー脅威" — 医療関連のURLhaus、CISA KEVエントリを検索
"景気後退を示唆する経済指標" — イールドカーブの逆転、マクロシグナル、FREDデータを検索
ベクトルストアは、埋め込みにFastEmbed(ONNXベース、BAAI/bge-small-en-v1.5)を使用します — GPUは不要で、コールドスタートは約3秒です。
環境変数
変数 | 必須 | 説明 |
| いいえ | ACLED紛争イベント |
| いいえ | 衛星山火事データ |
| いいえ | エネルギー価格データ |
| いいえ | インターネット障害データ |
| いいえ | マクロ経済データ(イールドカーブにも使用) |
| いいえ | 軍用機のフォールバック |
| いいえ | 軍用機のフォールバック |
| いいえ | AI生成ブリーフ用のOllamaサーバー(デフォルト: |
| いいえ | AI生成ブリーフ用のOllamaモデル(デフォルト: |
| いいえ | ログレベル(デフォルト:INFO) |
その他はすべて、無料の認証不要の公開APIを使用します。
開発
pip install -e ".[dev]"
pytest # 251 tests (269 total, 18 live-network smoke tests deselected by default)
pytest --cov=world_intel_mcp # with coverage
pytest tests/test_forex.py -v # single module新しいソースの追加
sources/your_source.pyを作成し、async def fetch_your_data(fetcher: Fetcher, **kwargs) -> dictを定義するfetcher.get_json(url, source="your-source", cache_key=..., cache_ttl=300)を使用する — 自動キャッシュ、リトライ、サーキットブレーカー、レート制限が適用されるserver.pyで:TOOLSにTool(...)を追加し、_dispatch()にcaseを追加する(インラインインポートを使用)respxを使用して HTTP をモックするテストを追加する(パターンはtests/test_forex.pyを参照)任意で
dashboard/app.py(SSE)とcli.py(Click)に追加する
ライセンス
MIT
Available Tools
11 toolscheck_bulk_ipsC
Check multiple IP addresses against threat feeds in bulk.
Args: ips: JSON array of IP addresses or comma-separated list
Returns: JSON with reputation results for all IPs
| Name | Required | Description | Default |
|---|---|---|---|
| ips | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions bulk checking against threat feeds but lacks critical behavioral details: it doesn't specify rate limits, authentication needs, data sources, or what happens on errors. For a tool with no annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with the core purpose stated first. The 'Args' and 'Returns' sections add structure without redundancy. However, the 'Returns' section could be more concise, as the output schema exists, making some details unnecessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (bulk IP checking), no annotations, and an output schema present, the description is partially complete. It covers the basic purpose and parameter format but lacks usage guidelines, behavioral context, and error handling details. The output schema reduces the need to explain return values, but overall completeness is adequate with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It adds value by explaining that 'ips' accepts a 'JSON array of IP addresses or comma-separated list', which clarifies the input format beyond the schema's 'type: string'. However, it doesn't detail validation rules, IP format requirements, or size limits, leaving some semantics unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Check multiple IP addresses against threat feeds in bulk.' It specifies the verb ('check'), resource ('IP addresses'), and scope ('bulk'), distinguishing it from single-IP tools like 'check_ip_reputation'. However, it doesn't explicitly differentiate from other bulk tools like 'check_network_against_threats', keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to prefer this over 'check_ip_reputation' for single IPs or how it differs from 'check_network_against_threats' for bulk checks. No exclusions or prerequisites are stated, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_hash_reputationA
Check a file hash (MD5/SHA1/SHA256) against threat intelligence.
Args: file_hash: File hash to check
Returns: JSON with reputation data
| Name | Required | Description | Default |
|---|---|---|---|
| file_hash | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the tool checks against threat intelligence, but does not disclose behavioral traits such as rate limits, authentication needs, data sources, or error handling. This leaves significant gaps for a tool that likely queries external services.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the core purpose, followed by structured sections for args and returns. It avoids unnecessary details, though the 'Args' and 'Returns' headings could be integrated more seamlessly into the flow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (returns JSON with reputation data), the description does not need to explain return values. It covers the basic purpose and parameter semantics adequately, but could improve by adding more behavioral context (e.g., rate limits) to compensate for the lack of annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds meaning by specifying the parameter as a 'file hash' and listing supported hash types (MD5/SHA1/SHA256). However, it does not detail format constraints (e.g., length, case sensitivity) or provide examples, leaving some ambiguity beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('check') and resource ('file hash') against a target ('threat intelligence'). It distinguishes from siblings by specifying hash checking (vs. IPs, networks, feeds, etc.) and mentions supported hash types (MD5/SHA1/SHA256), making it unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for checking file hashes against threats, but does not explicitly state when to use this tool versus alternatives like check_ip_reputation or check_bulk_ips. It provides some context (e.g., hash types) but lacks explicit guidance on exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_ip_reputationC
Check an IP address against multiple threat intelligence sources.
Args: ip: IP address to check
Returns: JSON with reputation data from multiple sources
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'multiple threat intelligence sources' but doesn't specify which sources, latency, rate limits, authentication needs, or error handling. For a tool that likely queries external APIs, this leaves critical operational details unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by structured 'Args' and 'Returns' sections. It's efficient with minimal waste, though the 'Returns' section could be more specific about the JSON structure instead of just stating 'JSON with reputation data'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (single parameter, threat intelligence query), the description covers the basics but lacks depth. The output schema exists, so return values needn't be detailed, but behavioral aspects like source reliability or rate limits are missing, making it adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, but the description explicitly documents the single parameter ('ip: IP address to check'), adding essential meaning beyond the bare schema. However, it doesn't provide format details (e.g., IPv4 vs. IPv6) or validation rules, so it only partially compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Check an IP address against multiple threat intelligence sources.' It specifies the verb ('check') and resource ('IP address'), though it doesn't explicitly differentiate from sibling tools like 'check_bulk_ips' or 'check_hash_reputation' beyond the IP focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'check_bulk_ips' for multiple IPs or 'check_hash_reputation' for non-IP checks. It lacks context on prerequisites, limitations, or exclusions, leaving the agent to infer usage from tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_network_against_threatsC
Check network scan results against threat intelligence.
Args: scan_results: JSON string from network scanner with device IPs
Returns: JSON with any matched threats
| Name | Required | Description | Default |
|---|---|---|---|
| scan_results | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool checks against threat intelligence and returns JSON with matches, but lacks critical details: whether this is a read-only operation, if it requires authentication, rate limits, what happens on errors, or if it modifies any state (e.g., updates a cache). For a security tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by structured 'Args' and 'Returns' sections. Each sentence earns its place by providing essential information without redundancy. Minor improvements could include integrating the sections more fluidly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (security analysis), no annotations, and an output schema exists (implied by 'Returns: JSON'), the description is moderately complete. It covers the basic operation and parameter semantics but lacks behavioral context (e.g., safety, performance) and usage guidelines. The output schema reduces the need to explain return values, but more context is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It adds meaning by specifying that 'scan_results' is a 'JSON string from network scanner with device IPs', which clarifies the parameter's format and content beyond the schema's generic 'string' type. However, it doesn't detail the exact JSON structure or provide examples, leaving some ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Check network scan results against threat intelligence.' It specifies the verb ('check') and resource ('network scan results'), and distinguishes it from siblings like check_ip_reputation by focusing on bulk scan results rather than individual IPs. However, it doesn't explicitly differentiate from check_bulk_ips, which might be a similar sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like check_bulk_ips or check_ip_reputation. It mentions 'scan results' but doesn't clarify prerequisites (e.g., requires prior network scanning) or exclusions (e.g., not for single IPs). This leaves the agent to infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clear_threat_cacheB
Clear the threat intelligence cache to force fresh data fetch.
Returns: JSON confirmation
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It states the action ('clear cache') and outcome ('force fresh data fetch'), but lacks critical behavioral details: it doesn't specify permissions required, whether this is destructive (e.g., deletes cached data), rate limits, or side effects on other tools. The mention of 'JSON confirmation' is vague about response structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and well-structured: two brief sentences that front-load the core action and mention the return type without redundancy. Every sentence adds value, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, output schema exists), the description is moderately complete. It covers the basic purpose and return format, but as a mutation tool with no annotations, it should ideally include more behavioral context (e.g., safety, permissions) to be fully helpful for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description doesn't add param details, which is appropriate, earning a baseline score of 4 for not introducing unnecessary information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Clear') and resource ('threat intelligence cache'), and distinguishes it from siblings by focusing on cache management rather than threat checking or data retrieval. However, it doesn't explicitly differentiate from all siblings (e.g., 'fetch_threat_feed' also involves data fetching).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal guidance: it implies usage when fresh data is needed, but offers no explicit when/when-not rules, prerequisites, or alternatives. It doesn't compare with siblings like 'fetch_threat_feed' or 'get_threat_feeds' that might overlap in data freshness contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_threat_feedB
Fetch and parse a specific threat intelligence feed.
Args: feed_name: Name of the feed (feodo_tracker, urlhaus_recent, etc.)
Returns: JSON with IOCs from the feed
| Name | Required | Description | Default |
|---|---|---|---|
| feed_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool fetches and parses a feed, implying a read operation, but doesn't cover critical aspects like authentication needs, rate limits, error handling, or whether it caches results. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with the core purpose stated first. The 'Args' and 'Returns' sections are structured clearly, though they could be integrated more seamlessly. There's minimal waste, but it could be slightly more polished in flow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (returns JSON with IOCs), the description doesn't need to explain return values in detail. It covers the basic purpose and parameter semantics adequately. However, with no annotations and incomplete behavioral transparency, it could do more to address gaps like error cases or performance considerations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, but the description compensates by explaining the 'feed_name' parameter: 'Name of the feed (feodo_tracker, urlhaus_recent, etc.)'. This adds meaning beyond the bare schema, providing examples and context. However, it doesn't detail all possible feed names or constraints, so it partially addresses the coverage gap but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Fetch and parse a specific threat intelligence feed.' It specifies the verb ('fetch and parse') and resource ('threat intelligence feed'), distinguishing it from siblings like 'check_ip_reputation' or 'get_recent_iocs' that focus on reputation checks or recent IOCs rather than fetching feeds. However, it doesn't explicitly differentiate from 'get_threat_feeds', which might be similar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention siblings like 'get_threat_feeds' (which might list available feeds) or 'get_recent_iocs' (which might fetch recent IOCs without specifying a feed), leaving the agent to infer usage context. There's no explicit when/when-not or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cisa_kevA
Get CISA Known Exploited Vulnerabilities.
Args: days: Get vulnerabilities added in last N days (default: 30) vendor: Filter by vendor name (optional)
Returns: JSON with recent KEVs
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| vendor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool 'gets' data and returns JSON, but fails to describe critical behaviors such as whether this is a read-only operation (implied but not stated), any rate limits, authentication requirements, or what happens with invalid inputs (e.g., negative days). For a tool with no annotation coverage, this leaves significant gaps in understanding its operational traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core purpose, followed by clear sections for arguments and returns. Every sentence earns its place: the first states what the tool does, the next two explain parameters succinctly, and the last specifies the return format. There is zero waste, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no nested objects) and the presence of an output schema (which handles return values), the description is largely complete. It covers the purpose, parameters, and return format adequately. However, it lacks details on behavioral aspects like error handling or data freshness, which would be helpful since no annotations are provided to fill those gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate by explaining parameters, which it does effectively. It clarifies that 'days' retrieves vulnerabilities added in the last N days with a default of 30, and 'vendor' is an optional filter by vendor name. This adds meaningful context beyond the bare schema, covering both parameters' purposes and defaults, though it could benefit from examples or format details (e.g., vendor name casing).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('CISA Known Exploited Vulnerabilities'), making it immediately understandable. It distinguishes itself from sibling tools like 'get_recent_iocs' or 'get_threat_feeds' by focusing specifically on CISA's KEV database, which is a distinct dataset of known exploited vulnerabilities rather than general indicators or feeds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the mention of filtering by days and vendor, suggesting it's for retrieving recent or vendor-specific vulnerabilities. However, it lacks explicit guidance on when to use this tool versus alternatives like 'get_recent_iocs' (which might overlap in recency) or 'check_network_against_threats' (which could involve KEV data), leaving the agent to infer context without clear exclusions or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dashboard_summaryB
Get a summary of all threat intelligence for dashboard display.
Returns: JSON with aggregated threat data for visualization
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns aggregated threat data for visualization, but doesn't cover critical aspects such as whether it's a read-only operation, potential rate limits, authentication requirements, data freshness, or any side effects. For a tool with no annotation coverage, this leaves key behavioral traits unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and well-structured: two sentences that directly state the purpose and return format without any fluff. The first sentence explains what the tool does, and the second clarifies the output, making it front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description doesn't need to detail inputs or return values. However, it lacks context on usage scenarios, behavioral traits, and differentiation from siblings, which are important for a tool in a server with multiple threat intelligence tools. The description is minimally adequate but has clear gaps in guidance and transparency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter-specific information, which is appropriate here. A baseline of 4 is applied since there are no parameters to document, and the description doesn't introduce any confusion or redundancy regarding inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get a summary of all threat intelligence for dashboard display.' It specifies the verb ('Get') and resource ('summary of all threat intelligence'), and the context ('for dashboard display') provides additional clarity. However, it doesn't explicitly differentiate from sibling tools like 'get_threat_stats' or 'get_recent_iocs', which might also provide aggregated data, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions 'dashboard display' as a context, but doesn't specify scenarios, prerequisites, or exclusions. With sibling tools like 'get_threat_stats' and 'get_recent_iocs' that might overlap, the lack of comparative guidance is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recent_iocsB
Get recent IOCs (Indicators of Compromise) from ThreatFox.
Args: ioc_type: Filter by type (ip:port, domain, url, md5, sha256) limit: Maximum IOCs to return (default: 100, max: 500)
Returns: JSON with recent IOCs
| Name | Required | Description | Default |
|---|---|---|---|
| ioc_type | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that the tool returns 'JSON with recent IOCs' but doesn't specify details like pagination, rate limits, authentication requirements, or error handling. For a tool with potential security implications (IOCs), this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core purpose, followed by clear sections for 'Args' and 'Returns'. Every sentence earns its place by providing essential information without redundancy, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no annotations, but with an output schema), the description is somewhat complete but has gaps. It covers parameters well and notes the return format, but lacks behavioral context (e.g., auth, rate limits) and doesn't leverage the output schema to detail the JSON structure, leaving room for improvement in overall completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It effectively explains both parameters: 'ioc_type' with its filter options (e.g., 'ip:port', 'domain') and 'limit' with its default and max values. This adds crucial meaning beyond the bare schema, though it could benefit from more detail on format constraints (e.g., URL encoding).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('recent IOCs from ThreatFox'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'fetch_threat_feed' or 'get_threat_feeds', which might also retrieve threat data, leaving some ambiguity about when to choose this specific tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'fetch_threat_feed' or 'get_threat_feeds'. The description lacks context about prerequisites, such as whether authentication is needed, or any explicit exclusions, leaving the agent to infer usage based on the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_threat_feedsB
Get list of all available threat intelligence feeds.
Returns: JSON with available feeds and their descriptions
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the return format ('JSON with available feeds and their descriptions'), which adds some context, but lacks details on permissions, rate limits, caching behavior, or whether this is a read-only operation. For a tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded, stating the purpose in the first sentence and the return format in the second. Both sentences add value, with no wasted words. However, it could be slightly more structured by explicitly separating usage context from output details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema, the description doesn't need to explain return values in detail, which it acknowledges. However, with no annotations and multiple sibling tools, the description lacks context on behavioral traits and usage differentiation. It's minimally adequate but has clear gaps in guiding the agent effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate given the schema's completeness. A baseline of 4 is applied since there are no parameters to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'list of all available threat intelligence feeds', making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'fetch_threat_feed' or 'get_recent_iocs', which might have overlapping functionality. The description is specific about what it returns but lacks sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'fetch_threat_feed' and 'get_recent_iocs', there's no indication of whether this tool is for metadata listing, bulk retrieval, or other contexts. No prerequisites or exclusions are mentioned, leaving usage ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_threat_statsB
Get statistics about loaded threat data and cache status.
Returns: JSON with threat intelligence statistics
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions 'cache status' which hints at behavioral aspects related to caching, but doesn't disclose details like whether this is a read-only operation, performance characteristics, or error handling. The description adds some context but lacks comprehensive behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief with two sentences, but the second sentence 'Returns: JSON with threat intelligence statistics' is redundant given the output schema exists. This wastes space without adding value, reducing efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (0 parameters, output schema provided), the description is mostly complete. It covers the purpose and hints at cache-related behavior, but could benefit from more usage guidance relative to siblings. The output schema handles return values, so no need to explain them in the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here, and the baseline for 0 parameters is 4, as it avoids unnecessary repetition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with the verb 'Get' and resource 'statistics about loaded threat data and cache status', making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_dashboard_summary' or 'get_threat_feeds', which might provide overlapping or related statistics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_dashboard_summary' and 'get_threat_feeds' that might offer similar or complementary data, there's no indication of context, prerequisites, or exclusions to help an agent choose appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
11 tool updates
- First observed
check_bulk_ips - First observed
check_hash_reputation - First observed
check_ip_reputation - First observed
check_network_against_threats - First observed
clear_threat_cache - First observed
fetch_threat_feed - First observed
get_cisa_kev - First observed
get_dashboard_summary - First observed
get_recent_iocs - First observed
get_threat_feeds - First observed
get_threat_stats
TDQS
Each tool has a clearly distinct purpose with no ambiguity. The tools cover specific threat intelligence operations like checking IPs/hashes, fetching feeds, getting CISA KEVs, retrieving IOCs, and managing cache/stats, all with well-defined boundaries. There is no overlap that would cause misselection.
Tool names follow a consistent verb_noun pattern throughout, such as check_bulk_ips, fetch_threat_feed, get_cisa_kev, and clear_threat_cache. All tools use snake_case with clear, descriptive names that align with their functions, making them predictable and readable.
With 11 tools, the count is well-scoped for a threat intelligence server, covering essential operations like reputation checks, feed management, data retrieval, and cache control. Each tool earns its place without feeling excessive or insufficient for the domain.
The tool surface provides complete coverage for threat intelligence workflows, including checking various IOCs (IPs, hashes, networks), fetching and managing feeds, retrieving vulnerabilities and recent IOCs, and supporting dashboards and statistics. There are no obvious gaps that would hinder agent operations.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Threat intel + your scans/findings/Shield posture. CVE, EPSS, KEV, package vuln lookup, DAST.
AI-powered threat intelligence, smart contract auditing, and cybersecurity OSINT.
Enrich, search, assess, and manage threat intelligence through 80+ typed MCP tools.
55 tools, 7 Resources, Sigma rules, email SPF/DMARC, MITRE, CVE/KEV, risk_score. No key.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI-powered threat intelligence analysis of IPs, domains, URLs, and file hashes across multiple threat intelligence platforms (VirusTotal, AlienVault OTX, AbuseIPDB, IPinfo) with APT attribution and interactive reporting through natural language queries.39Apache 2.0
- AlicenseAqualityCmaintenanceProvides unified access to multiple threat intelligence sources like AlienVault OTX, AbuseIPDB, and GreyNoise for security research and analysis. It enables users to perform simultaneous lookups on IPs, domains, hashes, and URLs across several platforms within a single response.7507MIT
- FlicenseNot gradedqualityDmaintenanceProvides threat intelligence and vulnerability research tools by integrating with NVD, VirusTotal, AbuseIPDB, Shodan, and MITRE ATT\&CK. It enables users to perform CVE lookups, analyze IP reputation, and retrieve detailed MITRE ATT\&CK technique information.1-
- FlicenseAqualityNot gradedmaintenanceProvides real-time threat intelligence including IP risk scores, CVE lookups, and malware hash analysis without requiring an API key. It enables users to monitor active threats, predict CISA KEV additions, and detect pre-attack infrastructure staging through natural language.8-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/marc-shade/world-intel-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server