by kurrent-io
Provides a simple interface for reading, writing, and creating projections on KurrentDB streams.
Enables fast exploration of KurrentDB data by exposing stream operations and projection management through the Model Context Protocol. Users can read events, list streams, write new events, build and manage AI‑assisted projections, and monitor projection status.
--run-projections=all
and --start-standard-projections
.KURRENTDB_CONNECTION_STRING
via environment variable.server.py
script (e.g., python path\to\server.py
).read_stream
, list_streams
, write_events_to_stream
, build_projection
, etc.) with the required parameters.test_projection
tool.uv run server.py
or python server.py
as shown in the client configs.read_stream
defaults to 10 events, configurable via the limit
parameter; list_streams
defaults to 100 streams.build_projection
with a natural‑language prompt, then pass the generated code to create_projection
.This is a simple MCP server to help you explore data and prototype projections faster on top of KurrentDB.
You need to enable --run-projections=all and --start-standard-projections on KurrentDB The $streams stream is used to look for available streams.
{
"servers": {
"KurrentDB": {
"type": "stdio",
"command": "uv",
"args": [
"--directory",
"path to mcp-server folder",
"run",
"server.py"
],
"env": {
"KURRENTDB_CONNECTION_STRING": "insert kurrentdb connection here"
}
}
}
}
This configuration file should work in Claude Desktop (https://modelcontextprotocol.io/quickstart/user) and VS Code (.vscode/mcp.json).
{
"mcpServers": {
"kurrentdb": {
"command": "python",
"args": ["path to mcp-server folder\\server.py"],
"env": {
"KURRENTDB_CONNECTION_STRING": "insert kurrentdb connection here"
}
}
}
}
This configuration file should work in Cursor (.cursor\mcp.json) and Windsurf (.codeium\windsurf\mcp_config.json).
This MCP server is designed to make stream data available to the MCP client. It provides a simple interface for querying and retrieving stream data. It can also create, test and debug projections.
Access control is done using the KurrentDB connection string provided at configuration time as an environment variable.
The servers exposes 8 tool calls:
read_stream
list_streams
build_projection
create_projection
update_projection
test_projection
write_events_to_stream
get_projections_status
read_stream
Reads events from a specific stream in KurrentDB.
Parameters:
stream
(required): Stream name to read frombackwards
(optional, default: false): Read direction - true for newest first, false for oldest firstlimit
(optional, default: 10): Number of events to returnSample Prompts:
Example Usage:
Tool: read_stream
Parameters:
- stream: "orders"
- backwards: true
- limit: 5
write_events_to_stream
Writes new events to a stream in KurrentDB.
Parameters:
stream
(required): Name of the stream to write todata
(required): JSON object containing the event dataevent_type
(required): Type/category of the eventmetadata
(required): JSON object with additional event informationSample Prompts:
Example Usage:
Tool: write_events_to_stream
Parameters:
- stream: "orders"
- data: {"orderId": "ORD-001", "customerId": 123, "amount": 99.99}
- event_type: "OrderCreated"
- metadata: {"timestamp": "2025-05-19T10:00:00Z", "source": "web"}
list_streams
Lists all available streams in the KurrentDB database.
Parameters:
limit
(optional, default: 100): Number of streams to returnread_backwards
(optional, default: true): Read direction for the $streams streamSample Prompts:
Example Usage:
Tool: list_streams
Parameters:
- limit: 20
- read_backwards: true
Projections in KurrentDB are computed views that process events from streams to create queryable data structures.
build_projection
Uses AI assistance to build a projection based on your requirements.
Parameters:
user_prompt
(required): Description of what the projection should doSample Prompts:
Example Usage:
Tool: build_projection
Parameters:
- user_prompt: "Create a projection that aggregates order totals by day and calculates running totals"
create_projection
Creates a projection in KurrentDB using provided code.
Parameters:
projection_name
(required): Name for the projectioncode
(required): Generated projection codeSample Prompts:
Note: Client normally always asks the user for confirmation before creating a projection.
update_projection
Updates an existing projection with new code.
Parameters:
projection_name
(required): Name of the projection to updatecode
(required): Updated projection codeSample Prompts:
get_projections_status
Retrieves status and statistics for a specific projection.
Parameters:
projection_name
(required): Name of the projectionSample Prompts:
test_projection
Writes test events to a projection to verify its functionality. Verification is done by reading the streams emitted or the state of the projection.
Sample Prompts:
Parameters:
projection_name
(required): Name of the projection to testSample Prompts:
Modern LLMs can generate sample events for various use cases on their given enough information.
{
"data": {
"orderId": "ORD-12345",
"customerId": "CUST-789",
"items": [
{"productId": "PROD-001", "quantity": 2, "price": 29.99}
],
"total": 59.98
},
"event_type": "OrderCreated",
"metadata": {
"timestamp": "2025-05-19T14:30:00Z",
"source": "ecommerce-api",
"correlationId": "corr-123"
}
}
{
"data": {
"userId": "USER-456",
"action": "page_view",
"page": "/products/electronics",
"sessionId": "sess-789"
},
"event_type": "UserActivity",
"metadata": {
"timestamp": "2025-05-19T14:35:00Z",
"userAgent": "Mozilla/5.0...",
"ipAddress": "192.168.1.100"
}
}
Please log in to share your review and rating for this MCP.
Discover more MCP servers with similar functionality and use cases
by googleapis
Provides a configurable MCP server that abstracts connection pooling, authentication, observability, and tool management to accelerate development of database‑backed AI tools.
by bytebase
DBHub is a universal database gateway that implements the Model Context Protocol (MCP) server interface, enabling MCP-compatible clients to interact with various databases.
by neo4j-contrib
Provides Model Context Protocol servers for interacting with Neo4j databases, managing Aura instances, and handling personal knowledge graph memory through natural‑language interfaces.
by mongodb-js
Provides a Model Context Protocol server that connects to MongoDB databases and Atlas clusters, exposing a rich set of tools for querying, managing, and administering data and infrastructure.
by benborla
A Model Context Protocol (MCP) server that provides read-only access to MySQL databases, enabling Large Language Models (LLMs) to inspect database schemas and execute read-only queries.
by ClickHouse
Provides tools that let AI assistants run read‑only SQL queries against ClickHouse clusters or the embedded chDB engine, plus a health‑check endpoint for service monitoring.
by elastic
Provides direct, natural‑language access to Elasticsearch indices via the Model Context Protocol, allowing AI agents to query and explore data without writing DSL.
by motherduckdb
Provides an MCP server that enables SQL analytics on DuckDB and MotherDuck databases, allowing AI assistants and IDEs to execute queries via a unified interface.
by redis
Provides a natural language interface for agentic applications to manage and search data in Redis efficiently.