# Reference Data Tools Use the reference data tools to look up OneTick database metadata — available databases, tick type schemas, field definitions, and market calendar information. Each tool reads from a tab-separated file in `CSV_DATA_PATH`; pass filters to narrow results and get back structured rows. ## Tool descriptions | MCP Tool | When to use | |-------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------| | `list_databases` | List available OneTick databases. Use to discover what databases exist beforequerying. | | `db_tables` | List the tick types (tables) a database contains, or look up what a tick type means.See `Tool behavior` for the two modes. | | `db_table_schemas` | Get the fields and their data types for a specific database and tick type combination.Use when you need the exact schema of a table. | | `db_field_descriptions` | Get generic field definitions for a tick type, independent of any specific database.Use when you need the meaning of a field rather than its schema. | | `db_field_enumerations` | Decode enumerated field values. Use when a numeric or string code in a result needsa human-readable label. | | `calendar_holidays` | Look up market closure dates for a database. Use when checking whether a given dateis a trading holiday. | | `trading_hours` | Look up trading session names and open/close times for a database. Use whendetermining when a market is open. | ## Data source All tools read from the directory pointed to by `CSV_DATA_PATH`. OneTick Cloud users get the bundled coverage files out of the box (see `Download documentation sources`). For on-prem and custom deployments, see `Custom Reference Data`. The server looks for these exact filenames in `CSV_DATA_PATH`: | MCP Tool | Filename | Description | |-------------------------|--------------------------------------------------------------|---------------------------------------------------------------------------------| | `list_databases` | `db_list.txt` | Available databases and their attributes | | `db_field_descriptions` | `db_field_descriptions.txt` | Generic field definitions per tick type | | `db_field_enumerations` | `db_field_enumerations.txt` | Code-to-value mappings for enumerated fields | | `db_table_schemas` | `db_tick_type_schemas.txt` | Fields and data types for a specific database and tick type | | `db_tables` | `db_tick_type_descriptions.txt` / `db_tick_type_schemas.txt` | Tick types in a database, or the meaning of a tick type (see `Tool behavior`) | | `calendar_holidays` | `mkt_cal_holidays.txt` | Market closure dates per database | | `trading_hours` | `mkt_cal_trading_hours.txt` | Trading session names and open/close times per database | ## Tool behavior **Result size.** Every tool accepts a `limit` (default `10`, capped at `50`). When more rows match than are shown, the result includes the total count and asks the model to **narrow the query with filters** rather than to request a higher limit (a larger result would exceed the MCP client’s tool-result size cap). To see different rows, add or tighten filters. **Find by meaning (concept search).** When you don’t know the name of the field, tick type, or database you’re after, but you know the concept, pass `description_query`. It searches the description text and ranks the most direct match first (exact, then starts-with, then phrase, then keywords), so the primary entry ranks above a similarly-named one. Available on: * `db_field_descriptions` — e.g. `description_query='settlement price'` returns `SETTLE_PRICE` (ranked above the near-name `SETTLE_PRICE_TYPE`). `tick_type` is optional here — omit it to search across all tick types. * `db_tables` — e.g. `description_query='daily statistics'` finds the matching tick type; combine with `db_name` to search within one database’s tables. * `list_databases` — e.g. `description_query='crypto derivatives'` matches the database description; combine with the structured filters. `db_tables` **has two modes.** * With `db_name` — lists the tables (tick types) that database contains, from `db_tick_type_schemas.txt` (exact, case-insensitive match, so `CME_GLOBEX` does not also return `CME_GLOBEX_BARS`). Use this for “what tables/tick types does have?”. * With `tick_type` only — returns the human-readable description of that tick type from the glossary. Use this for “what does the `DAY` tick type mean?”. **Choosing between the schema/field tools.** * `db_table_schemas` is **database-scoped** — the actual fields/columns of a specific database’s table (`db_name` + `tick_type`), e.g. “list the fields in the CME `DAY` table”. * `db_field_descriptions` is **generic** — the db-agnostic *meaning* of fields for a tick type, not tied to any one database. ## File format All files are tab-separated with a `.txt` extension. The first row is a header; subsequent rows are data. Some files include an optional type annotation on column names separated by a space (e.g. `DB_NAME string[128]`); the server uses only the part before the first space for filtering. ## File schemas ### db_list.txt | Column | Type | Notes | |----------------|----------------|-------------------------------------| | `PUBLIC` | `string[1]` | `Y`/`N` — publicly visible | | `DB_CATEGORY` | `string[32]` | e.g. `EXCHANGE - DERIVATIVES` | | `DATASET` | `string[128]` | Dataset identifier | | `DB_NAME` | `string[128]` | Database name used in queries | | `DB_TYPE` | `string[64]` | e.g. `Tick Data` | | `EXCHANGE` | `string[128]` | Exchange name | | `DATASET_DESC` | `string[1024]` | Human-readable description | | `MIC` | `string[512]` | Market Identifier Code | | `COUNTRY` | | ISO country code | | `COUNTRY_NAME` | `string[256]` | | | `STARTDATE` | | `YYYYMMDD` | | `REAL_TIME` | `string[1]` | `Y`/`N` | | `BARS` | `string[1]` | `Y`/`N` | | `BOOK_DEPTH` | `string[1]` | `Y`/`N` | | `TIME_ZONE` | `string[32]` | IANA tz name, e.g. `Asia/Singapore` | | `MARKET_HOURS` | `string[12]` | `HH:MM-HH:MM` | | `EQUITIES` | `string[1]` | `Y`/`N` | | `FUTURES` | `string[1]` | `Y`/`N` | | `OPTIONS` | `string[1]` | `Y`/`N` | | `SPREADS` | `string[1]` | `Y`/`N` | | `INDICES` | `string[1]` | `Y`/`N` | | `FX` | `string[1]` | `Y`/`N` | Example: ``` PUBLIC DB_CATEGORY DATASET DB_NAME DB_TYPE EXCHANGE DATASET_DESC MIC COUNTRY COUNTRY_NAME STARTDATE REAL_TIME BARS BOOK_DEPTH TIME_ZONE MARKET_HOURS EQUITIES FUTURES OPTIONS SPREADS INDICES FX Y EXCHANGE - DERIVATIVES ABAXX ABAXX Tick Data Abaxx Exchange Abaxx Exchange derivatives data XABX SG Singapore 20250818 N N N Asia/Singapore 10:00-24:00 N Y N Y N N ``` ### db_field_descriptions.txt | Column | Notes | |---------------|--------------------------------| | `FIELD` | Field name | | `TICK_TYPE` | Tick type the field belongs to | | `DESCRIPTION` | Human-readable description | Example: ``` FIELD TICK_TYPE DESCRIPTION BID_PRICE QUOTE Best bid price ``` ### db_field_enumerations.txt | Column | Notes | |---------------|------------------------| | `DB` | Database name | | `FIELD` | Field name | | `VALUE` | Numeric or string code | | `DESCRIPTION` | What the code means | Example: ``` DB FIELD VALUE DESCRIPTION NYSE COND A Regular Trade ``` ### db_tick_type_schemas.txt | Column | Notes | |---------------|-------------------------------------| | `FIELD_NAME` | Field name | | `TYPE_FOR_EP` | Data type, e.g. `uint`, `string[8]` | | `DB_NAME` | Database name | | `TICK_TYPE` | Tick type | Example: ``` FIELD_NAME TYPE_FOR_EP DB_NAME TICK_TYPE PRICE double NYSE TRADE ``` ### db_tick_type_descriptions.txt | Column | Notes | |-------------------------|----------------------------| | `TICK_TYPE_NAME` | Tick type identifier | | `TICK_TYPE_DESCRIPTION` | Human-readable description | Example: ``` TICK_TYPE_NAME TICK_TYPE_DESCRIPTION TRADE Executed trade with price, size, and conditions ``` ### mkt_cal_holidays.txt Has an unnamed index column as the first column. | Column | Notes | |-----------------|---------------------| | `DB_NAME` | Database name | | `ACTIVITY_NAME` | e.g. `Full Holiday` | | `TIME_ZONE` | IANA tz name | | `START_TIME` | `HH:MM` | | `END_TIME` | `HH:MM` | | `START_DATE` | `YYYY-MM-DD` | | `END_DATE` | `YYYY-MM-DD` | Example: ``` DB_NAME ACTIVITY_NAME TIME_ZONE START_TIME END_TIME START_DATE END_DATE 0 NYSE Full Holiday America/New_York 00:00 23:59 2025-01-01 2025-01-01 ``` ### mkt_cal_trading_hours.txt Has an unnamed index column as the first column. | Column | Notes | |--------------|-----------------------------| | `DB_NAME` | Database name | | `SESSION` | e.g. `PRE_MARKET`, `MARKET` | | `TIME_ZONE` | IANA tz name | | `START_TIME` | `HH:MM` | | `END_TIME` | `HH:MM` | Example: ``` DB_NAME SESSION TIME_ZONE START_TIME END_TIME 0 NYSE MARKET America/New_York 09:30 16:00 ```