🌍 Data360 MCP Server
Unlock the World Bank's global development data directly within your LLM agents.
This Model Context Protocol (MCP) server bridges the gap between Large Language Models and the World Bank's massive Data360 Platform. It empowers agents to search, validate, and retrieve precise development indicators—from GDP to gender equality metrics—without hallucinating.
✨ Capabilities
This isn't just a wrapper; it's significant "glue" code that makes the Data360 API agent-friendly.
🔍 Smart Discovery
Composable tools for precise searches.
Use data360_search_indicators with select_fields to control what data is returned. Validate availability with data360_get_disaggregation to check which countries and years have data.
📊 Deep Metadata
Context is king.
Fetch rich metadata selectively using data360_get_metadata with select_fields to get only what you need—methodology, statistical concepts, or limitations.
📈 Reliable Data Retrieval
Clean, time-series data.
Fetch historical data points for any indicator with data360_get_data, supporting filters for country, time period, sex, age, and urbanization.
🤖 LLM-Optimized Resources
Built-in guidance for chatbots. MCP resources provide system prompts with chain-of-thought reasoning, codelist references, and metadata field mappings.
🚀 Quick Start
1. Prerequisites
- Python 3.10+ (or use Docker)
- uv (recommended)
2. Run the Server
chmod +x scripts/start_server.sh
./scripts/start_server.sh
The server will start on port 8021 at /sse.
3. Connect your Agent
- Transport: SSE
- URL:
http://localhost:8021/sse - Docker Users: Use
http://host.docker.internal:8021/sse
4. Try the Demo Script (Optional)
uv run scripts/llm_mcp_demo.py
For debug mode (shows raw JSON):
DEBUG=true uv run scripts/llm_mcp_demo.py
🛠️ Tools Available
| Tool | Description |
|---|---|
data360_search_indicators |
Search for indicators with enriched metadata. Pass required_country for server-side coverage check. Returns covers_country, latest_data, dimensions. |
data360_get_data |
Fetch data points with filters (REF_AREA, time period, SEX, AGE, etc.). |
data360_get_metadata |
Get indicator metadata. Use select_fields for specific fields. |
data360_get_disaggregation |
Check available filter values (countries, years, dimensions). |
data360_find_codelist_value |
Resolve names to codes (e.g., "Kenya" → "KEN", "female" → "F"). |
data360_list_indicators |
List all indicators for a database. |
Recommended Workflow
1. Search → data360_search_indicators(query, required_country="Kenya")
Returns: covers_country, latest_data, dimensions for each indicator
2. Get Data → data360_get_data(database_id, indicator_id, filters)
Use REF_AREA code from search, add time filters
📚 Resources Available
| Resource | Description |
|---|---|
data360://system-prompt |
Chain-of-thought guidance for chatbot integration |
data360://databases |
Available databases (WB_WDI, WB_SSGD, etc.) |
data360://codelists |
Codelist reference (REF_AREA, SEX, AGE, etc.) |
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 |
💬 Chatbot Integration
For chatbot integration, copy the content of data360://system-prompt into your system prompt. It includes:
- Chain-of-thought reasoning templates
- Step-by-step workflow guidance
- Filter do's and don'ts (e.g., never use FREQ filter)
⚙️ Configuration
| Variable | Description | Default |
|---|---|---|
DATA360_API_BASE_URL |
Base URL for the World Bank API | https://data360api.worldbank.org |
PORT |
Port for the MCP server | 8021 |
👨💻 Development
See DEVELOPMENT.md for detailed instructions on setting up the local dev environment.
Built with FastMCP and the Model Context Protocol.
Release files for data360-mcp 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| data360_mcp-0.1.2.tar.gz | 222.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| data360_mcp-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 261.6 kB
Release files / data360_mcp-0.1.2.tar.gz
| Download URL | data360_mcp-0.1.2.tar.gz |
|---|---|
| Size | 222.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
af4d6dba4b4142ef81f11efa2e83d8a4c22e2d7059644a5764d3ef926bdf6da5
|
|
BLAKE2b-256 checksum How to use checksums |
520438bfdbc27f9bc93066d68a1b9d5827c5038984cf29d5d1e98ee957f1bbc2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / data360_mcp-0.1.2-py3-none-any.whl
| Download URL | data360_mcp-0.1.2-py3-none-any.whl |
|---|---|
| Size | 39.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
457875973a5447f56b3ee94592183ec295f2982eb56feef530ea16c3e1671d34
|
|
BLAKE2b-256 checksum How to use checksums |
5408ef6367be9f7b6b2e1a6f2f1ea7cac79cac9da302aa998860161d9ff7fb51
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|