What this enables for you
Whether you are prototyping a policy assistant or embedding data in an internal tool, the server is designed so the model can look up facts instead of guessing numbers or mixing units.
-
Country and regional insight
Compare economies, track SDG-related series, and see whether an indicator actually covers the places you care about.
-
Trends over time
Request years or periods you need—then reason over consistent time series instead of a vague “recent” snapshot.
-
Definitions you can cite
Pull methodology, limitations, and field meanings so answers can explain what the number measures—not only its value.
-
Charts when it helps
Turn suitable series into visualization specs (for example Vega-Lite) so assistants can show trends, not only tables.
Questions your assistant can support
The tools are built for natural, analyst-style questions. Your agent resolves countries to standard codes, picks indicators, applies filters (sex, age, urbanization, etc.), and checks coverage before answering.
- How has GDP per capita changed in Kenya over the last two decades? Search, confirm coverage, then return a time series.
- Which indicators in WDI relate to female labor force participation, and do they include Bangladesh? Discovery plus metadata and disaggregation checks.
- What is the official definition and source for this indicator—and what footnotes should I mention? Metadata retrieval for transparency and reporting.
- Plot a line chart comparing access to electricity in three countries since 2010. Data first, then visualization specs when the series fits.
Charts and visualizations
Beyond tables, the server can help agents produce chart-ready output for time series and comparisons—so “show me the trend” becomes a structured spec your client can render.
Typical flow: fetch data with clear columns (for example time period and observed value), then ask for a visualization specification. Chart type hints such as line, bar, or scatter are mapped to supported views; the agent can discover valid options and constraints via dedicated tools.
- Line and area — trends over years or periods
- Bar — discrete periods or categories when appropriate
- Scatter / point — relationships when the data supports it
Specs are produced in a standard chart grammar (Vega-Lite) so compatible hosts can render them consistently. If you operate a separate chart rendering service, you can point the server at it with environment configuration for integration.
Related tools:
data360_get_viz_spec,
data360_get_supported_chart_types
Technical reference
The sections below are for developers wiring an MCP client, IDE, or custom agent: capabilities summary, tool and resource tables, install steps, and connection URLs.
Server capabilities
Implementation details behind the user-facing outcomes above—search, metadata, series retrieval, codes, and LLM-oriented resources.
-
Smart indicator discovery
Search hundreds of indicators with enriched metadata and optional country coverage checks.
-
Rich metadata
Methodology, definitions, limitations, and statistical concepts on demand.
-
Reliable time series
Historical data with filters for country, period, sex, age, urbanization, and more.
-
LLM-oriented resources
System prompts, codelists, and chain-of-thought guidance for chatbot integration.
-
Agent-friendly design
Composable tools and guardrails that reduce common data retrieval mistakes.
MCP tools
Use these tools in sequence: search, then fetch data with the right codes and filters.
| Tool | Description |
|---|---|
data360_search_indicators |
Search with enriched metadata; use
required_country for coverage. Returns
covers_country, latest_data,
dimensions.
|
data360_get_data |
Fetch data points with filters (country, time period, SEX, AGE, etc.). |
data360_get_metadata |
Indicator metadata; use select_fields to limit
payload.
|
data360_get_disaggregation |
Available filter values (countries, years, dimensions) per indicator. |
data360_find_codelist_value |
Resolve names to codes (e.g. “Kenya” →
KEN, “female” → F).
|
data360_list_indicators |
List all indicators for a database. |
data360_get_viz_spec |
Build a chart specification from retrieved data (e.g. Vega-Lite). |
data360_get_supported_chart_types |
List supported chart types and data requirements. |
data360_get_data_api_url |
Low-level: direct Data360 data API URL helper. |
Recommended agent workflow
1. Search → data360_search_indicators(query, required_country="Kenya")
Returns: covers_country, latest_data, dimensions per indicator
2. Get data → data360_get_data(database_id, indicator_id, filters)
Use REF_AREA from search; add time period filters
MCP resources
Subscribe to these URIs for prompts and reference data. For chatbots,
include data360://system-prompt in your system prompt.
| Resource | Description |
|---|---|
data360://system-prompt |
Chain-of-thought guidance for chatbot integration |
data360://databases |
Available databases (WB_WDI, WB_SSGD, …) |
data360://codelists |
Codelist reference (REF_AREA, SEX, AGE, …) |
data360://metadata-fields |
Field mapping for smart question routing |
data360://data-filters |
Available filters and usage guidance |
data360://search-usage |
Search examples and best practices |
Get started
Requires Python 3.11+ and
uv (recommended) or
pip. Copy .env.example to .env
and adjust API URL or port as needed.
Install & run
# Clone and install (uv) git clone https://github.com/worldbank/data360-mcp.git cd data360-mcp uv sync cp .env.example .env uv run poe serve # Server: http://localhost:8000/mcp
Configuration
| Variable | Description | Default |
|---|---|---|
DATA360_API_BASE_URL |
Data360 API base URL | https://data360api.worldbank.org |
MCP_PORT |
MCP server port | 8000 |
MCP_TRANSPORT |
http or sse |
http |
MCP_CHARTS_API_URL |
Optional chart rendering API URL | — |
Try the bundled demo:
uv run scripts/llm_mcp_demo.py (use
DEBUG=true for verbose logs).
Connect your agent
Point your MCP client at the local HTTP or SSE endpoint. Use
host.docker.internal instead of
localhost from containers.
Endpoints
| Transport | http (default) or sse |
|---|---|
| URL (HTTP) | http://localhost:8000/mcp |
| URL (SSE) |
http://localhost:8021/sse (example port)
|
Databases (examples)
All Data360 databases are supported; list indicators with
data360_list_indicators.
- WB_WDI — World Development Indicators
- WB_SSGD — Social Sustainability and Global Database