PPN Hub — public APIs over MCP
One MCP endpoint over 69 public PPN APIs: search_apis to discover, execute_api to call. Free tier.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"ppn-hub": {
"url": "https://mcp.ppn-hub.com/mcp"
}
}
}원격 엔드포인트
https://mcp.ppn-hub.com/mcpstreamable-http할 수 있는 일
도구 목록
도구 (3)
🟢search_apis(query, domain, method, tag, limit, ...)
Search across 484 endpoints in 59 APIs (cultural, earth, energy-calc, green-path, harmonias, hydrogen, internal, nanobase, nanosnap, natura, platform, sakurahub, science, sim, space, stocks). Returns matching endpoints with method, path, summary, parameters, and a ready-to-run example. Use this to discover available API endpoints before calling execute_api. Results carry a "coverage" field (e.g. ["JP"]) for region-limited APIs; use the "region" filter to narrow.
입력 스키마
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search term (matches operationId, summary, description, path, API name, tags; synonyms expanded)"
},
"domain": {
"type": "string",
"description": "Filter by domain: cultural, earth, energy-calc, green-path, harmonias, hydrogen, internal, nanobase, nanosnap, natura, platform, sakurahub, science, sim, space, stocks"
},
"method": {
"type": "string",
"enum": [
"GET",
"POST",
"PUT",
"DELETE",
"PATCH"
],
"description": "Filter by HTTP method"
},
"tag": {
"type": "string",
"description": "Filter by OpenAPI tag"
},
"limit": {
"type": "number",
"minimum": 1,
"maximum": 50,
"description": "Max results (default: 20)"
},
"region": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "Filter by ISO 3166-1 alpha-2 region the API serves data for (e.g. \"JP\"). Returns region-specific + global APIs; excludes APIs limited to other regions."
}
},
"required": [
"query"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢execute_api(api, operationId, params, body)
Execute a request against any of the 59 registered APIs. Use search_apis first to find the correct api name and operationId. Requires 'Authorization: Bearer ppn_live_*'.
입력 스키마
{
"type": "object",
"properties": {
"api": {
"type": "string",
"description": "API name: marketo, atmos, chronomap, hydros, lithos, terra, carbon-credit, cost-compare, demand-forecast, grid-connect, site-matching, storage-optimize, tariff-optimize, transmission-loss, carbonias, planetary, green-path-api, biomassia, gasturbia, geothermia, hydria, reactoria, renewio, solaria, windaria-api, hydrogen, sla-viewer-production, nanobase-api, nanosnap-console, nanosnap-gacha-production, nanosnap-inventory-production, nanosnap-leaderboard-production, nanosnap-mailbox-production, nanosnap-persona-gateway-production, nanosnap-presence-production, nanosnap-replay-production, nanosnap-room-production, nanosnap-save-data-production, nanosnap-spatial-message-production, nanosnap-world-counter-production, nanosnap-world-objects-production, biositia, cryonia, faunaunify, literatia, plantunify, ppn-hub-workers, foodsense, onokoro, sakurahub-address, sakurahub-gateway, sakurahub-web, weathio, biolexia-production, biocolo, nishinoshima-gateway-production, celestora, orbitalio, perks"
},
"operationId": {
"type": "string",
"description": "operationId from search_apis results"
},
"params": {
"type": "object",
"additionalProperties": {},
"description": "Query and path parameters as key-value pairs"
},
"body": {
"description": "Request body for POST/PUT/PATCH"
}
},
"required": [
"api",
"operationId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪environment_brief(lat, lon, place)
Environmental brief for one location: fans out to every public geo-aware API (weather, terrain, environment, …) and returns a merged JSON. Partial results come back with an errors[] list. Requires 'Authorization: Bearer ppn_live_*'.
입력 스키마
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude"
},
"lon": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude"
},
"place": {
"type": "string",
"description": "Optional human-readable place label (echoed back)"
}
},
"required": [
"lat",
"lon"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}커뮤니티
증거