This project is currently in early development. Feedback and contributions are welcome.
Testing has been done using:
- vscode with Github Copilot as the agent.
- opencode agent CLI tool - works from v0.2.0
This project provides an MCP (Message Context Protocol) server for Parseable, enabling AI agents and tools to interact with Parseable data streams (logs, metrics, traces) using natural language and structured tool calls.
- List available data streams in Parseable
- Query data streams using SQL
- Get schema, stats, and info for any data stream
- Modular MCP tool registration for easy extension
- Supports both HTTP and stdio MCP modes
- Environment variable and flag-based configuration
Ensure you have Go 1.20+ installed.
git clone https://github.com/thenodon/mcp-parseable-server
cd mcp-parseable-server
# Build the MCP server binary
go build -o mcp-parseable-server ./cmd/mcp_parseable_server./mcp-parseable-server --listen :9034The MCP server will listen on http://localhost:9034/mcp for agent/tool requests.
./mcp-parseable-server --mode stdioThis mode is used for CLI or agent-to-agent workflows.
You can configure the Parseable connection using environment variables or flags:
PARSEABLE_URLor--parseable-url- url to the parseable instance (default: http://localhost:8000)PARSEABLE_USERor--parseable-user(default: admin)PARSEABLE_PASSor--parseable-pass(default: admin)LISTEN_ADDRor--listen- the address when running the mcp server in http mode (default: :9034)
Example:
PARSEABLE_URL="http://your-parseable-host:8000" PARSEABLE_USER="admin" PARSEABLE_PASS="admin" ./mcp-parseable-serverExecute a SQL query against a data stream.
- Inputs:
query: SQL query stringstreamName: Name of the data streamstartTime: ISO 8601 start time (e.g. 2026-01-01T00:00:00+00:00)endTime: ISO 8601 end time
- Returns: Query result
List all available data streams in Parseable.
- Returns: Array of stream names
Get the schema for a specific data stream.
- Inputs:
stream: Name of the data stream
- Returns: Schema fields and types
Get stats for a data stream.
- Inputs:
streamName: Name of the data stream
- Returns: Stats object (see tool description for details)
Get info for a data stream.
- Inputs:
streamName: Name of the data stream
- Returns: Info object (see tool description for details)
- List streams:
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "callTool",
"params": { "tool": "list_data_streams", "arguments": {} }
}'- Query a stream:
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "callTool",
"params": {
"tool": "query_data_stream",
"arguments": {
"query": "SELECT COUNT(*) FROM log WHERE body ILIKE '%clamd%'",
"streamName": "otellogs",
"startTime": "2026-01-01T00:00:00+00:00",
"endTime": "2026-01-06T00:00:00+00:00"
}
}
}'- Get schema for a stream:
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 3,
"method": "callTool",
"params": {
"tool": "get_data_stream_schema",
"arguments": {
"stream": "otellogs"
}
}
}'Agents can discover all available tools and their input/output schemas via the MCP protocol. Each tool description includes details about returned fields and their meanings.
To add new tools, create a new file in tools/, implement the registration function, and add it to RegisterParseableTools in tools/register.go.
This work is licensed under the GNU GENERAL PUBLIC LICENSE Version 3.
- No prompts or resources are currently included for agent usage.
- No tools to understand standalone or cluster Parseable setup.
- .....