Skip to main content
Glama
SGromych

DataForge Semantic MCP Server

by SGromych

df_set_project_access

DestructiveIdempotent

Grant or change a user's access level on a DataForge project. Enforces downgrade-only roles and requires project owner or admin authorization.

Instructions

WRITES TO DATAFORGE. Grant or change a user's access level on a project. Downgrade-only: a level above the user's global role is rejected. Requires the caller to be the project owner or a company administrator.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
user_idYes
project_idYes
access_levelYes
idempotency_keyNoOptional UUID v4. Reusing a key within 24 hours replays the original response instead of applying the change twice. One is generated automatically when omitted.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.1

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true. The description adds value beyond these by disclosing the downgrade-only rule ('a level above the user's global role is rejected') and the caller permission requirement. These are meaningful behavioral details not captured in the 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?

The description is two sentences with zero fluff. The most critical information ('WRITES TO DATAFORGE') is front-loaded, and the key constraints are stated in a compact, scannable format. Every sentence 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 simple access-level setting operation, the description covers purpose, key behavioral constraints, and permission requirements. It lacks explicit return-value details, but there is no output schema, and the annotations cover safety and idempotency. The missing parameter explanations are the main gap, but overall it gives an agent enough to invoke the tool correctly in most cases.

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

Parameters2/5

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

Schema description coverage is only 25% (only idempotency_key has a description). The description does not compensate for this low coverage—it never explains the meaning or constraints of project_id, user_id, or access_level beyond the general phrase 'access level'. The description adds almost no parameter-level guidance, so it fails to fill the gap left by the sparse schema.

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 or change') and resource ('access level on a project'), and the opening 'WRITES TO DATAFORGE' makes the operation type explicit. Although it doesn't name a sibling, the purpose is distinct from df_revoke_project_access and df_transfer_project_ownership by its focus on setting access levels, making it clear to an agent.

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 provides a clear prerequisite ('Requires the caller to be the project owner or a company administrator') and a key behavioral constraint ('Downgrade-only'), but it does not explicitly state when to use this tool versus alternatives like df_revoke_project_access or df_transfer_project_ownership. The 'grant or change' phrasing implies it's for setting access, not removing it, but no explicit when-not guidance is given.

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