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 信号市场研判(恐惧与贪婪指数、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 综合生成的受限服务端概览,并附带机械引用的回退方案 |
总计:120 个工具,覆盖 30+ 情报领域。
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, coverage以 MCP 服务器方式运行
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、道琼斯、纳斯达克、富时、日经) |
| 来自 CoinGecko 的顶级加密货币价格与市值 |
| 稳定币锚定健康度(USDT、USDC、DAI、FDUSD) |
| 比特币现货 ETF 价格与成交量 |
| 美国股票板块表现(11 只 SPDR ETF) |
| 7 项宏观指标(恐惧与贪婪指数、VIX、DXY、黄金、10 年期收益率、BTC) |
| 大宗商品期货(黄金、白银、原油、天然气、谷物) |
外汇与货币(3)
工具 | 描述 |
| 来自ECB的最新外汇汇率。可按基础/目标货币筛选 |
| 历史汇率及趋势分析(可配置天数) |
| 全部8个主要货币对 + 交叉汇率 + DXY美元指数代理 |
债券与收益率(2)
工具 | 描述 |
| 美国国债收益率曲线(2Y-30Y)、2s10s/3m10y利差、倒挂标志 |
| 债券ETF:AGG、TLT、HYG、LQD、TIP,含价格/涨跌 |
财报(2)
工具 | 描述 |
| 20只超大盘股的即将发布财报及每股收益(EPS)预估 |
| 历史盈利意外(实际 vs 预估、趋势) |
SEC文件(3)
工具 | 描述 |
| 跨所有EDGAR文件的全文搜索 |
| 按股票代码查询公司文件(10-K、10-Q、8-K),含CIK解析 |
| 最新8-K重大事件(并购、高管变动、财报) |
公司信息增强(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、金叉/死叉、Mayer Multiple倍数 |
自然灾害(2)
工具 | 描述 |
| USGS地震(可配置震级/时间/数量限制) |
| NASA FIRMS卫星火灾热点(全球9个区域) |
环境(2)
工具 | 描述 |
| NASA EONET自然事件 |
| GDACS灾害警报,含严重程度评分 |
冲突与安全(4)
工具 | 描述 |
| ACLED武装冲突事件 |
| 乌普萨拉冲突数据计划事件 |
| 社会动荡事件,含Haversine去重 |
| HDX人道主义危机数据集 |
军事与国防(6)
工具 | 描述 |
| 通过adsb.lol获取军用飞机数据(OpenSky备用) |
| 5个战区活动(欧洲、印太、中东、北极、朝鲜半岛) |
| 按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个威胁类别 |
| 基于Jaccard相似度的主题聚类 |
| 使用Welford算法的关键词突增检测 |
战略综合(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)
工具 | 描述 |
| 定义命名关注区域:点 + 半径(公里,1-2000) |
| 列出所有用户定义的 AOI |
| 按名称删除用户定义的 AOI |
| 针对 AOI 的带引用简报:地震、军用航班、野火、冲突事件、航空、附近基础设施和新闻提及,全部按 AOI 半径过滤 |
| 热点升级评分(与 22 个内置热点相同的引擎)应用于用户 AOI |
态势简报(1)
工具 | 描述 |
| 带引用的态势感知简报,通过 MCP 按需生成:一个有边界的服务端概览(地震、军用航班、ACLED 冲突事件、野火、网络威胁、疾病暴发、新闻、空间天气、战略态势、警报摘要),通过本地 Ollama 合成,或在 Ollama 不可用时使用机械引用的回退方案 |
关注你自己的区域(地理围栏/AOI)
静态基础设施结果(基地、港口、核设施、电缆、数据中心、航天发射场)基于本仓库精选的战略数据集,这些数据集是全球性的且刻意保持稀疏,并非详尽的本地登记册。AOI 简报显示无结果,仅表示精选数据集中没有内容落在范围内,并不代表你的区域没有基础设施。
120 个工具中有 28 个接受某种地理参数,但在 AOI 系列之前,只有 intel_signal_convergence 接受真正的点加半径,intel_military_flights 接受边界框,热点升级评分仅限于 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 将所有支持地理的领域过滤到匹兹堡周围 50 公里半径内:地震、军用航班(由半径推导的边界框)、野火(按区域映射,因为 NASA FIRMS 没有点加半径查询)、ACLED 冲突事件、附近航空交通样本、附近静态基础设施(军事基地、港口、管道、核设施、海底电缆、数据中心、航天发射场)并附公里距离,以及新闻标题中提及"匹兹堡"的内容。响应中的每一项都带有指向编号 sources 列表的 [n] 引用,data_gaps 会列出任何无法限定到 AOI 范围的领域(例如,当 AOI 落在 NASA FIRMS 覆盖区域之外时的野火,或未配置 ACLED 凭据时的冲突事件),而不是静默省略。
intel_aoi_escalation 运行与驱动 22 个内置热点 intel_hotspot_escalation 相同的基线/军事/冲突/社会动荡评分引擎,但限定在你 AOI 自身的半径内,而非固定的 2 度窗口。
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 cycle作为 macOS 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中:将Tool(...)添加到TOOLS,在_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