Back to Discover

parseable-mcp-server

connector

parseablehq

Model Context Protocol server for Parseable. Lets LLMs discover and query Parseable.

View on GitHub
0 starsSynced Aug 4, 2026

Install to Claude Code

/plugin marketplace add parseablehq/parseable-mcp-server

README

Parseable MCP Server

Model Context Protocol server for Parseable. Lets any MCP-capable client (Claude Desktop, Claude Code, Cursor, VS Code Copilot, Windsurf, Continue, Cline, Zed, Codex) discover, query, and manage Parseable datasets and alerts using natural language.

Two transports:

ModeTransportAuthUse when
stdioStdin/stdoutAPI key via env varsClaude Desktop, Cursor, VS Code, local clients
httpStreamable HTTPCloud API key, or self-hosted URL + API keyHosted deployments and remote clients

Quickstart — stdio (local)

One command — interactive setup, detects Claude Desktop / Cursor, writes config files:

npx -y @parseable/parseable-mcp-server init

Restart your MCP client. Tools appear. Done.

Scripted:

npx -y @parseable/parseable-mcp-server init \
  --client claude-desktop \
  --url https://your-parseable.example.com \
  --api-key "$PARSEABLE_API_KEY"

Supported --client values: claude-desktop, cursor.


Quickstart — HTTP (hosted)

HTTP mode serves a setup page and MCP endpoint from one process. Cloud clients supply an API key. Self-hosted clients supply their Parseable URL and API key.

1. Set env vars

# .env
PORT=8787

2. Run

# From source
npm run build:all
node dist/server.js http

# Docker
docker build -t parseable-mcp-server .
docker run -p 8787:8787 --env-file .env parseable-mcp-server

3. Connect from Claude

  • Claude Desktop → Settings → Connectors → Add custom connector
  • Name: Parseable
  • URL: https://mcp.your-domain.com/mcp
  • Header X-Parseable-URL: https://your-parseable.example.com
  • Header X-API-Key: your Parseable API key
  • Click Add → Connect

4. Connect from Claude Code

claude mcp add --transport http parseable https://mcp.your-domain.com/mcp --scope user \
  --header "X-Parseable-URL: https://your-parseable.example.com" \
  --header "X-API-Key: $PARSEABLE_API_KEY"

5. Connect from Cursor / VS Code

{
  "mcpServers": {
    "parseable": {
      "type": "http",
      "url": "https://mcp.your-domain.com/mcp",
      "headers": {
        "X-Parseable-URL": "https://your-parseable.example.com",
        "X-API-Key": "your-parseable-api-key"
      }
    }
  }
}

HTTP authentication

Each POST /mcp request requires X-API-Key and supports two modes:

ModeHeaders
CloudX-Parseable-Mode: cloud, X-API-Key
Self-hosted (default)X-Parseable-URL, X-API-Key

X-Parseable-Mode is checked first when present. Omitting it selects self-hosted mode; clients do not need to send X-Parseable-Mode: self-hosted. In cloud mode, server validates API key with Parseable Cloud, caches returned URL and tenant routing in a bounded in-memory LRU for 24 hours, and sends x-p-tenant on Parseable requests. Cache is disposable; misses and process restarts resolve through Cloud again.

For self-hosted mode, HTTP server validates supplied URL and forwards API key to that Parseable instance. By default, private and loopback Parseable URLs are rejected to limit SSRF. Set PARSEABLE_MCP_ALLOW_PRIVATE=true only for trusted deployments that need private network targets.


Environment variables

stdio mode

VarRequiredDefaultPurpose
PARSEABLE_URLParseable base URL
PARSEABLE_API_KEYAPI key for self-hosted Parseable
PARSEABLE_DEFAULT_DATASETAdvisory default dataset
PARSEABLE_MAX_ROWS1000Hard cap on query rows
PARSEABLE_QUERY_TIMEOUT_MS30000HTTP timeout (ms)

HTTP mode

VarRequiredDefaultPurpose
PORT8787HTTP listen port
PARSEABLE_MCP_ALLOW_PRIVATEfalsePermit private/loopback Parseable URLs supplied in request headers
PARSEABLE_ORCHESTRATOR_URLCloud only-Parseable Cloud orchestrator base URL
PARSEABLE_CLOUD_AUTH_TOKENCloud only-Service bearer token for API-key validation
PARSEABLE_CLOUD_CACHE_TTL_SECONDS86400Cloud routing LRU TTL
PARSEABLE_CLOUD_CACHE_MAX_ENTRIES10000Maximum cached cloud API-key routes
PARSEABLE_CLOUD_VALIDATE_TIMEOUT_MS10000Cloud validation timeout

OpenTelemetry (optional)

VarDefaultPurpose
PARSEABLE_OTEL_ENABLEDfalseEnable trace export to Parseable
PARSEABLE_OTEL_ENDPOINTParseable OTLP endpoint
PARSEABLE_OTEL_USERNAMEBasic auth for OTLP
PARSEABLE_OTEL_PASSWORDBasic auth for OTLP
PARSEABLE_OTEL_TRACES_STREAMmcp-tracesStream name for traces
PARSEABLE_OTEL_DEBUGfalseLog OTLP export errors

Copy .env.example.env for a full template.


Tools

Discovery

ToolPurpose
list_datasetsList all log datasets
get_dataset_schemaColumn names + types
get_dataset_infoMetadata (created_at, retention, time window)
get_dataset_statsEvent count and storage bytes
sample_eventsMost recent N events (time-bounded, row-capped)

Query

ToolPurpose
query_sqlSQL SELECT over a time window. DDL/DML blocked. Auto-injects LIMIT.
query_promqlPromQL instant or range query against a metrics dataset

Alerts

ToolPurpose
list_alertsList all alerts with state, severity, tags
get_alertFull config for one alert
list_alert_tagsAll alert tags in use
enable_alertEnable an alert
disable_alertDisable an alert
evaluate_alertForce-evaluate now. May fire real notifications.
create_alertCreate alert via guided Q&A (8 questions, confirms before submit)

Alert targets

ToolPurpose
list_alert_targetsList targets (Slack, webhook, Alertmanager)
get_alert_targetFull config for one target
create_alert_targetCreate a new Slack / webhook / Alertmanager target

Diagnostics

ToolPurpose
pingCheck connectivity, return version + health
explain_queryEXPLAIN a SQL query without executing it

RBAC (read-only)

ToolPurpose
list_usersList all users
get_user_rolesRoles for a specific user
list_rolesAll role names
get_rolePrivilege definition for a role
get_default_roleDefault role for new users

Admin (read-only)

ToolPurpose
get_cluster_statusAll nodes with status (distributed mode)
get_cluster_metricsAggregated ingest/query/storage metrics
get_retentionRetention policy for a dataset

Client setup — stdio

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "Parseable": {
      "command": "npx",
      "args": ["-y", "@parseable/parseable-mcp-server"],
      "env": {
        "PARSEABLE_URL": "https://your-parseable.example.com",
        "PARSEABLE_API_KEY": "your-api-key"
      }
    }
  }
}

Claude Code

claude mcp add Parseable \
  --env PARSEABLE_URL=https://your-parseable.example.com \
  --env PARSEABLE_API_KEY=your-api-key \
  -- npx -y @parseable/parseable-mcp-server

Cursor

~/.cursor/mcp.json:

{
  "mcpServers": {
    "Parseable": {
      "command": "npx",
      "args": ["-y", "@parseable/parseable-mcp-server"],
      "env": {
        "PARSEABLE_URL": "https://your-parseable.example.com",
        "PARSEABLE_API_KEY": "your-api-key"
      }
    }
  }
}

VS Code

.vscode/mcp.json:

{
  "servers": {
    "Parseable": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@parseable/parseable-mcp-server"],
      "env": {
        "PARSEABLE_URL": "https://your-parseable.example.com",
        "PARSEABLE_API_KEY": "your-api-key"
      }
    }
  }
}

Development

git clone https://github.com/parseablehq/parseable-mcp-server.git
cd parseable-mcp-server
npm install
cp .env.example .env    # fill in your values

# Build
npm run build           # server only (tsc)
npm run build:ui        # React UI only (vite)
npm run build:all       # both

# Run
node dist/server.js         # stdio mode
node dist/server.js http    # HTTP mode (port 8787)

# Dev
npm run dev             # tsc --watch
npm run dev:ui          # vite dev server (proxies API to :8787)
npm test
npm run lint
npm run fix             # biome auto-fix

CI (GitHub Actions) runs lint + build:all + test on every push/PR to main on Node 22. On merge to main, Docker image is published to ghcr.io/parseablehq/parseable-mcp-server.


Security

  • Parseable API keys live in MCP client configuration. Use keys scoped to minimum required permissions.
  • HTTP clients send credentials in X-Parseable-URL and X-API-Key; always use HTTPS for remote deployments.
  • query_sql blocks DDL/DML and enforces a row LIMIT. Time window is mandatory.
  • evaluate_alert can fire real notifications — review the call before approving.
  • No telemetry. Outbound calls go only to the Parseable instance configured by the user.

License

Apache-2.0. See LICENSE.

Rendered live from parseablehq/parseable-mcp-server's GitHub README — not stored, always reflects the source repo.

1 Install Method

NameDescriptionCategorySource
npm packageInstall via npm (stdio transport)mcp-server@parseable/parseable-mcp-server

0 Comments

Login required
Log in to post a comment or update on this repo.

No comments yet — be the first to share an update.