Monitly
Official statistics for AI agents: Eurostat, World Bank, OECD, IMF and WHO data for 150+ countries.
사용해야 할까요
품질 및 안전성
발견 사항 (2)
- LOWlist_mcp_keys에서
- LOWdelete_mcp_key에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`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"
]
}커뮤니티
증거