PyChroma MCP

PyChroma MCP connects a local ChromaDB collection to an assistant for document ingestion, embedding configuration and semantic retrieval.

Local serverstdioPython

What is the PyChroma MCP Server?

PyChroma MCP connects a local ChromaDB collection to an assistant for document ingestion, embedding configuration and semantic retrieval.

A local retrieval prototype

This Python FastMCP project exposes collection management, document ingestion and similarity queries. It also provides embedding configuration and text chunking tools, with particular attention to Vietnamese text. The author describes it as an experimental, AI-generated prototype. Treat it as a project to evaluate rather than an independently tested production database service.

Use the implemented entry point

The repository's VS Code configuration launches uv run src/server.py from the project root over stdio. That file exists and starts the FastMCP tools. A separate Claude configuration refers to a different launcher; use the implemented source entry point when adapting the setup to another client.

Storage and embeddings

The collection client uses a persistent ./chroma_db directory in the tool implementation. Keep the working directory consistent so later sessions open the same store. The startup routine can load an available embedding model or fall back to ChromaDB defaults. Inspect the model information before adding documents, and keep the embedding choice consistent with the collection you query.

Check retrieval with known passages

Create a test collection containing three short, non-sensitive passages with stable document IDs. Query for a clear match and a deliberately vague request, then compare the returned text and IDs with the originals. Collection deletion changes the local store; try it only on the test collection after checking its name.

Dependency compatibility

The source imports FastMCP from MCP SDK 1. Keep a <2 dependency bound for this source or migrate the import when adopting SDK 2.

Project documentation

Repository and setup guide

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
echoReturn a supplied message for a connection check.
list_collectionsList collections in the local ChromaDB store.
create_collectionCreate a named ChromaDB collection.
delete_collectionDelete a named collection from the local store.
add_documentsAdd text, identifiers and optional metadata to a collection.
query_collectionQuery a collection with text and optional metadata filters.
get_embedding_model_infoInspect the embedding model used by the project.
configure_embedding_modelSelect or reload an embedding model.
chunk_text_intelligentSplit supplied text into overlapping chunks.

How to install the PyChroma MCP Server

{
  "servers": {
    "chroma": {
      "type": "stdio",
      "command": "uv",
      "args": [
        "run",
        "src/server.py"
      ],
      "cwd": "${workspaceFolder}"
    }
  }
}

Open the checked-out repository as the workspace and install its dependencies before launching. This is an experimental prototype.

Configuration

Python 3.10 or later, uv, the repository dependencies and storage for the local ChromaDB collection and embedding model. Source uses the SDK 1 FastMCP import; use compatible SDK 1 dependencies or migrate the import before deployment.

Frequently asked questions

No. This is a community Python prototype that runs locally and opens a persistent ChromaDB directory. It is separate from Chroma’s hosted services.