AI agent interface to Apache DolphinScheduler: 58 MCP tools for workflow orchestration & data ops.
A production-ready MCP server for Apache DolphinScheduler (小海豚).
dolphin-mcp-pilot exposes 53+ tools for projects, workflows, DAG creation, schedules, instances, resources, logs, monitoring and raw API passthrough — designed for AI agents that need to operate DolphinScheduler beyond basic read-only usage.
Most public DolphinScheduler MCP servers only cover basic read/list/start/stop scenarios. This project is designed for real operations work:
X-DS-Token) or User/Password (X-DS-User + X-DS-Password)docker compose version)# 1. Clone the repository
git clone https://github.com/iflytek/dolphin-mcp-pilot.git
cd dolphin-mcp-pilot
# 2. Configure environment
cp .env.example .env
# Edit .env — set DS_URL and DS_TOKEN (or DS_USER/DS_PASSWORD)
# Example DS_URL: http://your-dolphinscheduler-host:12345/dolphinscheduler
# 3. Build and start the service from this checkout
docker compose --profile dev up -d dolphin-mcp-pilot-dev
# 4. Confirm that the container is healthy
docker compose --profile dev ps
The MCP endpoint is now http://localhost:8001/mcp/ (the trailing slash is required).
Add it to an HTTP/SSE-capable MCP client:
{
"mcpServers": {
"dolphinscheduler": {
"type": "sse",
"url": "http://localhost:8001/mcp/",
"headers": { "X-DS-Token": "your_api_token" }
}
}
}
As a safe first check, ask your agent: “List my DolphinScheduler projects and workflows. Do not make any changes.” For client-specific configuration and username/password auth, see Client Config.
| Scenario | Example request | Main tools |
|---|---|---|
| Investigate a failed run | “Find the latest failed workflow, show the failed task and its log, and suggest the next action without changing anything.” | ds_list_process_instances, ds_list_task_instances, ds_get_latest_failure_log |
| Backfill missing data | “Backfill 2026-08-01 through 2026-08-07 serially, starting from the validation task and including downstream tasks.” | ds_complement_data |
| Create and schedule a workflow | “Create a daily SQL workflow, add its cron schedule, and show me the definition before putting it online.” | ds_create_workflow, ds_set_schedule, ds_online_schedule |
| Give multiple agents controlled access | Run one HTTP MCP service while each caller supplies its own DolphinScheduler credentials. | Per-request X-DS-* headers |
The tools can also pause, resume, rerun, clone, and roll back workflows; manage resources; and
fall back to raw DolphinScheduler APIs for uncovered operations. Start with ds_help(category="quickstart")
inside your MCP client to discover the recommended workflow for each task.
| Document | Description |
|---|---|
| 📦 Installation | Docker Compose (dev/prod), from source, as package, run modes |
| ⚙️ Configuration | Environment variables, auth options, Compose tunables |
| 🚀 Deployment | Production deployment, Compose reference, verify, troubleshoot |
| 📊 Features | Feature comparison table, tool categories |
| 🔐 Client Config | MCP client setup (CodeBuddy, Claude Desktop, etc.), multi-tenant auth |
| 📖 API Reference | All 53+ tools, parameter conventions, error handling (中文) |
| ❓ FAQ | Common issues and solutions (中文) |
ds_list_process_instances attaches a next_action
hint to RUNNING/FAILURE instances, pointing agents to ds_list_task_instances
to inspect individual task nodes.complementStartDate/complementEndDate
range format so DolphinScheduler generates instances in strict day-by-day order.ds_update_task_param accepts both snake_case and
camelCase field names and reports ignored fields.Contributions are welcome. See CONTRIBUTING.md for project changes, or follow the example contribution guide to share a tested MCP client configuration.
Used dolphin-mcp-pilot for something real? Write it up in cases/ — a gallery of
community usage stories (agent-driven DolphinScheduler ops), each linked to a public post.
Built with the official MCP Python SDK and inspired by the Apache DolphinScheduler community.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
docker run -i --rm ghcr.io/iflytek/dolphin-mcp-pilot:0.3.1Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-iflytek-dolphin-mcp-pilot": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/iflytek/dolphin-mcp-pilot:0.3.1"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceghcr.io/iflytek/dolphin-mcp-pilot:0.3.1dockerio.github.iflytek/dolphin-mcp-pilot works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.