TILLA - market data on one clock

io.github.TillaCryptoPublished by GitHub account TillaCryptov2.0.3Updated Nov 5, 2026

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

VerifiedStreamable HTTPWeb executableFinanceData & Analytics

Overview

AI-generated overview

TILLA gives an assistant read-only access to aligned crypto, US stock, ETF, FX and macro market data on one UTC clock, locally or hosted.

What you can do
  • Discover the catalog: list every market with categories and related markets, and see plans, tiers and free samples
  • Check data freshness: newest 1-minute bar, per-lane health, and the newest bar of named series
  • Read series data: inventory of the series a key holds, latest bars, and paged windows of bars by name or pattern
  • Pull a whole market at once, optionally with its related markets, over a chosen period
  • Fetch the full plan tick for the minute just closed, repaired values since a timestamp, and current usage and budget
  • Read the API manual and server overview in a single call
When to use it
Useful when an assistant needs quantitative market context across crypto, equities, FX and macro on a common clock, for example comparing BTC price with spot ETF flows or putting NVDA and BTC on one chart. The free tools also let you explore the catalog and sample data before committing to a key.
Requirements
Either the hosted streamable HTTP endpoint or a local install via pip or uvx (Python, with the mcp SDK and httpx). Keyed tools need a TILLA API key, supplied as TILLA_API_KEY locally or the X-API-Key header when hosted; a free key is available. Network access to the TILLA API is required.
Before you install
The API key is a credential: keep it in TILLA_API_KEY or the X-API-Key header and avoid putting it in URLs where it may be logged. Keyed tools consume plan request budgets, and 403 or 429 responses mean the data is outside the plan or a limit was hit. All tools are read-only and do not trade or touch wallets, but queries and keys go to a third-party API.

Installation

In SourceWeft

  1. Open TILLA - market data on one clock in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.TillaCrypto%2Ftilla-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "tilla-market-data-on-one-clock": {
      "type": "http",
      "url": "https://mcp.tillacrypto.com/mcp"
    }
  }
}

README

TILLA MCP server

Aligned market data for quants and AI: crypto, stocks, FX and macro on one clock - straight into your AI agent.

3,854280,67545 · 33 · 44 · 231-minute to quarterly
raw datapointsindicators, no look-aheadcrypto · US stocks/ETFs · FX · spot ETFshourly history from 2017

TILLA serves crypto spot and derivatives, US stocks and ETFs, FX, rates, macro, every Bitcoin and Ether spot ETF fund by fund, and blocks, mempool and fees from our own Bitcoin node - every value on one UTC clock.

This is the official Model Context Protocol server: 14 read-only tools for Claude, Cursor or any MCP client. Free key, no card - or no install at all with the hosted server https://mcp.tillacrypto.com/mcp.

Connect in 30 seconds

  1. Get a free API key at https://tillacrypto.com (no card), or POST https://api.tillacrypto.com/v1/demo_key for one with no account.
  2. Add the server to your MCP client.

Claude Desktop / Claude Code / Cursor (local, stdio)

pip install tilla-mcp
jsonc
{  "mcpServers": {    "tilla": {      "command": "tilla-mcp",      "env": { "TILLA_API_KEY": "tk_live_your_key_here" }    }  }}

With uv, nothing to install: "command": "uvx", "args": ["tilla-mcp"]. Or run this folder's file directly: pip install "mcp>=1.9,<2" httpx, then "command": "python", "args": ["/path/to/tilla_mcp.py"].

Hosted - nothing to install

https://mcp.tillacrypto.com/mcp (streamable HTTP). Each caller sends their own key: X-API-Key: <key>, or Authorization: Bearer <key>, or ?key=<key> on the URL. Without a key the free tools still answer.

json
{ "mcpServers": { "tilla": { "url": "https://mcp.tillacrypto.com/mcp", "headers": { "X-API-Key": "tk_live_..." } } } }

Run your own over HTTP

bash
TILLA_MCP_TRANSPORT=http python tilla_mcp.py# serves MCP over http://127.0.0.1:8971/mcp; each request carries its own key as above

Tools

Every tool calls a real route of the API (TOOL_ROUTES in tilla_mcp.py names it).

ToolKey?What it doesAPI call
tilla_aboutnoWhat TILLA is and how to start-
tilla_statusnoThe newest 1-minute bar and the tiers servedGET /v1/status
tilla_tiersnoThe public plans: price, history cap, limits, sizeGET /v1/tiers
tilla_inventoryyesExactly which series the key holds, per layer and lane (call this first)GET /v1/inventory
tilla_latestyesThe newest bar of named series on one laneGET /v1/<tier>/<layer>/<lane>
tilla_windowyesA range of bars; page with next_start while more is trueGET /v1/<tier>/<layer>/<lane>
tilla_usageyesThe key's plan and budget right nowGET /v1/usage
tilla_marketsnoEvery market, its category and related marketsGET /v1/markets
tilla_marketyesOne market (and optionally its related ones) on one clockGET /v1/<tier>/market/<id>
tilla_samplenoThe free sample of a plan: series per lane + one real rowGET /v1/sample/<tier>
tilla_healthnoThe newest bar of every lane - is the data currentGET /v1/health
tilla_docsnoThe whole API manual in one callGET /llms-full.txt + GET /v1
tilla_tickyesEvery series the key holds for the bar that just closed, one callGET /v1/<tier>/tick
tilla_changesyesEvery value repaired since a time, so a kept copy stays correctGET /v1/<tier>/changes

Resources: tilla://about, tilla://tiers.

Config (env)

VarDefaultMeaning
TILLA_API_KEY-Your tk_live_... key (needed for keyed tools)
TILLA_API_BASEhttps://api.tillacrypto.comAPI base (dev: http://127.0.0.1:8898)
TILLA_MCP_TRANSPORTstdiostdio (local) or http (remote)
TILLA_MCP_HOST / TILLA_MCP_PORT127.0.0.1 / 8971HTTP bind

Safe by design

  • Read-only: every tool is an HTTPS GET to api.tillacrypto.com (or tillacrypto.com for the docs). No tool writes a file, runs a command, places a trade or touches a wallet.
  • Your key is read from TILLA_API_KEY and sent only to the TILLA API, never logged or returned to the agent.
  • HTTP mode binds to 127.0.0.1 unless you set TILLA_MCP_HOST yourself.
  • Two dependencies, both standard: the official mcp SDK and httpx.

Notes for the agent

  • Call tilla_inventory before naming a series - never guess a series name.
  • A window with no start returns the newest bars; with a start, page forward with next_start until more is false.
  • 403 means the key or the data is outside the plan; 429 means a minute or day budget was hit, and retry_after_seconds says when to try again.
  • An empty value is real: a closed market carries its last print, but an open market with no print (and a derived value with no mathematical answer) is left empty, never invented.

MIT licensed. Data access governed by the TILLA plan terms.

Source: mcp/README.md at commit adb30ad

Tools

14

tilla_about

About TILLA

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

Takes no parameters.

tilla_status

Feed status

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

Takes no parameters.

tilla_tiers

Plans and limits

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

Takes no parameters.

tilla_inventory

Series this key holds

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 your API key (hosted: the X-API-Key header; local: TILLA_API_KEY).

Parameterslanelayer

tilla_window

Bars in a time range

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 your API key (hosted: the X-API-Key header; local: TILLA_API_KEY).

Parametersendlanelayerlimitstartfieldsperiodseriesmarkets

tilla_latest

Latest bar

The newest bar of the named series on one lane. Needs your API key (hosted: the X-API-Key header; local: TILLA_API_KEY).

Parameterslanelayerseriesrequired

tilla_usage

Plan and budget

The caller's plan and budget right now: tier, history days, limits, used today. Needs your API key (hosted: the X-API-Key header; local: TILLA_API_KEY).

Takes no parameters.

tilla_markets

Every market

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.

Takes no parameters.

tilla_market

One whole market

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 your API key (hosted: the X-API-Key header; local: TILLA_API_KEY).

Parameterslanelayerlimitmarketrequiredperiodrelated

tilla_sample

Free sample of a plan

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`).

Parameterstier

tilla_health

Is every lane current

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

Takes no parameters.

tilla_docs

The API manual

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.

Takes no parameters.

tilla_tick

Everything that just closed

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.

Parametersatlanes

tilla_changes

Corrections since a time

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.

Parameterssincerequired

Version history

4
  1. v2.0.3LatestNov 5, 2026
  2. v2.0.2Nov 1, 2026
  3. v2.0.1Oct 31, 2026
  4. v2.0.0Oct 31, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts