Skip to main content
Glama
CoraDB MCP Server

CoraDB MCP Server

Official
by apsisware

Run CoraDB statements

execute_sql
Destructive

Run one or more SQL statements in one transaction, committing only when every statement succeeds and rolling back otherwise; use dryRun to preview changes without saving.

Instructions

Run any statements — INSERT, UPDATE, DELETE, MERGE, CREATE, ALTER, DROP, SELECT … — one or several separated by ;, in order, in one transaction. If every statement succeeds, the changes are committed; if any fails, nothing is saved. dryRun: true runs everything and then rolls it back, to see what would change. Returns the rows of each SELECT and the number of rows each other statement changed. COMMIT and ROLLBACK statements are refused: the call controls the transaction. Serial increments (AUTO_INCREMENT, NEXT_VALUE) are not undone by a rollback.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "sql": "<sql>",
      "database": "<database>"
    },
    "name": "execute_sql"
  }
}

Input Schema

NameRequiredDescriptionDefault
sqlYesOne or more statements separated by ;.
hostNoCoraDB broker host. Default: localhost.
portNoCoraDB broker port. Default: 33000.
userNoDatabase user. Default: dba.
dryRunNotrue: run everything, then roll it back (nothing is saved). Default false: commit when every statement succeeds.
paramsNoValues for the ? placeholders of a single statement, in order.
maxRowsNoMost rows to return per SELECT (default 200, at most 5000). totalRows still reports the full count.
databaseYesThe database to open.
passwordNoPassword of that user. Default: empty.
timeoutMsNoTime limit for the whole call, in milliseconds (default 120000, at most 600000). When it runs out the running statement is cancelled on the server, the rest are skipped and everything is rolled back.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Atomicity is spelled out precisely — commit only if all statements succeed, nothing saved otherwise — and the timeout cancellation path is documented as rollback. It also discloses two non-obvious side effects: COMMIT/ROLLBACK statements are rejected, and serial increments (AUTO_INCREMENT, NEXT_VALUE) survive a rollback. This goes well beyond the destructiveHint/readOnlyHint annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but front-loaded: transaction semantics come first, then dryRun, then return values, then the two edge-case caveats. Every sentence carries distinct information and nothing is repeated from the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is destructive, multi-statement and transactional with no output schema, and the description covers exactly the gaps that matter: commit/rollback semantics, preview mode, return values, rejected statements, and non-rollback side effects. An agent can call it correctly without further reading.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning for dryRun that is behavioral rather than duplicative: what actually happens to the data when it is true. It also covers the return shape per statement type, which the schema cannot express.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb and resource are explicit and the scope is enumerated (INSERT, UPDATE, DELETE, MERGE, CREATE, ALTER, DROP, SELECT), so an agent knows exactly what the tool executes. What it does not do is mark the boundary against the sibling execute_select, even though it advertises SELECT support.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It tells the agent how to preview effects (dryRun: true runs everything then rolls it back) and how to use the call safely (COMMIT/ROLLBACK refused because the call owns the transaction). It never says when to prefer execute_select or execute_select-style tools for reads, leaving the main routing decision to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.