erddap-mcp-demo
# ERDDAP MCP demo
Demo implementation of a [Model Context Protocol](https://modelcontextprotocol.io/) server
allowing an LLM to interact with ERDDAP search, metadata, and tabledap services.

## Usage
Make sure you have `uv` installed, then add the MCP server to the desired MCP capable client.
## Example for Claude Desktop
NOTE: claude.ai is not MCP capable at the time of writing
Add the `erddap_mcp_demo.py` tool to the Clade config file at:
* Mac: `~/Library/Application Support/Claude/claude_desktop_config.json`
* Linux: `~/.config//Claude/claude_desktop_config.json`
* Windows: `%APPDATA%\Claude\claude_desktop_config.json`
```
{
"mcpServers": {
"erddap-tabledap": {
"command": "/path/to/uv",
"args": [
"run",
"--with",
"mcp[cli]",
"mcp",
"run",
"/path/to/erddap_mcp_demo.py"
]
}
}
}
```
Then start/restart Claude desktop and ask it to get some data!
See https://modelcontextprotocol.io/quickstart/user
## Testing
```
uv run mcp dev erddap_mcp_demo.py
```
TDQS
Scored across 5 tools
There is significant overlap: 'list_datasets' and 'search_datasets' have identical descriptions and appear to serve the same purpose, making it hard for an agent to distinguish them. Other tools are distinct but the duplication is a major issue.
Names follow a verb_noun pattern with underscores, but there is inconsistency in verb choice: 'list_datasets' vs 'search_datasets' for the same action, and 'get_' vs 'list_' across similar operations. While readable, the pattern is not fully consistent.
5 tools is within the well-scoped range for an ERDDAP server. However, the duplication reduces effective distinct tools to 4, making the count slightly less efficient but still acceptable.
The set covers listing datasets, listing variables, and retrieving data, but lacks tools for dataset metadata (e.g., attributes, time ranges) or data export formats. Basic querying is possible, but notable gaps exist.