worldbank-documents-reports-mcp
Enables searching, retrieving, and exploring World Bank documents and reports through natural language queries with advanced filtering options.
README
World Bank Document and Reports MCP Server
An MCP server for accessing the World Bank's Documents & Reports database.
Provides searching, retrieval, and detailed breakdowns of World Bank documents for LLMs and programmatic use.
Repository Structure
document-reports-mcp/
worldbank_dnr_mcp/ # main package
core.py # business logic, models, utilities
factory.py # server creation and tool registration
parsers.py # transport-specific response parsers
__init__.py # package exports
server_stdio.py # STDIO transport server
server_sse.py # SSE transport server
start_server_claude.py # launcher for Claude Desktop
pyproject.toml # project configuration
requirements.txt # legacy requirements file
docs/ # documentation
API Document.pdf
DESIGN_LOGIC.md
STRUCTURE_GUIDE.md
mcp_simulation.mp4 # demonstration video
Project Features
- comprehensive document search with advanced filters
- multi-dimensional filtering (by country, type, language, date range)
- result faceting and category exploration
- metadata and abstract retrieval
- project-based document lookup
- flexible markdown/json output formats
- extensive error handling and validation
- support for both STDIO and SSE transports
Demonstration Video
Watch the MCP server in action:
Note: Click the link above to view the demonstration video. GitHub README files don't support embedded video players, but you can download or view the video directly through the link.
Quick Documentation Index
- API Document (PDF): Official World Bank API documentation
- DESIGN_LOGIC.md: Core design principles and logic explained
- STRUCTURE_GUIDE.md: File structure, configuration, and usage
Installation
Using uv (recommended):
uv sync
Using pip:
pip install -r requirements.txt
Usage
For Claude Desktop (STDIO Transport)
-
Update your Claude Desktop config to use the launcher:
{ "mcpServers": { "worldbank-dnr": { "command": "uv", "args": ["run", "/absolute/path/to/start_server_claude.py"], "cwd": "/absolute/path/to/document-reports-mcp" } } } -
Restart Claude Desktop
Testing the SSE Server Locally
You can test the SSE server using the MCP Inspector:
-
Start the SSE server:
uv run server_sse.py -
In another terminal, run the MCP Inspector:
npx @modelcontextprotocol/inspector@latest -
The inspector will open at
http://localhost:6274 -
Select "SSE" as the transport type
-
Enter the server URL:
http://localhost:8002/sse -
Click "Connect" to interact with the server and test tools
Alternatively, you can use the simple test client:
uv run test_sse_client.py
Available Tools
worldbank_search_documents- primary search with filtersworldbank_get_document_details- retrieve detailed document informationworldbank_explore_facets- discover available filter valuesworldbank_search_by_project- find documents by project ID or name
For detailed tool documentation and API usage, see DESIGN_LOGIC.md.
Development
The codebase follows these principles:
- DRY principle: shared utilities in
core.py, no code duplication - pydantic models: automatic validation for all inputs
- async/await: all I/O operations use async patterns
- transport abstraction: business logic separated from transport-specific code
- factory pattern: centralized server creation with dependency injection
See STRUCTURE_GUIDE.md for detailed architecture explanation.
Code Organization
worldbank_dnr_mcp/core.py: constants, enums, pydantic models, utility functions, formatting helpersworldbank_dnr_mcp/factory.py: server factory, tool registrationworldbank_dnr_mcp/parsers.py: transport-specific response parsing (only transport-dependent code)server_stdio.py: STDIO transport wrapperserver_sse.py: SSE transport wrapper
For full architecture breakdown and troubleshooting, see documentation in the docs/ folder.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.