TypesenseKit

95 typed Typesense operations for AI agents through an MCP server that is read-only by default.

AI & MLTypeScriptv1.4.3

CI CLI on npm MCP on npm MIT License

Operate Typesense from your terminal or AI agent

TypesenseKit gives humans and AI agents the same 95 typed Typesense operations through a human-friendly CLI and secure MCP server. MCP access is read-only by default; write, delete, key-management, and raw API tools require explicit opt-in.

Website · Typesense CLI · Typesense MCP · Guides

pnpm add -g @typesensekit/cli

# Securely prompts for the API key
tsk profile add local --url http://localhost:8108
tsk profile use local

# Discover the input, then run the operation
tsk documents.search --examples
tsk documents.search --input '{"collection":"products","params":{"q":"oak chair","query_by":"title"}}' --json

Why TypesenseKit

Typesense work often jumps between dashboards, one-off scripts, local curl commands, and agent experiments. TypesenseKit keeps those workflows on one predictable surface:

  • Use the same operation names from the CLI and MCP server.
  • Validate structured inputs before requests reach Typesense.
  • Get readable terminal output or stable, redacted JSON for scripts.
  • Keep secrets out of shell history with secure prompts, stdin, or macOS Keychain profiles.
  • Confirm destructive CLI operations before they run.
  • Give AI clients read-only tools by default, then opt in to writes deliberately.
  • Reach newer or uncommon endpoints through the raw api.call escape hatch.
One-off scriptsTypesense clientBasic MCP wrapperTypesenseKit
Terminal-first workflowManual——Built in
MCP tools——YesYes
Shared CLI/MCP operations——VariesYes
Safe operational defaultsYou build themApplication-ownedVariesRead-only + confirmations

Use the official Typesense client in application code. Use TypesenseKit when humans, scripts, and agents need to perform the same operational work.

CLI

Install the public CLI package:

pnpm add -g @typesensekit/cli

Create a profile interactively, pipe a key over stdin for automation, or use macOS Keychain:

# Interactive secure prompt
tsk profile add local --url http://localhost:8108

# Scripted setup without putting the key in argv or shell history
printf '%s' "$TYPESENSE_API_KEY" | tsk profile add ci \
  --url https://search.example.com --api-key-stdin

# Keychain-backed profile on macOS
tsk profile add production --url https://search.example.com --keychain

Every operation supports generated schemas and examples. Common results render as tables; pass --json for stable automation output.

tsk operations
tsk collections.list --input '{}'
tsk documents.search --schema
tsk documents.search --examples
tsk collections.list --input '{}' --json

Enable shell completion:

source <(tsk completion zsh)
source <(tsk completion bash)
tsk completion fish | source

See the Typesense CLI overview or read the complete CLI guide for profiles, environment-only use, JSON input, completion, and destructive-operation behavior.

MCP Server

Run the stdio server directly. It exposes search, reads, collection metadata, configuration reads, and system status operations by default.

TYPESENSE_URL=http://localhost:8108 \
TYPESENSE_API_KEY=xyz \
pnpm dlx @typesensekit/mcp

Write, delete, key-management, and raw API tools stay hidden unless full access is explicitly enabled:

TYPESENSEKIT_READ_ONLY=false \
TYPESENSE_URL=http://localhost:8108 \
TYPESENSE_API_KEY=xyz \
pnpm dlx @typesensekit/mcp

Generate client configuration from the CLI:

tsk skills mcp
tsk skills claude-desktop
tsk skills claude-code
tsk skills hermes

See the Typesense MCP overview, MCP guide, and client setup guide for Claude Desktop, Claude Code, Codex, Cursor, generic MCP clients, Streamable HTTP, and Docker.

MCP resources

ResourcePurpose
typesensekit://operationsOperations exposed by the current MCP mode
typesensekit://read-only-toolsTools included in the default read-only mode
typesense://collections/{collection}/schemaCollection schema lookup
typesense://collections/{collection}/documents/{id}Document lookup

What You Can Operate

TypesenseKit targets the Typesense v30.2 API for current first-class operations:

  • Collections, schema changes, documents, imports, exports, search, multi-search, facets, and suggestions
  • Aliases, presets, global synonym and curation sets, stopwords, stemming dictionaries, and legacy collection configuration
  • API keys, analytics rules and events, natural-language search models, conversations, and conversation history
  • Health, metrics, stats, debug information, snapshots, slow-request logging, database maintenance, and other system operations

The generated API coverage inventory is the source of truth for operation names and compatibility notes. Use api.call for endpoints that are new, uncommon, or not yet wrapped.

Security

Typesense administration touches data and credentials. Keep the MCP server read-only for assistant-facing deployments, use narrowly scoped Typesense keys, and protect any Streamable HTTP deployment with authentication and network controls.

Development

corepack enable
pnpm install
pnpm check

Run a local Typesense server:

docker run -p 8108:8108 \
  -e TYPESENSE_API_KEY=xyz \
  -e TYPESENSE_DATA_DIR=/data \
  typesense/typesense:30.2 --enable-cors

Run the landing page locally:

pnpm dev:web

See CONTRIBUTING.md for development and release rules.

License

MIT

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y @typesensekit/mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-akshitkrnagpal-typesensekit": {
      "command": "npx",
      "args": [
        "-y",
        "@typesensekit/mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

@typesensekit/mcpnpm

Compatible MCP Clients

TypesenseKit works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More