{
  "ok": true,
  "resource": {
    "id": "RES_82C4405CE73F",
    "resource_type": "mcp_server",
    "canonical_url": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.boolsai%2Fsignals/versions/1.0.0",
    "name": "Boolsai Signals",
    "summary_en": "Quant-research MCP — tradeable signals from public-company website stack changes. 7 tools.",
    "summary_zh": "量化研究 MCP — 基于上市公司网站技术栈变化生成可交易信号。共 7 个工具。",
    "description_en": "Boolsai Signals is an MCP server that provides quant-research signals derived from changes in public-company website technology stacks. It offers tools for discovering patterns, testing hypotheses, and backtesting against historical data. The server exposes 12 tools via MCP discovery, including functions for scanning event universes, finding signals, testing filters, retrieving recent events, and performing deep dives on specific events. It also includes tools for historical analysis using Wayback Machine data and for bulk-farming domain history. The server is designed for financial research and agent orchestration, with a focus on generating alpha signals relative to the S&P 500 (SPY).",
    "description_zh": "Boolsai Signals 是一个 MCP 服务器，提供基于上市公司网站技术栈变化生成的量化研究信号。它提供多种工具，用于发现模式、测试假设以及基于历史数据进行回测。通过 MCP 发现，该服务器暴露了 12 个工具，包括扫描事件宇宙、查找信号、测试过滤器、检索近期事件以及对特定事件进行深入分析等功能。它还包含使用 Wayback Machine 数据进行历史分析以及批量采集域名历史的工具。该服务器专为金融研究和智能体编排而设计，重点生成相对于标准普尔 500 指数（SPY）的阿尔法信号。",
    "provider_name": "ai.boolsai",
    "homepage_url": "https://github.com/Boolsai-ai/mcp",
    "endpoint_url": "https://signals.boolsai.ai/mcp",
    "source_url": "https://github.com/Boolsai-ai/mcp",
    "icon_url": null,
    "cover_image_url": null,
    "capabilities": [
      "research.analyze",
      "data.retrieve",
      "data.analyze"
    ],
    "categories": [
      "research",
      "data"
    ],
    "industries": [
      "finance",
      "software"
    ],
    "protocols": [
      "mcp"
    ],
    "auth": {
      "type": "unknown"
    },
    "pricing": {
      "model": "unknown"
    },
    "input_schema": {},
    "output_schema": {},
    "metadata": {
      "content_language": "en",
      "translation_status": "original-only",
      "official_registry": {
        "version": "1.0.0",
        "packages": [],
        "remotes": []
      },
      "review_gate": {
        "passed": true,
        "reasons": [],
        "policy_version": "review-gate-v1",
        "evaluated_at": "2026-09-03T06:07:35.767Z"
      }
    },
    "latest_version": "1.0.0",
    "status": "listed",
    "health_status": "healthy",
    "source_kind": "imported",
    "source_agent": "registry.modelcontextprotocol.io",
    "trust": {
      "signal": "none",
      "reason": "No suspicious or malicious evidence found.",
      "signals": {
        "yellow": 0,
        "red": 0
      }
    },
    "review_summary": {
      "method_version": "capability-evidence-v2",
      "capability_definition": "strong",
      "contract_completeness": "strong",
      "access_friction": "unknown",
      "operational_transparency": "partial",
      "evidence_strength": "protocol_inspected",
      "use_readiness": "guided_use",
      "reviewed_at": "2026-09-03T06:07:36.753Z"
    },
    "experience_count": 0,
    "verified_experience_count": 0,
    "usage_count": 0,
    "success_rate": null,
    "first_seen_at": "2026-09-03T02:49:59.300Z",
    "last_seen_at": "2026-09-03T06:07:36.007Z",
    "published_at": "2026-09-03T06:07:36.007Z",
    "created_at": "2026-09-03T02:49:59.300Z",
    "updated_at": "2026-09-03T06:07:36.753Z",
    "api_url": "https://aiworkshub.io/api/v1/resources/RES_82C4405CE73F",
    "reviews_url": "https://aiworkshub.io/api/v1/resources/RES_82C4405CE73F/reviews",
    "public_url": "https://aiworkshub.io/resources/RES_82C4405CE73F",
    "distribution": {
      "canonical_identity": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.boolsai%2Fsignals/versions/1.0.0",
      "syndicatable": true,
      "origins": [
        {
          "registry_url": "https://registry.modelcontextprotocol.io/",
          "upstream_resource_id": "ai.boolsai/signals@1.0.0",
          "upstream_record_url": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.boolsai%2Fsignals/versions/1.0.0",
          "relation": "syndicated",
          "metadata": {
            "source": "official-mcp-registry"
          },
          "first_seen_at": "2026-09-03T02:49:59.300Z",
          "last_seen_at": "2026-09-03T06:07:36.007Z"
        }
      ]
    },
    "tools": [
      {
        "name": "domain_timeline",
        "title_en": "Domain Timeline",
        "title_zh": "域名时间线",
        "description_en": "Week-by-week wayback diff timeline for one domain. Returns every detected stack change (additions / removals) with week date. Use this to see when a vendor was added/removed historically, e.g. 'when did adobe.com add Segment?'",
        "description_zh": "单个域名的逐周 wayback 差异时间线。返回每个检测到的堆栈更改（添加/移除）及周日期。使用此工具查看供应商在历史上何时被添加/移除，例如“adobe.com 何时添加了 Segment？”",
        "input_schema": {
          "type": "object",
          "properties": {
            "domain": {
              "type": "string",
              "description": "e.g. 'adobe.com'"
            },
            "change_type": {
              "type": "string",
              "enum": [
                "added",
                "removed",
                "changed",
                "any"
              ],
              "default": "any"
            },
            "contains": {
              "type": "string",
              "description": "Filter to events whose key_path or key_name contains this string (e.g. 'segment')"
            },
            "limit": {
              "type": "integer",
              "default": 100
            }
          },
          "required": [
            "domain"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "event_dossier",
        "title_en": "Event Dossier",
        "title_zh": "事件档案",
        "description_en": "Deep dive on a single event: full diff (added/removed values), surrounding price action (-3D to +14D), predicted vs actual α, links to wayback comparison. Use this to investigate a specific event flagged by find_signals or recent_events.",
        "description_zh": "深入分析单个事件：完整差异（添加/删除的值）、周围价格走势（-3 天至 +14 天）、预测与实际 α、指向 wayback 比较的链接。使用此工具调查由 find_signals 或 recent_events 标记的特定事件。",
        "input_schema": {
          "type": "object",
          "properties": {
            "event_id": {
              "type": "integer",
              "description": "change_event id"
            }
          },
          "required": [
            "event_id"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "farm_domain",
        "title_en": "Farm Domain",
        "title_zh": "采集域名",
        "description_en": "Bulk-farm a domain's historical wayback snapshots into our index. Use this when you need backtest history on a domain we haven't already farmed (i.e. wayback_backtest / domain_timeline return no data for it). Hits CDX → samples weekly → parallel-scans up to 50 snapshots via intel.boolsai.ai → inserts into wayback_intel_profiles. After farming completes you can call wayback_backtest or domain_timeline on the domain immediately. Cost: ~30-60s wall time, ~50 intel scans.",
        "description_zh": "将域名的历史 wayback 快照批量采集到我们的索引中。当您需要尚未采集的域名的回测历史时（即 wayback_backtest / domain_timeline 返回无数据），使用此工具。访问 CDX → 每周采样 → 通过 intel.boolsai.ai 并行扫描最多 50 个快照 → 插入 wayback_intel_profiles。采集完成后，您可以立即对该域名调用 wayback_backtest 或 domain_timeline。成本：约 30-60 秒墙钟时间，约 50 次 intel 扫描。",
        "input_schema": {
          "type": "object",
          "properties": {
            "domain": {
              "type": "string",
              "description": "Bare domain, e.g. 'sweetgreen.com'"
            },
            "weeks": {
              "type": "integer",
              "default": 26,
              "description": "How many weeks of history to farm (default 26 = ~6 months; max 100)"
            },
            "max_snapshots": {
              "type": "integer",
              "default": 50,
              "description": "Hard cap on snapshots to fetch (default 50; max 200)"
            }
          },
          "required": [
            "domain"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "external_data_transfer",
        "open_world": false,
        "idempotency": "not_idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "find_signals",
        "title_en": "Find Signals",
        "title_zh": "查找信号",
        "description_en": "Automated pattern discovery — scans event_type × detector × diff_field × severity combinations and returns those with the strongest forward-return characteristics (α vs SPY, % positive, n). Use this when you don't have a specific hypothesis yet. Returns sorted by α at +7D descending. Filter by min_n to set a sample-size floor.",
        "description_zh": "自动模式发现 — 扫描 event_type × detector × diff_field × severity 组合，并返回具有最强前瞻回报特征（相对于 SPY 的 α、正收益率百分比、n）的组合。当您还没有具体假设时使用此工具。按 +7D 的 α 降序返回。通过 min_n 过滤以设置样本量下限。",
        "input_schema": {
          "type": "object",
          "properties": {
            "min_n": {
              "type": "integer",
              "description": "Minimum sample size (default 10)",
              "default": 10
            },
            "horizon_days": {
              "type": "integer",
              "description": "Forward-return window (default 7)",
              "default": 7
            },
            "top_k": {
              "type": "integer",
              "description": "Top K combos to return (default 15)",
              "default": 15
            },
            "group_by": {
              "type": "string",
              "enum": [
                "event_type",
                "detector",
                "diff_field",
                "severity",
                "co_occurrence"
              ],
              "default": "event_type",
              "description": "What dimension to slice on"
            }
          }
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "compute",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "recent_events",
        "title_en": "Recent Events",
        "title_zh": "近期事件",
        "description_en": "Live signal feed: events fired in the last N days (default 7). Returns each event with the predicted α range based on its event type's historical performance. Use this to surface 'what should I be looking at right now?'",
        "description_zh": "实时信号流：最近 N 天（默认 7 天）内触发的事件。返回每个事件及其基于事件类型历史表现的预测 α 范围。使用此工具来揭示“我现在应该关注什么？”",
        "input_schema": {
          "type": "object",
          "properties": {
            "days": {
              "type": "integer",
              "default": 7,
              "description": "Lookback in calendar days (max 30)"
            },
            "min_co_occurrence": {
              "type": "integer",
              "description": "Only show events with this many same-day detectors (4 = high-conviction)"
            }
          }
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "scan_at_date",
        "title_en": "Scan at Date",
        "title_zh": "按日期扫描",
        "description_en": "Scan a URL as it appeared on a historical date via the Wayback Machine. Uses intel.boolsai.ai against the wayback-wrapped URL. Returns the same JSON shape as Boolsai Scan but for a historical snapshot. Use when investigating WHEN a vendor was added/removed.",
        "description_zh": "通过 Wayback Machine 扫描某个历史日期上的 URL。使用 intel.boolsai.ai 对 wayback 包装的 URL 进行扫描。返回与 Boolsai Scan 相同的 JSON 结构，但针对历史快照。在调查供应商何时被添加/移除时使用。",
        "input_schema": {
          "type": "object",
          "properties": {
            "url": {
              "type": "string",
              "description": "Original URL (e.g. 'https://gymshark.com/')"
            },
            "date": {
              "type": "string",
              "description": "YYYY-MM-DD — closest wayback snapshot on or before this date will be used"
            }
          },
          "required": [
            "url",
            "date"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "signal_diff",
        "title_en": "Signal Diff",
        "title_zh": "信号差异",
        "description_en": "Compare two signal patterns side-by-side. e.g. 'how does PRICING_TIERS_ADDED compare to VENDORS_DETECTED_CHANGED on the live dataset?' Returns α, %pos, sample size, worst/best trades for each, plus delta. Pure D1, fast.",
        "description_zh": "并排比较两个信号模式。例如“在实时数据集上，PRICING_TIERS_ADDED 与 VENDORS_DETECTED_CHANGED 相比如何？”返回每个信号的 α、正收益率百分比、样本量、最差/最佳交易，以及差异。纯 D1，快速。",
        "input_schema": {
          "type": "object",
          "properties": {
            "signal_a": {
              "type": "object",
              "description": "First filter (same shape as test_filter args)"
            },
            "signal_b": {
              "type": "object",
              "description": "Second filter"
            },
            "horizon_days": {
              "type": "integer",
              "default": 7
            }
          },
          "required": [
            "signal_a",
            "signal_b"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "compute",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "signal_landscape",
        "title_en": "Signal Landscape",
        "title_zh": "信号全景",
        "description_en": "ONE-SHOT cross-signal sweep. Computes α-vs-SPY stats simultaneously across event_type, detector, diff_field, severity, AND co_occurrence dimensions — returns the full landscape in a single response. Use this FIRST when you want to see where signal lives without having to call find_signals N times. Stateless, pure D1, no rate-limit risk, ~1s response. Cached per arg set for sub-100ms repeated queries.",
        "description_zh": "一次性跨信号扫描。同时计算 event_type、detector、diff_field、severity 和 co_occurrence 维度上的 α-vs-SPY 统计量 — 在单个响应中返回完整全景。当您想查看信号所在位置而不必多次调用 find_signals 时，首先使用此工具。无状态、纯 D1、无速率限制风险，响应约 1 秒。按参数集缓存，重复查询低于 100 毫秒。",
        "input_schema": {
          "type": "object",
          "properties": {
            "source": {
              "type": "string",
              "enum": [
                "live",
                "wayback",
                "both"
              ],
              "default": "both",
              "description": "Which event dataset to scan. 'live' = 1.7K recent. 'wayback' = 13K over 2 years. 'both' = run both and return side-by-side."
            },
            "horizon_days": {
              "type": "integer",
              "default": 7,
              "description": "Forward-return window (default 7)"
            },
            "min_n": {
              "type": "integer",
              "default": 20,
              "description": "Sample-size floor per group"
            },
            "top_k_per_dim": {
              "type": "integer",
              "default": 8,
              "description": "Top K results per dimension (default 8)"
            },
            "since": {
              "type": "string",
              "description": "Optional YYYY-MM-DD lower bound on event date"
            }
          }
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "compute",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "test_filter",
        "title_en": "Test Filter",
        "title_zh": "测试过滤器",
        "description_en": "Compute α stats for an arbitrary filter expression. Use this to test a specific hypothesis (e.g. 'tier_count_changed on enterprise-SaaS tickers' or 'severity 5 events that happened on Mondays'). Returns n, mean/median raw and α returns at +1/+3/+7d, % positive, and the worst-loss trade.",
        "description_zh": "为任意过滤器表达式计算 α 统计量。使用此工具测试特定假设（例如“企业 SaaS 股票上的 tier_count_changed”或“发生在星期一的严重性 5 事件”）。返回 n、平均值/中位数原始收益和 +1/+3/+7 天的 α 收益、正收益率百分比以及最大亏损交易。",
        "input_schema": {
          "type": "object",
          "properties": {
            "event_type": {
              "type": "string",
              "description": "e.g. 'TIER_COUNT_CHANGED' (case-insensitive)"
            },
            "detector": {
              "type": "string",
              "description": "e.g. 'pricing_detector'"
            },
            "severity_min": {
              "type": "integer",
              "description": "minimum severity (1-5)"
            },
            "ticker": {
              "type": "string",
              "description": "single ticker to filter to"
            },
            "co_occurrence_min": {
              "type": "integer",
              "description": "min same-day detector count (4 = 'real redesign')"
            },
            "since": {
              "type": "string",
              "description": "YYYY-MM-DD lower bound"
            },
            "until": {
              "type": "string",
              "description": "YYYY-MM-DD upper bound"
            }
          }
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "compute",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "ticker_history",
        "title_en": "Ticker History",
        "title_zh": "股票代码历史",
        "description_en": "All events fired on a single ticker, plus price action timeline. Use this to investigate one company's pattern (e.g. 'show me everything we caught on NFLX').",
        "description_zh": "单个股票代码上触发的所有事件，以及价格走势时间线。使用此工具调查一家公司的模式（例如“显示我们在 NFLX 上捕获的所有内容”）。",
        "input_schema": {
          "type": "object",
          "properties": {
            "ticker": {
              "type": "string",
              "description": "e.g. 'NFLX'"
            },
            "limit": {
              "type": "integer",
              "default": 50
            }
          },
          "required": [
            "ticker"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "universe_summary",
        "title_en": "Universe Summary",
        "title_zh": "宇宙概览",
        "description_en": "Orient the agent: total events, tickers, date range, top event types, top detectors, price coverage, SPY benchmark status. Call this FIRST when starting research. Returns counts that let the agent reason about sample sizes before drilling in.",
        "description_zh": "为智能体提供方向：总事件数、股票代码、日期范围、顶级事件类型、顶级检测器、价格覆盖范围、SPY 基准状态。开始研究时首先调用此工具。返回计数，使智能体能够在深入之前推理样本量。",
        "input_schema": {
          "type": "object",
          "properties": {}
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "wayback_backtest",
        "title_en": "Wayback Backtest",
        "title_zh": "Wayback 回测",
        "description_en": "Run an SPY-benchmarked backtest on the WAYBACK historical event dataset (2+ years, 13K events) instead of the recent live event dataset (2 months, 1.7K events). Much bigger samples for statistical confidence. Group by change_type / key_path / domain.",
        "description_zh": "在 WAYBACK 历史事件数据集（2 年以上，13K 事件）上运行以 SPY 为基准的回测，而不是最近的实时事件数据集（2 个月，1.7K 事件）。更大的样本量以获得统计置信度。按 change_type / key_path / domain 分组。",
        "input_schema": {
          "type": "object",
          "properties": {
            "group_by": {
              "type": "string",
              "enum": [
                "change_type",
                "key_path",
                "key_name",
                "parent_path",
                "domain"
              ],
              "default": "key_path",
              "description": "Dimension to slice on"
            },
            "min_n": {
              "type": "integer",
              "default": 20,
              "description": "Minimum sample size"
            },
            "horizon_days": {
              "type": "integer",
              "default": 7,
              "description": "Forward-return window"
            },
            "top_k": {
              "type": "integer",
              "default": 15
            },
            "since": {
              "type": "string",
              "description": "YYYY-MM-DD lower bound on event date (default: when prices start)"
            },
            "exclude_noise": {
              "type": "boolean",
              "default": true,
              "description": "Filter out is_meta_noise=1 events"
            }
          }
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "compute",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      }
    ],
    "review_profile": {
      "schema_version": "aiworkshub.resource-review/0.2",
      "method_version": "capability-evidence-v2",
      "review_state": {
        "identity": "verified",
        "source": "verified",
        "connectivity": "verified",
        "contract": "strong",
        "safe_use": "untested",
        "real_use": "unobserved"
      },
      "assessment": {
        "capability_definition": "strong",
        "contract_completeness": "strong",
        "access_friction": "unknown",
        "operational_transparency": "partial",
        "evidence_strength": "protocol_inspected",
        "use_readiness": "guided_use"
      },
      "profile": {
        "capabilities": [
          {
            "id": "research.analyze",
            "weight": 90,
            "confidence": 85,
            "evidence_ids": [
              "source-record",
              "protocol-tools"
            ]
          },
          {
            "id": "data.retrieve",
            "weight": 80,
            "confidence": 85,
            "evidence_ids": [
              "protocol-tools"
            ]
          },
          {
            "id": "data.analyze",
            "weight": 70,
            "confidence": 80,
            "evidence_ids": [
              "protocol-tools"
            ]
          }
        ],
        "domains": [
          {
            "id": "finance",
            "weight": 90,
            "confidence": 85,
            "evidence_ids": [
              "source-record",
              "protocol-tools"
            ]
          },
          {
            "id": "software",
            "weight": 60,
            "confidence": 70,
            "evidence_ids": [
              "protocol-tools"
            ]
          }
        ],
        "workflow_roles": [
          "discover",
          "retrieve",
          "analyze"
        ]
      },
      "capability_units": [
        {
          "id": "tool:universe_summary",
          "kind": "mcp_tool",
          "capability_id": "data.retrieve",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [],
          "produces": [
            "text"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:find_signals",
          "kind": "mcp_tool",
          "capability_id": "data.analyze",
          "effect": "compute",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [
            "integer",
            "string"
          ],
          "produces": [
            "text"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:test_filter",
          "kind": "mcp_tool",
          "capability_id": "data.analyze",
          "effect": "compute",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [
            "string",
            "integer"
          ],
          "produces": [
            "text"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:recent_events",
          "kind": "mcp_tool",
          "capability_id": "data.retrieve",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [
            "integer"
          ],
          "produces": [
            "text"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:event_dossier",
          "kind": "mcp_tool",
          "capability_id": "data.retrieve",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [
            "integer"
          ],
          "produces": [
            "text"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:scan_at_date",
          "kind": "mcp_tool",
          "capability_id": "data.retrieve",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [
            "string"
          ],
          "produces": [
            "text"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:ticker_history",
          "kind": "mcp_tool",
          "capability_id": "data.retrieve",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [
            "string",
            "integer"
          ],
          "produces": [
            "text"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:wayback_backtest",
          "kind": "mcp_tool",
          "capability_id": "data.analyze",
          "effect": "compute",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [
            "string",
            "integer",
            "boolean"
          ],
          "produces": [
            "text"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:domain_timeline",
          "kind": "mcp_tool",
          "capability_id": "data.retrieve",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [
            "string",
            "integer"
          ],
          "produces": [
            "text"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:signal_landscape",
          "kind": "mcp_tool",
          "capability_id": "data.analyze",
          "effect": "compute",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [
            "string",
            "integer"
          ],
          "produces": [
            "text"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:signal_diff",
          "kind": "mcp_tool",
          "capability_id": "data.analyze",
          "effect": "compute",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [
            "object",
            "integer"
          ],
          "produces": [
            "text"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:farm_domain",
          "kind": "mcp_tool",
          "capability_id": "data.write",
          "effect": "external_data_transfer",
          "open_world": false,
          "idempotency": "not_idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [
            "string",
            "integer"
          ],
          "produces": [
            "text"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        }
      ],
      "access": {
        "distribution_license": {},
        "runtime_auth": {},
        "runtime_pricing": {},
        "dependencies": []
      },
      "operational_flags": [],
      "trust": {
        "signal": "none",
        "evidence_ids": [
          "source-record",
          "protocol-tools"
        ],
        "reason": "No suspicious or malicious evidence found."
      },
      "fit": {
        "good_for": [
          "Quantitative research on public company website changes",
          "Backtesting trading signals against SPY",
          "Discovering patterns in website technology stack changes"
        ],
        "not_for": [
          "Real-time trading without further validation",
          "Non-financial use cases"
        ]
      },
      "evidence": [
        {
          "id": "source-record",
          "type": "registry_record",
          "source": "https://github.com/Boolsai-ai/mcp",
          "observation": "MCP source record for Boolsai Signals; version 1.0.0.",
          "observed_at": null,
          "payload": {}
        },
        {
          "id": "protocol-tools",
          "type": "protocol_observation",
          "source": "https://signals.boolsai.ai/mcp#tools/list",
          "observation": "12 tools were returned by MCP discovery; 12 were retained for review.",
          "observed_at": "2026-09-03T06:07:11.362Z",
          "payload": {}
        }
      ],
      "unknowns": [
        "Authentication mechanism",
        "Pricing model",
        "Rate limits",
        "Data freshness and update frequency",
        "Accuracy of signal predictions",
        "Whether the server is safe for production use without additional testing"
      ],
      "id": "REV_B0893FBA6385",
      "resource_id": "RES_82C4405CE73F",
      "evaluator_type": "platform_ai",
      "provider": "deepseek",
      "model": "deepseek-v4-flash",
      "review_scope": "protocol-inspected-mcp",
      "created_at": "2026-09-03T06:07:36.753Z"
    }
  }
}