{
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "tool": {
    "category": "payment-platforms",
    "endpoint": "https://cabrini.ai/mcp",
    "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/cabrini-market-data.json",
    "kind": "mcp",
    "listed": "indexed",
    "liveUrl": "https://www.anchorterminal.com/api/v1/live/cabrini-market-data.json",
    "markdownUrl": "https://www.anchorterminal.com/tools/cabrini-market-data.md",
    "mcpTools": {
      "check": {
        "checker": "anchor-check/1.0",
        "totalTokens": 3142,
        "counts": {
          "error": 0,
          "note": 1,
          "warn": 16
        },
        "findings": [
          {
            "rule": "TC06",
            "severity": "warn",
            "tool": "get_stats",
            "message": "the description is \"Platform statistics. Free.\"",
            "fix": "Add when to use it, what it returns and any side effect, in two or three sentences."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "get_bars",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "get_brief",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "get_company",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "get_filings",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "get_fundamentals",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "get_insiders",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "get_pricing",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "get_sample",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "get_stats",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "list_tickers",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"list\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "query_batch",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"query\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "query_daily",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"query\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "query_minute_bars",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"query\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "query_range",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"query\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "scan_market",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
          },
          {
            "rule": "TC24",
            "severity": "note",
            "message": "15 of 15 tools have no outputSchema",
            "fix": "Declare outputSchema for tools that return structured data, and return structuredContent that matches it."
          }
        ]
      },
      "checkedAt": "2026-10-04T22:20:01Z",
      "count": 15,
      "note": "answered without the initialize handshake",
      "schemaTokens": 3142,
      "status": "ok",
      "tools": [
        {
          "name": "query_minute_bars",
          "description": "Full trading day of intraday bars for one US stock (interval 3-240 min, default 3m). Every bar carries absolute open/high/low/close plus pct_open/pct_high/pct_low/pct_close (fractional change from that day's open), volume and transactions. $0.025 USDC.",
          "inputSchema": {
            "properties": {
              "date": {
                "description": "YYYY-MM-DD",
                "type": "string"
              },
              "interval": {
                "description": "Bar interval in minutes: 3, 6, 9, 12, 15, 30, 60, or 240 (default 3)",
                "type": "integer"
              },
              "ticker": {
                "description": "Stock ticker (e.g. AAPL)",
                "type": "string"
              }
            },
            "required": [
              "ticker",
              "date"
            ],
            "type": "object"
          }
        },
        {
          "name": "list_tickers",
          "description": "List all tickers that traded on a given date. $0.005 USDC.",
          "inputSchema": {
            "properties": {
              "date": {
                "description": "YYYY-MM-DD",
                "type": "string"
              }
            },
            "required": [
              "date"
            ],
            "type": "object"
          }
        },
        {
          "name": "query_range",
          "description": "Multi-day intraday bars for one ticker (interval 3-240 min, default 3m). Every bar carries absolute open/high/low/close plus fractional change from that day's own open — percentages reset daily, not cumulative. $0.01/day, no day limit.",
          "inputSchema": {
            "properties": {
              "end": {
                "description": "End date YYYY-MM-DD",
                "type": "string"
              },
              "interval": {
                "description": "Bar interval in minutes: 3, 6, 9, 12, 15, 30, 60, or 240 (default 3)",
                "type": "integer"
              },
              "start": {
                "description": "Start date YYYY-MM-DD",
                "type": "string"
              },
              "ticker": {
                "description": "Stock ticker (e.g. AAPL)",
                "type": "string"
              }
            },
            "required": [
              "ticker",
              "start",
              "end"
            ],
            "type": "object"
          }
        },
        {
          "name": "query_batch",
          "description": "Multiple tickers for one date. Every bar carries absolute open/high/low/close plus fractional change from that ticker's own daily open. $0.02/ticker, no limit.",
          "inputSchema": {
            "properties": {
              "date": {
                "description": "YYYY-MM-DD",
                "type": "string"
              },
              "tickers": {
                "description": "List of ticker symbols",
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            },
            "required": [
              "tickers",
              "date"
            ],
            "type": "object"
          }
        },
        {
          "name": "scan_market",
          "description": "Scan all US stocks on a date for custom criteria (gaps, volume, change). Returns pct_change, range_pct, pct_gap, true_range_pct, volume and volume_ratio per match — criteria in percent (5 = 5%), outputs fractional (0.05 = 5%). $0.10 USDC.",
          "inputSchema": {
            "properties": {
              "change_pct_max": {
                "description": "Max intraday change %",
                "type": "number"
              },
              "change_pct_min": {
                "description": "Min intraday change %",
                "type": "number"
              },
              "date": {
                "description": "YYYY-MM-DD",
                "type": "string"
              },
              "gap_down_pct": {
                "description": "Min gap down % from prior close",
                "type": "number"
              },
              "gap_up_pct": {
                "description": "Min gap up % from prior close",
                "type": "number"
              },
              "limit": {
                "description": "Max results (default 50)",
                "type": "integer"
              },
              "range_pct_min": {
                "description": "Min intraday range (high-low)/open as a percent, e.g. 5 for 5%",
                "type": "number"
              },
              "volume_min": {
                "description": "Min total volume",
                "type": "integer"
              },
              "volume_ratio_min": {
                "description": "Min volume vs prior day (e.g. 2.0)",
                "type": "number"
              }
            },
            "required": [
              "date"
            ],
            "type": "object"
          }
        },
        {
          "name": "query_daily",
          "description": "Daily OHLCV bars plus VWAP, range_pct and true_range_pct for one ticker over a date range. range_pct = (high - low) / open is a ready-made volatility read; true_range_pct also captures the overnight gap. Day-level aggregates — the cheapest way to cover long histories. $0.001/year.",
          "inputSchema": {
            "properties": {
              "end": {
                "description": "End date YYYY-MM-DD",
                "type": "string"
              },
              "start": {
                "description": "Start date YYYY-MM-DD",
                "type": "string"
              },
              "ticker": {
                "description": "Stock ticker (e.g. AAPL)",
                "type": "string"
              }
            },
            "required": [
              "ticker",
              "start",
              "end"
            ],
            "type": "object"
          }
        },
        {
          "name": "get_brief",
          "description": "Full research brief: price, fundamentals, insiders, splits for one ticker. $0.25 USDC.",
          "inputSchema": {
            "properties": {
              "date": {
                "description": "As-of date YYYY-MM-DD (default: today)",
                "type": "string"
              },
              "lookback_days": {
                "description": "Days of price history, 1-365 (default 30)",
                "maximum": 365,
                "minimum": 1,
                "type": "integer"
              },
              "ticker": {
                "description": "Stock ticker (e.g. NVDA)",
                "type": "string"
              }
            },
            "required": [
              "ticker"
            ],
            "type": "object"
          }
        },
        {
          "name": "get_company",
          "description": "Company profile: name, CIK, industry, exchange, fiscal year. $0.005 USDC.",
          "inputSchema": {
            "properties": {
              "ticker": {
                "description": "Stock ticker (e.g. AAPL)",
                "type": "string"
              }
            },
            "required": [
              "ticker"
            ],
            "type": "object"
          }
        },
        {
          "name": "get_fundamentals",
          "description": "Quarterly fundamentals from SEC EDGAR (revenue, EPS, margins, etc). $0.02 USDC.",
          "inputSchema": {
            "properties": {
              "from_date": {
                "description": "Start date YYYY-MM-DD",
                "type": "string"
              },
              "metrics": {
                "description": "Filter metrics",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "ticker": {
                "description": "Stock ticker (e.g. AAPL)",
                "type": "string"
              },
              "to_date": {
                "description": "End date YYYY-MM-DD",
                "type": "string"
              }
            },
            "required": [
              "ticker"
            ],
            "type": "object"
          }
        },
        {
          "name": "get_insiders",
          "description": "Insider transactions (Form 4) from SEC EDGAR. $0.02 USDC.",
          "inputSchema": {
            "properties": {
              "from_date": {
                "description": "Start date YYYY-MM-DD",
                "type": "string"
              },
              "ticker": {
                "description": "Stock ticker (e.g. AAPL)",
                "type": "string"
              },
              "to_date": {
                "description": "End date YYYY-MM-DD",
                "type": "string"
              }
            },
            "required": [
              "ticker"
            ],
            "type": "object"
          }
        },
        {
          "name": "get_filings",
          "description": "SEC filing index (10-K, 10-Q, 8-K, proxies) for a ticker. $0.01 USDC; add sections=[risk_factors, mdna] to extract full section text from the latest 10-K/10-Q for $0.05.",
          "inputSchema": {
            "properties": {
              "accession": {
                "description": "Extract sections from this specific filing accession number",
                "type": "string"
              },
              "from_date": {
                "description": "Start date YYYY-MM-DD",
                "type": "string"
              },
              "sections": {
                "description": "Extract section text: risk_factors and/or mdna",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "ticker": {
                "description": "Stock ticker (e.g. AAPL)",
                "type": "string"
              },
              "to_date": {
                "description": "End date YYYY-MM-DD",
                "type": "string"
              },
              "types": {
                "description": "Filter to filing types, e.g. [\"10-K\", \"8-K\"]",
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            },
            "required": [
              "ticker"
            ],
            "type": "object"
          }
        },
        {
          "name": "get_bars",
          "description": "Resampled intraday bars at custom timeframes (3, 6, 9, 12, 15, 30, 60, 240 min) for one ticker. Every bar carries absolute open/high/low/close plus fractional change from the daily open, whatever the interval, and volume and transactions. $0.015 USDC per day.",
          "inputSchema": {
            "properties": {
              "adjusted": {
                "description": "Apply split adjustment (default false)",
                "type": "boolean"
              },
              "date": {
                "description": "Trading date YYYY-MM-DD",
                "type": "string"
              },
              "end": {
                "description": "Multi-day end date",
                "type": "string"
              },
              "interval": {
                "description": "Bar interval in minutes: 3, 6, 9, 12, 15, 30, 60, or 240",
                "type": "integer"
              },
              "start": {
                "description": "Multi-day start date",
                "type": "string"
              },
              "ticker": {
                "description": "Stock ticker (e.g. AAPL)",
                "type": "string"
              }
            },
            "required": [
              "ticker",
              "interval"
            ],
            "type": "object"
          }
        },
        {
          "name": "get_sample",
          "description": "FREE, no payment: real intraday OHLCV bars for AAPL on 2024-01-02, identical in shape to a paid query. Call this first to verify data quality before spending. Takes no arguments — fixed ticker and date.",
          "inputSchema": {
            "properties": {},
            "type": "object"
          }
        },
        {
          "name": "get_pricing",
          "description": "Pricing and data coverage information. Free.",
          "inputSchema": {
            "properties": {},
            "type": "object"
          }
        },
        {
          "name": "get_stats",
          "description": "Platform statistics. Free.",
          "inputSchema": {
            "properties": {},
            "type": "object"
          }
        }
      ]
    },
    "name": "Cabrini Market Data",
    "note": "Indexed from the official MCP registry: facts and our own checks, not reviewed, so no score, grade or rank.",
    "packages": null,
    "pageJsonUrl": "https://www.anchorterminal.com/tools/cabrini-market-data.json",
    "popularity": {
      "githubStars": 1
    },
    "registryName": "ai.cabrini/market-data",
    "remotes": [
      {
        "type": "streamable-http",
        "url": "https://cabrini.ai/mcp"
      }
    ],
    "repository": "https://github.com/nlapi/cabrini-py",
    "reviewed": false,
    "slug": "cabrini-market-data",
    "source": "the official MCP registry",
    "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers?search=ai.cabrini/market-data",
    "summary": "US equity data for AI agents — 23 years intraday + daily, SEC filings. x402 USDC payments.",
    "updatedAt": "2026-07-29T17:12:49Z",
    "url": "https://www.anchorterminal.com/tools/cabrini-market-data",
    "vendor": "cabrini.ai",
    "vendorUrl": "https://cabrini.ai",
    "version": "1.1.0",
    "websiteUrl": "",
    "where": "hosted",
    "why": [
      "vendor"
    ]
  }
}
