io.github.sinhaKAN-ra/anumana

Registre officiel Autres

Predict query cost, explain the plan, and rewrite it before you run it — 12 DB engines.

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

PYPI package anumana-mcp
Claude Code
claude mcp add anumana -e 'ANUMANA_DSN=<your anumana_dsn>' -e 'ANUMANA_TARGETS=<your anumana_targets>' -e 'ANUMANA_POLICIES=<ANUMANA_POLICIES>' -- uvx anumana-mcp==0.2.1
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "anumana": {
            "command": "uvx",
            "args": [
                "anumana-mcp==0.2.1"
            ],
            "env": {
                "ANUMANA_DSN": "<your anumana_dsn>",
                "ANUMANA_TARGETS": "<your anumana_targets>",
                "ANUMANA_POLICIES": "<ANUMANA_POLICIES>"
            }
        }
    }
}

Variables d'environnement

  • ANUMANA_DSN secret Read-only connection string for the primary target database (e.g. postgresql://readonly@host:5432/db). Optional if ANUMANA_TARGETS is used.
  • ANUMANA_TARGETS secret JSON array of named targets for a multi-database setup, each with name, engine, and connection string.
  • ANUMANA_POLICIES JSON array of operator enforcement policies (block/warn/allow rules by risk tier or flag). Optional; open by default.

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. Anumana
  2. What it does (the features)
  3. Install
  4. Try it with no database (30 seconds)
  5. Test against a real Postgres
  6. What's deliberately NOT here
  7. License
  8. Community & contact

Anumana

Know what your query will cost — before you run it. Inference-grade foresight for every query your AI writes.

Anumana is an MCP server that catches the costly query your AI coding agent just wrote — before it runs or reaches a PR. It rides inside Claude, Cursor, Windsurf, Codex, Kiro, or any MCP-compatible agent, reads your real schema via EXPLAIN (never EXPLAIN ANALYZE), and tells you — in plain English — how the query behaves and whether it'll hurt.

Its scope is the queries AI agents actually generate: text-to-SQL today, and RAG / vector search (pgvector) alongside it — because an agent writing a similarity search has no idea it just triggered a brute-force scan over every embedding. Anumana is the feedback loop the agent is missing.

It is not another NL→SQL tool and not a DB-health dashboard. It does one job: stop AI-written database code from silently rotting production.


What it does (the features)

ToolWhat it answers
preflight_query"Will this SQL query be costly?" — risk tier (cheap/moderate/expensive/dangerous), rows scanned vs returned, scan strategy, and overhead flags. Without running it.
preflight_vector_search"Will this RAG similarity search be costly?" — catches the vector traps a plain SQL check misses: brute-force scan with no HNSW/IVFFlat index, top_k too large, unbounded search, metadata-filter/ANN recall loss.
rewrite_query"Make it cheaper." — a verified equivalent rewrite with before/after planner cost, plus index suggestions gated on selectivity (won't tell you to index a column when the filter matches most of the table). engine="pgvector" suggests an HNSW index.
explain_query_working"How does this run?" — two layers: the logical gather order (FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT) and the actual physical plan for your schema, step by step.
preflight_schema_only"I haven't given you DB creds yet." — static analysis against pasted CREATE TABLE DDL, no connection. Offline, zero-trust front door.

Engines (12, across 7 paradigms): Postgres and SQLite are live-tested; MySQL, pgvector, MongoDB, DynamoDB, FalkorDB, Cassandra, Redshift, BigQuery, Snowflake and ClickHouse ship as offline-verified, untested adapters that are promoted to live one at a time. Full matrix + cost signals in SUPPORTED_ENGINES.md. The adapter interface is in DESIGN.md.

The one honest rule

Postgres planner cost is unitless — not milliseconds (docs). Anumana never fakes a ~3.2s number. It reports rows scanned, scan strategy, a risk tier, overhead flags, and the cost-delta of a rewrite — all defensible, nothing invented. Every estimate carries an accuracy tier (UPPER_BOUND live, HEURISTIC schema-only).


Install

pip install anumana-mcp          # once published to PyPI
# or from source:
pip install -e .

Then point your agent at it. The user installs it; the agent discovers the tools automatically on connect via the MCP tools/list handshake — there is no store to publish into.

Claude Desktop / Cursor / Windsurf / Kiro — mcpServers config block
{
  "mcpServers": {
    "anumana": {
      "command": "uvx",
      "args": ["anumana-mcp"],
      "env": { "ANUMANA_DSN": "postgres://readonly@localhost:5432/mydb" }
    }
  }
}

Use a read-only Postgres role. Anumana only ever EXPLAINs, but read-only is defence in depth. Omit ANUMANA_DSN to run in schema-only mode (DDL in, no DB).


Try it with no database (30 seconds)

python3 src/demo.py          # runs the engine on a canned plan, zero deps

Test against a real Postgres

# a throwaway table, then:
ANUMANA_DSN=postgres://localhost/mydb anumana-mcp

See src/live_test.py for a psql-backed harness that proves the real cost-delta and the selectivity gate on live data.


What's deliberately NOT here

No run_query (we never execute your SQL), no NL→SQL (the agent already does that), no DB-health reports, no dollar-billing. Staying narrow is the strategy.

License

MIT — see LICENSE.

Community & contact

Contributions welcome — see CONTRIBUTING.md and the Code of Conduct. Adding a database engine is the highest- leverage contribution; the adapter contract is small (SUPPORTED_ENGINES.md).

  • Bugs / ideas: open a GitHub issue.
  • Security: see SECURITY.md — report privately.
  • Maintainer: nomore.report@gmail.com

Questions fréquentes

Qu'est-ce que io.github.sinhaKAN-ra/anumana ?

Predict query cost, explain the plan, and rewrite it before you run it — 12 DB engines.

Comment installer io.github.sinhaKAN-ra/anumana ?

Il s'exécute sur votre machine. Dans Claude Code : claude mcp add anumana -e 'ANUMANA_DSN=<your anumana_dsn>' -e 'ANUMANA_TARGETS=<your anumana_targets>' -e 'ANUMANA_POLICIES=<ANUMANA_POLICIES>' -- uvx anumana-mcp==0.2.1. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour io.github.sinhaKAN-ra/anumana ?

Oui. Il attend ANUMANA_DSN, ANUMANA_TARGETS, à renseigner dans sa configuration.

io.github.sinhaKAN-ra/anumana est-il open source ?

Oui. Son code est sur GitHub sous licence MIT.

Qui maintient io.github.sinhaKAN-ra/anumana ?

Il est publié par sinhaKAN-ra. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.