Chroma MCP Server
OfficialThe Chroma MCP Server is an open-source embedding database that enables AI models and LLM applications to perform comprehensive data storage, retrieval, and management using vector search, full text search, and metadata filtering.
Client Management: Connect using ephemeral (in-memory), persistent (file-based), HTTP (self-hosted), or Cloud (Chroma Cloud) client types for flexible deployment options.
Collection Management: Create, list, retrieve, modify, fork, and delete collections with configurable HNSW parameters, pagination support, and document count tracking.
Document Operations: Add, query, retrieve, update, delete, and peek at documents with optional metadata, custom IDs, and advanced filtering capabilities using logical operators (AND/OR) for both metadata and content.
Query Capabilities: Perform semantic search and full text search with sophisticated filtering options including equality, comparison,
$contains,$not_contains, and$regexoperations.Embedding Functions: Support for multiple embedding functions (
default,cohere,openai,jina,voyageai,ollama,roboflow) with API key configuration via environment variables for external services.
Supports building JavaScript LLM applications with vector database memory capabilities powered by Chroma, enabling embedding-based retrieval for context augmentation.
Supports building Python LLM applications with vector database memory capabilities powered by Chroma, enabling embedding-based retrieval for context augmentation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Chroma MCP Serversearch my notes collection for information about machine learning models"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Chroma MCP Server
The Model Context Protocol (MCP) is an open protocol designed for effortless integration between LLM applications and external data sources or tools, offering a standardized framework to seamlessly provide LLMs with the context they require.
This server provides data retrieval capabilities powered by Chroma, enabling AI models to create collections over generated data and user inputs, and retrieve that data using vector search, full text search, metadata filtering, and more.
This is a MCP server for self-hosting your access to Chroma. If you are looking for Package Search you can find the repository for that here.
Features
Flexible Client Types
Ephemeral (in-memory) for testing and development
Persistent for file-based storage
HTTP client for self-hosted Chroma instances
Cloud client for Chroma Cloud integration (automatically connects to api.trychroma.com)
Collection Management
Create, modify, and delete collections
List all collections with pagination support
Get collection information and statistics
Configure HNSW parameters for optimized vector search
Select embedding functions when creating collections
Document Operations
Add documents with optional metadata and custom IDs
Query documents using semantic search
Advanced filtering using metadata and document content
Retrieve documents by IDs or filters
Full text search capabilities
Supported Tools
chroma_list_collections- List all collections with pagination supportchroma_create_collection- Create a new collection with optional HNSW configurationchroma_peek_collection- View a sample of documents in a collectionchroma_get_collection_info- Get detailed information about a collectionchroma_get_collection_count- Get the number of documents in a collectionchroma_modify_collection- Update a collection's name or metadatachroma_delete_collection- Delete a collectionchroma_add_documents- Add documents with optional metadata and custom IDschroma_query_documents- Query documents using semantic search with advanced filteringchroma_get_documents- Retrieve documents by IDs or filters with paginationchroma_update_documents- Update existing documents' content, metadata, or embeddingschroma_delete_documents- Delete specific documents from a collection
Embedding Functions
Chroma MCP supports several embedding functions: default, cohere, openai, jina, voyageai, and roboflow.
The embedding functions utilize Chroma's collection configuration, which persists the selected embedding function of a collection for retrieval. Once a collection is created using the collection configuration, on retrieval for future queries and inserts, the same embedding function will be used, without needing to specify the embedding function again. Embedding function persistance was added in v1.0.0 of Chroma, so if you created a collection using version <=0.6.3, this feature is not supported.
When accessing embedding functions that utilize external APIs, please be sure to add the environment variable for the API key with the correct format, found in Embedding Function Environment Variables
Related MCP server: PDF Knowledgebase MCP Server
Usage with Claude Desktop
To add an ephemeral client, add the following to your
claude_desktop_config.jsonfile:
"chroma": {
"command": "uvx",
"args": [
"chroma-mcp"
]
}To add a persistent client, add the following to your
claude_desktop_config.jsonfile:
"chroma": {
"command": "uvx",
"args": [
"chroma-mcp",
"--client-type",
"persistent",
"--data-dir",
"/full/path/to/your/data/directory"
]
}This will create a persistent client that will use the data directory specified.
To connect to Chroma Cloud, add the following to your
claude_desktop_config.jsonfile:
"chroma": {
"command": "uvx",
"args": [
"chroma-mcp",
"--client-type",
"cloud",
"--tenant",
"your-tenant-id",
"--database",
"your-database-name",
"--api-key",
"your-api-key"
]
}This will create a cloud client that automatically connects to api.trychroma.com using SSL.
Note: Adding API keys in arguments is fine on local devices, but for safety, you can also specify a custom path for your environment configuration file using the --dotenv-path argument within the args list, for example: "args": ["chroma-mcp", "--dotenv-path", "/custom/path/.env"].
To connect to a [self-hosted Chroma instance on your own cloud provider](https://docs.trychroma.com/ production/deployment), add the following to your
claude_desktop_config.jsonfile:
"chroma": {
"command": "uvx",
"args": [
"chroma-mcp",
"--client-type",
"http",
"--host",
"your-host",
"--port",
"your-port",
"--custom-auth-credentials",
"your-custom-auth-credentials",
"--ssl",
"true"
]
}This will create an HTTP client that connects to your self-hosted Chroma instance.
Demos
Find reference usages, such as shared knowledge bases & adding memory to context windows in the Chroma MCP Docs
Using Environment Variables
You can also use environment variables to configure the client. The server will automatically load variables from a .env file located at the path specified by --dotenv-path (defaults to .chroma_env in the working directory) or from system environment variables. Command-line arguments take precedence over environment variables.
# Common variables
export CHROMA_CLIENT_TYPE="http" # or "cloud", "persistent", "ephemeral"
# For persistent client
export CHROMA_DATA_DIR="/full/path/to/your/data/directory"
# For cloud client (Chroma Cloud)
export CHROMA_TENANT="your-tenant-id"
export CHROMA_DATABASE="your-database-name"
export CHROMA_API_KEY="your-api-key"
# For HTTP client (self-hosted)
export CHROMA_HOST="your-host"
export CHROMA_PORT="your-port"
export CHROMA_CUSTOM_AUTH_CREDENTIALS="your-custom-auth-credentials"
export CHROMA_SSL="true"
# Optional: Specify path to .env file (defaults to .chroma_env)
export CHROMA_DOTENV_PATH="/path/to/your/.env" Embedding Function Environment Variables
When using external embedding functions that access an API key, follow the naming convention
CHROMA_<>_API_KEY="<key>".
So to set a Cohere API key, set the environment variable CHROMA_COHERE_API_KEY="". We recommend adding this to a .env file somewhere and using the CHROMA_DOTENV_PATH environment variable or --dotenv-path flag to set that location for safekeeping.
Available Tools
13 toolschroma_add_documentsC
Add documents to a Chroma collection.
Args:
collection_name: Name of the collection to add documents to
documents: List of text documents to add
ids: List of IDs for the documents (required)
metadatas: Optional list of metadata dictionaries for each document
| Name | Required | Description | Default |
|---|---|---|---|
| collection_name | Yes | ||
| documents | Yes | ||
| ids | Yes | ||
| metadatas | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral disclosure. It states the action ('Add documents') but doesn't describe what happens on success/failure, whether IDs must be unique, if documents are indexed immediately, rate limits, or authentication needs. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the core purpose in the first sentence. The parameter list is organized but could be more integrated with the main description. No wasted sentences, though the structure is somewhat basic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters with 0% schema coverage, no annotations, no output schema, and being a mutation tool in a complex sibling set, the description is incomplete. It covers basic parameter semantics but lacks behavioral context, usage guidance, error handling, and output expectations. For a document addition tool in a vector database context, more completeness is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It lists all 4 parameters with brief explanations, adding meaning beyond the bare schema (e.g., 'List of text documents', 'Optional list of metadata dictionaries'). However, it doesn't explain relationships between parameters (e.g., arrays must have same length), constraints (e.g., ID uniqueness), or provide examples, leaving some semantic gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Add') and resource ('documents to a Chroma collection'), making the purpose immediately understandable. It distinguishes from siblings like chroma_delete_documents and chroma_update_documents by specifying addition rather than removal or modification. However, it doesn't explicitly contrast with chroma_create_collection or chroma_fork_collection in terms of collection-level vs document-level operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., collection must exist), when not to use it, or suggest alternatives like chroma_update_documents for modifying existing documents. The agent must infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chroma_create_collectionB
Create a new Chroma collection with configurable HNSW parameters.
Args:
collection_name: Name of the collection to create
embedding_function_name: Name of the embedding function to use. Options: 'default', 'cohere', 'openai', 'jina', 'voyageai', 'ollama', 'roboflow'
metadata: Optional metadata dict to add to the collection
| Name | Required | Description | Default |
|---|---|---|---|
| collection_name | Yes | ||
| embedding_function_name | No | default | |
| metadata | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'configurable HNSW parameters' but doesn't explain what these are, their defaults, or behavioral traits like error handling, permissions needed, or what happens on duplicate collection names. This leaves significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the main purpose, followed by a structured Args section. Each sentence adds value, though the HNSW reference is vague and could be more precise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 3 parameters with 0% schema coverage, the description is incomplete. It explains parameters well but lacks behavioral context (e.g., mutation effects, error cases) and doesn't address the HNSW configuration mentioned, leaving gaps for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining each parameter's purpose: collection_name for naming, embedding_function_name with specific options, and metadata as an optional dict. This covers all 3 parameters adequately, though it doesn't detail HNSW parameters mentioned in the opening.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new Chroma collection') and resource ('Chroma collection'), distinguishing it from siblings like chroma_delete_collection or chroma_modify_collection. However, it doesn't fully specify what 'configurable HNSW parameters' means, which slightly reduces specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating collections, but provides no explicit guidance on when to use this tool versus alternatives like chroma_fork_collection or chroma_modify_collection. It lists embedding function options, which hints at context, but lacks clear when/when-not instructions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chroma_delete_collectionB
Delete a Chroma collection.
Args:
collection_name: Name of the collection to delete
| Name | Required | Description | Default |
|---|---|---|---|
| collection_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a deletion operation (implying destructive action) but doesn't specify whether deletion is permanent, requires specific permissions, affects related data, or provides confirmation feedback. For a destructive tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately brief with two sentences: a clear purpose statement followed by parameter documentation. It's front-loaded with the main action and wastes no words, though the parameter documentation could be slightly more integrated rather than separate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive deletion tool with no annotations and no output schema, the description is insufficiently complete. It doesn't address critical context like what happens after deletion (confirmation? error handling?), whether deletion cascades to documents, or what permissions are required. The description should provide more operational context for such a high-impact operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and only one parameter, the description fully documents the parameter's purpose ('Name of the collection to delete'), adding essential meaning beyond the bare schema. It clearly explains what the collection_name parameter represents in the context of this deletion operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Delete') and target resource ('a Chroma collection'), distinguishing it from siblings like chroma_modify_collection or chroma_fork_collection. It uses precise language that immediately communicates the tool's function without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like chroma_modify_collection or chroma_delete_documents. The description lacks context about prerequisites (e.g., whether the collection must be empty) or consequences of deletion, offering only basic functional information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chroma_delete_documentsA
Delete documents from a Chroma collection.
Args:
collection_name: Name of the collection to delete documents from
ids: List of document IDs to delete
Returns:
A confirmation message indicating the number of documents deleted.
Raises:
ValueError: If 'ids' is empty
Exception: If the collection does not exist or if the delete operation fails.
| Name | Required | Description | Default |
|---|---|---|---|
| collection_name | Yes | ||
| ids | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the destructive nature ('Delete'), error conditions (ValueError for empty ids, Exception for missing collection or operation failure), and return value (confirmation message with count). However, it lacks details on permissions, rate limits, or side effects beyond deletion.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core purpose, followed by organized sections for Args, Returns, and Raises. Every sentence adds value, with no redundant or extraneous information, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with 2 parameters, 0% schema coverage, and no output schema, the description is largely complete: it covers purpose, parameters, errors, and return value. However, it could improve by mentioning sibling tools for context or detailing the confirmation message format, slightly reducing completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must fully compensate. It clearly explains both parameters: 'collection_name' as the target collection and 'ids' as the list of document IDs to delete, including validation (ids cannot be empty). This adds essential meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Delete documents') and target resource ('from a Chroma collection'), distinguishing it from sibling tools like chroma_delete_collection (which deletes entire collections) and chroma_update_documents (which modifies rather than removes documents). The verb+resource combination is precise and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through its parameter explanations and error conditions (e.g., 'If the collection does not exist'), but it does not explicitly state when to use this tool versus alternatives like chroma_delete_collection or chroma_update_documents. The context is clear but lacks direct comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chroma_fork_collectionC
Fork a Chroma collection.
Args:
collection_name: Name of the collection to fork
new_collection_name: Name of the new collection to create
metadata: Optional metadata dict to add to the new collection
| Name | Required | Description | Default |
|---|---|---|---|
| collection_name | Yes | ||
| new_collection_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It states the tool creates a new collection but doesn't disclose whether it copies documents/metadata from the source, requires specific permissions, has side effects on the original collection, or what happens if the new name already exists. This leaves critical behavioral traits undocumented for a mutation operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by a structured parameter list. It avoids unnecessary elaboration, though the parameter section could be more integrated with the main description. Every sentence adds value, but the formatting as a code-like block slightly disrupts flow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a mutation with 2+ parameters), lack of annotations, and no output schema, the description is incomplete. It misses behavioral details like what 'fork' entails (e.g., copying data), error conditions, and return values. For a tool that modifies system state, this leaves significant gaps for an AI agent to operate safely and effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides only basic typing. The description adds meaningful context by explaining that 'collection_name' is the source and 'new_collection_name' is the target, and mentions an optional 'metadata' parameter not in the schema. However, it doesn't fully compensate for the coverage gap—e.g., no details on metadata structure or name constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Fork') and resource ('a Chroma collection'), making the purpose immediately understandable. It distinguishes from siblings like 'chroma_create_collection' by specifying it creates a copy from an existing collection rather than a new empty one. However, it doesn't explicitly contrast with all siblings like 'chroma_modify_collection'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., the source collection must exist), when not to use it, or compare it to similar tools like 'chroma_create_collection' for creating new collections from scratch or 'chroma_modify_collection' for altering existing ones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chroma_get_collection_countB
Get the number of documents in a Chroma collection.
Args:
collection_name: Name of the collection to count
| Name | Required | Description | Default |
|---|---|---|---|
| collection_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool is a read operation ('Get'), but doesn't cover error handling (e.g., if collection doesn't exist), performance aspects, or return format. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the purpose clearly, followed by a brief parameter explanation. There's no wasted text, but the structure could be slightly improved by integrating parameter details more seamlessly rather than a separate 'Args:' section.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (single parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and parameter meaning, but lacks details on usage context, behavioral traits, or output expectations. For a simple read tool, this is acceptable but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context for the single parameter: 'collection_name: Name of the collection to count.' Since schema description coverage is 0%, this compensates by explaining what the parameter represents. However, it doesn't provide additional details like format constraints or examples, keeping it from a perfect score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get the number of documents in a Chroma collection.' It specifies the verb ('Get') and resource ('number of documents'), making it easy to understand. However, it doesn't explicitly differentiate from sibling tools like 'chroma_get_collection_info' or 'chroma_peek_collection', which might also provide collection metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., collection must exist), exclusions, or compare it to siblings like 'chroma_get_collection_info' that might offer similar or overlapping functionality. Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chroma_get_collection_infoB
Get information about a Chroma collection.
Args:
collection_name: Name of the collection to get info about
| Name | Required | Description | Default |
|---|---|---|---|
| collection_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action but doesn't cover important traits like whether this is a read-only operation, what specific information is returned (e.g., metadata, count, settings), error conditions, or performance implications. This leaves significant gaps for an agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the main purpose in the first sentence, followed by parameter details. There's no wasted text, though it could be slightly more structured (e.g., using bullet points).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of interacting with a database collection and the lack of annotations and output schema, the description is incomplete. It doesn't explain what information is returned (e.g., metadata, statistics) or how errors are handled, which is critical for an agent to use this tool effectively in context with its siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context for the single parameter by specifying 'Name of the collection to get info about', which clarifies its role beyond the schema's basic title 'Collection Name'. Since schema description coverage is 0%, this compensates well, though it doesn't detail format constraints or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get information about' and the resource 'a Chroma collection', making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'chroma_peek_collection' or 'chroma_list_collections', which might provide overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'chroma_peek_collection' or 'chroma_list_collections'. It lacks context about prerequisites, such as whether the collection must exist, or any exclusions for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chroma_get_documentsA
Get documents from a Chroma collection with optional filtering.
Args:
collection_name: Name of the collection to get documents from
ids: Optional list of document IDs to retrieve
where: Optional metadata filters using Chroma's query operators
Examples:
- Simple equality: {"metadata_field": "value"}
- Comparison: {"metadata_field": {"$gt": 5}}
- Logical AND: {"$and": [{"field1": {"$eq": "value1"}}, {"field2": {"$gt": 5}}]}
- Logical OR: {"$or": [{"field1": {"$eq": "value1"}}, {"field1": {"$eq": "value2"}}]}
where_document: Optional document content filters
Examples:
- Contains: {"$contains": "value"}
- Not contains: {"$not_contains": "value"}
- Regex: {"$regex": "[a-z]+"}
- Not regex: {"$not_regex": "[a-z]+"}
- Logical AND: {"$and": [{"$contains": "value1"}, {"$not_regex": "[a-z]+"}]}
- Logical OR: {"$or": [{"$regex": "[a-z]+"}, {"$not_contains": "value2"}]}
include: List of what to include in response. By default, this will include documents, and metadatas.
limit: Optional maximum number of documents to return
offset: Optional number of documents to skip before returning results
Returns:
Dictionary containing the matching documents, their IDs, and requested includes
| Name | Required | Description | Default |
|---|---|---|---|
| collection_name | Yes | ||
| ids | No | ||
| include | No | ||
| limit | No | ||
| offset | No | ||
| where | No | ||
| where_document | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's read-only nature through the verb 'Get' and details filtering capabilities, but it doesn't cover aspects like error handling, performance implications of complex filters, or pagination behavior beyond limit/offset parameters. The return format is mentioned but not elaborated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement, organized parameter explanations, and a returns section. While comprehensive, it's slightly verbose due to extensive examples for 'where' and 'where_document', but every sentence earns its place by clarifying complex filtering syntax that isn't obvious from parameter names alone.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, 0% schema coverage, no annotations, and no output schema, the description does an excellent job of explaining parameter semantics and the return format. It covers the core functionality thoroughly, though it could be more complete by addressing behavioral aspects like error cases or performance limits, which are important given the complexity of filtering options.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Given 0% schema description coverage, the description compensates fully by providing detailed semantics for all 7 parameters. It explains each parameter's purpose (e.g., 'where: Optional metadata filters'), includes syntax examples for complex parameters like 'where' and 'where_document', and clarifies defaults (e.g., 'include' defaults to documents and metadatas). This adds significant value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get documents') and resource ('from a Chroma collection'), distinguishing it from siblings like chroma_query_documents (which likely searches semantically) and chroma_peek_collection (which might preview without filtering). The phrase 'with optional filtering' further clarifies its retrieval nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the mention of 'optional filtering' and the detailed parameter examples, suggesting it's for retrieving documents with specific criteria. However, it lacks explicit guidance on when to use this tool versus alternatives like chroma_query_documents or chroma_peek_collection, leaving the agent to infer based on parameter names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chroma_list_collectionsA
List all collection names in the Chroma database with pagination support.
Args:
limit: Optional maximum number of collections to return
offset: Optional number of collections to skip before returning results
Returns:
List of collection names or ["__NO_COLLECTIONS_FOUND__"] if database is empty
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: pagination support, handling of empty databases (returns ['__NO_COLLECTIONS_FOUND__']), and that it lists names only. However, it does not mention rate limits, authentication needs, or error conditions, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by structured sections for Args and Returns. Every sentence earns its place by providing essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 2 parameters with 0% schema coverage, the description is largely complete: it explains purpose, parameters, and return behavior. However, it lacks details on error handling or performance characteristics, which could be relevant for a database tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It fully explains both parameters (limit and offset) with clear semantics beyond the schema, including their optional nature and purpose (maximum number to return, number to skip). This adds significant value over the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('List all collection names') and resource ('in the Chroma database'), distinguishing it from siblings like chroma_get_collection_info or chroma_peek_collection. It explicitly mentions pagination support, which adds precision beyond just listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving collection names with pagination, but does not explicitly state when to use this tool versus alternatives like chroma_get_collection_count or chroma_get_collection_info. It provides clear context but lacks explicit exclusions or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chroma_modify_collectionC
Modify a Chroma collection's name or metadata.
Args:
collection_name: Name of the collection to modify
new_name: Optional new name for the collection
new_metadata: Optional new metadata for the collection
| Name | Required | Description | Default |
|---|---|---|---|
| collection_name | Yes | ||
| new_metadata | No | ||
| new_name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool modifies collection attributes, implying mutation, but lacks critical behavioral details: whether changes are reversible, required permissions, error conditions (e.g., if collection doesn't exist), or side effects. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the purpose clearly, followed by a concise parameter list. There's no wasted text, and the structure is logical. However, the parameter explanations are minimal and could be more informative without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (mutation tool with 3 parameters), lack of annotations, and no output schema, the description is incomplete. It covers basic purpose and parameters but misses behavioral context (e.g., effects, errors), usage guidelines, and output details. For a tool that modifies data, this leaves significant gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It lists all three parameters with brief explanations ('Name of the collection to modify', 'Optional new name', 'Optional new metadata'), adding basic meaning beyond the schema's titles. However, it doesn't elaborate on metadata format, name constraints, or interaction between parameters, leaving gaps in understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Modify a Chroma collection's name or metadata.' It specifies the verb ('modify') and resource ('Chroma collection'), and indicates what can be modified. However, it doesn't explicitly differentiate from sibling tools like 'chroma_update_documents' or 'chroma_fork_collection', which might also involve modifications.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., collection must exist), exclusions (e.g., cannot modify certain attributes), or comparisons to siblings like 'chroma_fork_collection' or 'chroma_update_documents'. Usage is implied only by the tool name and purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chroma_peek_collectionB
Peek at documents in a Chroma collection.
Args:
collection_name: Name of the collection to peek into
limit: Number of documents to peek at
| Name | Required | Description | Default |
|---|---|---|---|
| collection_name | Yes | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions 'peek' which suggests a read-only, non-destructive operation, but doesn't clarify permissions, rate limits, or what 'peek' entails (e.g., returns metadata, snippets, or full documents). For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the core purpose in the first sentence, followed by parameter explanations. It avoids unnecessary details, but the parameter section could be integrated more seamlessly. Overall, it's efficient with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 2 parameters, no annotations, and no output schema, the description is moderately complete. It covers the basic purpose and parameters but lacks details on behavior, output format, or error handling. For a read operation in a context with multiple sibling tools, more guidance on use cases and results would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context beyond the input schema, which has 0% description coverage. It explains that 'collection_name' is for the collection to peek into and 'limit' controls the number of documents, clarifying their roles. With 2 parameters and low schema coverage, this compensates well, though it doesn't detail format constraints or default behavior for 'limit'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with the verb 'peek at' and resource 'documents in a Chroma collection'. It distinguishes from siblings like chroma_get_documents or chroma_query_documents by implying a lightweight, non-querying inspection, though not explicitly named. However, it doesn't fully differentiate from chroma_get_collection_info which might also provide collection insights.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives is provided. The description implies a quick look at documents, but it doesn't specify scenarios like previewing content, checking data quality, or comparing to chroma_get_documents for full retrieval. Without context on use cases or exclusions, the agent must infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chroma_query_documentsA
Query documents from a Chroma collection with advanced filtering.
Args:
collection_name: Name of the collection to query
query_texts: List of query texts to search for
n_results: Number of results to return per query
where: Optional metadata filters using Chroma's query operators
Examples:
- Simple equality: {"metadata_field": "value"}
- Comparison: {"metadata_field": {"$gt": 5}}
- Logical AND: {"$and": [{"field1": {"$eq": "value1"}}, {"field2": {"$gt": 5}}]}
- Logical OR: {"$or": [{"field1": {"$eq": "value1"}}, {"field1": {"$eq": "value2"}}]}
where_document: Optional document content filters
Examples:
- Contains: {"$contains": "value"}
- Not contains: {"$not_contains": "value"}
- Regex: {"$regex": "[a-z]+"}
- Not regex: {"$not_regex": "[a-z]+"}
- Logical AND: {"$and": [{"$contains": "value1"}, {"$not_regex": "[a-z]+"}]}
- Logical OR: {"$or": [{"$regex": "[a-z]+"}, {"$not_contains": "value2"}]}
include: List of what to include in response. By default, this will include documents, metadatas, and distances.
| Name | Required | Description | Default |
|---|---|---|---|
| collection_name | Yes | ||
| include | No | ||
| n_results | No | ||
| query_texts | Yes | ||
| where | No | ||
| where_document | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by explaining the tool's filtering behavior, return format (documents, metadatas, distances), and default values. However, it doesn't mention performance characteristics, rate limits, or authentication requirements that would be helpful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement followed by organized parameter explanations. While comprehensive, some examples could be more concise. Every sentence adds value, and the information is front-loaded with the core purpose first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a query tool with 6 parameters, 0% schema coverage, and no output schema, the description provides excellent parameter documentation and behavioral context. The main gap is the lack of output format details beyond the 'include' parameter explanation, which would be helpful given no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Given 0% schema description coverage, the description compensates excellently by providing detailed explanations for all 6 parameters, including comprehensive examples for complex parameters (where and where_document), default values, and clear explanations of what each parameter controls.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verb ('Query documents') and resource ('from a Chroma collection'), distinguishing it from siblings like chroma_get_documents or chroma_peek_collection by emphasizing 'advanced filtering' capabilities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the mention of 'advanced filtering' and parameter explanations, but doesn't explicitly state when to use this tool versus alternatives like chroma_get_documents or chroma_peek_collection. No explicit when-not-to-use guidance or sibling tool comparisons are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chroma_update_documentsA
Update documents in a Chroma collection.
Args:
collection_name: Name of the collection to update documents in
ids: List of document IDs to update (required)
embeddings: Optional list of new embeddings for the documents.
Must match length of ids if provided.
metadatas: Optional list of new metadata dictionaries for the documents.
Must match length of ids if provided.
documents: Optional list of new text documents.
Must match length of ids if provided.
Returns:
A confirmation message indicating the number of documents updated.
Raises:
ValueError: If 'ids' is empty or if none of 'embeddings', 'metadatas',
or 'documents' are provided, or if the length of provided
update lists does not match the length of 'ids'.
Exception: If the collection does not exist or if the update operation fails.
| Name | Required | Description | Default |
|---|---|---|---|
| collection_name | Yes | ||
| documents | No | ||
| embeddings | No | ||
| ids | Yes | ||
| metadatas | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by disclosing key behaviors: it's a mutation tool (implied by 'Update'), specifies error conditions (raises ValueError for invalid inputs, Exception for failures), and describes the return value (confirmation message). It could improve by mentioning side effects like overwriting existing data or performance implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (Args, Returns, Raises) and front-loaded purpose. It's appropriately sized for a 5-parameter tool, though some sentences could be more concise (e.g., the Raises section is verbose). Overall, it efficiently conveys necessary information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, no annotations, no output schema), the description is mostly complete: it covers parameters, errors, and returns. However, it lacks details on the update mechanism (e.g., partial vs. full updates) and doesn't reference sibling tools for context, leaving minor gaps in full agent guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning beyond the input schema, which has 0% description coverage. It explains each parameter's purpose (e.g., 'ids: List of document IDs to update'), constraints (e.g., 'Must match length of ids if provided'), and relationships between parameters. This fully compensates for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update documents') and resource ('in a Chroma collection'), making the purpose immediately understandable. It distinguishes from siblings like 'chroma_add_documents' (adds new) and 'chroma_delete_documents' (removes), though not explicitly named. However, it doesn't fully differentiate from 'chroma_modify_collection' which might overlap in functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the parameter documentation (e.g., 'ids' are required, update lists must match length), suggesting when to use it for updating existing documents. However, it lacks explicit guidance on when to choose this tool over alternatives like 'chroma_modify_collection' or 'chroma_add_documents', and doesn't mention prerequisites such as collection existence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
13 tool updates
v1.0.0- First observed
chroma_add_documents - First observed
chroma_create_collection - First observed
chroma_delete_collection - First observed
chroma_delete_documents - First observed
chroma_fork_collection - First observed
chroma_get_collection_count - First observed
chroma_get_collection_info - First observed
chroma_get_documents - First observed
chroma_list_collections - First observed
chroma_modify_collection - First observed
chroma_peek_collection - First observed
chroma_query_documents - First observed
chroma_update_documents
TDQS
Each tool has a clearly distinct purpose targeting specific Chroma operations. For example, chroma_get_documents retrieves documents with filtering, while chroma_query_documents performs semantic search; chroma_peek_collection provides a quick preview, and chroma_get_collection_info returns metadata. No tools appear to overlap in functionality.
All tools follow a consistent 'chroma_verb_noun' pattern with snake_case throughout. The naming convention is perfectly uniform, making it easy to predict tool names and understand their functions at a glance.
With 13 tools, this server provides comprehensive coverage for Chroma vector database operations without being overwhelming. The count aligns well with the domain scope, offering complete collection management and document CRUD operations.
The toolset provides complete coverage for Chroma operations: collection lifecycle (create, list, get info, modify, fork, delete), document lifecycle (add, get, update, delete, query), and utility functions (count, peek). No obvious gaps exist for typical vector database workflows.
Maintenance
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
The Needle MCP server enables semantic search on documents stored in files like PDFs, DOCX, and XLSX by connecting AI applications to external data sources. It provides capabilities to create and manage document collections, perform natural language searches on stored content, and retrieve relevant information without requiring exact keyword matches.
Ingest, manage, and retrieve documents for RAG-powered AI applications
The CustomGPT.ai MCP server is a fully managed, RAG-powered endpoint that connects large language models with private knowledge bases and external data sources. It provides tools for retrieval-augmented generation queries (send_message), data ingestion (upload_file), and source listing, enabling AI agents to query private documents like PDFs with high accuracy and real-time citations.
Remote ChromaDB vector database MCP server with streamable HTTP transport
Related MCP Servers
- AlicenseAqualityCmaintenanceA Model Context Protocol server providing vector database capabilities through Chroma, enabling semantic document search, metadata filtering, and document management with persistent storage.641MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables intelligent document search and retrieval from PDF collections, providing semantic search capabilities powered by OpenAI embeddings and ChromaDB vector storage.13MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that exposes ChromaDB vector database operations, enabling AI assistants to perform collection management and semantic document searches. It supports HTTP, persistent, and in-memory connection modes along with various embedding providers including OpenAI and HuggingFace.MIT
- FlicenseNot gradedqualityDmaintenanceA fully offline local RAG server that utilizes ChromaDB and Ollama to index and query PDF, text, and Markdown documents. It allows users to manage local knowledge bases and perform semantic searches with AI-generated responses.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/chroma-core/chroma-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server