Skip to main content
Glama
scooby359
by scooby359

ChromaDB MCP Server

A Model Context Protocol (MCP) server that queries a local ChromaDB instance to provide relevant documents to GitHub Copilot.

Prerequisites

  • Node.js (v18 or later)

  • A running ChromaDB instance at http://127.0.0.1:8000

  • A collection named ExchangeResearch in your ChromaDB instance

Related MCP server: Enterprise Code Search MCP Server

Installation

  1. Install dependencies:

    npm install
  2. Build the project:

    npm run build

Configuration

The MCP server is configured in .vscode/settings.json to integrate with GitHub Copilot in VS Code.

To use it globally (across all projects), add this to your User Settings (settings.json):

{
  "github.copilot.chat.mcp.servers": {
    "chromadb": {
      "command": "node",
      "args": ["c:/source/chroma-mcp/build/index.js"]
    }
  }
}

Replace the path with the absolute path to your built index.js file.

Usage

Once configured, the MCP server will automatically start when you use GitHub Copilot in VS Code. You can use the query_chromadb tool in your Copilot conversations:

Example prompts:

  • "Query ChromaDB for information about exchange APIs"

  • "Search the ExchangeResearch collection for trading strategies"

  • "Find documents related to market data"

The tool will automatically query your ChromaDB collection and provide relevant context to Copilot.

Tool Details

query_chromadb

Queries the ChromaDB ExchangeResearch collection for relevant documents.

Parameters:

  • query (required): The search query string

  • nResults (optional): Number of results to return (default: 5)

Returns: An array of documents with metadata and similarity distances.

Development

To rebuild the project after making changes:

npm run build

For continuous development with auto-rebuild:

npm run dev

Customization

To use a different ChromaDB URL or collection name, edit src/index.ts:

const chromaClient = new ChromaDbClient('http://127.0.0.1:8000', 'ExchangeResearch');

Troubleshooting

  • Server not responding: Ensure ChromaDB is running at http://127.0.0.1:8000

  • Tool not appearing: Restart VS Code after adding the MCP configuration

  • Build errors: Check that you have Node.js v18+ and run npm install again

This project is licensed under the MIT License.

Available Tools

1 tool
query_chromadbB

Query the ChromaDB ExchangeResearch collection for relevant documents. Use this to find information related to exchange research, trading, or financial data.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe search query to find relevant documents in the ChromaDB collection
nResultsNoNumber of results to return (default: 5)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral disclosure. It states the tool queries for documents but doesn't describe what the query does (e.g., semantic search, keyword matching), how results are ranked, error conditions, rate limits, or authentication needs. This leaves significant behavioral gaps for a query tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately concise with two sentences that directly address purpose and usage. It's front-loaded with the core function. While efficient, it could be slightly more structured by separating behavioral details, but it avoids unnecessary verbiage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete for a query tool. It covers the basic purpose and domain but lacks details on return format (e.g., document structure, metadata), error handling, or performance characteristics. This is minimally adequate but has clear gaps in context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds no parameter-specific information beyond what's in the schema. It mentions 'query' generically but doesn't elaborate on query syntax or 'nResults' behavior. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Query the ChromaDB ExchangeResearch collection for relevant documents.' It specifies the verb (query), resource (ChromaDB ExchangeResearch collection), and target outcome (find relevant documents). However, with no sibling tools mentioned, it cannot demonstrate differentiation from alternatives, preventing a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides implied usage context: 'Use this to find information related to exchange research, trading, or financial data.' This gives general guidance on when to use the tool but lacks explicit when-not-to-use scenarios or named alternatives. With no sibling tools, it cannot offer comparative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.3/5.0
Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The tool's purpose is clearly defined as querying a specific collection in ChromaDB for exchange research data.

Naming Consistency5/5

Since there is only one tool, naming consistency is inherently perfect. The tool name 'query_chromadb' follows a clear verb_noun pattern, though no pattern can be established across multiple tools.

Tool Count2/5

A single tool is insufficient for a database server's scope, which typically requires operations like create, update, delete, or list collections. This feels thin and limits functionality to basic queries only.

Completeness2/5

The tool surface is severely incomplete for a ChromaDB server. It only supports querying a specific collection, missing essential operations such as creating collections, inserting documents, updating data, or managing collections, which are critical for database interactions.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables LLMs to perform semantic search and document management using ChromaDB, supporting natural language queries with intuitive similarity metrics for retrieval augmented generation applications.
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI coding assistants to search and retrieve information from a locally ingested knowledge base using hybrid search, grounded in user-curated documentation.
    17
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/scooby359/chroma-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server