{"id":570638,"recorded_at":"2026-10-27T22:24:11.302392Z","observed_at":"2026-10-27T22:24:11.302318Z","subject_kind":"endpoint","subject":"9dd47681-6f8c-457c-b525-8cd01eeb8cc1","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":21,"tools":[{"description":"Follow a dataset by id (from search_catalog). The user gets alerts when it updates. Respects the plan's watchlist limit.","inputSchema":{"properties":{"dataset_id":{"description":"Dataset id (main.id) from search_catalog.","type":"integer"}},"required":["dataset_id"],"type":"object"},"name":"add_to_watchlist"},{"description":"Follow up to 100 datasets in one call. Skips duplicates and stops at the plan limit (reported in skipped_limit).","inputSchema":{"properties":{"dataset_ids":{"description":"Dataset ids (main.id).","items":{"type":"integer"},"type":"array"}},"required":["dataset_ids"],"type":"object"},"name":"add_watchlist_batch"},{"description":"Create a REST API key (mon_…) for /api endpoints. The raw key is returned once. Limit: 3 (Essential) / 10 (Pro).","inputSchema":{"properties":{"name":{"description":"Label (max 100 chars).","type":"string"}},"type":"object"},"name":"create_api_key"},{"description":"Create another MCP key (mcpk_…), e.g. for a second client. The raw key is returned once.","inputSchema":{"properties":{"name":{"description":"Label (max 100 chars).","type":"string"}},"type":"object"},"name":"create_mcp_key"},{"description":"Revoke a REST API key by id. The last remaining key cannot be deleted.","inputSchema":{"properties":{"key_id":{"description":"Key id (uuid) from the list call.","type":"string"}},"required":["key_id"],"type":"object"},"name":"delete_api_key"},{"description":"Revoke an MCP key by id. The key used for the current session cannot be revoked here.","inputSchema":{"properties":{"key_id":{"description":"Key id (uuid) from the list call.","type":"string"}},"required":["key_id"],"type":"object"},"name":"delete_mcp_key"},{"description":"Run a read-only SELECT (or WITH … SELECT) against tables main and data only. Use after search_catalog + inspect_dataset to pull the time series for a known data.id / main_id.","inputSchema":{"properties":{"query":{"description":"SQL SELECT against main / data only.","type":"string"}},"required":["query"],"type":"object"},"name":"execute_sql"},{"description":"Return a CSV download URL for a dataset, optionally filtered by countries and dimension values (dim1…dim8 from inspect_dataset).","inputSchema":{"properties":{"countries":{"description":"Country names, e.g. ['Poland','Germany'].","items":{"type":"string"},"type":"array"},"dataset_id":{"description":"Dataset id (main.id) from search_catalog.","type":"integer"},"dimensions":{"description":"Dimension filters, e.g. {\"dim1\": [\"Annual\"], \"dim2\": [\"Percentage\"]}.","type":"object"}},"required":["dataset_id"],"type":"object"},"name":"export_dataset"},{"description":"Get one dataset metadata row from main by id (includes dimensions, default_view, geos).","inputSchema":{"properties":{"id":{"description":"Dataset id (main.id).","type":"integer"}},"required":["id"],"type":"object"},"name":"get_dataset"},{"description":"Current plan of the key owner: name, status, period end and limits (API/day, MCP/month, watchlist, API keys).","inputSchema":{"properties":{},"type":"object"},"name":"get_plan"},{"description":"MCP queries this billing period, REST API requests today and watchlist slots — used, limit, remaining.","inputSchema":{"properties":{},"type":"object"},"name":"get_usage"},{"description":"Peek one dataset by main.id: default slice, whether a country is in the series, dataId, and the last few values. Uses indexed main_id lookup — do not scan the data table yourself for discovery.","inputSchema":{"properties":{"country":{"description":"Optional country to resolve in the format header (e.g. 'Germany').","type":"string"},"id":{"description":"Dataset id (main.id) from search_catalog.","type":"integer"}},"required":["id"],"type":"object"},"name":"inspect_dataset"},{"description":"Active REST API keys (mon_…) of the account: id, name, prefix, created/last used.","inputSchema":{"properties":{},"type":"object"},"name":"list_api_keys"},{"description":"Active MCP keys (mcpk_…). The key used for this session is marked current=true.","inputSchema":{"properties":{},"type":"object"},"name":"list_mcp_keys"},{"description":"List Monitly plans (Essential, Pro, Enterprise) with prices and limits.","inputSchema":{"properties":{},"type":"object"},"name":"list_plans"},{"description":"Datasets the user follows (watchlist) with source, latest period and alert status. Paginate with limit/offset.","inputSchema":{"properties":{"limit":{"description":"Max rows (default 20).","maximum":100,"minimum":1,"type":"integer"},"offset":{"description":"Pagination offset (default 0).","minimum":0,"type":"integer"}},"type":"object"},"name":"list_watchlist"},{"description":"Unfollow a dataset by id.","inputSchema":{"properties":{"dataset_id":{"description":"Dataset id (main.id) from search_catalog.","type":"integer"}},"required":["dataset_id"],"type":"object"},"name":"remove_from_watchlist"},{"description":"Find statistical datasets in the catalog (Eurostat, World Bank, OECD, etc.). Index-backed hybrid search (name/code + embeddings). Optional country and source_name filters. Use this instead of SELECT … FROM main ILIKE. Returns compact cards, not series values.","inputSchema":{"properties":{"country":{"description":"Optional country name to prefer datasets that include this geo (e.g. 'Germany').","type":"string"},"limit":{"description":"Max cards (default 8, max 16).","maximum":16,"minimum":1,"type":"integer"},"query":{"description":"What to find, e.g. 'GDP annual current prices' or 'unemployment rate'.","type":"string"},"source_name":{"description":"Optional source filter, e.g. 'Eurostat', 'World Bank' (World Development Indicators), 'OECD', 'IMF'.","type":"string"}},"required":["query"],"type":"object"},"name":"search_catalog"},{"description":"Alias of search_catalog. Find statistical datasets by query, optional country and source_name.","inputSchema":{"properties":{"country":{"description":"Optional country name (e.g. 'Germany').","type":"string"},"limit":{"description":"Max cards (default 8, max 16).","maximum":16,"minimum":1,"type":"integer"},"query":{"description":"What to find, e.g. 'GDP annual current prices'.","type":"string"},"source_name":{"description":"Optional source filter, e.g. 'Eurostat'.","type":"string"}},"required":["query"],"type":"object"},"name":"search_datasets"},{"description":"action='get' returns e-mail/Slack alert settings. action='set' changes email_notifications / slack_notifications, or turns alerts for one followed dataset on/off (dataset_id + dataset_notifications).","inputSchema":{"properties":{"action":{"description":"'get' or 'set'.","enum":["get","set"],"type":"string"},"dataset_id":{"description":"Followed dataset to change.","type":"integer"},"dataset_notifications":{"description":"Alerts for that dataset on/off.","type":"boolean"},"email_notifications":{"description":"E-mail alerts for followed datasets.","type":"boolean"},"slack_notifications":{"description":"Slack alerts (webhook is configured in Settings).","type":"boolean"}},"required":["action"],"type":"object"},"name":"set_notification_preferences"},{"description":"Create a Stripe Checkout session for the Pro plan and return checkout_url. Open it in the browser for the user to pay.","inputSchema":{"properties":{"plan_id":{"description":"Target plan (default 'pro').","enum":["pro"],"type":"string"}},"type":"object"},"name":"upgrade_plan"}]},"body_sha256":"08ae1d5c5d161bcd6c0c3f10f74b0572401076775234cfe687bdd7e98428eca6","prev_id":null,"leaf":"0x1a3e344d072199f6af6b97035410aa5ef95d36f2a385d1334560fcefb93db75c","leaf_text":"{\"body\":\"08ae1d5c5d161bcd6c0c3f10f74b0572401076775234cfe687bdd7e98428eca6\",\"id\":570638,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1793139851302318,\"prev\":null,\"subject\":\"9dd47681-6f8c-457c-b525-8cd01eeb8cc1\",\"subject_kind\":\"endpoint\"}","day":{"day":"2026-10-27","leaves":273461,"root":"0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795","chained":"0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4","anchor_chain":"eip155:5042002","anchor_tx":"0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4","anchor_block":69414147},"proof":["0x1a3e1d2802b562ab0643a2efc4ed496b6b1892f6c1dd81647bf911de601d8a34","0xf22520d4a9224d2c526f6cf9350dbc2d86ab4abdb4c54489b230709c105b2de5","0x69ff262251fbcc6bf2727fc2b99615521654515b0ae4d725ab25fa52c5585c07","0xd5cff447aa6f516807752f40ad4625fc9ad5b5a64c181bfbec4ecfa10c70916a","0xc258db91948f3844d2bdef898b445753a2d5d5905dd4aeb23bae238b92c6f09f","0x63a137fb440e5e44d95bb84306a9820d361adbabbd0ffa685b2c4f42dfc75701","0xbdab67fd9cd57ac8e1eff2e7e70f376efa106f7abdc74d135551868d1ac216f2","0xe39ad471ba57ee0a8698bbc92c43eb79ebc38e464d35be2a6540b50aeaf5a05b","0xd0c9bbcbedf93dbd7738df5e71de22bb7e52e522a790d0aaab2d180665c2598b","0x18dcc8ec5d08dda2711d07822e8776945073f8a3a9911b47a3fd93f1d5a1b403","0x939c306fccf6f9ecd4e13859e2994a9f95dde80f56072b4b7be22ed4cc49b483","0x864874d7fe156494acebcd974fb0ea64b6d7d6ef442b90a07ce8adbc57f7d75b","0xca0b37bb3b043ccf0f24c50fccd9c2f22b7e5290df49886008fc2ff55380fdd1","0x2064e3a2b01d0d12d5079bf720a0d0125e9703c55e92de54ad40c302469ec047","0x6913cb48392acb8dc5c940dcdb6e6fc889d544f85dff11da249551a5f027e688","0x518b93854db03dc9fc938883abf30da6eaae5ae0d4336903968fd32a7df8c71b","0x22c1fb9487ee0b9732fa017a0cc321eb27a60c08450d112f755089796e12cb1c","0xa20d48798a34aba12eb9c7297722982d910f06c148f5e27ac59307422964a585","0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699"]}