Development Indicators MCP

io.github.lbruce-wqv0.4.1更新於 Oct 1, 2026

Open-source MCP for official development indicators with provenance and citations.

已驗證Streamable HTTP可網頁執行Data & AnalyticsKnowledge & Memory

概覽

AI 產生的概覽

讓助理檢索世界銀行、世衛組織、聯合國兒童基金會與 FAOSTAT 等機構的官方國際發展指標,並保留單位與引用出處。

功能
這是一個以出處為先的國際發展統計閘道。工具包括 list_sources、search_indicators、get_indicator_metadata、get_observations、compare_observations、find_microdata、FAOSTAT 領域與維度探索,以及 resolve_geographies。序列以 source_id:series_code 形式引用,觀測值以統一封裝回傳,保留原始來源代碼、單位、標記與引用。國家代碼混合批次會同時回傳已解析與未解析項目,而不是整體失敗。
適用情境
當助理需要權威、可引用的發展或社會經濟資料而非無出處的敘述時使用,例如跨國或跨年份比較某一序列,或查詢指標定義與中繼資料。本專案是公開測試版,用於評估,並非正式生產統計服務。
執行需求
託管端點透過 Streamable HTTP 遠端存取,宣告不需驗證、環境變數或標頭。自行執行需要 Python 3.11 與 pip,或 Docker,或使用經 Wrangler 驗證的帳號部署 Cloudflare Worker。可選的服務商憑證包括 FAOSTAT_USER、FAOSTAT_PASSWORD 與 UN_POPULATION_TOKEN;聯合國人口觀測端點需要入口網站簽發的 bearer token。
安裝前請注意
託管實例僅供評估,專案說明正式部署必須在應用或閘道層加入 HTTPS、驗證、限流與稽核記錄。FAOSTAT_USER、FAOSTAT_PASSWORD、UN_POPULATION_TOKEN 等可選服務商密鑰應以密鑰方式提供,不要提交到儲存庫。微資料目錄探索不代表有權下載受限檔案,結果較大時應匯出,而不是直接放入模型上下文。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Development Indicators MCP,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "development-indicators": {
      "type": "http",
      "url": "https://indicatorsmcp.impactengines.ai/mcp"
    }
  }
}

README

Development Indicators MCP

A provenance-first Model Context Protocol gateway for official international-development indicators.

Hosted MCP endpoint: https://indicatorsmcp.impactengines.ai/mcp

[CI] [License: MIT]

The project aims to let AI agents discover and query authoritative indicators across institutions such as the World Bank, UN agencies, FAO, WHO, UNICEF, ILO and the DHS Program through one consistent interface. It preserves definitions, units, dimensions, source codes and citations rather than returning uncited prose.

Current milestone

The repository contains a working vertical slice:

  • remote-capable MCP server using Streamable HTTP, with stdio support for local clients;
  • source registry describing APIs, authentication and capabilities;
  • normalized indicator and observation schemas;
  • live World Bank, WHO GHO, UNICEF, FAOSTAT, ILOSTAT, IMF, UNSD SDG, UNESCO UIS, OECD and ADB adapters;
  • on-demand FAOSTAT authentication with no background token refresh;
  • dynamic FAOSTAT domain, country, item and element discovery;
  • weighted live catalogue search with aliases, match explanations, retrieval-health signals, bounded provider waits and a 15-minute query cache;
  • partial-failure comparisons, typed errors, native structured outputs and compact responses;
  • partial-success geography resolution with structured unresolved-country errors;
  • normalized ILOSTAT frequency labels and FAOSTAT dimension-ranking evidence;
  • tools to resolve country names, inspect metadata and retrieve observations;
  • unit tests for normalization and source behaviour.

This is a public beta, not a production statistical service. The hosted instance is provided for evaluation; you can also run or deploy your own copy.

MCP tools

  • list_sources(topic=None)
  • get_source_setup(source_id)
  • search_indicators(query, source_ids=None, limit=10)
  • get_indicator_metadata(series_ref)
  • get_observations(series_ref, country_codes, start_year=None, end_year=None, latest_only=False, include_original=False)
  • compare_observations(series_refs, country_codes, ...)
  • find_microdata(query, country=None)
  • faostat_list_domains(limit=50, cursor=0, group_code=None, status=None, include_archived=False)
  • faostat_search_dimension(dataset, dimension, query, limit=20, cursor=0)
  • resolve_geographies(names_or_codes)

Series references use the form source_id:series_code, for example world_bank:SP.POP.TOTL. Observation calls accept ISO 3166-1 alpha-3 codes such as GHA and KEN; use resolve_geographies when a prompt supplies country names. Mixed batches return both resolved and unresolved entries instead of failing the entire request.

Local development

powershell
py -3.11 -m venv .venv.venv\Scripts\Activate.ps1pip install -e ".[dev]"pytestdevelopment-data-mcp

For macOS or Linux, activate the environment with source .venv/bin/activate.

Run the live-source smoke benchmark with:

powershell
python -m benchmarks.run

The FAOSTAT check is skipped until FAOSTAT_USER and FAOSTAT_PASSWORD are configured; all public-source checks run without credentials.

The default transport is stdio. To run a hosted-style HTTP endpoint:

powershell
$env:MCP_TRANSPORT = "streamable-http"$env:MCP_HOST = "127.0.0.1"$env:MCP_PORT = "8000"development-data-mcp

The MCP endpoint is then exposed at /mcp. Production deployment must add HTTPS, authentication, rate limiting and audit logging at the application or gateway layer.

Install in Codex

The hosted service uses Streamable HTTP:

powershell
codex mcp add development-indicators --url https://indicatorsmcp.impactengines.ai/mcpcodex mcp list

Restart Codex after adding it, then use /mcp to confirm the server and its tools are available. The same MCP configuration is shared by the Codex CLI, IDE extension and ChatGPT desktop app on the same Codex host.

Equivalent ~/.codex/config.toml configuration:

toml
[mcp_servers.development-indicators]url = "https://indicatorsmcp.impactengines.ai/mcp"startup_timeout_sec = 30tool_timeout_sec = 180

Example test prompt: Using Development Indicators, find an official maize production series from FAOSTAT and retrieve 2020–2023 observations for Uganda and Kenya, preserving units, flags and citations.

Cloudflare deployment

The repository includes a Cloudflare Worker and Container configuration. It routes public HTTPS requests to the same tested Python image; the MCP endpoint remains /mcp. A production deployment should initially use its isolated workers.dev hostname, then attach a custom domain after client verification.

powershell
npm installnpm run deploy

To deploy under a different Worker name or hostname, edit name and routes in wrangler.jsonc. Remove the routes block if you only want a workers.dev endpoint. Authenticate Wrangler with your own Cloudflare account before running the deploy command; the repository contains no Impact Engines credentials.

Optional provider credentials can be added to your Worker without committing them:

powershell
npx wrangler secret put FAOSTAT_USERnpx wrangler secret put FAOSTAT_PASSWORDnpx wrangler secret put UN_POPULATION_TOKEN

See docs/deployment.md for the deployment architecture, verification checklist and non-Cloudflare Docker instructions.

Run with Docker

bash
docker build -t development-data-mcp .docker run --rm -p 8000:8000 \  -e MCP_TRANSPORT=streamable-http \  -e MCP_HOST=0.0.0.0 \  -e MCP_PORT=8000 \  development-data-mcp

The endpoint will be available at http://localhost:8000/mcp. Put it behind HTTPS and suitable access controls before exposing it to the public internet.

Contributing

Issues and pull requests are welcome. Please run ruff check ., pytest, and npm run typecheck before submitting a change. See CONTRIBUTING.md for the full development workflow and SECURITY.md for private vulnerability reporting guidance.

Cloudflare Containers require a Workers paid plan. FAOSTAT credentials, when configured, must be stored with Wrangler secrets rather than committed.

Architecture

text
AI client   |Remote MCP gateway   |Metadata registry and source router   |Provider adapters (REST / SDMX / OData / specialist)   |Official publisher APIs

Only metadata and modest request caches should be stored locally at first. Observations are retrieved from official sources and returned in a common envelope while preserving the original source identifiers.

Planned source sequence

Active observation connectors: World Bank Indicators, WHO GHO, UNICEF SDMX, FAOSTAT, ILOSTAT, IMF DataMapper, UNSD SDG, UNESCO UIS, OECD SDMX and ADB SDMX. UN Population indicator discovery is active; its observation endpoint requires a portal-issued bearer token. DHS, MICS, IPUMS and World Bank Microdata Library remain catalogue-discovery integrations rather than observation APIs.

Safety and statistical integrity

  • Values are never invented or inferred by the MCP.
  • Similar indicators are not silently merged.
  • Provider codes and canonical URLs are retained.
  • Observed, survey-estimated, modelled and projected values must be labelled when metadata permits.
  • Microdata catalogue discovery does not imply permission to download restricted files.
  • Large results should be exported rather than placed directly in model context.

License

The software is released under the MIT License. Upstream data remain subject to each publisher's terms, licences and attribution requirements.

來源:README.md,提交 9cffb22

工具

0
工具後設資料尚未被收錄。

版本歷史

1
  1. v0.4.1最新Oct 1, 2026