laurus-mcp 0.3.1

MCP (Model Context Protocol) server for the Laurus search engine
docs.rs failed to build laurus-mcp-0.3.1
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

laurus-mcp

Crates.io License: MIT

Model Context Protocol (MCP) server for the Laurus search engine. Enables AI assistants such as Claude to index documents and perform searches through the standard MCP stdio transport.

Features

  • MCP stdio transport -- Runs as a subprocess; communicates with the AI client via stdin/stdout
  • gRPC client -- Proxies all tool calls to a running laurus-server instance
  • All search modes -- Lexical (BM25), vector (HNSW/Flat/IVF), and hybrid search
  • Dynamic connection -- Connect to any laurus-server endpoint via the connect tool
  • Document lifecycle -- Put, add, get, delete, and search documents through MCP tools

Architecture

AI Client (Claude, etc.)
  └─ stdio (JSON-RPC) ─→ laurus-mcp
                            └─ gRPC ─→ laurus-server
                                         └─ Index on Disk

Quick Start

# Start laurus-server
laurus serve --port 50051

# Configure Claude Code
claude mcp add laurus -- laurus mcp --endpoint http://localhost:50051

Claude Desktop

Add the following to your Claude Desktop configuration file (claude_desktop_config.json):

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "laurus": {
      "command": "laurus",
      "args": ["mcp", "--endpoint", "http://localhost:50051"]
    }
  }
}

MCP Tools

Tool Description
connect Connect to a laurus-server gRPC endpoint
create_index Create a new index with a schema
get_stats Get index statistics (document count, vector fields)
get_schema Get the current index schema
add_field Dynamically add a field to the index
delete_field Remove a field from the schema
put_document Put (upsert) a document
add_document Add a document as a new chunk (append)
get_documents Retrieve all documents by ID
delete_documents Delete all documents by ID
commit Commit pending changes to disk
search Search documents using the Laurus unified query DSL (lexical, vector, hybrid)

Documentation

License

This project is licensed under the MIT License - see the LICENSE file for details.