⛑️ Work in Progress!
An MCP (Model Context Protocol) server that allows clients (like Claude Desktop) to interact with the public OpenML API.
This server exposes various OpenML API endpoints as MCP tools, enabling queries for datasets, tasks, flows, runs, and more directly from within an MCP-compatible client.
- Features
- Installation and Usage
- Configuration
- Examples
- Development
- Running Tests
- Contributing
- License
- Provides MCP tools corresponding to major OpenML GET endpoints.
- Query datasets, tasks, flows, runs, evaluations, setups, studies.
- List entities with filtering capabilities (where supported by the API).
- Built using the
mcpPython SDK (FastMCP).
These instructions explain how to use this server with an MCP client like Claude Desktop.
Prerequisites:
- Claude Desktop: Ensure you have the latest version installed (Download here).
uv(Python Package Installer): This server is run usinguv. Install it once if you don't have it:- macOS / Linux:
(Restart your terminal after installation)
curl -LsSf https://astral.sh/uv/install.sh | sh - Windows (PowerShell):
(Restart your PowerShell terminal after installation)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
- macOS / Linux:
- Clone the Repository:
git clone https://github.com/your-repo/openml-mcp-server.git cd openml-mcp-server - Install Dependencies:
uv sync
-
Edit Claude Desktop Config:
- Open Claude Desktop -> Menu -> Settings... -> Developer -> Edit Config.
- This opens
claude_desktop_config.json.
-
Add Server Configuration:
-
Add the following block inside the
mcpServersobject (createmcpServersif it doesn't exist):{ "mcpServers": { "openml-explorer": { "command": "uv", "args": [ "run", "openml-mcp-server" ], "env": { "OPENML_API_KEY": "YOUR_ACTUAL_OPENML_API_KEY" } } } }
-
-
Save and Restart:
- Save
claude_desktop_config.json. - Completely quit and restart Claude Desktop.
- Save
-
Verify:
- "Show the description for OpenML dataset ID 61."
- "List features for dataset 31."
- "Find the first 3 classification tasks on OpenML."
- "Get the run description for run ID 100."
See the Testing Instructions below.
To run the test suite (requires pytest and pytest-asyncio):
uv run pytestWe welcome contributions! Please see our Contributing Guidelines for more details.
This project is licensed under the MIT License. See the LICENSE file for details.