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.3/5.0

Scored across 50 tools

Disambiguation3/5

Most tools are clearly separated by resource and action, but the three search_pipeline variants (plain, with_filters, with_params) heavily overlap, and list_pipeline_traces, list_pipeline_search_history, and list_search_history all expose query-run data that could be confused. A few other pairs like get_custom_components vs list_custom_component_installations also require careful reading to distinguish.

Naming Consistency4/5

The vast majority of tools follow a predictable verb_noun pattern (list_workspaces, create_pipeline, get_index, deploy_pipeline), making navigation easy. The object store utilities break the pattern with yq_object_store, sed_object_store, and grep_object_store using Unix-command-style names, and get_from_object_store/get_slice_from_object_store are slightly awkward prepositional forms, but these are a small minority.

Tool Count2/5

At 50 tools, this server is well above the 25+ threshold that indicates an overly large surface. Many tools could be consolidated, such as the three search_pipeline variants and the multiple trace/history retrieval tools, making the set feel more like a raw API dump than a curated MCP tool set.

Completeness3/5

The server covers the core lifecycle for pipelines, indexes, and workspaces with create, get, list, update, validate, and deploy operations, plus solid tracing, logging, and search history support. However, there are no delete operations for any resource, no way to create or update secrets, and no tool to install or delete custom components, leaving notable dead ends in the workflow.

Maintenance

ActivityNo data
ResponsivenessNo issues