Skip to main content
Glama
avarant

Typesense MCP Server

by avarant

Typesense MCP Server

A Model Context Protocol (MCP) Server that interfaces with Typesense

Installation

Install uv

Requires Python 3.11 or higher.

On Mac you can install it using homebrew

brew install uv

Clone the package

git clone git@github.com:avarant/typesense-mcp-server.git ~/typesense-mcp-server

Add the server to your MCP client config. Most clients (Cursor at ~/.cursor/mcp.json, Claude Desktop at ~/Library/Application Support/Claude/claude_desktop_config.json, Windsurf, Zed, VS Code, etc.) accept the same mcpServers shape:

{
  "mcpServers": {
    "typesense": {
      "command": "uv",
      "args": ["--directory", "~/typesense-mcp-server", "run", "mcp", "run", "main.py"],
      "env": {
        "TYPESENSE_HOST": "",
        "TYPESENSE_PORT": "",
        "TYPESENSE_PROTOCOL": "",
        "TYPESENSE_API_KEY": ""
      }
    }
  }
}

Refer to your client's MCP documentation for the exact config file location.

Related MCP server: Better Qdrant MCP Server

Transports

The server supports three MCP transports. STDIO is the default and is what most desktop clients (Claude Desktop, Cursor, etc.) use. For remote clients or web UIs, you can run it as an HTTP server using either the legacy SSE transport or the newer Streamable HTTP transport.

STDIO (default)

TYPESENSE_API_KEY=xyz uv run python main.py

Single endpoint at /mcp. Works with browser-based clients like the llama.cpp web chat. Set MCP_TRANSPORT=streamable-http (or pass --http):

TYPESENSE_API_KEY=xyz \
MCP_TRANSPORT=streamable-http \
MCP_STATELESS_HTTP=true \
MCP_CORS_ORIGINS='*' \
uv run python main.py
  • Stateless mode (MCP_STATELESS_HTTP=true) is required for clients that don't keep an MCP session across requests.

  • CORS must be enabled (MCP_CORS_ORIGINS) for browser clients. Use a specific origin like http://localhost:8080 in production rather than *.

SSE (legacy)

Two endpoints, GET /sse for the event stream and POST /messages/ for JSON-RPC. Set MCP_TRANSPORT=sse (or pass --sse):

TYPESENSE_API_KEY=xyz MCP_TRANSPORT=sse uv run python main.py

Configuration

Env var

Default

Description

MCP_TRANSPORT

stdio

stdio, sse, or streamable-http

MCP_HOST

0.0.0.0

Bind address for HTTP transports

MCP_PORT

8000

Bind port for HTTP transports

MCP_STATELESS_HTTP

false

Stateless mode for HTTP transports (required for some web clients)

MCP_CORS_ORIGINS

(empty)

Comma-separated allowed origins. Empty disables CORS. * = any.

Available Tools

The Typesense MCP Server provides the following tools:

Server Management

  • check_typesense_health - Checks the health status of the configured Typesense server

  • list_collections - Retrieves a list of all collections in the Typesense server

Collection Management

  • describe_collection - Retrieves the schema and metadata for a specific collection

  • export_collection - Exports all documents from a specific collection

  • create_collection - Creates a new collection with the provided schema

  • delete_collection - Deletes a specific collection

  • truncate_collection - Truncates a collection by deleting all documents but keeping the schema

Document Operations

  • create_document - Creates a single new document in a specific collection

  • upsert_document - Upserts (creates or updates) a single document in a specific collection

  • index_multiple_documents - Indexes (creates, upserts, or updates) multiple documents in a batch

  • delete_document - Deletes a single document by its ID from a specific collection

  • import_documents_from_csv - Imports documents from CSV data into a collection

Search Capabilities

  • search - Performs a keyword search on a specific collection

  • vector_search - Performs a vector similarity search on a specific collection

Available Tools

14 tools
check_typesense_healthB
Checks the health status of the configured Typesense server.

Args:
    ctx (Context): The MCP context, providing access to application resources.

Returns:
    dict | str: The health status dictionary from Typesense or an error message.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/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 the full burden of behavioral disclosure. It mentions that the tool returns 'The health status dictionary from Typesense or an error message,' which hints at read-only behavior and potential errors. However, it lacks details on authentication needs, rate limits, what 'health status' entails (e.g., uptime, metrics), or side effects. For a tool with zero annotation coverage, this is insufficient.

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 sized and front-loaded: the first sentence states the purpose clearly, followed by structured 'Args' and 'Returns' sections. There's minimal waste, though the 'ctx' argument explanation is somewhat redundant given MCP conventions. Overall, it's efficient and well-organized.

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 the tool's low complexity (0 parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and return types but lacks depth in behavioral aspects like error handling or health metrics details. Without annotations or output schema, more context on what 'health status' includes would improve completeness, but it's not entirely inadequate for a simple check tool.

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

Parameters4/5

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

The input schema has 0 parameters with 100% coverage, so no parameters need documentation. The description correctly notes 'Args: ctx (Context): The MCP context,' which adds context beyond the empty schema, though this is standard for MCP tools. It doesn't introduce unnecessary parameter details, aligning with the schema's simplicity.

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: 'Checks the health status of the configured Typesense server.' It specifies the verb ('checks') and resource ('health status of Typesense server'), making the intent unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'describe_collection' or 'list_collections', which serve different purposes but could be loosely related to system status.

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

Usage Guidelines2/5

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., server configuration), typical use cases (e.g., monitoring, troubleshooting), or exclusions (e.g., not for data operations). With siblings focused on data manipulation (create, delete, search), some implicit context exists, but no explicit usage instructions are given.

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

create_collectionC
Creates a new collection with the provided schema.

Args:
    ctx (Context): The MCP context.
    schema (dict): The collection schema dictionary (must include 'name' and 'fields').

Returns:
    dict | str: The created collection schema dictionary or an error message string.
ParametersJSON Schema
NameRequiredDescriptionDefault
schemaYes

TDQS

C2.9/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 the full burden of behavioral disclosure. It states this is a creation operation, implying mutation, but doesn't cover permissions, idempotency, error handling, or side effects. The return type hint ('dict | str') is minimal. For a mutation tool with zero annotation coverage, this is insufficient.

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 well-structured with a purpose statement, Args section, and Returns section. It's front-loaded and avoids unnecessary details. However, the 'ctx' parameter documentation adds minimal value since it's a standard MCP context, slightly reducing efficiency.

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

Completeness2/5

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

Given the tool's complexity (mutation with nested objects), lack of annotations, no output schema, and low schema coverage, the description is incomplete. It doesn't explain the collection schema format, error conditions, or behavioral implications. The return type hint is vague ('dict | str'), failing to provide adequate context for the agent.

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 0%, so the description must compensate. It adds value by naming the parameter ('schema'), specifying it's a 'dict', and noting it 'must include 'name' and 'fields''. However, it doesn't fully explain the schema structure or constraints beyond this, leaving gaps. The baseline is 3 due to partial compensation.

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: 'Creates a new collection with the provided schema.' It specifies the verb ('creates') and resource ('collection'), and distinguishes it from siblings like 'delete_collection' or 'list_collections'. However, it doesn't explicitly differentiate from 'describe_collection' in terms of creation vs. description, keeping it at 4 rather than 5.

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

Usage Guidelines2/5

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, when-not-to-use scenarios, or compare it to other collection-related tools like 'truncate_collection' or 'export_collection'. 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.

create_documentC
Creates a single new document in a specific collection.

Args:
    ctx (Context): The MCP context.
    collection_name (str): The name of the collection.
    document (dict): The document data to create (must include an 'id' field unless auto-schema).

Returns:
    dict | str: The created document dictionary or an error message string.
ParametersJSON Schema
NameRequiredDescriptionDefault
collection_nameYes
documentYes

TDQS

C2.9/5.0
Behavior2/5

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 tool creates a document and mentions an 'id' field requirement, but fails to cover critical aspects like permissions needed, error handling, whether it's idempotent, or mutation effects. 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.

Conciseness4/5

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 structured parameter and return details. It avoids unnecessary fluff, but the Args/Returns formatting could be more integrated into natural language, slightly affecting flow.

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

Completeness2/5

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

Given the complexity of a mutation tool with no annotations, no output schema, and 0% schema coverage, the description is incomplete. It lacks details on error cases, return value structure beyond 'dict | str', and behavioral traits like idempotency or side effects, making it inadequate for safe agent use.

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 0%, so the description must compensate. It explains that 'collection_name' specifies the target collection and 'document' includes data with an 'id' field requirement, adding some semantic context beyond the bare schema. However, it doesn't detail format constraints or examples, keeping it at a baseline level.

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 verb ('creates') and resource ('single new document in a specific collection'), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'index_multiple_documents' or 'upsert_document', which prevents 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 Guidelines2/5

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 'upsert_document' or 'index_multiple_documents'. The description mentions the tool's function but lacks context about prerequisites, constraints, or comparisons with siblings, leaving the agent without usage direction.

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

delete_collectionC
Deletes a specific collection.

Args:
    ctx (Context): The MCP context.
    collection_name (str): The name of the collection to delete.

Returns:
    dict | str: The deleted collection schema dictionary or an error message string.
ParametersJSON Schema
NameRequiredDescriptionDefault
collection_nameYes

TDQS

C2.9/5.0
Behavior2/5

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 that the tool returns either the deleted schema or an error, which is useful, but doesn't cover critical aspects like whether deletion is irreversible, permission requirements, or side effects on related data (e.g., documents in the collection).

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 sized and front-loaded with the core purpose. The Args and Returns sections are structured but could be more integrated; 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.

Completeness2/5

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

For a destructive tool with no annotations, no output schema, and low schema coverage, the description is incomplete. It lacks details on behavioral traits (e.g., irreversibility), error handling beyond a mention, and context for usage among siblings, making it inadequate for safe and effective use.

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 0%, so the description must compensate. It adds the meaning of 'collection_name' as 'the name of the collection to delete', which clarifies the parameter's role. However, it doesn't provide format details, constraints, or examples, leaving gaps in understanding.

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 verb ('deletes') and resource ('a specific collection'), making the purpose immediately understandable. It distinguishes from siblings like 'truncate_collection' by specifying deletion rather than emptying, though it doesn't explicitly compare to alternatives.

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

Usage Guidelines2/5

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 'truncate_collection' (which empties but doesn't delete) or 'describe_collection' (which inspects). The description doesn't mention prerequisites, consequences, or appropriate contexts for deletion.

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

delete_documentA
Deletes a single document by its ID from a specific collection.

Args:
    ctx (Context): The MCP context.
    collection_name (str): The name of the collection.
    document_id (str): The ID of the document to delete.

Returns:
    dict | str: The deleted document dictionary or an error message string.
ParametersJSON Schema
NameRequiredDescriptionDefault
collection_nameYes
document_idYes

TDQS

A3.6/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 the full burden. While 'Deletes' clearly indicates a destructive operation, the description doesn't disclose whether this requires specific permissions, whether the deletion is permanent/reversible, what happens to related data, or any rate limits. The return value description adds some context but doesn't fully address behavioral traits.

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 sized with a clear purpose statement followed by parameter and return value documentation. The Args/Returns sections are well-structured, though the inclusion of 'ctx (Context)' in Args is unnecessary since it's an MCP implementation detail not relevant to tool selection.

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?

For a destructive operation with no annotations and no output schema, the description provides basic purpose and parameter information but lacks important context about permissions, permanence, side effects, and error handling. The return value description helps but doesn't fully compensate for the missing behavioral transparency.

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

Parameters4/5

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

With 0% schema description coverage, the description compensates by clearly explaining both parameters: 'collection_name' identifies the specific collection, and 'document_id' identifies the exact document to delete. The description adds meaningful context beyond the bare schema, though it doesn't specify format requirements or constraints.

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

Purpose5/5

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

The description clearly states the specific action ('Deletes'), resource ('a single document by its ID'), and scope ('from a specific collection'). It distinguishes from sibling tools like 'delete_collection' (which deletes entire collections) and 'truncate_collection' (which removes all documents from a collection).

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 implies usage for deleting individual documents by ID from collections, but doesn't explicitly state when to use this vs alternatives like 'delete_collection' or 'truncate_collection'. No guidance on prerequisites or error conditions is provided.

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

describe_collectionC
Retrieves the schema and metadata for a specific collection.

Args:
    ctx (Context): The MCP context.
    collection_name (str): The name of the collection to describe.

Returns:
    dict | str: The collection schema dictionary or an error message string.
ParametersJSON Schema
NameRequiredDescriptionDefault
collection_nameYes

TDQS

C2.9/5.0
Behavior2/5

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 this is a retrieval operation, implying read-only behavior, but doesn't mention error handling (returns 'error message string'), performance characteristics, authentication needs, or other behavioral traits beyond the basic operation.

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 sized and front-loaded with the core purpose in the first sentence. The Args and Returns sections are structured but slightly verbose for a single parameter; every sentence earns its place by clarifying input and output.

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 the tool's low complexity (1 parameter, no output schema, no annotations), the description is minimally complete. It covers the basic operation and parameter semantics but lacks usage guidelines, detailed behavioral context, and output format explanation (only mentions 'schema dictionary' or 'error message').

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 0%, so the description must compensate. It adds meaning by specifying that 'collection_name' is 'the name of the collection to describe,' which clarifies the parameter's purpose beyond the schema's title 'Collection Name.' However, it doesn't provide format constraints, examples, or validation rules.

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: 'Retrieves the schema and metadata for a specific collection.' It specifies the verb ('retrieves') and resource ('collection'), but doesn't explicitly differentiate from siblings like 'list_collections' or 'export_collection' which handle different operations on collections.

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

Usage Guidelines2/5

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, context for usage, or comparisons to sibling tools like 'list_collections' (which lists collections) or 'export_collection' (which exports data).

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

export_collectionB
Exports all documents from a specific collection.

Warning: This can be memory-intensive for very large collections.

Args:
    ctx (Context): The MCP context.
    collection_name (str): The name of the collection to export.

Returns:
    list[dict] | str: A list of document dictionaries or an error message string.
ParametersJSON Schema
NameRequiredDescriptionDefault
collection_nameYes

TDQS

B3.2/5.0
Behavior3/5

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 usefully warns about memory intensity for large collections, which is valuable operational context. However, it doesn't mention other important behaviors: whether this requires special permissions, what format the exported documents are in (beyond 'list of dictionaries'), whether it's paginated or streams results, or potential timeout/rate limit considerations.

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 sized and front-loaded: the core purpose is stated first, followed by a warning, then parameter and return documentation. Every sentence earns its place, though the Args/Returns formatting is somewhat verbose for a single parameter. No redundant information is included.

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 the tool's moderate complexity (export operation with memory implications), no annotations, and no output schema, the description is partially complete. It covers the basic operation and a key warning, but lacks details about authentication needs, error conditions beyond 'error message string', output format specifics, or performance characteristics. The return type documentation is minimal ('list of document dictionaries').

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?

The schema description coverage is 0%, so the description must compensate. It does explain the single parameter ('collection_name') as 'The name of the collection to export', which adds basic meaning beyond the schema's title 'Collection Name'. However, it doesn't provide format expectations, constraints (e.g., naming rules), or examples—just a minimal definition.

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 with a specific verb ('Exports') and resource ('all documents from a specific collection'). It distinguishes itself from siblings like 'list_collections' (metadata only) and 'describe_collection' (schema info), but doesn't explicitly differentiate from 'import_documents_from_csv' (inverse operation) or 'truncate_collection' (deletion vs export).

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

Usage Guidelines2/5

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 'list_collections' (for metadata) or 'search' (for filtered queries). The warning about memory intensity is helpful but doesn't constitute usage guidance—it's a behavioral constraint rather than a recommendation about when this tool is appropriate.

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

import_documents_from_csvA
Imports documents from CSV data (as a string) or a file path into a collection.
Assumes CSV header row maps directly to Typesense field names.
Does basic type inference for int/float, otherwise treats as string.

Args:
    ctx (Context): The MCP context.
    collection_name (str): The name of the collection.
    csv_data_or_path (str): Either the raw CSV data as a string or the path to a CSV file.
    batch_size (int): Number of documents to import per batch. Defaults to 100.
    action (str): Import action ('create', 'upsert', 'update'). Defaults to 'upsert'.

Returns:
    dict: A summary of the import process including total processed, successful, failed count, and any errors.
ParametersJSON Schema
NameRequiredDescriptionDefault
actionNoupsert
batch_sizeNo
collection_nameYes
csv_data_or_pathYes

TDQS

A4.1/5.0
Behavior4/5

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 disclosing key behavioral traits: CSV format expectations (header row mapping, type inference), batch processing capability, and multiple import actions. It explains what gets created/updated and the batch processing approach, though it doesn't mention error handling specifics or performance characteristics.

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?

Well-structured with purpose statement, behavioral details, parameter explanations, and return description in logical sections. The Args and Returns sections are particularly helpful. Could be slightly more concise by integrating some behavioral details into the opening statement, but overall efficient with minimal redundancy.

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

Completeness4/5

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

For a 4-parameter mutation tool with no annotations and no output schema, the description provides good coverage: clear purpose, parameter semantics, behavioral context (CSV expectations, batching, actions), and return value description. Missing details about error handling edge cases or performance limitations, but generally complete for the tool's complexity.

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

Parameters4/5

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

With 0% schema description coverage, the description compensates well by explaining all 4 parameters in the Args section, providing meaning beyond the bare schema. It clarifies that 'csv_data_or_path' accepts either raw data or file path, explains 'batch_size' default and purpose, and enumerates possible 'action' values. Only 'ctx' parameter lacks explanation.

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

Purpose5/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 with specific verb ('Imports'), resource ('documents'), source ('from CSV data or a file path'), and destination ('into a collection'). It distinguishes itself from siblings like 'create_document', 'upsert_document', and 'index_multiple_documents' by specifying CSV-based bulk import functionality.

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 implies usage context through the CSV header mapping assumption and type inference details, but doesn't explicitly state when to use this tool versus alternatives like 'index_multiple_documents' or 'upsert_document'. No explicit when-not-to-use guidance or prerequisite information is provided.

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

index_multiple_documentsA
Indexes (creates, upserts, or updates) multiple documents in a batch.

Args:
    ctx (Context): The MCP context.
    collection_name (str): The name of the collection.
    documents (list[dict]): A list of document dictionaries to index.
    action (str): The import action ('create', 'upsert', 'update'). Defaults to 'upsert'.

Returns:
    list[dict] | str: A list of result dictionaries (one per document) or an error message string.
                     Each result dict typically looks like {'success': true/false, 'error': '...', 'document': {...}}.
ParametersJSON Schema
NameRequiredDescriptionDefault
actionNoupsert
collection_nameYes
documentsYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses the batch nature and available actions, but lacks details on permissions, rate limits, error handling, or what 'indexes' entails (e.g., storage implications). The return format is described, which adds value beyond basic function.

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 well-structured with a purpose statement followed by Args and Returns sections. It's front-loaded and efficient, though the return description could be slightly more concise. Every sentence adds value without redundancy.

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?

For a mutation tool with 3 parameters, 0% schema coverage, and no output schema, the description does adequately by covering parameters and return format. However, it lacks context on side effects, idempotency, or error cases, which would be helpful given the complexity.

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

Parameters4/5

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 explains all 3 parameters: collection_name, documents (as a list of dicts), and action (with enum-like values and default). This adds crucial meaning beyond the bare schema, though it doesn't detail document structure or collection requirements.

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 verb ('indexes') and resource ('multiple documents'), specifying it handles batch operations. It distinguishes from single-document siblings like create_document and upsert_document by emphasizing 'multiple' and 'batch', though it doesn't explicitly contrast with import_documents_from_csv.

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 implies usage for batch indexing with different actions (create, upsert, update), but doesn't specify when to choose this over alternatives like create_document for single documents or import_documents_from_csv for CSV imports. No explicit when-not scenarios or prerequisites are mentioned.

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

list_collectionsC
Retrieves a list of all collections in the Typesense server.

Args:
    ctx (Context): The MCP context.

Returns:
    list | str: A list of collection schemas or an error message string.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/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. It states this is a retrieval operation (read-only), but doesn't disclose important behavioral traits like whether this requires authentication, rate limits, pagination behavior, or what happens when no collections exist. The return type description ('list | str') is minimal and doesn't explain error conditions.

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

Conciseness3/5

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

The description is appropriately concise with three sentences, but the structure could be improved. The purpose statement is clear, but the Args/Returns formatting is somewhat redundant given the empty parameter list. The description could be more front-loaded with behavioral context.

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

Completeness2/5

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

For a read operation with no annotations and no output schema, the description is incomplete. It doesn't explain what a 'collection schema' contains, how errors are signaled, or important operational constraints. Given the server has multiple collection-related tools, more context about this tool's role would be helpful.

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

Parameters4/5

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

With 0 parameters and 100% schema description coverage, the baseline is 4. The description correctly indicates there are no parameters beyond the context object, which aligns with the empty input schema. No additional parameter semantics are needed or provided.

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 with a specific verb ('Retrieves') and resource ('list of all collections in the Typesense server'). It distinguishes itself from siblings like 'describe_collection' (detailed view) and 'create_collection' (write operation), but doesn't explicitly mention these distinctions in the description text itself.

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

Usage Guidelines2/5

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. With siblings like 'describe_collection' (for detailed info on a specific collection) and 'check_typesense_health' (for server status), there's no indication of when this list operation is appropriate versus those alternatives.

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

truncate_collectionA
Truncates a collection by deleting all documents but keeping the schema.
Achieved by retrieving schema, deleting collection, and recreating it.

Args:
    ctx (Context): The MCP context.
    collection_name (str): The name of the collection to truncate.

Returns:
    str: A success or error message string.
ParametersJSON Schema
NameRequiredDescriptionDefault
collection_nameYes

TDQS

A4.1/5.0
Behavior3/5

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 the destructive nature ('deleting all documents') and the implementation method ('retrieving schema, deleting collection, and recreating it'), which adds useful context about potential side effects (e.g., temporary unavailability). However, it lacks details on permissions, error handling, 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.

Conciseness5/5

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 implementation details and parameter/return explanations. Every sentence earns its place by adding value, with no redundant or verbose content, making it highly efficient.

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?

For a destructive tool with no annotations and no output schema, the description is adequate but has gaps. It covers the purpose, method, and parameters, but lacks details on return values beyond 'success or error message,' error conditions, or integration with sibling tools. Given the complexity, it could benefit from more behavioral context.

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

Parameters4/5

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 explains that 'collection_name' is 'the name of the collection to truncate,' which adds essential meaning beyond the schema's basic type. However, it doesn't provide examples, constraints, or format details for the parameter.

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

Purpose5/5

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

The description clearly states the specific action ('truncates a collection'), the resource affected ('collection'), and the precise effect ('deleting all documents but keeping the schema'). It distinguishes from sibling tools like delete_collection (which removes the entire collection) and delete_document (which removes individual documents).

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

Usage Guidelines4/5

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

The description implies usage context through the phrase 'deleting all documents but keeping the schema,' suggesting this tool is for resetting document content while preserving structure. However, it doesn't explicitly state when to use this versus alternatives like delete_collection (for full removal) or manual document deletion, nor does it mention prerequisites or exclusions.

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

upsert_documentA
Upserts (creates or updates) a single document in a specific collection.

Args:
    ctx (Context): The MCP context.
    collection_name (str): The name of the collection.
    document (dict): The document data to upsert (must include an 'id' field).

Returns:
    dict | str: The upserted document dictionary or an error message string.
ParametersJSON Schema
NameRequiredDescriptionDefault
collection_nameYes
documentYes

TDQS

A3.7/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 the full burden. It states the action ('upserts') and return type, but lacks details on permissions, error conditions (beyond mentioning error messages), idempotency, or side effects. For a mutation tool with zero annotation coverage, this is insufficient behavioral disclosure.

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

Conciseness5/5

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 structured Args and Returns sections. Every sentence earns its place by providing essential information without redundancy, making it highly efficient.

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 2 parameters with 0% schema coverage, no annotations, and no output schema, the description provides basic purpose and parameter hints but lacks details on behavior, error handling, and full parameter semantics. It's minimally adequate but has clear gaps for a mutation tool in this 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 0%, so the description must compensate. It adds meaning by explaining that 'document' must include an 'id' field, which is crucial semantic info not in the schema. However, it doesn't clarify the format or constraints for 'collection_name' or other aspects of 'document', leaving gaps.

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

Purpose5/5

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

The description clearly states the verb ('upserts'), resource ('a single document'), and scope ('in a specific collection'), distinguishing it from siblings like create_document (only creates) and delete_document (deletes). The term 'upserts' is specific and indicates both creation and update functionality.

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

Usage Guidelines4/5

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

The description implies usage context by specifying 'creates or updates a single document', suggesting it's for when you want to ensure a document exists with given data. However, it doesn't explicitly state when to use this vs. alternatives like create_document or update_document (if present), nor does it mention prerequisites or exclusions.

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

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a distinct purpose with clear boundaries. For example, create_document vs. upsert_document vs. index_multiple_documents cover different single/batch operations, while search vs. vector_search target different search methods. No tools appear to duplicate functionality.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with snake_case throughout (e.g., create_collection, delete_document, list_collections). The naming convention is predictable and matches the action-resource structure of the Typesense API domain.

Tool Count5/5

With 14 tools, this server provides comprehensive coverage for a search engine/database server. The count is well-scoped for the domain, offering health checks, collection management, document CRUD operations, search capabilities, and data import/export without being overwhelming.

Completeness5/5

The tool set provides complete coverage for Typesense operations, including health monitoring, full collection lifecycle (create/describe/list/delete/truncate), document operations (create/upsert/delete/batch import/indexing), and both keyword and vector search capabilities. No obvious gaps exist for core search engine functionality.

Maintenance

ActivityMaintained
ResponsivenessWithin a week

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

  • A
    license
    A
    quality
    C
    maintenance
    A Model Context Protocol server providing vector database capabilities through Chroma, enabling semantic document search, metadata filtering, and document management with persistent storage.
    6
    41
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that enables semantic search capabilities by providing tools to manage Qdrant vector database collections, process and embed documents using various embedding services, and perform semantic searches across vector embeddings.
    4
    71
    4
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that provides AI assistants with direct access to local document collections through full-text search, supporting multiple formats and hierarchical collections.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    A local-first semantic search server for documents, supporting PDFs, Office files, and text/markdown, enabling natural language search via the Model Context Protocol (MCP).
    1
    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/avarant/typesense-mcp-server'

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