Skip to main content
Glama
README.md
# deepset-mcp

**The official MCP server and Python SDK for the Haystack Enterprise Platform**

deepset-mcp enables AI agents to build and debug pipelines on the [Haystack Enterprise Platform](https://www.deepset.ai/products-and-services/deepset-ai-platform) through 45+ specialized tools. It also provides a Python SDK for programmatic access to many platform resources.

## Documentation

šŸ“– **[View the full documentation](https://deepset-ai.github.io/deepset-mcp-server/)**

## Quick Links

- šŸ”— **[Haystack Enterprise Platform](https://www.deepset.ai/products-and-services/deepset-ai-platform)**
- šŸ“š **[Installation Guide](https://deepset-ai.github.io/deepset-mcp-server/installation/)**
- šŸ› ļø **[MCP Server Guide](https://deepset-ai.github.io/deepset-mcp-server/guides/mcp_server/)**
- šŸ **[Python SDK Guide](https://deepset-ai.github.io/deepset-mcp-server/guides/api_sdk/)**

## Development

### Installation

Install the project using [uv](https://docs.astral.sh/uv/):

```bash
# Install uv first
pipx install uv

# Install project with all dependencies
uv sync --locked --all-extras --all-groups
```

### Local Development

If you want to test your changes locally, follow these steps:

1. Add a script run-deepset-mcp.sh that uses the binary from the project's virtual env

```bash
#!/usr/bin/env bash
# Wrapper to run the local deepset-mcp server for Cursor MCP.
# Use this as command so it doesn't depend on uv or PATH.
set -e
cd "$(dirname "$0")"
exec .venv/bin/deepset-mcp
```

2. Use it this way in Cursor:

```bash
    "deepset": {
      "command": "/bin/bash",
      "args": ["/Users/*****/****/deepset-mcp-server/run-deepset-mcp.sh"],
      "cwd": "/Users/*****/****/deepset-mcp-server",
      "env": {
        "DEEPSET_WORKSPACE": "WORKSPACE",
        "DEEPSET_API_KEY": "API_KEY"
      }
    }
```

Note: If you change the codebase, make sure to restart the MCP server.

### Code Quality & Testing

Run code quality checks and tests using the Makefile:

```bash
# Install dependencies
make install

# Code quality
make lint          # Run ruff linting
make format        # Format code with ruff
make types         # Run mypy type checking

# Testing
make test          # Run unit tests (default)
make test-unit     # Run unit tests only
make test-integration     # Run integration tests
make test-all      # Run all tests

# Clean up
make clean         # Remove cache files
```

### Documentation

Documentation is built using [MkDocs](https://www.mkdocs.org/) with the Material theme:

- Configuration: `mkdocs.yml`
- Content: `docs/` directory
- Auto-generated API docs via [mkdocstrings](https://mkdocstrings.github.io/)
- Deployed via GitHub Pages (automated via GitHub Actions on push to main branch)

TDQS

B3.4/5.0

Scored across 109 tools

Disambiguation3/5

Most tools target a distinct resource+action, but several clusters overlap heavily: search_pipeline, search_pipeline_with_params and search_pipeline_with_filters are near-duplicates, and list_search_history, list_pipeline_search_history, list_pipeline_traces and list_sessions all describe browsing past runs with subtly different semantics from the same OData fields. The cost trio (get_cost_over_time/totals/breakdown) and the evaluator/experiment run tools (get_experiment_run, list_experiment_runs, list_evaluation_runs, get_evaluation_run) require careful reading to distinguish.

Naming Consistency4/5

The surface is overwhelmingly a predictable snake_case verb_noun pattern (list_pipelines, create_deployment, get_experiment_results, delete_dataset). Deviations are minor and readable: object-store helpers follow a noun_object_store shape (yq_object_store, grep_object_store, sed_object_store), and a few verbs are nonstandard (load_skill, try_evaluator, rerun_failed_experiment). No camelCase or chaotic mixing.

Tool Count2/5

109 tools is far beyond a well-scoped set and forces the agent to sift many near-adjacent options. The breadth spans genuinely different domains (pipelines, deployments, indexes, costs, datasets, experiments, evaluators, components, docs, object store, workspaces, secrets), but the volume plus per-domain granularity (e.g. three search variants, five object-store helpers, four deployment-tag/revision tools) makes discovery costly.

Completeness4/5

Coverage is unusually deep: full pipeline version lifecycle (create/patch/restore/validate/deploy), deployment revisions/activation/tags/stats, index create/update/deploy/validate, dataset and experiment CRUD, evaluator versioning and scoring runs. Gaps remain: no delete for pipelines, indexes or workspaces, and secrets are only list/get with no create/update/delete, so some lifecycle work is a dead end.

Maintenance

ActivityActive
ResponsivenessNo recent community issues