Skip to main content
Glama
SGromych

DataForge Semantic MCP Server

by SGromych

df_revoke_project_access

DestructiveIdempotent

Revoke a user's explicit access to a DataForge project. Prevent unauthorized data access by removing their permissions.

Instructions

PERMANENTLY DELETES DATA IN DATAFORGE. Remove a user's explicit access to a project.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
user_idYes
project_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.1

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the description's warning 'PERMANENTLY DELETES DATA IN DATAFORGE' adds emphasis beyond the annotation, clarifying the irreversible nature. It also specifies 'explicit access,' which clarifies the scope of what is removed. This adds useful context beyond the annotations without contradiction.

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

Conciseness3/5

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

The description is two sentences, concise and front-loaded with the warning. However, the warning 'PERMANENTLY DELETES DATA IN DATAFORGE' is somewhat alarming and could be misinterpreted (e.g., as deleting the user or project itself), which may mislead an agent. It earns its place by highlighting destructiveness, but the phrasing is ambiguous.

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 revoke operation, the description is adequate. It states the action and implies the required parameters. The annotations cover idempotency and destructiveness, so the description does not need to repeat those. It does not mention edge cases (e.g., behavior when no explicit access exists), but given the idempotent annotation, this is less critical. Overall, sufficient for correct invocation.

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 schema has 0% description coverage, so the description must compensate. It references 'a user's explicit access to a project,' implying the user_id and project_id parameters and their purpose. However, it does not elaborate on parameter types, formats, or relationships beyond what the names suggest. Given the low coverage, this is adequate but not rich.

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 clearly states the action: 'Remove a user's explicit access to a project.' It identifies the verb (remove), the resource (user's explicit access to a project), and it is distinguishable from siblings like df_set_project_access (which grants access) and df_get_project_access (which retrieves access). The purpose 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?

The description implies usage: when you need to revoke a user's explicit access. However, it does not explicitly mention alternatives or when not to use it (e.g., when you want to grant access, use df_set_project_access). It provides the core context but lacks explicit routing to siblings.

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