Skip to main content
Glama

Server Details

Draxlr's remote MCP server connects AI assistants to your SQL databases and dashboards. Explore schemas, run read-only queries, manage saved queries and dashboards, and export results, all with row-level security so each user sees only their own data.

Ownership verified
Status
Healthy
Uptime
100.0% over 21 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4/5.0

Scored across 15 tools

Disambiguation5/5

Each tool has a clearly distinct purpose tied to a specific resource and action (list/get/run/save/update/export/search). Minor potential confusion between draxlr_run_query and draxlr_save_query is explicitly addressed in descriptions, and run vs run_saved_query is well-differentiated.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with a shared 'draxlr_' prefix and verb_noun structure (e.g., list_databases, get_query, save_query, update_saved_query). No mixed conventions or vague verbs.

Tool Count5/5

With 15 tools, the set is well-scoped for a dashboarding and query platform, covering databases, queries, dashboards, exports, search, and docs without excessive redundancy or thin coverage.

Completeness3/5

Core read, run, export, and save/update operations are covered, but notable gaps exist: no delete for saved queries or dashboards, no create/update dashboard, and no way to remove a widget from a dashboard. These missing lifecycle operations could block certain agent workflows.

Available Tools

15 tools
draxlr_add_query_to_dashboardAdd query to dashboardAInspect

Add a query as a widget to a dashboard. Use draxlr_save_query first to get a queryId, and draxlr_list_dashboards to get a dashboardGroupId.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional widget title (overrides the query name)
queryIdYesThe queryId to add (from draxlr_save_query or draxlr_run_query)
descriptionNoOptional widget description
displayTypeNoHow to display the widget (default table)
dashboardGroupIdYesThe dashboard id to add the query to (from draxlr_list_dashboards)

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds the prerequisite workflow, which is useful, but says nothing about what happens to the dashboard on failure, whether re-adding the same query duplicates a widget, or permission requirements.

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?

Two sentences, front-loaded with the action and followed by the prerequisite chain. No filler or redundancy; every clause earns its place.

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

Completeness4/5

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

Given no output schema and a mutation with five parameters, the description covers the essential prerequisites so an agent can call it correctly. It stops short of describing post-call behavior or error conditions, but the core guidance is sufficient.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter including the displayType enum is already documented in the schema. The description restates the origin of queryId and dashboardGroupId, which the schema properties already note, adding only marginal value.

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

Purpose5/5

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

The description states a specific verb and resource ('add a query as a widget to a dashboard'), which is unambiguous and clearly distinct from siblings like draxlr_save_query, draxlr_run_query, or draxlr_get_dashboard. An agent can identify the exact operation without opening the schema.

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

Usage Guidelines5/5

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

It explicitly names the prerequisite tools and the order to call them: draxlr_save_query to obtain a queryId and draxlr_list_dashboards to obtain a dashboardGroupId. This is direct when-to-use guidance tied to sibling tools rather than vague inference.

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

draxlr_export_dashboardExport a dashboardA
Read-onlyIdempotent
Inspect

Export an entire dashboard group (all of its widgets) as an Excel workbook (.xlsx) or a PDF. Use draxlr_list_dashboards to get a dashboardGroupId. Returns a short-lived link to download the file.

ParametersJSON Schema
NameRequiredDescriptionDefault
themeNoPDF only: render the dashboard in light (default) or dark theme
formatNoExport format: 'xlsx' (default) or 'pdf'
showFiltersNoPDF only: include the dashboard's filter bar in the output
dashboardGroupIdYesThe dashboard id to export (from draxlr_list_dashboards)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds meaningful context by disclosing that it returns a *short-lived* download link, which is not in the annotations and matters for an agent deciding whether to act on the result immediately.

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?

Three short sentences, front-loaded with what the tool does, then the prerequisite, then the return behavior. Every sentence earns its place with no redundancy.

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?

For a read-only export tool with no output schema, the description supplies the essential pieces: what gets exported, the formats, the prerequisite for the required ID, and the nature of the return value (short-lived link). Nothing critical for correct invocation is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so each parameter (theme, format, showFilters, dashboardGroupId) is already documented in the schema. The description only restates the format choice and dashboard-wide scope, adding little beyond what the schema provides, so baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb (Export) and resource (an entire dashboard group) with explicit scope note that all widgets are included, and names the two output formats. This clearly distinguishes it from draxlr_export_query, which exports a single query rather than a dashboard.

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?

Explicitly routes the agent to draxlr_list_dashboards to obtain the required dashboardGroupId, giving a clear prerequisite. It doesn't spell out when to prefer this over draxlr_export_query, but the resource-level distinction (dashboard vs query) makes the choice fairly obvious.

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

draxlr_export_queryExport a queryA
Read-onlyIdempotent
Inspect

Export a saved query's results as a CSV or Excel (.xlsx) file. Works for both raw SQL and query-builder saved queries. Use draxlr_list_saved_queries or draxlr_get_query to get a queryId. Returns a short-lived link to download the file.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoExport format: 'csv' (default) or 'xlsx'
queryIdYesThe saved query id to export (from draxlr_list_saved_queries or draxlr_get_query)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered structurally. The description adds genuine value beyond that by noting the return is a short-lived download link and clarifying both query types are supported.

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?

Three tight sentences with the core action front-loaded, followed by supported scope, prerequisite sourcing, and return format. No filler; each sentence earns its place.

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?

With no output schema, the description compensates by describing the return value (short-lived download link). Combined with format options, queryId provenance, and supported query types, an agent has everything needed to invoke it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so both queryId and format are already documented in the schema, including the enum and default. The description echoes the queryId source and format options but adds little syntax or meaning beyond the schema, making the baseline 3 appropriate.

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

Purpose5/5

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

States a specific verb and resource (export a saved query's results) and names the output formats (CSV, Excel/.xlsx). It also scopes which query types are supported (raw SQL and query-builder), letting an agent distinguish it from draxlr_export_dashboard without opening either schema.

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?

Explicitly tells the agent where to source the required queryId (draxlr_list_saved_queries or draxlr_get_query), which is actionable routing. It lacks an explicit when-not or a named alternative for viewing results instead of exporting (e.g., run_saved_query), so it stops short of full 5-level guidance.

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

draxlr_get_dashboardGet a dashboardA
Read-onlyIdempotent
Inspect

Get a dashboard's widgets by its id — for example to resolve a dashboard link (…/dashboard/:databaseId/:dashboardGroupId). Returns the list of widgets (name, display type, query) and a url to view it in Draxlr.

ParametersJSON Schema
NameRequiredDescriptionDefault
databaseIdYesThe database id (the :databaseId part of a /dashboard/:databaseId/:dashboardGroupId link)
dashboardGroupIdYesThe dashboard id (the :dashboardGroupId part of the link)

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds valuable non-schema context by saying what comes back (widget name, display type, query) plus a viewable `url` — useful precisely because there is no output schema.

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?

Two tight sentences: the action and lookup key come first, the example use case second, and the return summary last. No filler and nothing buried.

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

Completeness4/5

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

With no output schema, the description helpfully summarizes the return payload and the url, and annotations handle the safety semantics. It could still mention failure behavior for a nonexistent dashboard id or whether widget queries are fully expanded.

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

Parameters3/5

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

Schema description coverage is 100%, so both ids are already documented as the :databaseId and :dashboardGroupId link segments. The description only restates this framing, adding no extra syntax, format, or constraint detail beyond the schema.

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?

States a specific verb and resource ('Get a dashboard's widgets by its id'), which is clearly a single-dashboard fetch rather than a list. It does not explicitly name a sibling to contrast with (e.g., draxlr_list_dashboards vs. draxlr_export_dashboard), so differentiation is only implicit.

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?

Gives a concrete use case — resolving a dashboard link of the form /dashboard/:databaseId/:dashboardGroupId — which tells the agent exactly when this tool fits. It stops short of stating exclusions or naming alternatives for the list/export variants.

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

draxlr_get_database_schemaGet database schemaA
Read-onlyIdempotent
Inspect

Get a database's schema — its tables and their columns with data types — so you can write correct SQL. Reference the table name and column name (not the display names) in your queries. Only tables the user can access are returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
databaseIdYesThe database id (from draxlr_list_databases)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds materially useful context beyond that: results are permission-filtered ('Only tables the user can access are returned'), which tells the agent the output may be incomplete relative to the actual database.

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?

Three tight sentences, front-loaded with the purpose, then the query-writing caveat, then the permission caveat. Nothing is redundant and each sentence carries a distinct fact.

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

Completeness4/5

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

For a one-parameter read tool with no output schema, the description compensates reasonably by describing the return shape (tables, columns, data types) and the access-scoping behavior. Only minor gaps remain, such as whether results are paginated for very large schemas.

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

Parameters3/5

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

Schema description coverage is 100% and the single parameter points back to draxlr_list_databases, so the schema does the heavy lifting. The description adds no format or syntax detail about databaseId itself; the `name` guidance concerns the response, not the input.

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

Purpose5/5

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

States a specific verb and resource ('Get a database's schema') and immediately specifies the payload: tables, columns, and data types. This is clearly distinct from draxlr_list_databases, which only yields IDs, so an agent can route between them without opening a schema.

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?

The clause 'so you can write correct SQL' establishes the intended moment of use, and the note to reference table/column `name` rather than display names is actionable invocation guidance. There is no explicit when-not or named alternative, but the workflow context is clear.

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

draxlr_get_queryGet a saved queryA
Read-onlyIdempotent
Inspect

Get the details of a saved query by its id — for example to resolve a query link. Returns the query's name, description, type ('raw' SQL or 'builder'), SQL (for raw queries) and a url to view it in Draxlr. Links look like /explore/:databaseId/:tableId/:queryId, where :tableId is raw_query for raw SQL queries.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryIdYesThe query id (the :queryId part of an /explore/... link)
databaseIdNoThe database id (the :databaseId part of the link), used to build the view url

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint, and openWorldHint, so the safety profile is covered. The description adds useful behavioral context by listing the returned fields (name, description, type, SQL, url) and explaining the 'type' values ('raw' SQL or 'builder'), which helps the agent anticipate the response shape.

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?

The description is front-loaded with the core purpose, followed by return details and link format. Every sentence earns its place without redundancy, making it easy to parse quickly.

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?

For a simple read tool with full schema coverage and rich annotations, the description covers what the tool does, how to obtain the required id from a link, and what the response contains. No output schema exists, and the description compensates by describing return fields.

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 description coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by giving the full link pattern /explore/:databaseId/:tableId/:queryId and noting that :tableId is 'raw_query' for raw SQL queries, which contextualizes why databaseId is needed.

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?

States a specific verb ('Get') and resource ('details of a saved query by its id'), and clarifies the return fields. It does not explicitly name a sibling to differentiate from (e.g., list_saved_queries), but the 'by its id' scoping makes the individual-vs-list distinction reasonably clear.

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

Usage Guidelines3/5

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

Provides a use case example ('for example to resolve a query link'), which implies when to use it, but offers no explicit when-not guidance or alternatives. The intended usage is inferable but not spelled out.

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

draxlr_list_dashboardsList dashboardsA
Read-onlyIdempotent
Inspect

List dashboards in the Draxlr organization. Optionally filter by databaseId. Returns each dashboard's id (use as dashboardGroupId), name and database.

ParametersJSON Schema
NameRequiredDescriptionDefault
databaseIdNoOptional database id to list dashboards for a specific database only

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so safety is covered. The description adds value beyond that by disclosing the return shape (id, name, database) and the non-obvious id reuse hint ('use as dashboardGroupId'), which an agent cannot infer from the schema.

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?

Two short sentences, front-loaded with scope, then filter, then return values. No filler or redundancy; every clause earns its place.

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

Completeness4/5

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

For a zero-required-param read tool with a fully documented schema, the description covers scope, filter, and return fields. It omits any pagination or result-limit behavior, which is the only gap for a list operation with no output schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the single parameter is fully documented as an optional database filter; the description repeats that behavior without adding syntax or format detail. Baseline 3 applies when the schema carries the parameter semantics.

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?

States a specific verb and resource ('List dashboards in the Draxlr organization') and clarifies scope (org-wide, optional database filter). It does not explicitly distinguish itself from siblings like draxlr_list_databases or draxlr_get_dashboard, though the resource noun is unambiguous.

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

Usage Guidelines3/5

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

'Optionally filter by databaseId' implies when to apply the filter, but there is no guidance on when to pick this tool over draxlr_get_dashboard (single dashboard) or draxlr_list_databases (parent resource). Usage is implied rather than stated.

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

draxlr_list_databasesList databasesA
Read-onlyIdempotent
Inspect

List all databases connected to the Draxlr organization. Returns each database's id, name, type and active status. Use the id as databaseId for the other tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds the useful fact that no filtering/parameters apply and enumerates the returned fields (id, name, type, active status), which matters since there is no output schema.

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?

Two short sentences, front-loaded with the purpose and followed by the return shape and the workflow tip. No filler or redundancy.

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?

For a zero-parameter, read-only listing tool with no output schema, the description supplies everything an agent needs: what it lists, what fields come back, and how to reuse the id. Annotations cover the safety profile, so nothing material is missing.

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?

The tool takes zero parameters, so the baseline is 4. The description correctly implies no input is needed, and the schema itself is empty with full coverage.

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

Purpose5/5

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

States a specific verb and resource with scope: 'List all databases connected to the Draxlr organization.' The resource (databases) is clearly distinguishable from siblings like draxlr_list_dashboards and draxlr_list_saved_queries without opening any schema.

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?

Gives actionable downstream guidance — 'Use the id as `databaseId` for the other tools' — which tells the agent why and when to call this. It stops short of explicit when-not or alternative-tool routing, so it falls just below the top tier.

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

draxlr_list_saved_queriesList saved queriesA
Read-onlyIdempotent
Inspect

List the saved queries for a Draxlr database. Returns each saved query's id, name, description and — for raw SQL queries — its SQL. type is 'raw' (SQL) or 'builder' (built in the Draxlr UI); builder queries also have a tableId. Use the id as queryId for draxlr_add_query_to_dashboard, draxlr_run_saved_query or draxlr_export_query.

ParametersJSON Schema
NameRequiredDescriptionDefault
databaseIdYesThe database id (from draxlr_list_databases)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description earns credit by disclosing the return shape that no output schema provides, including the `type` enum values ('raw' vs 'builder') and the builder-only `tableId` field.

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?

Three sentences, zero waste, front-loaded with the core action and then the return contract and the downstream chaining. Every clause carries usable information.

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?

With no output schema and only one trivially documented parameter, the description fills exactly the gap that matters by describing the returned fields and their semantics. Nothing an agent needs to call this correctly is missing.

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

Parameters3/5

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

The single parameter has 100% schema coverage, so the schema already documents `databaseId` and its provenance from draxlr_list_databases. The description adds no further detail about the input parameter itself, only about the id it returns, so this lands at the high-coverage baseline.

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

Purpose5/5

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

States a specific verb and resource ('List the saved queries for a Draxlr database') and immediately enumerates what each item contains (id, name, description, SQL, type, tableId). An agent can distinguish this from draxlr_list_databases and draxlr_get_query without opening a schema.

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?

Explicitly routes the agent forward by saying the returned id is used as `queryId` for draxlr_add_query_to_dashboard, draxlr_run_saved_query, and draxlr_export_query. It does not state when NOT to use this tool (e.g. to fetch a single query, use draxlr_get_query), so it falls short of full when/when-not coverage.

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

draxlr_run_queryRun SQL queryA
Read-onlyIdempotent
Inspect

Run a read-only SQL query against a Draxlr database and return the resulting rows. Only read (SELECT) queries are allowed. Returns a queryId that can be passed to draxlr_save_query or draxlr_add_query_to_dashboard, and a url to view the query in Draxlr.

ParametersJSON Schema
NameRequiredDescriptionDefault
sqlYesThe SQL query to run. Must be a read-only (SELECT) query. If you add variables, write them as {{variableName}} using letters only (e.g. {{startDate}}); numbers, underscores and other special characters are not allowed. Pass their values in `variables`, or wrap each condition that uses a variable in [[ ]] (e.g. WHERE 1=1 [[AND created_at >= {{startDate}}]]) so it is skipped when no value is given.
pageNoPage number for pagination (default 1)
pageSizeNoRows per page (default 25)
variablesNoValues for the {{variables}} used in the SQL, keyed by variable name, e.g. { "startDate": "2026-01-01" }. Use an array for IN lists.
databaseIdYesThe database id (from draxlr_list_databases)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so the description's job is to add beyond them. It does: it discloses that only SELECT is permitted and describes what the call returns (a queryId and a url), which is behavior the annotations do not convey. It omits failure modes and row-limit behavior.

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?

Three short sentences, each earning its place: purpose, the read-only restriction, and the return contract with downstream consumers. Front-loaded with the core action and no filler.

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

Completeness4/5

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

With no output schema, the description correctly compensates by explaining the returned queryId and url and their downstream use. Combined with a 100%-covered input schema and safety annotations, the definition is largely self-sufficient; only pagination-limit/error behavior is unaddressed.

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

Parameters3/5

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

Schema coverage is 100% and the sql parameter's schema description is very rich (variable syntax, [[ ]] conditional wrapping, variable typing), so the schema carries the parameter burden. The description adds no parameter-level detail beyond a general reference to variables, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Run a read-only SQL query against a Draxlr database and return the resulting rows') and scopes it precisely to SELECT-only. It also names the downstream tools that consume its output (draxlr_save_query, draxlr_add_query_to_dashboard), which helps separate it from sibling read tools like draxlr_run_saved_query.

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?

The constraint 'Only read (SELECT) queries are allowed' effectively signals when the tool is not appropriate, and the return payload tells the agent this is the entry point for ad-hoc SQL. It never explicitly names an alternative (e.g. draxlr_run_saved_query for saved queries), so routing between the two is left to inference.

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

draxlr_run_saved_queryRun a saved queryA
Read-onlyIdempotent
Inspect

Run an existing saved query by its id and return the resulting rows. Works for both raw SQL and query-builder saved queries. Use draxlr_list_saved_queries or draxlr_get_query to get a queryId. To run ad-hoc SQL instead, use draxlr_run_query.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (default 1)
queryIdYesThe saved query id to run (from draxlr_list_saved_queries or draxlr_get_query)
pageSizeNoRows per page (default 25)
databaseIdNoThe database id the saved query belongs to (resolved from the query if omitted)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, so safety is covered. The description adds genuine context beyond them: it works for both raw SQL and query-builder saved queries, and that it returns resulting rows. It does not discuss pagination behavior or whether results are truncated, keeping it short of a 5.

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?

Three short sentences, front-loaded with the action, then the prerequisite, then the alternative. No filler or repetition.

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

Completeness4/5

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

For a read-only query runner with no output schema, the description covers the action, the source of the required id, the acceptable query types, and the return shape (rows). Pagination semantics are left entirely to the schema, but nothing essential is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so queryId, page, pageSize and databaseId are already documented in the schema, including the fallback resolution of databaseId. The description adds no syntax or format detail beyond restating where queryId comes from, so the baseline of 3 applies.

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

Purpose5/5

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

States a specific verb+resource: run an existing saved query by id and return resulting rows. It explicitly distinguishes itself from draxlr_run_query (ad-hoc SQL), so an agent can route correctly without opening either schema.

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

Usage Guidelines5/5

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

Gives explicit prerequisites (obtain a queryId via draxlr_list_saved_queries or draxlr_get_query) and names the alternative tool for a different intent (draxlr_run_query for ad-hoc SQL). That is when-to-use plus a named alternative.

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

draxlr_save_querySave SQL queryBInspect

Save a SQL query to a Draxlr database so it appears under the database's saved queries. Provide either sql (it is executed then saved) or a queryId returned by draxlr_run_query.

ParametersJSON Schema
NameRequiredDescriptionDefault
sqlNoThe SQL to save. Provide either this or queryId. If you add variables, write them as {{variableName}} using letters only (e.g. {{startDate}}); numbers, underscores and other special characters are not allowed. Pass their values in `variables`, or wrap each condition that uses a variable in [[ ]] (e.g. WHERE 1=1 [[AND created_at >= {{startDate}}]]) so it is skipped when no value is given.
nameYesName for the saved query
queryIdNoA queryId from draxlr_run_query. Provide either this or sql.
variablesNoValues for the {{variables}} used in the SQL, keyed by variable name, e.g. { "startDate": "2026-01-01" }. Use an array for IN lists.
databaseIdYesThe database id the query belongs to
descriptionNoOptional description for the saved query

TDQS

B3.4/5.0
Behavior1/5

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

The description states that the provided SQL 'is executed then saved', meaning the tool can run arbitrary SQL that may modify or destroy data. Annotations declare destructiveHint: false, which conflicts with this disclosure and would mislead an agent about the tool's safety profile. This is an annotation contradiction.

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?

The description is two sentences, front-loads the main action and scope, and contains no filler. Every sentence earns its place by stating what is saved and the two input modes.

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

Completeness4/5

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

For a tool with full schema coverage and annotations, the description is nearly complete: it covers the save operation, destination, and input alternatives. It omits return behavior and permission expectations, but those gaps are minor for a save operation and no output schema exists.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all six parameters, including variable syntax and allowed types. The description only restates the sql/queryId either-or choice already present in the schema and adds no meaning beyond it.

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

Purpose5/5

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

The description states a specific verb and resource: saving a SQL query to a Draxlr database so it appears under saved queries. It also distinguishes itself from draxlr_run_query by explaining that sql is executed then saved or that queryId comes from that sibling, allowing an agent to route correctly.

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

Usage Guidelines3/5

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

The description gives usage detail for the two input alternatives (sql or queryId from draxlr_run_query), but it does not explicitly state when to use this tool versus draxlr_update_saved_query, draxlr_run_saved_query, or draxlr_add_query_to_dashboard. Usage is implied by the purpose rather than fully guided.

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

draxlr_search_docsSearch Draxlr documentationA
Read-onlyIdempotent
Inspect

Search Draxlr's product documentation (how-to guides, features, dashboards, drill down, access levels, billing) by keyword. Returns the most relevant docs with a title, a short snippet, and a link to the full page. Use this to answer 'how do I…' questions about using Draxlr.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default 5)
queryYesWhat to search the documentation for

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds value beyond that by disclosing what is returned (title, snippet, link), which matters because no output schema exists.

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?

Two tight sentences: the first describes what is searched and returned, the second states when to use it. Front-loaded and free of filler.

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?

For a simple two-parameter read-only search with no output schema, the description covers scope, return contents, and invocation context. Nothing an agent needs to call it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%: both 'query' and the 'limit' bounds/default are documented in the schema itself. The description adds no syntax, scoping, or matching-behavior detail beyond that, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb (search) and resource (Draxlr's product documentation), enumerates covered topic areas, and describes the return shape (title, snippet, link). An agent can immediately tell this apart from data-query siblings like draxlr_run_query or draxlr_search.

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?

Gives explicit usage context: 'Use this to answer how do I… questions about using Draxlr.' That is clear routing guidance, but it does not name or exclude the ambiguous sibling draxlr_search, so the agent must infer which search surface applies.

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

draxlr_update_saved_queryUpdate saved queryA
DestructiveIdempotent
Inspect

Update an existing saved query: rename it, change its description, and/or replace its SQL (raw SQL queries only). Provide the saved queryId (from draxlr_list_saved_queries) and any of name, description or sql.

ParametersJSON Schema
NameRequiredDescriptionDefault
sqlNoNew SQL to replace the query's definition (raw SQL queries only). If you add variables, write them as {{variableName}} using letters only (e.g. {{startDate}}); numbers, underscores and other special characters are not allowed. Pass their values in `variables`, or wrap each condition that uses a variable in [[ ]] (e.g. WHERE 1=1 [[AND created_at >= {{startDate}}]]) so it is skipped when no value is given.
nameNoNew name for the saved query
queryIdYesThe saved query id to update (from draxlr_list_saved_queries)
variablesNoValues for the {{variables}} used in the SQL, keyed by variable name, e.g. { "startDate": "2026-01-01" }. Use an array for IN lists.
descriptionNoNew description for the saved query

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true, so the mutation/replacement risk profile is largely covered. The description adds the useful constraint that only raw SQL queries can be updated, but it does not expand on the destructiveness of replacing SQL or on failure behavior.

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?

Two sentences, zero filler: the update action and its scope come first, with the prerequisite inputs and their source immediately after. Nothing can be removed without losing information.

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

Completeness4/5

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

For a 5-parameter mutating tool with a nested variables object, no output schema, and annotations covering the safety profile, the description supplies the essential inputs, their source, and the raw-SQL restriction. Minor gaps remain around whether variables can be updated without replacing sql and what the response confirms.

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

Parameters3/5

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

Schema description coverage is 100% and the schema already explains each parameter, including the detailed {{variable}} syntax and the roles of name/description/queryId. The description restates the field list and the queryId source but adds no syntax or format meaning beyond the schema, so the baseline of 3 applies.

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 description states a specific verb and resource ('Update an existing saved query') and enumerates exactly which fields change (rename, description, SQL), plus a scope constraint ('raw SQL queries only'). It is clearly distinct from the read/list siblings, though it never explicitly contrasts with draxlr_save_query, so it falls short of full sibling differentiation.

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 invoke it correctly: supply queryId sourced from draxlr_list_saved_queries and at least one of name/description/sql, which conveys the partial-update model. There is no explicit when-not-to-use guidance or named alternative (e.g., save_query for creating new ones).

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updates
    • Changeddraxlr_run_query2 fields changed
      • changedInput schema / properties / sql / description
        Previous value: -"The SQL query to run. Must be a read-only (SELECT) query."New value: +"The SQL query to run. Must be a read-only (SELECT) query. If you add variables, write them as {{variableName}} using letters only (e.g. {{startDate}}); numbers, underscores and other special characters are not allowed. Pass their values in `variables`, or wrap each condition that uses a variable in [[ ]] (e.g. WHERE 1=1 [[AND created_at >= {{startDate}}]]) so it is skipped when no value is given."
      • addedInput schema / properties / variables
        Added value: +{
        +  "additionalProperties": {
        +    "anyOf": [
        +      {
        +        "type": "string"
        +      },
        +      {
        +        "type": "number"
        +      },
        +      {
        +        "type": "boolean"
        +      },
        +      {
        +        "items": {
        +          "type": [
        +            "string",
        +            "number"
        +          ]
        +        },
        +        "type": "array"
        +      }
        +    ]
        +  },
        +  "description": "Values for the {{variables}} used in the SQL, keyed by variable name, e.g. { \"startDate\": \"2026-01-01\" }. Use an array for IN lists.",
        +  "type": "object"
        +}
    • Changeddraxlr_save_query2 fields changed
      • changedInput schema / properties / sql / description
        Previous value: -"The SQL to save. Provide either this or queryId."New value: +"The SQL to save. Provide either this or queryId. If you add variables, write them as {{variableName}} using letters only (e.g. {{startDate}}); numbers, underscores and other special characters are not allowed. Pass their values in `variables`, or wrap each condition that uses a variable in [[ ]] (e.g. WHERE 1=1 [[AND created_at >= {{startDate}}]]) so it is skipped when no value is given."
      • addedInput schema / properties / variables
        Added value: +{
        +  "additionalProperties": {
        +    "anyOf": [
        +      {
        +        "type": "string"
        +      },
        +      {
        +        "type": "number"
        +      },
        +      {
        +        "type": "boolean"
        +      },
        +      {
        +        "items": {
        +          "type": [
        +            "string",
        +            "number"
        +          ]
        +        },
        +        "type": "array"
        +      }
        +    ]
        +  },
        +  "description": "Values for the {{variables}} used in the SQL, keyed by variable name, e.g. { \"startDate\": \"2026-01-01\" }. Use an array for IN lists.",
        +  "type": "object"
        +}
    • Changeddraxlr_update_saved_query2 fields changed
      • changedInput schema / properties / sql / description
        Previous value: -"New SQL to replace the query's definition (raw SQL queries only)"New value: +"New SQL to replace the query's definition (raw SQL queries only). If you add variables, write them as {{variableName}} using letters only (e.g. {{startDate}}); numbers, underscores and other special characters are not allowed. Pass their values in `variables`, or wrap each condition that uses a variable in [[ ]] (e.g. WHERE 1=1 [[AND created_at >= {{startDate}}]]) so it is skipped when no value is given."
      • addedInput schema / properties / variables
        Added value: +{
        +  "additionalProperties": {
        +    "anyOf": [
        +      {
        +        "type": "string"
        +      },
        +      {
        +        "type": "number"
        +      },
        +      {
        +        "type": "boolean"
        +      },
        +      {
        +        "items": {
        +          "type": [
        +            "string",
        +            "number"
        +          ]
        +        },
        +        "type": "array"
        +      }
        +    ]
        +  },
        +  "description": "Values for the {{variables}} used in the SQL, keyed by variable name, e.g. { \"startDate\": \"2026-01-01\" }. Use an array for IN lists.",
        +  "type": "object"
        +}
  2. 15 tool updates
    • First observeddraxlr_add_query_to_dashboard
    • First observeddraxlr_export_dashboard
    • First observeddraxlr_export_query
    • First observeddraxlr_get_dashboard
    • First observeddraxlr_get_database_schema
    • First observeddraxlr_get_query
    • First observeddraxlr_list_dashboards
    • First observeddraxlr_list_databases
    • First observeddraxlr_list_saved_queries
    • First observeddraxlr_run_query
    • First observeddraxlr_run_saved_query
    • First observeddraxlr_save_query
    • First observeddraxlr_search
    • First observeddraxlr_search_docs
    • First observeddraxlr_update_saved_query

Publisher details

Operator
http://github.com/kevivmatrix/
Operator website
https://www.draxlr.com
Vendor relationship
First-party
Trust center
Not applicable
Restrictions
Not applicable

Related MCP Connectors

  • The Ramp MCP server enables users to securely connect Ramp with AI assistants like ChatGPT and Claude to query financial data and take actions using natural language. It transforms Ramp's developer API into a SQL interface that LLMs can query, allowing admins to analyze spend trends, identify cost savings, and run complex SQL analyses on comprehensive datasets (transactions, purchase orders, vendors, users), while all users can manage cards, view transactions, request reimbursements, and get expense policy answers.

  • Query your warehouse or a CSV with Claude/ChatGPT over MCP, governed by table-level ACL + audit.

  • Query your org's data in natural language — read-only MCP access to SQL, NoSQL, files & warehouses.

  • The BigQuery remote MCP server is a fully managed service that uses the Model Context Protocol to connect AI applications and LLMs to BigQuery data sources. It provides secure, standardized tools for AI agents to list datasets and tables, retrieve schemas, generate and execute SQL queries through natural language, and analyze data—enabling direct access to enterprise analytics data without requiring manual SQL coding.

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    A read-only MCP server that exposes SQL database access to LLMs, supporting multiple database types, compact columnar results, pagination, and file export.
    7
    8 npm
    MIT
  • -
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that bridges AI assistants with SQL databases, enabling natural language querying across multiple database types with built-in optimization and security.
    3
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that provides AI assistants with comprehensive access to SQL databases, enabling schema inspection, query execution, and database operations with enterprise-grade security.
    61 npm
    9
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    This MCP server enables AI models to directly and securely query databases using persistent or temporary connections, supporting multiple data sources with automatic connection management.
    200 npm
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources