Model Context Protocol server for Parseable. Lets LLMs discover and query Parseable.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
tools
-
create_alert
Create alert via guided Q&A (8 questions, confirms before submit)
-
create_alert_target
Create a new Slack / webhook / Alertmanager target
-
disable_alert
Disable an alert
-
enable_alert
Enable an alert
-
evaluate_alert
Force-evaluate now. May fire real notifications.
-
explain_query
EXPLAIN a SQL query without executing it
-
get_alert
Full config for one alert
-
get_alert_target
Full config for one target
-
get_cluster_metrics
Aggregated ingest/query/storage metrics
-
get_cluster_status
All nodes with status (distributed mode)
-
get_dataset_info
Metadata (created_at, retention, time window)
-
get_dataset_schema
Column names + types
-
get_dataset_stats
Event count and storage bytes
-
get_default_role
Default role for new users
-
get_retention
Retention policy for a dataset
-
get_role
Privilege definition for a role
-
get_user_roles
Roles for a specific user
-
list_alert_tags
All alert tags in use
-
list_alert_targets
List targets (Slack, webhook, Alertmanager)
-
list_alerts
List all alerts with state, severity, tags
-
list_datasets
List all log datasets
-
list_roles
All role names
-
list_users
List all users
-
ping
Check connectivity, return version + health
-
query_promql
PromQL instant or range query against a metrics dataset
-
query_sql
SQL SELECT over a time window. DDL/DML blocked. Auto-injects LIMIT.
-
sample_events
Most recent N events (time-bounded, row-capped)
analyzed commit 56b6289 · analyzer v33 · 1d ago
danger signals1
- suspicious endpoint 1.2.3.4 parseablehq-parseable-mcp-server-56b6289/test/auth.test.ts :182
expect(() => assertNotPrivateUrl("https://1.2.3.4")).not.toThrow();
code files: 71
filesystem 3
- fs parseablehq-parseable-mcp-server-56b6289/src/http.ts :1
import { existsSync, readFileSync } from "node:fs"; - fs parseablehq-parseable-mcp-server-56b6289/src/init.ts :1
import { copyFileSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs"; - fs (weak) parseablehq-parseable-mcp-server-56b6289/test/init.test.ts :1
import { existsSync, mkdtempSync, readFileSync, writeFileSync } from "node:fs";
network 4
- net parseablehq-parseable-mcp-server-56b6289/src/auth.ts :1
import { isIP } from "node:net"; - net parseablehq-parseable-mcp-server-56b6289/src/client.ts :89
const res = await fetch(url, { - net parseablehq-parseable-mcp-server-56b6289/src/cloud.ts :74
response = await fetch(`${baseUrl}/api/v1/cli/apikey/validate`, { - net (weak) parseablehq-parseable-mcp-server-56b6289/test/http.test.ts :57
const res = await app.fetch(
secrets 4
- secrets parseablehq-parseable-mcp-server-56b6289/src/cloud.ts :43
const authToken = process.env.PARSEABLE_CLOUD_AUTH_TOKEN; - secrets (weak) parseablehq-parseable-mcp-server-56b6289/test/cloud.test.ts :26
process.env.PARSEABLE_CLOUD_AUTH_TOKEN = "service-token"; - secrets (weak) parseablehq-parseable-mcp-server-56b6289/test/config.test.ts :28
process.env.PARSEABLE_API_KEY = "key"; - secrets (weak) parseablehq-parseable-mcp-server-56b6289/test/http.test.ts :154
process.env.PARSEABLE_CLOUD_AUTH_TOKEN = "service-token";
install hooks 1
- prepublishOnly parseablehq-parseable-mcp-server-56b6289/package.json :33
npm run build && npm run lint && npm test
declared dependencies 23
- @modelcontextprotocol/sdk@^1.29.0
- @hono/node-server@^2.0.12
- dotenv@^16.6.1
- hono@^4.12.32
- inquirer@^13.4.3
- jose@^6.2.4
- lru-cache@^11.5.2
- zod@^3.25.76
- @biomejs/biome@^2.5.5
- @tabler/icons-react@^3.45.0
- @tailwindcss/vite@^4.3.3
- @types/inquirer@^9.0.10
- @types/node@^22.20.1
- @types/react@^19.2.17
- @types/react-dom@^19.2.3
- @vitejs/plugin-react@^6.0.4
- @vitest/coverage-v8@^4.1.10
- react@^19.2.8
- react-dom@^19.2.8
- tailwindcss@^4.3.3
- typescript@^5.9.3
- vite@^8.1.5
- vitest@^4.1.10