{"data":{"slug":"pyth-pro-mcp-server","verdict":"passed","scannedAt":"2026-10-26T10:54:44.142Z","scannerVersion":"1.2.1","latest":{"id":"58028ca9-603f-4c60-9aec-74550a67c860","createdAt":"2026-10-26T10:54:44.142Z","version":"0.3.2","trigger":"changed","scannerVersion":"1.2.1","verdict":"passed","checks":[{"id":"hidden_instructions","status":"passed","findings":0,"label":"Hidden instructions"},{"id":"hidden_text","status":"passed","findings":0,"label":"Invisible text"},{"id":"sensitive_access","status":"passed","findings":0,"label":"Access to credentials"},{"id":"remote_code","status":"passed","findings":0,"label":"Downloads and runs code"},{"id":"exfiltration","status":"passed","findings":0,"label":"Sends data out"},{"id":"secrets","status":"passed","findings":0,"label":"Leaked secrets"}],"findings":[],"toolCount":6},"history":[{"id":"58028ca9-603f-4c60-9aec-74550a67c860","createdAt":"2026-10-26T10:54:44.142Z","version":"0.3.2","trigger":"changed","scannerVersion":"1.2.1","verdict":"passed","checks":[{"id":"hidden_instructions","status":"passed","findings":0,"label":"Hidden instructions"},{"id":"hidden_text","status":"passed","findings":0,"label":"Invisible text"},{"id":"sensitive_access","status":"passed","findings":0,"label":"Access to credentials"},{"id":"remote_code","status":"passed","findings":0,"label":"Downloads and runs code"},{"id":"exfiltration","status":"passed","findings":0,"label":"Sends data out"},{"id":"secrets","status":"passed","findings":0,"label":"Leaked secrets"}],"findings":[],"toolCount":6},{"id":"f87dcfb7-53c1-44b4-84e1-8623c6123fe1","createdAt":"2026-10-26T02:53:43.487Z","version":"0.3.2","trigger":"tools_changed","scannerVersion":"1.2.1","verdict":"passed","checks":[{"id":"hidden_instructions","status":"passed","findings":0,"label":"Hidden instructions"},{"id":"hidden_text","status":"passed","findings":0,"label":"Invisible text"},{"id":"sensitive_access","status":"passed","findings":0,"label":"Access to credentials"},{"id":"remote_code","status":"passed","findings":0,"label":"Downloads and runs code"},{"id":"exfiltration","status":"passed","findings":0,"label":"Sends data out"},{"id":"secrets","status":"passed","findings":0,"label":"Leaked secrets"}],"findings":[],"toolCount":6},{"id":"dd8ca5ad-b4be-40e3-bd5f-dd6d46604f5a","createdAt":"2026-10-25T23:23:22.948Z","version":"0.3.2","trigger":"new","scannerVersion":"1.2.1","verdict":"passed","checks":[{"id":"hidden_instructions","status":"passed","findings":0,"label":"Hidden instructions"},{"id":"hidden_text","status":"passed","findings":0,"label":"Invisible text"},{"id":"sensitive_access","status":"passed","findings":0,"label":"Access to credentials"},{"id":"remote_code","status":"passed","findings":0,"label":"Downloads and runs code"},{"id":"exfiltration","status":"passed","findings":0,"label":"Sends data out"},{"id":"secrets","status":"passed","findings":0,"label":"Leaked secrets"}],"findings":[],"toolCount":null}],"endpoint":{"url":"https://mcp.pyth.network/mcp","transport":"streamable-http","status":"ok","checkedAt":"2026-10-27T16:33:38.019Z","toolCount":6,"latencyMs":953,"error":null},"tools":[{"name":"convert_date_to_timestamp","title":"Convert Date to Timestamp","description":"Convert a date string to Unix timestamp for use with get_historical_price, get_price_range and get_candlestick_data. Use this tool when you need to compute timestamps — do not calculate Unix timestamps manually. Accepts ISO 8601 dates (e.g. '2026-01-01', '2026-01-01T12:00:00Z'). Returns seconds, microseconds, ISO 8601, and whether the date is within the available data range (April 2025 onward).","access":"read","accessDeclared":true,"hash":"0690ef819da92fbcb3c83a320825c7cc79cb1a3c491930c3a7156d7e75493705","inputSchema":"{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"additionalProperties\": false,\n  \"properties\": {\n    \"date_string\": {\n      \"description\": \"Date to convert. Must be ISO 8601 / RFC 3339 with timezone (e.g. '2026-01-01T00:00:00Z', '2026-01-01'). Bare dates without timezone are interpreted as UTC.\",\n      \"maxLength\": 64,\n      \"minLength\": 1,\n      \"type\": \"string\"\n    }\n  },\n  \"required\": [\n    \"date_string\"\n  ],\n  \"type\": \"object\"\n}"},{"name":"get_candlestick_data","title":"Get Candlestick Data","description":"Fetch OHLC candlestick bars for one symbol, for charting, technical analysis or backtesting. OHLC values are already human-readable (no exponent). Requires the user's own Pyth Pro access token. If the user configured it in their MCP client, omit `access_token`; otherwise pass it as `access_token`, and if the tool reports it missing, ask the user for it. Symbols can be full names from get_symbols (e.g. 'Crypto.BTC/USD', 'Equity.US.AAPL/USD') or bare pairs like 'BTC/USD'. A bare pair resolves to the live spot feed when there is one, otherwise to the only remaining live match; `resolved_symbols` in the response shows what each input resolved to, and an ambiguous input returns an error listing the candidates. `from` and `to` are Unix seconds only. Resolutions: 1/5/15/30/60 minutes, 120/240/360/720 (multi-hour), D (daily), W (weekly), M (monthly). At most 500 candles are returned; `truncated: true` means narrow the range or use a larger resolution. Historical data is available from April 2025 onward; do not request times before that. Price tools: get_latest_price for now, get_historical_price for one past instant, get_price_range for every update within up to 60 seconds, get_candlestick_data for OHLC bars over longer periods.\n\nTimestamp reference (Unix seconds):\n  2025-04-01 (earliest available) = 1743465600\n  2026-01-01 = 1767225600\n  2026-06-01 = 1780272000\nAlways double-check your timestamp math (year-boundary errors are common), or use convert_date_to_timestamp.","access":"read","accessDeclared":true,"hash":"418a9c3fdd04975d60976748f2203a4c5a3da7376706409b630ec26014da6696","inputSchema":"{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"additionalProperties\": false,\n  \"properties\": {\n    \"access_token\": {\n      \"description\": \"The user's own Pyth Pro access token. Omit it when the user configured one in their MCP client; a value here overrides that. Get one at https://docs.pyth.network/price-feeds/pro/acquire-api-key\",\n      \"minLength\": 1,\n      \"pattern\": \"^[\\\\x21-\\\\x7E]+$\",\n      \"type\": \"string\"\n    },\n    \"channel\": {\n      \"description\": \"Override the default channel (update rate): real_time, fixed_rate@50ms, fixed_rate@200ms, fixed_rate@1000ms. Must not be faster than the feed's min_channel.\",\n      \"enum\": [\n        \"real_time\",\n        \"fixed_rate@50ms\",\n        \"fixed_rate@200ms\",\n        \"fixed_rate@1000ms\"\n      ],\n      \"type\": \"string\"\n    },\n    \"from\": {\n      \"description\": \"Start time, Unix seconds only (not milliseconds)\",\n      \"exclusiveMinimum\": 0,\n      \"type\": \"integer\"\n    },\n    \"resolution\": {\n      \"description\": \"Candle size: 1, 5, 15, 30, 60 (minutes), 120, 240, 360, 720 (hours), D (daily), W (weekly), M (monthly)\",\n      \"enum\": [\n        \"1\",\n        \"5\",\n        \"15\",\n        \"30\",\n        \"60\",\n        \"120\",\n        \"240\",\n        \"360\",\n        \"720\",\n        \"D\",\n        \"W\",\n        \"M\"\n      ],\n      \"type\": \"string\"\n    },\n    \"symbol\": {\n      \"description\": \"One symbol from get_symbols (e.g. 'Crypto.BTC/USD', 'Equity.US.AAPL/USD') or a bare pair like 'BTC/USD'\",\n      \"minLength\": 1,\n      \"type\": \"string\"\n    },\n    \"to\": {\n      \"description\": \"End time, Unix seconds only (not milliseconds)\",\n      \"exclusiveMinimum\": 0,\n      \"type\": \"integer\"\n    }\n  },\n  \"required\": [\n    \"from\",\n    \"resolution\",\n    \"symbol\",\n    \"to\"\n  ],\n  \"type\": \"object\"\n}"},{"name":"get_historical_price","title":"Get Historical Price","description":"Get the price of one or more feeds at one past instant. Requires the user's own Pyth Pro access token. If the user configured it in their MCP client, omit `access_token`; otherwise pass it as `access_token`, and if the tool reports it missing, ask the user for it. Symbols can be full names from get_symbols (e.g. 'Crypto.BTC/USD', 'Equity.US.AAPL/USD') or bare pairs like 'BTC/USD'. A bare pair resolves to the live spot feed when there is one, otherwise to the only remaining live match; `resolved_symbols` in the response shows what each input resolved to, and an ambiguous input returns an error listing the candidates. If both price_feed_ids and symbols are provided, only price_feed_ids are used. The timestamp accepts Unix seconds, milliseconds or microseconds (auto-detected) and is rounded down to the channel rate (e.g. a multiple of 200 ms for fixed_rate@200ms). Historical data is available from April 2025 onward; do not request times before that. Requested feeds that return no price are listed in `missing_feed_ids` (e.g. beta or coming_soon feeds, or a channel faster than the feed's min_channel). Prices are integers with an exponent field: human-readable price = price * 10^exponent. Pre-computed display_* fields (display_price, display_bid, display_ask, display_confidence, display_ema_price, display_ema_confidence, display_funding_rate) apply the exponent for you. Price tools: get_latest_price for now, get_historical_price for one past instant, get_price_range for every update within up to 60 seconds, get_candlestick_data for OHLC bars over longer periods.\n\nTimestamp reference (Unix seconds):\n  2025-04-01 (earliest available) = 1743465600\n  2026-01-01 = 1767225600\n  2026-06-01 = 1780272000\nAlways double-check your timestamp math (year-boundary errors are common), or use convert_date_to_timestamp.","access":"read","accessDeclared":true,"hash":"61f5e2dd629f9cfee5eda01261e1f039e1ddcd6344e046560c17446cbbed51c1","inputSchema":"{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"additionalProperties\": false,\n  \"properties\": {\n    \"access_token\": {\n      \"description\": \"The user's own Pyth Pro access token. Omit it when the user configured one in their MCP client; a value here overrides that. Get one at https://docs.pyth.network/price-feeds/pro/acquire-api-key\",\n      \"minLength\": 1,\n      \"pattern\": \"^[\\\\x21-\\\\x7E]+$\",\n      \"type\": \"string\"\n    },\n    \"channel\": {\n      \"description\": \"Override the default channel (update rate): real_time, fixed_rate@50ms, fixed_rate@200ms, fixed_rate@1000ms. Must not be faster than the feed's min_channel.\",\n      \"enum\": [\n        \"real_time\",\n        \"fixed_rate@50ms\",\n        \"fixed_rate@200ms\",\n        \"fixed_rate@1000ms\"\n      ],\n      \"type\": \"string\"\n    },\n    \"price_feed_ids\": {\n      \"description\": \"Numeric feed IDs (pyth_lazer_id) from get_symbols. Max 50.\",\n      \"items\": {\n        \"exclusiveMinimum\": 0,\n        \"type\": \"integer\"\n      },\n      \"maxItems\": 50,\n      \"type\": \"array\"\n    },\n    \"symbols\": {\n      \"description\": \"Symbols from get_symbols (e.g. ['Crypto.BTC/USD', 'Equity.US.AAPL/USD']) or bare pairs like 'BTC/USD'. Max 50.\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"maxItems\": 50,\n      \"type\": \"array\"\n    },\n    \"timestamp\": {\n      \"description\": \"The instant to look up. Unix seconds, milliseconds or microseconds (auto-detected by magnitude).\",\n      \"exclusiveMinimum\": 0,\n      \"type\": \"number\"\n    }\n  },\n  \"required\": [\n    \"timestamp\"\n  ],\n  \"type\": \"object\"\n}"},{"name":"get_latest_price","title":"Get Latest Price","description":"Get the most recent real-time price for one or more feeds. Requires the user's own Pyth Pro access token. If the user configured it in their MCP client, omit `access_token`; otherwise pass it as `access_token`, and if the tool reports it missing, ask the user for it. Symbols can be full names from get_symbols (e.g. 'Crypto.BTC/USD', 'Equity.US.AAPL/USD') or bare pairs like 'BTC/USD'. A bare pair resolves to the live spot feed when there is one, otherwise to the only remaining live match; `resolved_symbols` in the response shows what each input resolved to, and an ambiguous input returns an error listing the candidates. If both price_feed_ids and symbols are provided, only price_feed_ids are used. Requested feeds that return no price are listed in `missing_feed_ids` (e.g. beta or coming_soon feeds, or a channel faster than the feed's min_channel). Prices are integers with an exponent field: human-readable price = price * 10^exponent. Pre-computed display_* fields (display_price, display_bid, display_ask, display_confidence, display_ema_price, display_ema_confidence, display_funding_rate) apply the exponent for you. Price tools: get_latest_price for now, get_historical_price for one past instant, get_price_range for every update within up to 60 seconds, get_candlestick_data for OHLC bars over longer periods.","access":"read","accessDeclared":true,"hash":"ec6f38f67701c6e011652f9d362b0d00936c8f3cf46f99992f51bb3f88e99464","inputSchema":"{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"additionalProperties\": false,\n  \"properties\": {\n    \"access_token\": {\n      \"description\": \"The user's own Pyth Pro access token. Omit it when the user configured one in their MCP client; a value here overrides that. Get one at https://docs.pyth.network/price-feeds/pro/acquire-api-key\",\n      \"minLength\": 1,\n      \"pattern\": \"^[\\\\x21-\\\\x7E]+$\",\n      \"type\": \"string\"\n    },\n    \"channel\": {\n      \"description\": \"Override the default channel (update rate): real_time, fixed_rate@50ms, fixed_rate@200ms, fixed_rate@1000ms. Must not be faster than the feed's min_channel.\",\n      \"enum\": [\n        \"real_time\",\n        \"fixed_rate@50ms\",\n        \"fixed_rate@200ms\",\n        \"fixed_rate@1000ms\"\n      ],\n      \"type\": \"string\"\n    },\n    \"price_feed_ids\": {\n      \"description\": \"Numeric feed IDs (pyth_lazer_id) from get_symbols. Max 100.\",\n      \"items\": {\n        \"exclusiveMinimum\": 0,\n        \"type\": \"integer\"\n      },\n      \"maxItems\": 100,\n      \"type\": \"array\"\n    },\n    \"properties\": {\n      \"description\": \"Properties to return: price, bestBidPrice, bestAskPrice, exponent, publisherCount, confidence, fundingRate, fundingTimestamp, fundingRateInterval, marketSession, emaPrice, emaConfidence, feedUpdateTimestamp. Default: price, bestBidPrice, bestAskPrice, exponent, publisherCount, confidence, marketSession, feedUpdateTimestamp. Use fundingRate, fundingTimestamp and fundingRateInterval for funding-rate feeds; emaPrice and emaConfidence for the exponential moving average.\",\n      \"items\": {\n        \"enum\": [\n          \"price\",\n          \"bestBidPrice\",\n          \"bestAskPrice\",\n          \"exponent\",\n          \"publisherCount\",\n          \"confidence\",\n          \"fundingRate\",\n          \"fundingTimestamp\",\n          \"fundingRateInterval\",\n          \"marketSession\",\n          \"emaPrice\",\n          \"emaConfidence\",\n          \"feedUpdateTimestamp\"\n        ],\n        \"type\": \"string\"\n      },\n      \"type\": \"array\"\n    },\n    \"symbols\": {\n      \"description\": \"Symbols from get_symbols (e.g. ['Crypto.BTC/USD', 'Equity.US.AAPL/USD']) or bare pairs like 'BTC/USD'. Max 100.\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"maxItems\": 100,\n      \"type\": \"array\"\n    }\n  },\n  \"type\": \"object\"\n}"},{"name":"get_price_range","title":"Get Price Range","description":"Get every price update for one or more feeds within a short historical window (at most 60 seconds), e.g. to see exactly how a price moved around an event. Requires the user's own Pyth Pro access token. If the user configured it in their MCP client, omit `access_token`; otherwise pass it as `access_token`, and if the tool reports it missing, ask the user for it. Symbols can be full names from get_symbols (e.g. 'Crypto.BTC/USD', 'Equity.US.AAPL/USD') or bare pairs like 'BTC/USD'. A bare pair resolves to the live spot feed when there is one, otherwise to the only remaining live match; `resolved_symbols` in the response shows what each input resolved to, and an ambiguous input returns an error listing the candidates. If both price_feed_ids and symbols are provided, only price_feed_ids are used. Rows are ordered by time and interleaved across feeds; a fixed_rate@200ms channel yields 5 rows per feed per second. When `has_more` is true, call again with `after` set to `next_cursor` and the same feeds, window and channel. Historical data is available from April 2025 onward; do not request times before that. Prices are integers with an exponent field: human-readable price = price * 10^exponent. Pre-computed display_* fields (display_price, display_bid, display_ask, display_confidence, display_ema_price, display_ema_confidence, display_funding_rate) apply the exponent for you. Price tools: get_latest_price for now, get_historical_price for one past instant, get_price_range for every update within up to 60 seconds, get_candlestick_data for OHLC bars over longer periods.","access":"read","accessDeclared":true,"hash":"25691f6c7c008f44a70d15bde41f36f47c0f3f597632c32fb89884c63e07025b","inputSchema":"{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"additionalProperties\": false,\n  \"properties\": {\n    \"access_token\": {\n      \"description\": \"The user's own Pyth Pro access token. Omit it when the user configured one in their MCP client; a value here overrides that. Get one at https://docs.pyth.network/price-feeds/pro/acquire-api-key\",\n      \"minLength\": 1,\n      \"pattern\": \"^[\\\\x21-\\\\x7E]+$\",\n      \"type\": \"string\"\n    },\n    \"after\": {\n      \"description\": \"Paging cursor: pass `next_cursor` from the previous response, with the same feeds, window and channel\",\n      \"minLength\": 1,\n      \"type\": \"string\"\n    },\n    \"channel\": {\n      \"description\": \"Override the default channel (update rate): real_time, fixed_rate@50ms, fixed_rate@200ms, fixed_rate@1000ms. Must not be faster than the feed's min_channel.\",\n      \"enum\": [\n        \"real_time\",\n        \"fixed_rate@50ms\",\n        \"fixed_rate@200ms\",\n        \"fixed_rate@1000ms\"\n      ],\n      \"type\": \"string\"\n    },\n    \"end\": {\n      \"description\": \"Window end, inclusive. Unix seconds, milliseconds or microseconds (auto-detected by magnitude). At most 60 seconds after `start`; equal to `start` for one instant.\",\n      \"exclusiveMinimum\": 0,\n      \"type\": \"number\"\n    },\n    \"limit\": {\n      \"default\": 100,\n      \"description\": \"Rows per page (default 100, max 500). Each row is one update for one feed.\",\n      \"maximum\": 500,\n      \"minimum\": 1,\n      \"type\": \"integer\"\n    },\n    \"price_feed_ids\": {\n      \"description\": \"Numeric feed IDs (pyth_lazer_id) from get_symbols. Max 50.\",\n      \"items\": {\n        \"exclusiveMinimum\": 0,\n        \"type\": \"integer\"\n      },\n      \"maxItems\": 50,\n      \"type\": \"array\"\n    },\n    \"start\": {\n      \"description\": \"Window start, inclusive. Unix seconds, milliseconds or microseconds (auto-detected by magnitude).\",\n      \"exclusiveMinimum\": 0,\n      \"type\": \"number\"\n    },\n    \"symbols\": {\n      \"description\": \"Symbols from get_symbols (e.g. ['Crypto.BTC/USD', 'Equity.US.AAPL/USD']) or bare pairs like 'BTC/USD'. Max 50.\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"maxItems\": 50,\n      \"type\": \"array\"\n    }\n  },\n  \"required\": [\n    \"end\",\n    \"start\"\n  ],\n  \"type\": \"object\"\n}"},{"name":"get_symbols","title":"List Pyth Price Feeds","description":"List available Pyth Pro price feeds. Use this FIRST to discover what feeds exist before calling get_latest_price, get_historical_price, get_price_range or get_candlestick_data (those also accept bare pairs like BTC/USD). Filter by asset_type (e.g. crypto, equity, fx, metal, commodity, interest-rate, funding-rate, kalshi) or search by name/symbol. Narrow further with instrument_type (spot, future, ...) or symbol_chain_id (all contracts of one futures chain, e.g. VX). Retired (inactive) feeds are hidden unless include_inactive is true. Returns compact feed metadata: symbol, name, description, pyth_lazer_id, asset_type, instrument_type, state, exponent, min_channel (fastest channel the feed supports), quote_currency, and where set groups (entitlement groups that gate the feed), expiration_time and symbol_chain_id (futures). Pass verbose: true for every catalog field, e.g. market_sessions (trading-hours schedules) and corporate_actions (e.g. stock splits). With an access token, the list also includes feeds visible only to Pro keys, and each feed has `entitled`: true means this key can query the feed right now. When `entitled` is false, `not_entitled_reason` says why: `not_live (...)` means the feed is in beta, not live yet, or retired, so no key can query it (NOT a plan limitation), `requires one of entitlement groups: ...` means the user's plan lacks that entitlement.","access":"read","accessDeclared":true,"hash":"37a87ff794bdcdbbe5ae7855a3e0b3ff546a302f573ee7aeb8977c0099bf613c","inputSchema":"{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"additionalProperties\": false,\n  \"properties\": {\n    \"access_token\": {\n      \"description\": \"Optional. The user's own Pyth Pro access token; omit it when the user configured one in their MCP client. With a token the list includes feeds visible only to Pro keys, and each feed gets an `entitled` flag.\",\n      \"minLength\": 1,\n      \"pattern\": \"^[\\\\x21-\\\\x7E]+$\",\n      \"type\": \"string\"\n    },\n    \"asset_type\": {\n      \"description\": \"Filter by asset type: crypto, crypto-index, crypto-redemption-rate, fx, equity, metal, rates, interest-rate, nav, commodity, funding-rate, eco, kalshi\",\n      \"enum\": [\n        \"crypto\",\n        \"crypto-index\",\n        \"crypto-redemption-rate\",\n        \"fx\",\n        \"equity\",\n        \"metal\",\n        \"rates\",\n        \"interest-rate\",\n        \"nav\",\n        \"commodity\",\n        \"funding-rate\",\n        \"eco\",\n        \"kalshi\"\n      ],\n      \"type\": \"string\"\n    },\n    \"include_inactive\": {\n      \"default\": false,\n      \"description\": \"Include retired feeds (state 'inactive'). Default false: inactive feeds are hidden.\",\n      \"type\": \"boolean\"\n    },\n    \"instrument_type\": {\n      \"description\": \"Filter by instrument type: spot, future, perp, rate, index, nav\",\n      \"enum\": [\n        \"spot\",\n        \"future\",\n        \"perp\",\n        \"rate\",\n        \"index\",\n        \"nav\"\n      ],\n      \"type\": \"string\"\n    },\n    \"limit\": {\n      \"default\": 50,\n      \"description\": \"Results per page (default 50, max 200)\",\n      \"maximum\": 200,\n      \"minimum\": 1,\n      \"type\": \"integer\"\n    },\n    \"offset\": {\n      \"default\": 0,\n      \"description\": \"Pagination offset (default 0)\",\n      \"minimum\": 0,\n      \"type\": \"integer\"\n    },\n    \"query\": {\n      \"description\": \"Text filter (e.g. 'BTC', 'gold', 'AAPL')\",\n      \"type\": \"string\"\n    },\n    \"symbol_chain_id\": {\n      \"description\": \"Filter futures by chain ID, exact and case-sensitive (e.g. 'VX' for all VIX futures contracts)\",\n      \"minLength\": 1,\n      \"type\": \"string\"\n    },\n    \"verbose\": {\n      \"default\": false,\n      \"description\": \"Return every catalog field (trading schedules, market_sessions, corporate_actions, hermes_id, ...). Default false: compact feeds, about 4x smaller.\",\n      \"type\": \"boolean\"\n    }\n  },\n  \"type\": \"object\"\n}"}],"toolsHash":"ac50c6a1c9b33a130a3229553345e16a5dea001c43114e33b9474088fcb58c98","toolsPinnedAt":"2026-10-26T02:52:55.851Z","toolsLastSeenAt":"2026-10-27T16:33:38.019Z","toolChanges":[]}}