Veto — SQL Safety & Cost Oracle
Server Details
Deterministic safety & cost gate that vets Postgres SQL before your AI agent runs it.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.5/5 across 3 of 3 tools scored.
Each tool has a clearly distinct purpose: analyze_sql for SQL analysis, get_policies for reading policies, set_policies for writing policies. No overlap or ambiguity.
All tools follow a consistent verb_noun pattern using snake_case: analyze_sql, get_policies, set_policies. No deviations.
With 3 tools, the set is well-scoped for the server's purpose of SQL safety analysis and policy management. Each tool is essential and the count is appropriate.
The tool surface covers SQL analysis (analyze_sql) and full CRUD for custom policies (get_policies and set_policies). There are no obvious gaps for the stated purpose.
Available Tools
3 toolsanalyze_sqlAnalyze SQL safety & costAInspect
Analyze Postgres SQL/migrations for destructive operations, locking risk, anti-patterns, and query cost. Returns a deterministic verdict (ok/warn/block) with findings. Pass the optional schema argument (your CREATE TABLE/INDEX DDL) to also get EXPLAIN-based cost analysis run on a throwaway scratch Postgres — no separate tool or DB connection needed.
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | The SQL to analyze (one or more statements). | |
| schema | No | Optional CREATE TABLE/INDEX DDL. Providing it enables EXPLAIN-based cost analysis (seq scans on large tables, etc.) on a throwaway scratch Postgres; omit it for static safety analysis only. | |
| dialect | No | ||
| rowCountHints | No | Optional map of table name to estimated row count for realistic cost estimates. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses that the tool returns a verdict with findings, that schema enables cost analysis on a throwaway Postgres, and that no separate tool is needed. It implies read-only behavior but could be more explicit about non-destructive nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. First sentence states the core purpose; second explains the key optional parameter and its benefit. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the two modes of operation (static vs cost analysis), explains the optional schema and rowCountHints, and mentions the output verdict. Lacks specifics on findings format but is adequate for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (75%), and the description adds meaning by explaining that schema enables cost analysis and that rowCountHints affects cost estimates. The dialect is constrained to 'postgres' as per schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes Postgres SQL for destructive operations, locking risk, anti-patterns, and query cost, and returns a deterministic verdict. This distinguishes it from sibling tools which are policy-related.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to include the optional schema for cost analysis versus static analysis only. It doesn't explicitly compare to siblings, but the context of policy tools makes the use case clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_policiesGet custom org policies (Pro)AInspect
Return the custom org policy set currently stored for your Pro key — the same rules analyze_sql enforces on top of the built-ins. Read-only; returns an empty list if none are set. Use set_policies to change them.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses read-only behavior and empty list case, but lacks specifics on return format or structure of policies, though context from analyze_sql helps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded purpose, minimal yet informative, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a zero-parameter read-only tool; could optionally describe return format, but not essential given sibling context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so schema coverage is 100%; description adds no param info but it is unnecessary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it returns the custom org policy set, explicitly links to analyze_sql, and distinguishes from sibling set_policies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly describes when to use (retrieve current policies), notes read-only nature, and directs to set_policies for changes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_policiesSet custom org policies (Pro)AInspect
Replace the stored custom org policy set for your Pro key (this is also how you update or clear them: send the full new set to update, or an empty array to remove all). Each policy blocks or warns on an operation against matching tables (e.g. no DELETE on payments). Policies are declarative data — validated, never executed — and apply transparently to every later analyze_sql call made with this key. Use get_policies to read the current set.
| Name | Required | Description | Default |
|---|---|---|---|
| policies | Yes | The full policy set (replaces any previously stored set; max 50). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behaviors: the tool replaces the entire set, validates policies without executing them, and applies transparently to analyze_sql calls. It also mentions a maximum of 50 policies. It does not address authentication requirements, rate limits, or error handling scenarios.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: four short sentences with clear structure. The first sentence states the core action, the second gives an example of a policy, the third clarifies behavior, and the fourth directs to a sibling. No extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the tool (nested policy objects, no output schema), the description explains the policy concept and its effect on analyze_sql. It mentions the Pro key requirement and validation. It could be more complete by noting the return value or potential errors, but it adequately covers the essential context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides full parameter names and types. The description adds semantic value by explaining that an empty array clears all policies, that the set is a replacement, and hints at the 'max 50' constraint. This goes beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool replaces, updates, or clears custom org policies for a Pro key. It specifies the verb 'Replace' and the resource 'custom org policy set', and distinguishes from sibling 'get_policies' by directing to read the current set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how to update (send full new set) and clear (send empty array) policies, and references analyzing_sql as the context where policies apply. It tells when to use get_policies instead. However, it does not explicitly state when not to use this tool or mention alternatives for non-Pro users.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!