Skip to main content
Glama

Questa Privacy MCP

Server Details

Anonymize and redact PII before it reaches AI models. GDPR, HIPAA, EU AI Act.

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

TDQS

A3.9/5.0

Scored across 6 tools

Disambiguation4/5

The six tools mostly have distinct workflows: upload, anonymize, check job, inline redact, legal review, and command listing. Some overlap exists between anonymize_document and redact_pii, but descriptions clarify that one handles files/text under regimes and the other does inline PII redaction by entity type.

Naming Consistency4/5

Five tools use clear verb_noun or verb_noun_phrase patterns (anonymize_document, get_anonymize_job, list_allowed_commands, review_with_claude_legal, upload_file_chunk). redact_pii is a minor naming deviation using acronym PII but is still readable and consistent in snake_case.

Tool Count5/5

Six tools is well-scoped for a privacy/anonymization workflow. Each tool covers a distinct step: upload, anonymize, poll job, inline redact, legal review, and permission listing.

Completeness4/5

The set covers upload, anonymization, job status, PII redaction, legal review, and permission discovery, forming a coherent lifecycle. Minor gaps include no explicit delete/cancel job or download/export tool, but the main privacy workflow is complete.

Available Tools

6 tools
anonymize_documentAnonymize documentAInspect

Anonymize text or files (pdf/docx/csv/xlsx) under GDPR, HIPAA, EU AI Act, or CUSTOM. Parameters include upload_id (from upload_file_chunk), filename, file_base64, job_id, file_path, text, regime. After chunk upload, call this with upload_id + filename + regime. Excel jobs can take a few minutes; if status is running, call get_anonymize_job with the returned job_id — do not re-upload. Never paste file bytes in chat. Default regime GDPR.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoInline text only when the user pasted text, not a file
job_idNoExisting anonymize job to fetch or resume (do not re-upload)
regimeYes
filenameNoOriginal filename with extension, required with file_base64 or upload_id
file_pathNoLocal absolute path only when this MCP server can read the same disk. Do not use Claude/Cowork workspace paths.
upload_idNoID returned by upload_file_chunk when complete=true
file_base64NoRaw file bytes as base64 in this tool argument only — never in chat. Length of tens of thousands of characters is expected.
custom_entitiesNoEntity types when regime is CUSTOM

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly=false, destructive=false, idempotent=false and openWorld=true, so safety is partly covered. The description adds genuinely new behavior: Excel jobs are long-running, jobs return a job_id to poll, and re-uploading is discouraged. Payload handling ('never paste file bytes in chat') and the default regime are useful operational details beyond 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.

Conciseness4/5

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

Front-loads the core capability, then flows into workflow and caveats in a compact block. The sentence 'Parameters include upload_id...' is somewhat redundant with the schema but is short enough not to bloat the definition.

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 multi-input async tool with no output schema, the description supplies the critical missing pieces: which input mode to use (upload vs inline text vs path), the async polling behavior, and the job_id return. Only the return payload shape (e.g. status fields) is left implicit, which keeps it short of a 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 88%, so parameters are already well documented in the schema. The description enumerates the parameter names and clarifies the upload_id workflow, but this largely restates what the schema's per-parameter descriptions already say, so the baseline 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?

States a specific verb (anonymize) plus the resources it accepts (text or pdf/docx/csv/xlsx files) and the compliance regimes it supports, so the agent knows exactly what the tool produces. It does not, however, distinguish itself from the sibling redact_pii, which an agent could plausibly confuse with anonymization.

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 workflow ('After chunk upload, call this with upload_id + filename + regime') and names an alternative with its triggering condition ('if status is running, call get_anonymize_job ... do not re-upload'), which is strong when-to-use guidance. It stops short of explaining when to prefer this over the redact_pii sibling.

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

get_anonymize_jobGet anonymize jobA
Read-onlyIdempotent
Inspect

Check an anonymize job and return the preview when it is completed. Use after anonymize_document returns status running/queued, or to recover job cmup… IDs. Do not re-upload the file.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob id from anonymize_document

TDQS

A3.9/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, so the safety profile is covered. The description adds genuinely useful behavior beyond that: this is a polling endpoint whose useful payload (the preview) only appears once the job is completed, and re-uploading is not the recovery path.

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

Conciseness4/5

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

Two compact sentences, front-loaded with the action and result. One sentence is marred by the truncated 'job cmup… IDs' text, which reads as a defect rather than intentional brevity.

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 an async job-polling tool with no output schema, the description covers the important things: when to call it, that results arrive only on completion, and the re-upload pitfall. It stops short of stating terminal failure states or polling cadence, which would make it fully self-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?

Only one parameter and the schema documents it at 100% ('Job id from anonymize_document'). The description reinforces the source of the id but adds no format or syntax detail beyond what the schema already says, so the baseline 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?

States a specific verb+resource ('Check an anonymize job') and adds the key output behavior ('return the preview when it is completed'), which distinguishes it from anonymize_document. The stray truncated fragment 'job cmup… IDs' slightly blurs an otherwise clear statement.

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 trigger conditions: use after anonymize_document returns running/queued, or to recover job IDs, plus a clear prohibition ('Do not re-upload the file'). It names the sibling and the state that selects this tool, though the truncated 'recover job cmup… IDs' clause is partially unusable.

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

list_allowed_commandsList allowed commandsA
Read-onlyIdempotent
Inspect

List /questa:* commands and MCP tools the current SaaS role is allowed to run.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is fully covered. The description adds genuinely new behavioral context by disclosing that results are filtered by 'the current SaaS role,' which is not encoded in any annotation. It does not describe the shape of the returned list, but that is minor for a zero-argument read.

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?

A single sentence with the verb and the role-scoping constraint front-loaded, and no filler. Every word 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 no-argument, read-only, annotation-rich listing tool this is close to sufficient: what is listed and under what scope are both stated. The only omission is the return shape (names only vs. names with descriptions/metadata), which an agent might want since no output schema exists.

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 and the input schema is an empty object, so there is nothing for the description to disambiguate. Baseline of 4 applies; the description neither adds nor omits parameter meaning.

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?

Specific verb ('List') plus two concrete resources ('/questa:* commands and MCP tools') scoped by role. The four sibling tools (anonymize_document, redact_pii, review_with_claude_legal) are clearly unrelated, so an agent can place this tool without ambiguity, though the description does not explicitly distinguish itself from any of them.

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?

Usage is only implicit: an agent can infer it should call this to discover what the current role is permitted to run, but there is no explicit when-to-use, when-not-to-use, or prerequisite (e.g. that a SaaS role must already be established). No alternatives exist among the siblings, so the absence is less damaging than it would otherwise be.

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

redact_piiRedact PIIA
DestructiveIdempotent
Inspect

Inline redaction of personal data in contracts, emails, or transcripts by entity type. Returns redacted text and a preview. Does not send content to Claude Legal. If Claude Legal is enabled, wait for the user to confirm then call review_with_claude_legal. Requires tools.text.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
entity_typesYes

TDQS

A3.7/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 openWorldHint=true, so the safety profile is covered. The description adds real value beyond them: it states the return content (redacted text plus preview), the external-boundary guarantee (no send to Claude Legal), and an auth prerequisite ('Requires tools.text'). It does not explain irreversibility or whether the source is modified.

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, zero padding, and the core capability is front-loaded before the boundary and workflow conditions. Every sentence carries distinct information.

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

Completeness3/5

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

Return values are adequately covered despite no output schema, and the auth/workflow context is present. The main gap is the undocumented entity_types vocabulary, which an agent needs in order to call the tool correctly for a 0%-coverage schema.

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 0% for two required parameters. The phrase 'by entity type' hints that entity_types controls which entities are redacted, but no valid entity values or format are given, and the text parameter's accepted input is never addressed. The description only partially compensates for a total schema documentation gap.

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 names a specific verb (redaction) and resource (personal data in contracts, emails, transcripts) with scope qualifier 'by entity type.' It is clear what the tool does, though it never names the closest sibling anonymize_document, so sibling 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?

It gives concrete workflow routing: 'Does not send content to Claude Legal' and 'If Claude Legal is enabled, wait for the user to confirm then call review_with_claude_legal.' That is explicit sequencing against a named sibling. It stops short of saying when to prefer this over anonymize_document.

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

upload_file_chunkUpload file chunkAInspect

Send a Claude/Cowork file to Questa in small base64 chunks so you never type a huge string in chat. Prefer 4000–8000 characters per chunk. After complete=true, call anonymize_document with parameters upload_id, filename, and regime=GDPR. Do not extract spreadsheet or document text.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYesOriginal filename with extension, e.g. report.xlsx
upload_idNoRequired after the first chunk
chunk_indexYes0-based chunk index
chunk_base64YesOne slice of the raw file as base64 (tool argument only, not chat)
total_chunksYesTotal number of chunks

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already establish this is a non-read-only, non-destructive, non-idempotent write, so the safety bar is partly met structurally. The description adds chunk-size and sequencing behavior, but says nothing about persistence, retention of uploaded chunks, or auth needs, and the phantom 'complete=true' flag conflicts with the actual schema.

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

Conciseness4/5

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

Three tight sentences, front-loaded with purpose and immediately followed by the size guidance and the workflow ordering. Every sentence carries information, with only a minor deduction for the misleading 'complete=true' token.

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 multi-step chunked upload with no output schema, the description supplies the chunk strategy, size range, and the required follow-up call, which is most of what an agent needs. It omits error handling and what upload_id looks like on return, but is otherwise solid.

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 coverage is 100%, so the baseline is 3, but the description adds genuinely non-schema semantics: the 4000–8000 character guidance for chunk_base64 and the note that upload_id is used to chain into anonymize_document. That is real meaning beyond what the schema documents.

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 (send) and resource (a Claude/Cowork file as base64 chunks) and clearly differentiates itself from siblings by naming the anonymize_document follow-up. The odd reference to 'complete=true' — a parameter that does not exist in the schema — slightly muddies the mechanism.

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?

Provides concrete operational guidance ('prefer 4000–8000 characters per chunk'), specifies the sequencing ('After complete=true, call anonymize_document with...'), and adds a prohibition ('Do not extract spreadsheet or document text'). This gives the agent both the next step and a boundary, though it doesn't cover failure/retry conditions.

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. 2 tool updates
    • Changedanonymize_document3 fields changed
      • changedInput schema / properties / filename / description
        Previous value: -"Original filename with extension, required with file_base64"New value: +"Original filename with extension, required with file_base64 or upload_id"
      • addedInput schema / properties / job_id
        Added value: +{
        +  "description": "Existing anonymize job to fetch or resume (do not re-upload)",
        +  "type": "string"
        +}
      • changedInput schema / properties / upload_id / description
        Previous value: -"ID from upload_file_chunk after all chunks are complete"New value: +"ID returned by upload_file_chunk when complete=true"
    • Addedget_anonymize_job
  2. 2 tool updates
    • Changedanonymize_document2 fields changed
      • changedInput schema / properties / file_base64 / description
        Previous value: -"Raw file bytes as base64 (not extracted cell text). Use this for Claude/Cowork attachments."New value: +"Raw file bytes as base64 in this tool argument only — never in chat. Length of tens of thousands of characters is expected."
      • addedInput schema / properties / upload_id
        Added value: +{
        +  "description": "ID from upload_file_chunk after all chunks are complete",
        +  "type": "string"
        +}
    • Addedupload_file_chunk
  3. 2 tool updates
    • Changedanonymize_document4 fields changed
      • addedInput schema / properties / file_base64
        Added value: +{
        +  "description": "Raw file bytes as base64 (not extracted cell text). Use this for Claude/Cowork attachments.",
        +  "type": "string"
        +}
      • changedInput schema / properties / file_path / description
        Previous value: -"Absolute path to pdf/docx/csv/xlsx"New value: +"Local absolute path only when this MCP server can read the same disk. Do not use Claude/Cowork workspace paths."
      • addedInput schema / properties / filename
        Added value: +{
        +  "description": "Original filename with extension, required with file_base64",
        +  "type": "string"
        +}
      • changedInput schema / properties / text / description
        Previous value: -"Inline text when no file_path"New value: +"Inline text only when the user pasted text, not a file"
    • Addedreview_with_claude_legal
  4. 3 tool updates
    • First observedanonymize_document
    • First observedlist_allowed_commands
    • First observedredact_pii

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    22 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources