Skip to content

hrco/cohere-mcp-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cohere MCP Server

A Model Context Protocol (MCP) server that provides seamless integration with Cohere's AI platform. This server exposes Cohere's powerful language models, embeddings, and reranking capabilities through the MCP protocol, enabling AI assistants like Claude to leverage Cohere's tools.

Features

  • Chat & Completion - Conversational AI with Command models (including command-a-03-2025)
  • Embeddings - Generate semantic embeddings for search, RAG, and clustering
  • Reranking - Improve search relevance for RAG systems
  • Multilingual Chat - 23+ language support with Aya models
  • Text Summarization - Condense long documents
  • Classification - Few-shot text classification
  • Streaming Support - Real-time response streaming for chat

Available Models

Command Models (Chat/Completion)

  • command-a-03-2025 - Latest Command model for complex reasoning
  • command-r-plus - Excellent for RAG and tool use
  • command-r - Balanced performance and cost
  • command-light - Fast, lightweight model

Embedding Models

  • embed-english-v3.0 - Best English embedding model (1024 dimensions)
  • embed-multilingual-v3.0 - 100+ language support
  • embed-english-light-v3.0 - Lightweight English embeddings
  • embed-multilingual-light-v3.0 - Lightweight multilingual

Rerank Models

  • rerank-english-v3.0 - Best English reranking
  • rerank-multilingual-v3.0 - Multilingual reranking support

Aya Models (Multilingual)

  • aya-expanse-32b - Powerful multilingual model (23+ languages)
  • aya-expanse-8b - Efficient multilingual model

Installation

Prerequisites

Install from Source

  1. Clone or download this repository:
cd /home/<user>/Projects/cohere-mcp-server
  1. Install the package:
pip install -e .
  1. Set up your API key:
# Create a .env file in the project root
echo "COHERE_API_KEY=your-api-key-here" > .env

Or set it as an environment variable:

export COHERE_API_KEY="your-api-key-here"

Usage

Running the Server

Run the MCP server directly:

cohere-mcp

Or using Python:

python -m cohere_mcp.server

The server communicates via stdio and follows the MCP protocol specification.

Configuring with Claude Desktop

Add the following to your Claude Desktop configuration file:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "cohere": {
      "command": "cohere-mcp",
      "env": {
        "COHERE_API_KEY": "your-api-key-here"
      }
    }
  }
}

Or if using Python directly:

{
  "mcpServers": {
    "cohere": {
      "command": "python",
      "args": ["-m", "cohere_mcp.server"],
      "env": {
        "COHERE_API_KEY": "your-api-key-here"
      }
    }
  }
}

Using with Other MCP Clients

Any MCP-compatible client can connect to this server. The server uses stdio transport and follows the MCP specification.

Available Tools

cohere_chat

Chat with Cohere's Command models for conversational AI and reasoning tasks.

Parameters:

  • message (string, required) - The user message
  • model (string) - Model to use (default: "command-a-03-2025")
  • temperature (number) - Sampling temperature 0-1 (default: 0.7)
  • max_tokens (number) - Maximum tokens to generate (default: 4096)
  • system_prompt (string) - Optional system instructions

Example:

{
  "message": "Explain quantum computing in simple terms",
  "model": "command-a-03-2025",
  "temperature": 0.7
}

cohere_chat_stream

Streaming version of chat for real-time responses.

Parameters: Same as cohere_chat

cohere_embed

Generate embeddings for semantic search, RAG, and clustering.

Parameters:

  • texts (array of strings, required) - Texts to embed (max 96 per request)
  • model (string) - Embedding model (default: "embed-english-v3.0")
  • input_type (string) - Type: "search_document", "search_query", "classification", or "clustering"

Example:

{
  "texts": ["Document 1", "Document 2"],
  "model": "embed-english-v3.0",
  "input_type": "search_document"
}

cohere_rerank

Rerank documents based on relevance to a query (ideal for RAG systems).

Parameters:

  • query (string, required) - The search query
  • documents (array of strings, required) - Documents to rerank (max 1000)
  • model (string) - Rerank model (default: "rerank-english-v3.0")
  • top_n (number) - Number of results to return (default: 10)

Example:

{
  "query": "What is machine learning?",
  "documents": ["Doc about ML", "Doc about cooking", "Doc about AI"],
  "top_n": 5
}

cohere_aya_chat

Chat using multilingual Aya models (supports 23+ languages).

Parameters:

  • message (string, required) - User message in any supported language
  • model (string) - Aya model (default: "aya-expanse-32b")
  • language (string) - Target response language (optional)
  • temperature (number) - Sampling temperature (default: 0.7)
  • max_tokens (number) - Maximum tokens (default: 4096)

cohere_summarize

Summarize text content.

Parameters:

  • text (string, required) - Text to summarize
  • model (string) - Model to use (default: "command-r")
  • length (string) - "short", "medium", or "long"
  • format (string) - "paragraph" or "bullets"

cohere_classify

Classify texts based on example training data.

Parameters:

  • inputs (array of strings, required) - Texts to classify
  • examples (array of objects, required) - Training examples with "text" and "label" keys
  • model (string) - Model to use (default: "embed-english-v3.0")

Available Resources

cohere://models

Lists all available Cohere models with their capabilities, context lengths, and recommended use cases.

cohere://config

Shows current server configuration including default models and settings.

Configuration

The server can be configured via environment variables:

Variable Description Default
COHERE_API_KEY Your Cohere API key Required
COHERE_DEFAULT_CHAT_MODEL Default chat model command-a-03-2025
COHERE_DEFAULT_EMBED_MODEL Default embedding model embed-english-v3.0
COHERE_DEFAULT_RERANK_MODEL Default rerank model rerank-english-v3.0
COHERE_TIMEOUT API request timeout (seconds) 60
COHERE_MAX_RETRIES Maximum API retry attempts 3

Development

Install Development Dependencies

pip install -e ".[dev]"

This installs testing and linting tools:

  • pytest - Testing framework
  • black - Code formatter
  • ruff - Linter
  • mypy - Type checker

Running Tests

pytest

Run with coverage:

pytest --cov=cohere_mcp --cov-report=html

Code Quality

Format code:

black src/ tests/

Lint code:

ruff check src/ tests/

Type check:

mypy src/

Project Structure

cohere-mcp-server/
├── src/
│   └── cohere_mcp/
│       ├── __init__.py      # Package initialization
│       ├── config.py        # Configuration management
│       ├── client.py        # Cohere API client wrapper
│       └── server.py        # MCP server implementation
├── tests/                   # Test suite
│   ├── conftest.py
│   ├── test_config.py
│   ├── test_client.py
│   └── test_server.py
├── pyproject.toml           # Project configuration
└── README.md                # This file

Use Cases

Retrieval Augmented Generation (RAG)

  1. Embed documents: Use cohere_embed with input_type="search_document"
  2. Embed query: Use cohere_embed with input_type="search_query"
  3. Rerank results: Use cohere_rerank to improve relevance
  4. Generate response: Use cohere_chat with retrieved context

Semantic Search

  1. Index documents using cohere_embed
  2. Search with query embeddings
  3. Optionally rerank with cohere_rerank

Multilingual Applications

Use cohere_aya_chat for conversations in:

  • English, Spanish, French, German, Italian, Portuguese
  • Arabic, Hebrew, Turkish
  • Chinese, Japanese, Korean
  • Hindi, Bengali, and many more

Troubleshooting

"Cohere client not initialized" error

Make sure you've set the COHERE_API_KEY environment variable:

export COHERE_API_KEY="your-key-here"

API Key Issues

Connection Issues

  • Check your internet connection
  • Verify Cohere API status
  • Increase timeout with COHERE_TIMEOUT environment variable

API Pricing

Refer to Cohere's pricing page for current API costs.

Resources

License

MIT License - See LICENSE file for details.

Support

For issues and questions:

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests for new functionality
  5. Submit a pull request

Built with Cohere and Model Context Protocol

About

Model Context Protocol (MCP) server for Cohere AI platform - Chat, embeddings, rerank, and more

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages