Metadata-Version: 2.4
Name: chroma-mcp-server
Version: 0.1.3
Summary: Chroma MCP Server - Vector Database Integration for LLM Applications
Project-URL: Homepage, https://github.com/djm81/chroma_mcp_server
Project-URL: Repository, https://github.com/djm81/chroma_mcp_server.git
Project-URL: Documentation, https://github.com/djm81/chroma_mcp_server#readme
Author-email: Nold Coaching & Consulting <info@noldcoaching.de>
License-Expression: MIT
License-File: LICENSE.md
Keywords: chroma,embeddings,llm,mcp,vector-database
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Requires-Dist: chromadb>=0.6.3
Requires-Dist: fastapi>=0.115.11
Requires-Dist: fastmcp>=0.4.1
Requires-Dist: numpy>=2.2.0
Requires-Dist: pydantic>=2.10.6
Requires-Dist: python-dotenv>=1.1.0
Requires-Dist: uvicorn>=0.34.0
Provides-Extra: dev
Requires-Dist: black>=25.1.0; extra == 'dev'
Requires-Dist: isort>=6.0.0; extra == 'dev'
Requires-Dist: mypy>=1.15.0; extra == 'dev'
Requires-Dist: pylint>=3.3.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.26.0; extra == 'dev'
Requires-Dist: pytest-cov>=6.0.0; extra == 'dev'
Requires-Dist: pytest-mock>=3.14.0; extra == 'dev'
Requires-Dist: pytest>=8.3.0; extra == 'dev'
Requires-Dist: types-pyyaml>=6.0.0; extra == 'dev'
Provides-Extra: full
Requires-Dist: httpx>=0.28.0; extra == 'full'
Requires-Dist: onnxruntime>=1.21.0; extra == 'full'
Requires-Dist: sentence-transformers>=4.0.1; extra == 'full'
Description-Content-Type: text/markdown

# Chroma MCP Server

A Model Context Protocol (MCP) server integration for [Chroma](https://www.trychroma.com/), the open-source embedding database.

## Overview

The Chroma MCP Server allows you to connect AI applications with Chroma through the Model Context Protocol. This enables AI models to:

- Store and retrieve embeddings
- Perform semantic search on vector data
- Manage collections of embeddings
- Support RAG (Retrieval Augmented Generation) workflows

## Installation

### Basic Installation

```bash
pip install chroma-mcp-server
```

### Full Installation (with embedding models)

```bash
pip install chroma-mcp-server[full]
```

## Usage

### Starting the server

```bash
# Using the command-line executable
chroma-mcp-server

# Or using the Python module
python -m chroma_mcp.server
```

Or use the provided scripts during development:

```bash
# For development environment
./develop.sh

# To build the package
./build.sh

# To publish to PyPI
./publish.sh
```

### Configuration

The server can be configured with command-line options or environment variables:

#### Command-line Options

```bash
chroma-mcp-server --client-type persistent --data-dir ./my_data
```

#### Environment Variables

```bash
export CHROMA_CLIENT_TYPE=persistent
export CHROMA_DATA_DIR=./my_data
chroma-mcp-server
```

#### Available Configuration Options

- `--client-type`: Type of Chroma client (`ephemeral`, `persistent`, `http`, `cloud`)
- `--data-dir`: Path to data directory for persistent client
- `--log-dir`: Path to log directory
- `--host`: Host address for HTTP client
- `--port`: Port for HTTP client
- `--ssl`: Whether to use SSL for HTTP client
- `--tenant`: Tenant ID for Cloud client
- `--database`: Database name for Cloud client
- `--api-key`: API key for Cloud client
- `--cpu-execution-provider`: Force CPU execution provider for embedding functions (`auto`, `true`, `false`)

### Cursor Integration

To use with Cursor, add the following to your `.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "chroma": {
      "command": "chroma-mcp-server",
      "args": [],
      "env": {
        "CHROMA_CLIENT_TYPE": "persistent",
        "CHROMA_DATA_DIR": "/path/to/data/dir",
        "CHROMA_LOG_DIR": "/path/to/logs/dir",
        "LOG_LEVEL": "INFO",
        "MCP_LOG_LEVEL": "INFO"
      }
    }
  }
}
```

### Smithery Integration

This MCP server is compatible with [Smithery](https://smithery.ai/). See the `smithery.yaml` file for configuration details.

## Development

This project uses [Hatch](https://hatch.pypa.io/) for development and package management.

### Setting Up Development Environment

```bash
# Install Hatch globally
pip install hatch

# Create and activate a development environment
hatch shell
```

### Running Tests

```bash
# Run all tests
hatch run python -m pytest

# Run with coverage
hatch run python -m pytest --cov=chroma_mcp

# Using the test script (with coverage)
./test.sh
```

### Building the Package

```bash
# Build both wheel and sdist
hatch build

# Or use the script
./build.sh
```

## Dependencies

The package has optimized dependencies organized into groups:

- **Core**: Required for basic functionality (`python-dotenv`, `pydantic`, `fastapi`, `chromadb`, etc.)
- **Full**: Optional for extended functionality (`sentence-transformers`, `onnxruntime`, etc.)
- **Dev**: Only needed for development and testing

## License

MIT (see [LICENSE.md](LICENSE.md))
