
Research
/Security News
737 Chrome VPN Extensions Linked to Brand Impersonation and Browser Traffic Redirection
The campaign amassed more than 75,000 installs by targeting Russian-speaking users seeking access to blocked services.
@parseable/parseable-mcp-server
Advanced tools
Model Context Protocol server for Parseable. Lets LLMs discover and query Parseable datasets.
Model Context Protocol server for Parseable. Lets any MCP-capable client (Claude Desktop, Claude Code, Cursor, Codex, VS Code Copilot, Continue, Windsurf, Cline, Zed) discover, query, and manage Parseable datasets and alerts.
Status: v0.2 — 27 tools across discovery, query (SQL + PromQL), alerts, alert targets, diagnostics, RBAC (read-only), and admin (read-only). Tools-only over stdio for maximum cross-client compatibility.
One command, interactive setup — detects Claude Desktop / Cursor, asks for your Parseable URL + credentials, writes their config files:
npx -y @parseable/parseable-mcp-server init
Restart your MCP client. Tools appear. Skip the rest of this README unless you want to configure manually.
For scripted / non-interactive setup:
npx -y @parseable/parseable-mcp-server init \
--client claude-desktop \
--url https://your-parseable.example.com \
--username admin \
--password "$PARSEABLE_PASSWORD"
Supported --client values: claude-desktop, cursor. Existing config files are backed up as <config>.bak before being modified. Other mcpServers entries are preserved.
| Tool | Purpose |
|---|---|
list_datasets | List all log datasets on the server. |
get_dataset_schema | Get column names + types for a dataset. |
get_dataset_info | Get dataset metadata (created_at, retention, owner, time window). |
get_dataset_stats | Get event count and storage bytes for a dataset. |
sample_events | Return the most recent N events from a dataset (time-bounded, row-capped). |
| Tool | Purpose |
|---|---|
query_sql | Run a SQL SELECT over a time window. DDL/DML blocked. Auto-injects LIMIT. |
query_promql | Run PromQL instant or range query against a metrics dataset. Auto-routes by start+end. |
| Tool | Purpose |
|---|---|
list_alerts | List all alerts with state, severity, tags. |
get_alert | Get full config for one alert. |
list_alert_tags | List all alert tags in use. |
enable_alert | Enable an alert. |
disable_alert | Disable an alert. |
evaluate_alert | Force-evaluate an alert now. May fire real notifications. |
create_alert | Create a new alert. Walks user through 8 questions (title, dataset, condition, window, frequency, severity, tags, targets), confirms assembled spec before submitting. |
Notification destinations referenced by alerts. Three supported types: Slack, generic webhook, Alertmanager.
| Tool | Purpose |
|---|---|
list_alert_targets | List all configured targets with ID, name, type. Called automatically by create_alert so the user picks targets by name instead of typing UUIDs. |
get_alert_target | Get full config for one target (endpoint, headers, auth, notification interval). |
create_alert_target | Create a new Slack/webhook/Alertmanager target. |
| Tool | Purpose |
|---|---|
ping | Check server connectivity and return version/build info (/about), /liveness, /readiness. Use to debug MCP-server → Parseable connection issues. |
explain_query | Run EXPLAIN on a SQL query without executing it. Returns DataFusion plan for debugging slow queries, predicate pushdown, partition pruning. |
Inspect users, roles, and effective access. No tools for creating, modifying, or deleting users/roles — RBAC mutation stays in the Parseable UI/CLI by design.
| Tool | Purpose |
|---|---|
list_users | List all registered users. |
get_user_roles | Get the roles assigned to a specific user. |
list_roles | List all role names defined on the server. |
get_role | Get the privilege definition for a role (actions + datasets). |
get_default_role | Get the default role assigned to new users. |
These compose for permission audits: "Does user X have write access to dataset Y?" → call get_user_roles(X) → for each role call get_role → check if Ingest or PutAlert privilege covers Y.
Inspect cluster health and dataset lifecycle. No tools for mutating cluster state or retention — keep changes in UI/CLI by design.
| Tool | Purpose |
|---|---|
get_cluster_status | List all nodes (Prism, Querier, Ingestor, Indexer) with status. Distributed mode only. |
get_cluster_metrics | Aggregated metrics across all nodes (ingest rate, query latency, storage). Distributed mode only. |
get_retention | Get retention policy for a dataset. |
No install step — every MCP client invokes the server via npx, which fetches it on demand. The Quickstart above wires it into Claude Desktop / Cursor automatically. Skip ahead to Client setup below if you prefer manual config.
For local development (hacking on the server itself):
git clone https://github.com/parseablehq/parseable-mcp-server.git
cd parseable-mcp-server
npm install
npm run build
node dist/server.js
All configuration via environment variables (set in your MCP client's config file, not a .env):
| Var | Required | Default | Purpose |
|---|---|---|---|
PARSEABLE_URL | ✅ | — | Parseable server base URL, no trailing slash |
PARSEABLE_USERNAME | ✅ | — | Basic auth username |
PARSEABLE_PASSWORD | ✅ | — | Basic auth password |
PARSEABLE_DEFAULT_DATASET | — | Scope a tool prompt to one dataset (advisory) | |
PARSEABLE_MAX_ROWS | 1000 | Hard cap on query result rows | |
PARSEABLE_QUERY_TIMEOUT_MS | 30000 | HTTP request timeout |
Manual config — only needed if Quickstart doesn't cover your client (Claude Code, Codex, VS Code, Windsurf, Continue, Cline, Zed). The command and args are the same for every client — only the config file location and syntax differ.
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) · %APPDATA%\Claude\claude_desktop_config.json (Windows)
{
"mcpServers": {
"parseable": {
"command": "npx",
"args": ["-y", "@parseable/parseable-mcp-server"],
"env": {
"PARSEABLE_URL": "https://your-parseable.example.com",
"PARSEABLE_USERNAME": "admin",
"PARSEABLE_PASSWORD": "your-password"
}
}
}
}
Restart Claude Desktop. Tools appear under the hammer icon.
claude mcp add parseable \
--env PARSEABLE_URL=https://your-parseable.example.com \
--env PARSEABLE_USERNAME=admin \
--env PARSEABLE_PASSWORD=your-password \
-- npx -y @parseable/parseable-mcp-server
Verify with claude mcp list.
~/.cursor/mcp.json (global) or <project>/.cursor/mcp.json (per-project):
{
"mcpServers": {
"parseable": {
"command": "npx",
"args": ["-y", "@parseable/parseable-mcp-server"],
"env": {
"PARSEABLE_URL": "https://your-parseable.example.com",
"PARSEABLE_USERNAME": "admin",
"PARSEABLE_PASSWORD": "your-password"
}
}
}
}
Reload Cursor. Tools surface in chat.
~/.codex/config.toml:
[mcp_servers.parseable]
command = "npx"
args = ["-y", "@parseable/parseable-mcp-server"]
[mcp_servers.parseable.env]
PARSEABLE_URL = "https://your-parseable.example.com"
PARSEABLE_USERNAME = "admin"
PARSEABLE_PASSWORD = "your-password"
.vscode/mcp.json in workspace, or user settings:
{
"servers": {
"parseable": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@parseable/parseable-mcp-server"],
"env": {
"PARSEABLE_URL": "https://your-parseable.example.com",
"PARSEABLE_USERNAME": "admin",
"PARSEABLE_PASSWORD": "your-password"
}
}
}
}
Same shape as Cursor's mcp.json. Consult each client's MCP docs for the exact config file path.
Once wired:
nginx_access."nginx_access over the last hour."otel_metrics over last 30 min, step 1m."<id>, too noisy."nginx_access > 50 over 5 min, severity high, notify the ops Slack channel." — the client walks the 8-step Q&A, calls list_alert_targets to pick "ops Slack" by name, then submits.list_alert_targets.https://hooks.slack.com/services/... named ops-alerts." — calls create_alert_target.enable_alert, disable_alert, evaluate_alert, create_alert) are NOT gated by env flag — every MCP client already shows per-call approval UI. evaluate_alert can fire real notifications; review the call before approving.query_sql rejects DDL/DML keywords and injects a row LIMIT. Time window is mandatory.npm run dev # tsc --watch
npm start # node dist/server.js
npm test # run unit tests
npm run test:watch # vitest watch mode
npm run test:coverage
npm run lint # biome check
npm run fix # biome auto-fix + format
npm run format # biome format only
CI (GitHub Actions) runs lint + build + test on every push and PR to main, on Node 20.
create_alert is Q&A-driven via tool description — works on every MCP client (Claude Desktop, Claude Code, Cursor, Codex, VS Code, etc.) since it relies only on the client reading the tool description, not on client-specific UI primitives.
When you ask the client to create an alert, it asks one question per turn:
list_datasets if unsure)5m, 15m, 1h)critical / high / medium / lowlist_alert_targets, shows a numbered list, you pick by nameThen it shows the fully assembled JSON spec, you confirm, and it submits via create_alert. The same flow works for create_alert_target (asks name → type → endpoint → type-specific fields).
list_dashboards, get_dashboard, create_dashboard, add_dashboard_tile)ping, explain_query)npm publish @parseable/mcp-server (one-line install via npx)mcp.parseable.commodelcontextprotocol/servers registry + SmitheryApache-2.0. See LICENSE.
FAQs
Model Context Protocol server for Parseable. Lets LLMs discover and query Parseable datasets.
The npm package @parseable/parseable-mcp-server receives a total of 335 weekly downloads. As such, @parseable/parseable-mcp-server popularity was classified as not popular.
We found that @parseable/parseable-mcp-server demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
The campaign amassed more than 75,000 installs by targeting Russian-speaking users seeking access to blocked services.

Company News
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.