Monitly
Official statistics for AI agents: Eurostat, World Bank, OECD, IMF and WHO data for 150+ countries.
我該用這個嗎
品質與安全性
發現項目(2)
- LOW在 list_mcp_keys 中
- LOW在 delete_mcp_key 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"monitly": {
"url": "https://monit.ly/api/mcp"
}
}
}遠端端點
https://monit.ly/api/mcpstreamable-http它能做什麼
工具清單
工具(21)
🟢search_catalog(query, country, source_name, limit)
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.
輸入結構描述
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "What to find, e.g. 'GDP annual current prices' or 'unemployment rate'."
},
"country": {
"type": "string",
"description": "Optional country name to prefer datasets that include this geo (e.g. 'Germany')."
},
"source_name": {
"type": "string",
"description": "Optional source filter, e.g. 'Eurostat', 'World Bank' (World Development Indicators), 'OECD', 'IMF'."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 16,
"description": "Max cards (default 8, max 16)."
}
},
"required": [
"query"
]
}🟢search_datasets(query, country, source_name, limit)
Alias of search_catalog. Find statistical datasets by query, optional country and source_name.
輸入結構描述
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "What to find, e.g. 'GDP annual current prices'."
},
"country": {
"type": "string",
"description": "Optional country name (e.g. 'Germany')."
},
"source_name": {
"type": "string",
"description": "Optional source filter, e.g. 'Eurostat'."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 16,
"description": "Max cards (default 8, max 16)."
}
},
"required": [
"query"
]
}🟢inspect_dataset(id, country)
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.
輸入結構描述
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "Dataset id (main.id) from search_catalog."
},
"country": {
"type": "string",
"description": "Optional country to resolve in the format header (e.g. 'Germany')."
}
},
"required": [
"id"
]
}🟢get_dataset(id)
Get one dataset metadata row from main by id (includes dimensions, default_view, geos).
輸入結構描述
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "Dataset id (main.id)."
}
},
"required": [
"id"
]
}🟢execute_sql(query)
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.
輸入結構描述
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "SQL SELECT against main / data only."
}
},
"required": [
"query"
]
}🟢list_plans
List Monitly plans (Essential, Pro, Enterprise) with prices and limits.
輸入結構描述
{
"type": "object",
"properties": {}
}🟢get_plan
Current plan of the key owner: name, status, period end and limits (API/day, MCP/month, watchlist, API keys).
輸入結構描述
{
"type": "object",
"properties": {}
}🟢get_usage
MCP queries this billing period, REST API requests today and watchlist slots — used, limit, remaining.
輸入結構描述
{
"type": "object",
"properties": {}
}🟡upgrade_plan(plan_id)
Create a Stripe Checkout session for the Pro plan and return checkout_url. Open it in the browser for the user to pay.
輸入結構描述
{
"type": "object",
"properties": {
"plan_id": {
"type": "string",
"enum": [
"pro"
],
"description": "Target plan (default 'pro')."
}
}
}🟢list_watchlist(limit, offset)
Datasets the user follows (watchlist) with source, latest period and alert status. Paginate with limit/offset.
輸入結構描述
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "Max rows (default 20)."
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "Pagination offset (default 0)."
}
}
}🟡add_to_watchlist(dataset_id)
Follow a dataset by id (from search_catalog). The user gets alerts when it updates. Respects the plan's watchlist limit.
輸入結構描述
{
"type": "object",
"properties": {
"dataset_id": {
"type": "integer",
"description": "Dataset id (main.id) from search_catalog."
}
},
"required": [
"dataset_id"
]
}🟡add_watchlist_batch(dataset_ids)
Follow up to 100 datasets in one call. Skips duplicates and stops at the plan limit (reported in skipped_limit).
輸入結構描述
{
"type": "object",
"properties": {
"dataset_ids": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Dataset ids (main.id)."
}
},
"required": [
"dataset_ids"
]
}🔴remove_from_watchlist(dataset_id)
Unfollow a dataset by id.
輸入結構描述
{
"type": "object",
"properties": {
"dataset_id": {
"type": "integer",
"description": "Dataset id (main.id) from search_catalog."
}
},
"required": [
"dataset_id"
]
}🟡set_notification_preferences(action, email_notifications, slack_notifications, dataset_id, dataset_notifications)
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).
輸入結構描述
{
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": [
"get",
"set"
],
"description": "'get' or 'set'."
},
"email_notifications": {
"type": "boolean",
"description": "E-mail alerts for followed datasets."
},
"slack_notifications": {
"type": "boolean",
"description": "Slack alerts (webhook is configured in Settings)."
},
"dataset_id": {
"type": "integer",
"description": "Followed dataset to change."
},
"dataset_notifications": {
"type": "boolean",
"description": "Alerts for that dataset on/off."
}
},
"required": [
"action"
]
}🟢list_api_keys
Active REST API keys (mon_…) of the account: id, name, prefix, created/last used.
輸入結構描述
{
"type": "object",
"properties": {}
}🟡create_api_key(name)
Create a REST API key (mon_…) for /api endpoints. The raw key is returned once. Limit: 3 (Essential) / 10 (Pro).
輸入結構描述
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Label (max 100 chars)."
}
}
}🔴delete_api_key(key_id)
Revoke a REST API key by id. The last remaining key cannot be deleted.
輸入結構描述
{
"type": "object",
"properties": {
"key_id": {
"type": "string",
"description": "Key id (uuid) from the list call."
}
},
"required": [
"key_id"
]
}🟢list_mcp_keys
Active MCP keys (mcpk_…). The key used for this session is marked current=true.
輸入結構描述
{
"type": "object",
"properties": {}
}🟡create_mcp_key(name)
Create another MCP key (mcpk_…), e.g. for a second client. The raw key is returned once.
輸入結構描述
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Label (max 100 chars)."
}
}
}🔴delete_mcp_key(key_id)
Revoke an MCP key by id. The key used for the current session cannot be revoked here.
輸入結構描述
{
"type": "object",
"properties": {
"key_id": {
"type": "string",
"description": "Key id (uuid) from the list call."
}
},
"required": [
"key_id"
]
}🟢export_dataset(dataset_id, countries, dimensions)
Return a CSV download URL for a dataset, optionally filtered by countries and dimension values (dim1…dim8 from inspect_dataset).
輸入結構描述
{
"type": "object",
"properties": {
"dataset_id": {
"type": "integer",
"description": "Dataset id (main.id) from search_catalog."
},
"countries": {
"type": "array",
"items": {
"type": "string"
},
"description": "Country names, e.g. ['Poland','Germany']."
},
"dimensions": {
"type": "object",
"description": "Dimension filters, e.g. {\"dim1\": [\"Annual\"], \"dim2\": [\"Percentage\"]}."
}
},
"required": [
"dataset_id"
]
}社群
證據