MCP Server Template
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Server Templatereverse the string 'hello'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Autoplot AI MCP
An MCP (Model Context Protocol) server, managed with uv, that lets an MCP client discover public datasets (currently World Bank Open Data) by keyword ā the first step of an automated data-fetching and visualization pipeline.
š Features
uvfor dependency managementTOML + Pydantic based config, with API sources defined declaratively in
configs/api_config.tomlget_datasets_listtool ā keyword search over a configured data source's datasetsMulti-source ready: add new APIs by editing config, no code changes
Centralized logging (loguru)
Custom exception handling
Standalone stdio client for manual testing
Related MCP server: DDG MCP1234
š Project Structure
The directory structure of the project looks like this:
āāā LICENSE
āāā Makefile
āāā README.md
āāā client.py
āāā main.py
āāā configs
ā āāā config.toml
ā āāā api_config.toml
āāā outputs
āāā pyproject.toml
āāā src
āāā __init__.py
āāā app.py
āāā server
ā āāā __init__.py
ā āāā server.py
āāā tools
ā āāā __init__.py
ā āāā api_sources.py
ā āāā dataset_discovery.py
āāā utils
āāā __init__.py
āāā config.py
āāā exceptions.py
āāā logger.py
āāā models.pyšļø Architecture
main.py boots an App, which loads config and hands it to a Server that wraps FastMCP. Tool implementations live under src/tools/ (one module per tool, or tool family), each exposing a register(mcp, config) function; src/tools/__init__.py calls all of them so Server stays a thin wrapper. MCP clients (like client.py or the MCP Inspector) talk to the server over stdio; the tools in turn call out to whichever external data API is configured (e.g. the World Bank REST API).
flowchart LR
subgraph Client
C["client.py<br/>(MCP client)"]
end
subgraph "Autoplot AI MCP Server"
M["main.py"] --> A["App"]
A --> CFG["Config"]
A --> S["Server<br/>(FastMCP)"]
S --> R["tools.register_all"]
R -->|registers| T["dataset_discovery.get_datasets_list"]
T -->|resolves source| API["tools.api_sources.get_api_source"]
end
subgraph "Config Files"
CT["config.toml<br/>(logger, server)"]
AT["api_config.toml<br/>(API sources)"]
end
subgraph "External Data Sources"
WB["World Bank Open Data API"]
end
CFG --> CT
CFG --> AT
C <-->|stdio / MCP protocol| S
T -->|HTTP GET| WBš Sequence: get_datasets_list
sequenceDiagram
participant U as User
participant Cl as client.py
participant Sv as Server (FastMCP)
participant WB as World Bank API
U->>Cl: Enter search text
Cl->>Cl: Split input into keywords
Cl->>Sv: call_tool("get_datasets_list", {keywords, source, limit})
loop each result page
Sv->>WB: GET discovery_endpoint (page, per_page)
WB-->>Sv: indicators (name, sourceNote, id)
Sv->>Sv: match keywords against name / description
end
Sv->>Sv: rank name-matches above description-matches,<br/>shorter names first
Sv-->>Cl: top `limit` matching datasets
Cl-->>U: print dataset id / name / descriptionš Getting Started
Step 1: Install dependencies
uv syncStep 2: Run the server
uv run python main.py
# or
make runThe server communicates over stdio and is meant to be launched by an MCP client (see Step 3), not run standalone in a terminal.
Step 3: Try it with the bundled client
uv run python client.py
# or
make clientThis spawns main.py as a subprocess over stdio, lists the available tools, then prompts you for search text (e.g. population growth), splits it into keywords, and calls get_datasets_list to print matching datasets.
Step 4 (optional): Inspect it with the MCP Inspector
uv run mcp dev main.py:mcpOpens a browser UI to browse and call the registered tools interactively. main.py exposes a lazily-built mcp attribute for this purpose (see __getattr__ at the bottom of the file) ā normal runs via make run / make client don't trigger it.
āļø Configuration
configs/config.tomlā logger environment (dev/prod) and the MCP server's advertised name.configs/api_config.tomlā a list of[[apis]], each describing an external data source: itsname,description,discovery_endpoint(lists datasets),data_endpoint(downloads one dataset), responseformat, andper_pagepage size. Add a new source by appending another[[apis]]block ā no code changes required.
š References
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Related MCP Servers
- Flicense-qualityDmaintenanceA basic educational MCP server that provides simple tools for mathematical calculations, text manipulation, and time retrieval. Designed for learning MCP implementation patterns and development purposes.Last updated
- -license-quality-maintenanceA basic MCP server template with example tools for echoing messages and retrieving server information. Built with FastMCP framework and supports both stdio and HTTP transports.Last updated
- -license-quality-maintenanceA basic MCP server template with example tools for echoing messages and retrieving server information. Built with FastMCP framework and supports both stdio and HTTP transports.Last updated
- -license-quality-maintenanceA basic MCP server template with example tools for echoing messages and retrieving server information. Built with FastMCP framework and supports both stdio and HTTP transports.Last updated
Related MCP Connectors
Primarily to be used as a template repository for developing MCP servers with FastMCP in Python, Pā¦
A very simple remote MCP server that greets you, with a custom icon.
A basic MCP server to operate on the Postman API.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sh-aidev/autoplot-ai-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server