MCP Connector

Index and Query Documents with Lucene

Java/Spring Boot MCP server for Apache Lucene full-text document search, indexing, and metadata-filtered queries.

Works with apache lucenespring bootdockermavennpm

90
Spark score
out of 100
Updated 7 months ago
Version 1.0.0
Models
universal

Add to Favorites

Why it matters

Leverage Apache Lucene for efficient full-text search and document retrieval. This Spring Boot-based MCP server allows for indexing, updating, and querying documents with advanced filtering capabilities.

Outcomes

What it gets done

01

Index documents using Apache Lucene.

02

Perform full-text searches and retrieve documents.

03

Update and delete documents by ID.

04

Filter search results using metadata.

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/vb-lucene-mcp-server | bash

Capabilities

Tools your agent gets

lucene_status

Get server and index status information

lucene_upsert

Add or update documents in the Lucene index

lucene_query

Query documents with optional metadata filters using Lucene syntax

lucene_delete

Delete documents by ID from the Lucene index

lucene_list

List documents with pagination support

Overview

lucene-mcp-server MCP Server

A Java/Spring Boot MCP server exposing Apache Lucene full-text search and indexing through five tools (status, upsert, query, delete, list), with complex query syntax and metadata filtering. Use it when an MCP client needs classic full-text inverted-index search, not vector/embedding-based semantic search.

What it does

A Java-based MCP server providing document search and retrieval using Apache Lucene for full-text indexing and search, built on Spring Boot. It exposes an MCP-compatible tool interface backed by a RESTful API for document management: adding, updating, deleting, and listing documents in a Lucene index, plus complex Lucene query-syntax searches with metadata-based filtering.

When to use - and when NOT to

Use it when an MCP client such as Claude Desktop needs full-text search and document indexing backed by Apache Lucene - upserting documents, running Lucene-syntax queries with metadata filters, or listing and deleting indexed documents. It is not a vector or embedding-based semantic search server - it is Lucene's classic full-text inverted-index search.

Capabilities

Five tools are exposed: lucene_status (get server/index status), lucene_upsert (add or update documents), lucene_query (query documents with optional metadata filters), lucene_delete (delete by ID), and lucene_list (list documents with pagination). The server supports complex queries using Lucene's query syntax and metadata-based filtering, is built on Spring Boot for straightforward setup and deployment, and includes Docker instructions for containerization. Configuration requires the LUCENE_BASE_URL environment variable (the Lucene server API base URL); MCP_FORCE_TEXT is optional, forcing text output when a client can't render JSON tool output. It requires Java 11+ and Maven 3.6.0+ (Docker optional), listens on port 8080 by default, and can be reconfigured via Spring Boot application properties such as server.port and lucene.index.path. A Node.js MCP shim bridges the Java server to Claude Desktop over STDIO. Besides building from source, the server can be run via Docker (docker build then docker run -p 8080:8080) or directly with mvn spring-boot:run; the shim itself is started separately with npm install followed by LUCENE_BASE_URL=http://localhost:8080/mcp/v1 npm start. Claude Desktop is pointed at the shim through an mcpServers config entry naming the Node executable and the shim's server.js path (or a wrapper shell script), with LUCENE_BASE_URL and MCP_FORCE_TEXT passed through its env block. Example tool invocations include running lucene_status with no arguments, lucene_list with a limit/offset pair, lucene_upsert with a documents array carrying id/text/metadata, lucene_query with a queries array specifying query and top_k, and lucene_delete with an ids array.

How to install

git clone https://github.com/your-username/mcp-lucene-server.git
cd mcp-lucene-server
mvn clean install
java -jar target/mcp-lucene-server-0.0.1-SNAPSHOT.jar

Who it's for

Developers who need MCP-connected full-text document search backed by Apache Lucene, integrated into Claude Desktop or another MCP client via a Node-based shim over STDIO.

Source README

A Java-based MCP server that provides efficient document search and retrieval capabilities using Apache Lucene for full-text indexing and search, built on Spring Boot.

Installation

From Source

git clone https://github.com/your-username/mcp-lucene-server.git
cd mcp-lucene-server
mvn clean install
java -jar target/mcp-lucene-server-0.0.1-SNAPSHOT.jar

Docker

docker build -t mcp-lucene-server .
docker run -p 8080:8080 mcp-lucene-server

Spring Boot

mvn spring-boot:run

MCP Shim

cd mcp-shim
npm install
LUCENE_BASE_URL=http://localhost:8080/mcp/v1 npm start

Configuration

Claude Desktop

{
  "mcpServers": {
    "lucene": {
      "command": "/opt/homebrew/bin/node",
      "args": [".../MCP-Lucene-Server/mcp-shim/server.js"],
      "env": {
        "LUCENE_BASE_URL": "http://localhost:8080/mcp/v1",
        "MCP_FORCE_TEXT": "1"
      }
    }
  }
}

Claude Desktop with Wrapper Script

{
  "mcpServers": {
    "lucene": {
      "command": ".../MCP-Lucene-Server/mcp-shim/run-shim.sh",
      "env": {
        "LUCENE_BASE_URL": "http://localhost:8080/mcp/v1",
        "MCP_FORCE_TEXT": "1"
      }
    }
  }
}

Available Tools

Tool Description
lucene_status Get server/index status
lucene_upsert Add or update documents
lucene_query Query documents (with optional metadata filters)
lucene_delete Delete by ID
lucene_list List documents with pagination

Features

  • MCP Compatibility: Implements the core Model Context Protocol
  • Lucene-Based: Uses Apache Lucene for full-text search and indexing
  • RESTful API: Provides a RESTful API for server interaction
  • Document Management: Add, update, delete, and list documents in the Lucene index
  • Complex Queries: Supports complex queries using Lucene query syntax
  • Filtering: Filter queries based on document metadata
  • Spring Boot: Built on Spring Boot for easy configuration and deployment
  • Dockerization: Includes instructions for containerizing the application with Docker

Environment Variables

Required

  • LUCENE_BASE_URL - Base URL for the Lucene server API

Optional

  • MCP_FORCE_TEXT - Force text output if the client cannot render JSON tool outputs

Usage Examples

Run lucene_status
Run lucene_list with: { "limit": 10, "offset": 0 }
Run lucene_upsert with: {"documents":[{"id":"doc-1","text":"hello world","metadata":{"lang":"en"}}]}
Run lucene_query with: {"queries":[{"query":"hello","top_k":5}]}
Run lucene_delete with: { "ids": ["doc-1"] }

Resources

Notes

Requires Java 11+, Maven 3.6.0+, and optionally Docker. The server runs on port 8080 by default. Configuration can be customized using Spring Boot application properties, including server.port and lucene.index.path. The MCP shim enables integration with Claude Desktop via STDIO.

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.