Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"typesense": {
"env": {
"TYPESENSE_HOST": "",
"TYPESENSE_PORT": "",
"TYPESENSE_API_KEY": "",
"TYPESENSE_PROTOCOL": ""
},
"args": [
"--directory",
"~/typesense-mcp-server",
"run",
"mcp",
"run",
"main.py"
],
"command": "uv"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
A Model Context Protocol (MCP) Server that interfaces with Typesense
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
npx -y '@avarant/typesense-mcp-server' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
Checked @avarant/typesense-mcp-server against OSV.dev.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in search
Web and local search using Brave Search API
Production ready MCP server with real-time search, extract, map & crawl.
Context7 Platform -- Up-to-date code documentation for LLMs and AI code editors
mini cli search engine for your docs, knowledge bases, meeting notes, whatever. Tracking current sota approaches while being all local
MCP Security Weekly
Get CVE alerts and security updates for Typesense Mcp Server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
A Model Context Protocol (MCP) Server that interfaces with Typesense
Install uv
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.
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.
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
MCP_STATELESS_HTTP=true) is required for clients that don't keep an MCP session across requests.MCP_CORS_ORIGINS) for browser clients. Use a specific origin like http://localhost:8080 in production rather than *.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
| 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. |
The Typesense MCP Server provides the following tools:
check_typesense_health - Checks the health status of the configured Typesense serverlist_collections - Retrieves a list of all collections in the Typesense serverdescribe_collection - Retrieves the schema and metadata for a specific collectionexport_collection - Exports all documents from a specific collectioncreate_collection - Creates a new collection with the provided schemadelete_collection - Deletes a specific collectiontruncate_collection - Truncates a collection by deleting all documents but keeping the schemacreate_document - Creates a single new document in a specific collectionupsert_document - Upserts (creates or updates) a single document in a specific collection