Skip to main content

dataxplan-mcp

CI PyPI License: MIT

An MCP server that exposes dataxplan, the PostgreSQL EXPLAIN-plan analyzer for Python, as tools for AI agents: give it the output of EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON) and it returns the bottlenecks, the estimation errors, documented findings with a suggested action and a source reference, a regression comparison, and a self-time chart.

Agents asked why a query is slow tend to eyeball the plan and get it wrong: self time is per loop and inclusive of children, so the slow node is rarely the obvious one, and a row mis-estimate (the usual root cause) is buried in the output. Reading the plan belongs in a deterministic, versioned library that the agent calls, which leaves the agent to interpret the result and decide. The server never connects to a database: the agent runs EXPLAIN and passes the output, so nothing leaves its environment.

dataxplan-mcp architecture: an AI agent calls the server's analysis and chart tools, which route to the validated dataxplan core and return structured JSON or a PNG chart

Tools

Analysis tools return dataxplan's payload: the metrics, the findings (each with a severity, a suggestion and a documented source reference) and a summary.

Tool Purpose
analyze_plan bottlenecks, estimation errors and findings from an EXPLAIN plan (JSON, text, YAML or XML)
compare_plans compare two plans for regression (timing, shape, estimates, findings)
plan_tree the plan as an annotated text tree (self time, rows, flags per node)
describe_inputs how to produce the plan, the accepted formats, the findings and the thresholds

Chart tools return a PNG image.

Tool Purpose
plan_chart self time per node, with the high-severity findings highlighted

All tools are read-only, and the server makes no database connection.

Installation

Run it with uv (no install needed):

uvx dataxplan-mcp

or install from PyPI:

pip install dataxplan-mcp

Configuration

Add it to your MCP client. For example:

{
  "mcpServers": {
    "dataxplan": {
      "command": "uvx",
      "args": ["dataxplan-mcp"]
    }
  }
}

If you installed with pip, use "command": "dataxplan-mcp" with no args.

Example

analyze_plan(plan="<EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON) output>")
  -> { "summary_metrics": { "execution_time_ms": 1240.0,
                            "max_estimation_error": 20000, ... },
       "findings": [ { "id": "seq_scan_hot", "severity": "high",
                       "detail": "... 95% of execution time ...",
                       "suggestion": "consider an index ...",
                       "reference": "PostgreSQL: Using EXPLAIN; the Indexes chapter" } ],
       "summary": "dataxplan - ...\n  execution time ..." }

The agent runs the EXPLAIN itself and pastes the output (any format) as plan.

Design

The server is a thin, stateless wrapper. All of the analysis lives in the dataxplan library, which computes the metrics from the documented EXPLAIN fields and grounds each finding in the PostgreSQL manual (and Leis et al. 2015 for the estimation rules). The server adds the tool schema, read-only annotations and an input-schema helper so an agent can format the input and act on the result. The findings are documented heuristics, not guarantees, and the server connects to nothing.

Related

License

MIT. Written and maintained by Atakan Arikan, MSc Student at Tsinghua University and Politecnico di Milano.

Release files for dataxplan-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dataxplan-mcp 0.1.0
File Size Uploaded
dataxplan_mcp-0.1.0.tar.gz 8.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dataxplan-mcp 0.1.0
File Interpreter ABI Platform
dataxplan_mcp-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 16.1 kB

Release files / dataxplan_mcp-0.1.0.tar.gz

Download URL dataxplan_mcp-0.1.0.tar.gz
Size 8.1 kB
Tags Source
SHA-256 checksum
How to use checksums
20eb875e7dfa68dc7c4986400f23e6cddc10eaca3067dc48e15e171fa43f9892
BLAKE2b-256 checksum
How to use checksums
b737a3d8888d16bbeea4a396ea281006191f3787bce6bf379864aeb8b558b934
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 17, 2026.

Transparency log

Release files / dataxplan_mcp-0.1.0-py3-none-any.whl

Download URL dataxplan_mcp-0.1.0-py3-none-any.whl
Size 8.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
970f0329290d9838aa6fd1a8e2fc76deed107cc1eec593f99961b68ad06e3462
BLAKE2b-256 checksum
How to use checksums
5c65112dab68deb87c5c5ec42f06f5c60df76d9de23305c56fc83cbb09a2715c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 17, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page