Data360 MCP Project
Project description
🌍 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file data360_mcp-0.1.2.tar.gz.
File metadata
- Download URL: data360_mcp-0.1.2.tar.gz
- Upload date:
- Size: 222.6 kB
- Tags: Source
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af4d6dba4b4142ef81f11efa2e83d8a4c22e2d7059644a5764d3ef926bdf6da5
|
|
| MD5 |
5f73be31dce79ff020cdc7f02ba89c5b
|
|
| BLAKE2b-256 |
520438bfdbc27f9bc93066d68a1b9d5827c5038984cf29d5d1e98ee957f1bbc2
|
File details
Details for the file data360_mcp-0.1.2-py3-none-any.whl.
File metadata
- Download URL: data360_mcp-0.1.2-py3-none-any.whl
- Upload date:
- Size: 39.0 kB
- Tags: Python 3
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
457875973a5447f56b3ee94592183ec295f2982eb56feef530ea16c3e1671d34
|
|
| MD5 |
a7270f311232374627d7178e33f3d9d0
|
|
| BLAKE2b-256 |
5408ef6367be9f7b6b2e1a6f2f1ea7cac79cac9da302aa998860161d9ff7fb51
|