addrbookFor publishers
← The evidence ledger

Evidence row 1823753

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 8c0bd184-f7db-42c2-a30e-0868996f49aa
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
d0beab51447b904c3ecdf30c7c3b6d923722a3b2ba59fae3c0b1baba6155f2dd
Leaf
0xef6309a4565986263bd1ff80120267645f1fd9dc821b9e971f8e74aac4d4c8e9

What was observed

{
  "count": 14,
  "tools": [
    {
      "description": "What TILLA is, who it's for, and how to start. No API key needed.",
      "inputSchema": {
        "properties": {},
        "title": "tilla_aboutArguments",
        "type": "object"
      },
      "name": "tilla_about"
    },
    {
      "description": "Every value our checks repaired since `since` ('YYYY-MM-DD HH:MM:SS') that the key holds, with its value now -\napply them and a kept copy stays correct. Pass the answer's `until` as the next since. Needs a key.",
      "inputSchema": {
        "properties": {
          "since": {
            "title": "Since",
            "type": "string"
          }
        },
        "required": [
          "since"
        ],
        "title": "tilla_changesArguments",
        "type": "object"
      },
      "name": "tilla_changes"
    },
    {
      "description": "The whole API manual in one call, no key needed: every call, every parameter, every plan, how paging, tick,\nresume, changes and bulk work. Read this first when you need to know how to do anything.",
      "inputSchema": {
        "properties": {},
        "title": "tilla_docsArguments",
        "type": "object"
      },
      "name": "tilla_docs"
    },
    {
      "description": "The newest bar of every lane on every layer - is the data current? No API key needed.",
      "inputSchema": {
        "properties": {},
        "title": "tilla_healthArguments",
        "type": "object"
      },
      "name": "tilla_health"
    },
    {
      "description": "Exactly what the caller's key holds. No arguments: every lane per layer with its series\ncount. layer=raw|derived|node and lane=1min|hour|daily|...: every series name there. Call\nthis before tilla_latest / tilla_window and use the names it returns. Needs TILLA_API_KEY.",
      "inputSchema": {
        "properties": {
          "lane": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Lane"
          },
          "layer": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Layer"
          }
        },
        "title": "tilla_inventoryArguments",
        "type": "object"
      },
      "name": "tilla_inventory"
    },
    {
      "description": "The newest bar of the named series on one lane. Needs TILLA_API_KEY.",
      "inputSchema": {
        "properties": {
          "lane": {
            "default": "1min",
            "title": "Lane",
            "type": "string"
          },
          "layer": {
            "default": "raw",
            "title": "Layer",
            "type": "string"
          },
          "series": {
            "title": "series",
            "type": "string"
          }
        },
        "required": [
          "series"
        ],
        "title": "tilla_latestArguments",
        "type": "object"
      },
      "name": "tilla_latest"
    },
    {
      "description": "One market in one call: every series of `market` (an id from tilla_markets, e.g. btc, nvda, eurusd, gold) the\nkey holds on `lane`, on one clock. layer = raw | derived | node | deep | all. related=True adds its connected\nmarkets (btc: its ETFs and miners). period = 1d 7d 30d 2m 3m 6m 1y 2y 3y all. At most 200 columns an answer:\n`series_next_offset` names the next page. Needs TILLA_API_KEY.",
      "inputSchema": {
        "properties": {
          "lane": {
            "default": "1min",
            "title": "Lane",
            "type": "string"
          },
          "layer": {
            "default": "raw",
            "title": "Layer",
            "type": "string"
          },
          "limit": {
            "default": 500,
            "title": "Limit",
            "type": "integer"
          },
          "market": {
            "title": "Market",
            "type": "string"
          },
          "period": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Period"
          },
          "related": {
            "default": false,
            "title": "Related",
            "type": "boolean"
          }
        },
        "required": [
          "market"
        ],
        "title": "tilla_marketArguments",
        "type": "object"
      },
      "name": "tilla_market"
    },
    {
      "description": "Every market TILLA carries - crypto, US stocks and ETFs, FX, macro - with its category, its related markets,\nhow many series each plan holds of it, and its lanes. No API key needed. Use the `id` with tilla_market.",
      "inputSchema": {
        "properties": {},
        "title": "tilla_marketsArguments",
        "type": "object"
      },
      "name": "tilla_markets"
    },
    {
      "description": "The free sample of one plan (free, builder, pro or max), no key needed: how many series it holds on every\nlane, and one aligned 1-minute row of real values. The full one-tick files are at /v1/sample/<tier>.csv and\n.db (named in the answer's `files`).",
      "inputSchema": {
        "properties": {
          "tier": {
            "default": "free",
            "title": "Tier",
            "type": "string"
          }
        },
        "title": "tilla_sampleArguments",
        "type": "object"
      },
      "name": "tilla_sample"
    },
    {
      "description": "The newest 1-minute bar and the tiers served. No API key needed.",
      "inputSchema": {
        "properties": {},
        "title": "tilla_statusArguments",
        "type": "object"
      },
      "name": "tilla_status"
    },
    {
      "description": "Your whole plan, live, in one call: every series the key holds on every lane that closed at a boundary (`at` =\n'YYYY-MM-DD HH:MM', default the minute just closed). Per lane: bar, complete, series, values. Needs a key.",
      "inputSchema": {
        "properties": {
          "at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "At"
          },
          "lanes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Lanes"
          }
        },
        "title": "tilla_tickArguments",
        "type": "object"
      },
      "name": "tilla_tick"
    },
    {
      "description": "The public plans: price, history cap, request limits and size. No API key needed.",
      "inputSchema": {
        "properties": {},
        "title": "tilla_tiersArguments",
        "type": "object"
      },
      "name": "tilla_tiers"
    },
    {
      "description": "The caller's plan and budget right now: tier, history days, limits, used today. Needs TILLA_API_KEY.",
      "inputSchema": {
        "properties": {},
        "title": "tilla_usageArguments",
        "type": "object"
      },
      "name": "tilla_usage"
    },
    {
      "description": "A window of bars. Name exactly what you want, one of: `series` = comma-separated names (at most 200) from\ntilla_inventory, or a pattern like 'btc_*' / '*_close'; or `markets` + `fields` ('btc,eth' + 'close,volume' ->\nbtc_close, btc_volume, eth_close, eth_volume). layer = raw | derived | node | deep; lane = 1min, 5min, hour,\ndaily, ... start/end = 'YYYY-MM-DD[ HH:MM[:SS]]' UTC inclusive, or period = 30d 2m 6m 1y all; no start = the\nnewest bars. limit <= 50000. When `more` is true, call again with start = `next_start`. Needs TILLA_API_KEY.",
      "inputSchema": {
        "properties": {
          "end": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "End"
          },
          "fields": {
            "default": null,
            "title": "fields",
            "type": "string"
          },
          "lane": {
            "default": "1min",
            "title": "Lane",
            "type": "string"
          },
          "layer": {
            "default": "raw",
            "title": "Layer",
            "type": "string"
          },
          "limit": {
            "default": 1000,
            "title": "Limit",
            "type": "integer"
          },
          "markets": {
            "default": null,
            "title": "markets",
            "type": "string"
          },
          "period": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Period"
          },
          "series": {
            "default": null,
            "title": "series",
            "type": "string"
          },
          "start": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Start"
          }
        },
        "title": "tilla_windowArguments",
        "type": "object"
      },
      "name": "tilla_window"
    }
  ]
}

What the leaf hashes

{"body":"d0beab51447b904c3ecdf30c7c3b6d923722a3b2ba59fae3c0b1baba6155f2dd","id":1823753,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793565509852422,"prev":null,"subject":"8c0bd184-f7db-42c2-a30e-0868996f49aa","subject_kind":"endpoint"}

Proof

Its day has not closed yet. A day closes ten minutes after midnight UTC; the proof appears here then.

How to check it · This row as JSON