npm package: @iflow-mcp/typesense-mcp-server
Description: A Model Context Protocol server that provides access to Typesense search capabilities
Author: Suhail
Latest version: 1.1.0

[![MseeP.ai Security Assessment Badge](https://mseep.net/pr/suhail-ak-s-mcp-typesense-server-badge.png)](https://mseep.ai/app/suhail-ak-s-mcp-typesense-server)

# Typesense MCP Server
---
[![npm version](https://badge.fury.io/js/typesense-mcp-server.svg)](https://badge.fury.io/js/typesense-mcp-server)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Node.js Version](https://img.shields.io/node/v/typesense-mcp-server)](https://nodejs.org/)

A [Model Context Protocol (MCP)](https://github.com/modelcontextprotocol/mcp) server implementation that provides AI models with access to [Typesense](https://typesense.org/) search capabilities. This server enables LLMs to discover, search, and analyze data stored in Typesense collections.

## Demo

[![Typesense MCP Server Demo | Claude Desktop](https://img.youtube.com/vi/your-video-id/0.jpg)](https://www.youtube.com/watch?v=your-video-id)

## Features

### Resources
- List and access collections via `typesense://` URIs
- Each collection has a name, description, and document count
- JSON mime type for schema access

### Tools
- **typesense_query**
  - Search for documents in Typesense collections with powerful filtering
  - Input: Query text, collection name, search fields, filters, sort options, limit
  - Returns matching documents with relevance scores

- **typesense_get_document**
  - Retrieve specific documents by ID from collections
  - Input: Collection name, document ID
  - Returns complete document data

- **typesense_collection_stats**
  - Get statistics about a Typesense collection
  - Input: Collection name
  - Returns collection metadata, document count, and schema information

### Prompts
- **analyze_collection**
  - Analyze collection structure and contents
  - Input: Collection name
  - Output: Insights about schema, data types, and statistics

- **search_suggestions**
  - Get suggestions for effective search queries for a collection
  - Input: Collection name
  - Output: Recommended search strategies based on collection schema

## Installation

### Via npm

```bash
# Global installation
npm install -g typesense-mcp-server

# Local installation
npm install typesense-mcp-server
```

### Via mcp-get

```bash
npx @michaellatman/mcp-get@latest install typesense-mcp-server
```

## Development

Install dependencies:
```bash
npm install
```

Build the server:
```bash
npm run build
```

For development with auto-rebuild:
```bash
npm run watch
```

## Installation for Development

### Using Claude Desktop

To use with Claude Desktop, add the server config:

On MacOS: `~/Library/Application Support/Claude/claude_desktop_config.json`

On Windows: `%APPDATA%/Claude/claude_desktop_config.json`

```json
{
  "mcpServers": {
    "typesense": {
      "command": "node",
      "args": [
        "~/typesense-mcp-server/dist/index.js",
        "--host", "your-typesense-host",
        "--port", "8108",
        "--protocol", "http",
        "--api-key", "your-api-key"
      ]
    },
  }
}
```

### Debugging

Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the [MCP Inspector](https://github.com/modelcontextprotocol/inspector), which is available as a package script:

```bash
npm run inspector
```

The Inspector will provide a URL to access debugging tools in your browser.

## Components

### Resources

The server provides information about Typesense collections:

- **Collection Schemas** (`typesense://collections/<collection>`)
  - JSON schema information for each collection
  - Includes field names and data types
  - Sample documents for understanding data structure

### Tools

The server provides the following tools for interacting with Typesense:

- **typesense_list_collections** - List all available collections with their schemas
  - Enables zero-conf discovery and routing
  - LLM can enumerate collections at runtime and pick the right one(s) before searching
  - Useful when collections vary by environment, tenant, or version
  - Returns field definitions for schema inference (searchable, facetable, numeric fields)
  - Supports `include_fields` parameter to control detail level

- **typesense_query** - Search for documents in a collection
  - Full-text search with customizable parameters
  - Supports filtering, sorting, and pagination

- **typesense_get_document** - Retrieve a specific document by ID

- **typesense_collection_stats** - Get detailed statistics about a specific collection

### Resource Templates

The server provides templates for:

- **typesense_search** - Template for constructing Typesense search queries
- **typesense_collection** - Template for viewing Typesense collection details

## Usage with Claude Desktop

To use this server with the Claude Desktop app, add the following configuration to the "mcpServers" section of your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "typesense": {
      "command": "npx",
      "args": [
        "-y",
        "typesense-mcp-server",
        "--host", "your-typesense-host",
        "--port", "8108",
        "--protocol", "http",
        "--api-key", "your-api-key"
      ]
    }
  }
}
```

## Logging

The server logs information to a file located at:
```
/tmp/typesense-mcp.log
```

This log contains detailed information about server operations, requests, and any errors that occur.

## License

This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.