Skip to main content
Glama
EpicLabs23

ecp-mcp-server

by EpicLabs23

ecp_mssql_grant_privileges

Grant one or more DML permissions (SELECT, INSERT, UPDATE, DELETE, REFERENCES) to a user on a MSSQL database's default schema, with a confirmation flag required for security.

Instructions

Grant privileges to a user on a database. Note: MSSQL's privilege model here is coarser than MySQL/Postgres - only these 5 DML permissions, applied schema-wide (SCHEMA::dbo), not per-table. Security-sensitive - review carefully before confirming.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes
privilegesYes
db_usernameYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses the security sensitivity ('Security-sensitive - review carefully before confirming'), the scope limitation (schema-wide, not per-table), and the exact set of permissions. It also implies a confirmation parameter is required. It doesn't mention reversibility or idempotency, but the security warning and scope details are valuable behavioral context beyond 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?

Three sentences with no filler. The core action is front-loaded, the critical scoping caveat follows immediately, and the security warning is placed at the end. Every sentence adds distinct value.

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 security-sensitive mutation tool with no annotations and no output schema, the description covers the key operational facts: what privileges are granted, at what scope, and that confirmation is required. It doesn't describe the return value or error cases, but the schema's confirm const and the security warning cover the main risk. A mention of whether the operation is idempotent or reversible would push this to 5.

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 0%, so the description must compensate. It explains the privileges enum values (5 DML permissions) and the scope (SCHEMA::dbo), which adds meaning to the 'privileges' parameter. However, it doesn't explain db_name, db_username, or confirm beyond what the schema already shows. The confirm parameter's purpose is implied by the security warning but not explicitly tied to the parameter.

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 ('Grant'), a resource ('privileges to a user on a database'), and immediately distinguishes the MSSQL behavior from MySQL/Postgres by noting the coarser privilege model. It clearly identifies the tool's scope (5 DML permissions, schema-wide on SCHEMA::dbo) and differentiates it from sibling tools like ecp_mssql_revoke_privileges and ecp_mysql_grant_privileges.

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 description gives clear context for when to use this tool: when granting privileges in MSSQL, and it explicitly contrasts with MySQL/Postgres privilege models. It doesn't explicitly name alternative tools or state when NOT to use it, but the context is strong enough that an agent can infer the appropriate use case. A small gap: it doesn't mention prerequisites like the user existing or the database existing.

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

Deploy Server

Other Tools