TILLA - market data on one clock

Aligned market data for AI agents: crypto, stocks, FX and macro on one clock. Local or hosted.

¿Debería usar esto?

Calidad y seguridad

B
Calidad de la descripción
91%
Integridad del esquema
49%
Calidad de los nombres
80%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (4)

  • LOWTool 'tilla_tiers' description lacks action verben tilla_tiers
  • LOWTool 'tilla_latest' description lacks action verben tilla_latest
  • LOWTool 'tilla_markets' description lacks action verben tilla_markets
  • LOWTool 'tilla_health' description lacks action verben tilla_health

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~2,089Tokens (definiciones de herramientas)
~542 BTamaño de respuesta típico
Impacto moderado en la atención (1.63% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "tilla-mcp": {
      "command": "uvx",
      "args": [
        "tilla-mcp"
      ]
    }
  }
}

Paquetes ejecutables

pypitilla-mcp2.0.2stdio

Puntos de conexión remotos

https://mcp.tillacrypto.com/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (14)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢tilla_about

What TILLA is, who it's for, and how to start. No API key needed.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "title": "tilla_aboutArguments"
}
🟢tilla_status

The newest 1-minute bar and the tiers served. No API key needed.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "title": "tilla_statusArguments"
}
🟢tilla_tiers

The public plans: price, history cap, request limits and size. No API key needed.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "title": "tilla_tiersArguments"
}
🟢tilla_inventory(layer, lane)

Exactly what the caller's key holds. No arguments: every lane per layer with its series count. layer=raw|derived|node and lane=1min|hour|daily|...: every series name there. Call this before tilla_latest / tilla_window and use the names it returns. Needs TILLA_API_KEY.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "layer": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Layer"
    },
    "lane": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Lane"
    }
  },
  "title": "tilla_inventoryArguments"
}
🟢tilla_window(series, layer, lane, start, end, ...)

A window of bars. Name exactly what you want, one of: `series` = comma-separated names (at most 200) from tilla_inventory, or a pattern like 'btc_*' / '*_close'; or `markets` + `fields` ('btc,eth' + 'close,volume' -> btc_close, btc_volume, eth_close, eth_volume). layer = raw | derived | node | deep; lane = 1min, 5min, hour, daily, ... start/end = 'YYYY-MM-DD[ HH:MM[:SS]]' UTC inclusive, or period = 30d 2m 6m 1y all; no start = the newest bars. limit <= 50000. When `more` is true, call again with start = `next_start`. Needs TILLA_API_KEY.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "series": {
      "default": null,
      "title": "series",
      "type": "string"
    },
    "layer": {
      "default": "raw",
      "title": "Layer",
      "type": "string"
    },
    "lane": {
      "default": "1min",
      "title": "Lane",
      "type": "string"
    },
    "start": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Start"
    },
    "end": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "End"
    },
    "limit": {
      "default": 1000,
      "title": "Limit",
      "type": "integer"
    },
    "period": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Period"
    },
    "markets": {
      "default": null,
      "title": "markets",
      "type": "string"
    },
    "fields": {
      "default": null,
      "title": "fields",
      "type": "string"
    }
  },
  "title": "tilla_windowArguments"
}
🟢tilla_latest(series, layer, lane)

The newest bar of the named series on one lane. Needs TILLA_API_KEY.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "series": {
      "title": "series",
      "type": "string"
    },
    "layer": {
      "default": "raw",
      "title": "Layer",
      "type": "string"
    },
    "lane": {
      "default": "1min",
      "title": "Lane",
      "type": "string"
    }
  },
  "required": [
    "series"
  ],
  "title": "tilla_latestArguments"
}
🟢tilla_usage

The caller's plan and budget right now: tier, history days, limits, used today. Needs TILLA_API_KEY.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "title": "tilla_usageArguments"
}
🟢tilla_markets

Every market TILLA carries - crypto, US stocks and ETFs, FX, macro - with its category, its related markets, how many series each plan holds of it, and its lanes. No API key needed. Use the `id` with tilla_market.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "title": "tilla_marketsArguments"
}
🟢tilla_market(market, lane, layer, related, period, ...)

One market in one call: every series of `market` (an id from tilla_markets, e.g. btc, nvda, eurusd, gold) the key holds on `lane`, on one clock. layer = raw | derived | node | deep | all. related=True adds its connected markets (btc: its ETFs and miners). period = 1d 7d 30d 2m 3m 6m 1y 2y 3y all. At most 200 columns an answer: `series_next_offset` names the next page. Needs TILLA_API_KEY.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "market": {
      "title": "Market",
      "type": "string"
    },
    "lane": {
      "default": "1min",
      "title": "Lane",
      "type": "string"
    },
    "layer": {
      "default": "raw",
      "title": "Layer",
      "type": "string"
    },
    "related": {
      "default": false,
      "title": "Related",
      "type": "boolean"
    },
    "period": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Period"
    },
    "limit": {
      "default": 500,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "market"
  ],
  "title": "tilla_marketArguments"
}
🟢tilla_sample(tier)

The free sample of one plan (free, builder, pro or max), no key needed: how many series it holds on every lane, and one aligned 1-minute row of real values. The full one-tick files are at /v1/sample/<tier>.csv and .db (named in the answer's `files`).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "tier": {
      "default": "free",
      "title": "Tier",
      "type": "string"
    }
  },
  "title": "tilla_sampleArguments"
}
🟢tilla_health

The newest bar of every lane on every layer - is the data current? No API key needed.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "title": "tilla_healthArguments"
}
🟢tilla_docs

The whole API manual in one call, no key needed: every call, every parameter, every plan, how paging, tick, resume, changes and bulk work. Read this first when you need to know how to do anything.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "title": "tilla_docsArguments"
}
🟢tilla_tick(at, lanes)

Your whole plan, live, in one call: every series the key holds on every lane that closed at a boundary (`at` = 'YYYY-MM-DD HH:MM', default the minute just closed). Per lane: bar, complete, series, values. Needs a key.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "At"
    },
    "lanes": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Lanes"
    }
  },
  "title": "tilla_tickArguments"
}
🟢tilla_changes(since)

Every value our checks repaired since `since` ('YYYY-MM-DD HH:MM:SS') that the key holds, with its value now - apply them and a kept copy stays correct. Pass the answer's `until` as the next since. Needs a key.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "since": {
      "title": "Since",
      "type": "string"
    }
  },
  "required": [
    "since"
  ],
  "title": "tilla_changesArguments"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada14 herramientas