Coveo Mcp Server — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Coveo Mcp Server (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Disclaimer
The Coveo MCP Server is provided as-is, intended purely for educational and exploratory purposes. It’s not a production-ready product.
This is a simple MCP server that connects to Coveo and executes queries. It provides tools for:
The Coveo MCP Server acts as a bridge, exposing powerful Coveo APIs as simple, consumable tools for any MCP-compatible client, like Anthropic's Claude.
flowchart TD
subgraph Your Application
MCP_CLIENT["MCP Client (e.g., Claude)"]
end
subgraph This Project
MCP_SERVER["Coveo MCP Server"]
end
subgraph Coveo Platform
SEARCH_API["Search API"]
PASSAGE_API["Passage Retrieval API"]
ANSWER_API["Generative Answering API"]
end
MCP_CLIENT -- "Requests tools" --> MCP_SERVER
MCP_SERVER -- "Calls API" --> SEARCH_API
MCP_SERVER -- "Calls API" --> PASSAGE_API
MCP_SERVER -- "Calls API" --> ANSWER_APIBy connecting your AI agents to Coveo's unified index, you can build powerful, secure, and accurate applications. For example:
passage_retrieval to gather context before generating a report.Expose Coveo's powerful APIs as simple, easy-to-use tools for your agents.
Use search_coveo to retrieve metadata, titles, or URLs. Ideal for broadly exploring information, navigating sources, or presenting lists of content.
Input:
query (string)numberOfResults (int, optional, default: 5)Output: JSON formatted search results or an error message.
Use passage_retrieval to extract highly relevant text snippets. Useful for building answers, summaries, or new documents from source material.
Input:
query (string)numberOfPassages (int, optional, default: 5)Output: JSON formatted passages or an error message.
Use answer_question when you need a complete, consistent, and well-structured answer, powered by Coveo's Relevance Generative Answering engine.
Input:
query (string)Output: A generated answer from Coveo sources with citations.
Go from zero to a running Coveo MCP server in minutes.
Get the source code on your local machine.
git clone https://github.com/coveo-labs/coveo-mcp-server.git
cd coveo-mcp-serverCopy the example environment file and add your Coveo API credentials.
cp .env.example .envThen, edit the .env file with your credentials:
COVEO_API_KEY="<your-api-key>"
COVEO_ORGANIZATION_ID="<your-organization-id>"
COVEO_ANSWER_CONFIG_ID="<your-answer-config-id>"We recommend using uv for fast dependency management.
# Install in editable mode with development dependencies
# Note the quotes around '.[dev]' to prevent shell errors
uv pip install -e '.[dev]'Start the server. By default, it uses the modern streamable-http transport.
python -m coveo_mcp_serverThe server will be available at http://127.0.0.1:8000.
#### Alternative Transport Options The server supports multiple transport methods:
python -m coveo_mcp_server USE_SSE=true python -m coveo_mcp_server USE_STDIO=true python -m coveo_mcp_serverhttpx and asyncio for non-blocking API requests..env file for your Coveo credentials.streamable-http, legacy SSE, and direct STDIO for maximum client compatibility.pytest to ensure reliability.If you want to edit the source code or contribute to this project, set up a local development environment.
First, create a virtual environment in the project's root directory. This will keep all the necessary dependencies isolated.
# Create the virtual environment
python -m venv .venv
# Activate it (macOS/Linux)
source .venv/bin/activate
# Or activate it (Windows)
# .\.venv\Scripts\activateWith the virtual environment active, install the project in "editable" mode. This allows you to make changes to the code and have them immediately reflected without reinstalling.
# Install in editable mode with development dependencies
# Note the quotes around '.[dev]' to prevent shell errors
uv pip install -e '.[dev]'This command installs the package in editable mode (-e) and includes the extra development dependencies ([dev]), such as pytest, which are defined in the pyproject.toml file.
You can test the server with the MCP Inspector in two ways:
mcp dev command:mcp dev src/coveo_mcp_server/__main__.pyThis will start the MCP Inspector at http://localhost:5173, where you can interact with and test the server's functionality.
npx with the MCP Inspector:npx @modelcontextprotocol/inspector \
uv \
--directory /[path to project]/coveo-mcp-server \
run \
--with mcp \
mcp run src/coveo_mcp_server/__main__.pyFirst, make sure you have Claude for Desktop installed. You can install the latest version here. If you already have Claude for Desktop, make sure it's updated to the latest version.
We'll need to configure Claude for Desktop for whichever MCP servers you want to use. To do this, open your Claude for Desktop App configuration at ~/Library/Application Support/Claude/claude_desktop_config.json in a text editor. Make sure to create the file if it doesn't exist.
Here's an example configuration:
{
"mcpServers": {
"coveo_mcp_server": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/coveo-mcp-server/src/coveo_mcp_server",
"run",
"__main__.py"
]
}
}
}Note: If Claude for Desktop cannot find the uv command, you may need to specify the full path in the configuration:
"command": "/opt/homebrew/bin/uv"This project includes comprehensive unit tests.
#### Running All Tests To run the tests and generate a coverage report:
./run_tests.shOr use pytest directly:
pytest tests/ -v --cov=src/coveo_mcp_server#### Testing Transport Modes
To verify all transport modes are working correctly:
python test_transports.pyThis script will verify that:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.