Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

data360_mcp-0.1.2.tar.gz (222.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

data360_mcp-0.1.2-py3-none-any.whl (39.0 kB view details)

Uploaded Python 3

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

Hashes for data360_mcp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 af4d6dba4b4142ef81f11efa2e83d8a4c22e2d7059644a5764d3ef926bdf6da5
MD5 5f73be31dce79ff020cdc7f02ba89c5b
BLAKE2b-256 520438bfdbc27f9bc93066d68a1b9d5827c5038984cf29d5d1e98ee957f1bbc2

See more details on using hashes here.

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

Hashes for data360_mcp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 457875973a5447f56b3ee94592183ec295f2982eb56feef530ea16c3e1671d34
MD5 a7270f311232374627d7178e33f3d9d0
BLAKE2b-256 5408ef6367be9f7b6b2e1a6f2f1ea7cac79cac9da302aa998860161d9ff7fb51

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page