Double AIgents DSAR service
Server Details
GDPR DSAR deadlines, breach triage, AI tool checks, HR retention and letters (UK/EU/CH)
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- JimmyBoy-Git/doubleaigents-dsar-mcp
- GitHub Stars
- 0
- Server Listing
- Double AIgents DSAR MCP server
TDQS
Scored across 10 tools
Most tools have clearly distinct purposes: ai_tool_check, breach_clock, breach_triage, dsar_deadline, dsar_quote, dsar_search_checklist, and hr_retention each target a specific deliverable. The main risk is overlap between breach_clock (deadline) and breach_triage (reportability), and between dsar_quote (pricing) and dsar_service_info (service description), though each still has a discernible boundary.
All names are consistent snake_case with domain prefixes (ai_tool_*, breach_*, dsar_*, hr_*), which makes scanning predictable. The pattern mixes prefix+noun rather than a strict verb_noun form, but it stays readable and internally coherent.
Ten tools is well-scoped for a DSAR advisory service, covering the compliance lifecycle plus adjacent breach/AI/retention checks. No tool feels redundant padding, and none is trivial.
The surface covers DSAR scoping, deadlines, letter templates, search guidance, pricing, and service info, plus breach and AI-screening adjacents. Minor gaps exist around drafting a full response or exemption-application guidance, but agents can work around these since the service itself performs redaction and de-duplication.
Available Tools
10 toolsai_tool_checkAI tool check: DPIA and EU AI Act screeningARead-onlyIdempotentInspect
Screens a planned use of an AI tool: whether a DPIA is likely to be required (Art. 35(3), the ICO high-risk list, the WP248 criteria; FADP Art. 22 for Switzerland), EU AI Act risk flags (Annex III high-risk areas, especially employment; Art. 5 prohibited practices such as emotion recognition at work; current application dates after the Digital Omnibus), and automated decision rules (GDPR Art. 22, UK GDPR Arts 22A to 22D). Findings with sources. The use_case text is not stored or returned. General information, not legal advice.
| Name | Required | Description | Default |
|---|---|---|---|
| use_case | Yes | Short description of what the AI tool does. No personal data. Not stored. | |
| large_scale | Yes | ||
| jurisdiction | Yes | UK, EU (EU/EEA) or CH (Switzerland). | |
| new_technology | Yes | True if it is an innovative use or new technology for the organisation. | |
| special_category | Yes | Health, biometric, criminal offence data and the like. | |
| employees_or_candidates | Yes | True if it processes data about staff or job candidates. | |
| processes_personal_data | Yes | ||
| automated_decisions_with_significant_effect | Yes | True if it makes or drives decisions with legal or similarly significant effects without meaningful human involvement. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely non-structured behaviour: the use_case text is not stored or returned, output is 'Findings with sources', and it is general information rather than legal advice — all useful disclosure an agent cannot infer from 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action ('Screens a planned use of an AI tool') before the dense framework citations, and the three trailing short sentences handle privacy, output, and the disclaimer separately. The parenthetical legal citations are heavy but earn their place for an auditability tool.
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?
With 8 required parameters and no output schema, the description must carry the load — and it does, naming the frameworks checked, the output shape ('Findings with sources'), and the privacy handling. Only minor gap is that it doesn't hint at how the eight boolean inputs combine to drive a finding.
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 coverage is 75%, above the threshold where the schema carries most per-parameter meaning (booleans flagged via the WP248 criteria are self-explanatory). The description ties the inputs conceptually to the frameworks but adds no per-field syntax or interpretation beyond what the schema states.
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?
States a specific verb ('screens') and a precise resource ('a planned use of an AI tool'), then enumerates the exact regimes covered (DPIA, EU AI Act risk flags, automated decision rules). No sibling tool (breach_*, dsar_*, hr_retention) overlaps, so an agent can select this unambiguously.
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 makes the applicable context clear: a planned (pre-deployment) AI tool use, scoped by jurisdiction UK/EU/CH. It does not name when NOT to use it or point to any alternative, but no sibling covers this territory, so no exclusion is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
breach_clockPersonal data breach notification clockARead-onlyIdempotentInspect
When a personal data breach must be notified to the regulator: 72 hours from awareness in the UK and EU/EEA (Art. 33), "as soon as possible" in Switzerland (revised FADP Art. 24). Gives the deadline, the rule, the processor and individual-notification position, and the facts the regulator will ask for. The controller decides whether to notify. General information, not legal advice.
| Name | Required | Description | Default |
|---|---|---|---|
| aware_at | Yes | ISO date and time, with time zone, when the controller became aware of the breach. Example: 2026-10-17T09:30:00+01:00. | |
| jurisdiction | Yes | UK, EU (EU/EEA GDPR) or CH (Switzerland). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description adds real value beyond that: it says it returns the deadline, the rule, the processor and individual-notification position, and the regulator's likely questions, and notes the controller decides whether to notify — a meaningful boundary on the tool's authority.
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?
Front-loads the core rule and is dense without waste; the legal disclaimer and jurisdictional framing earn their place. Slightly packed but well-structured.
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?
For a two-parameter, no-output-schema tool it is largely complete: the description enumerates what it returns and frames the decision boundary. Lacks explicit routing to the sibling triage tool, which is the one residual gap.
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 coverage is 100% with only two well-documented parameters (aware_at format/example, jurisdiction enum), so the schema carries the semantics. The description adds the 72h/'as soon as possible' rules but no per-parameter detail beyond the schema. Baseline 3 is appropriate.
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?
States a concrete verb+resource — computes the deadline for notifying a personal data breach to the regulator — and even names the underlying rule per jurisdiction (Art. 33, FADP Art. 24). An agent can tell this is the deadline-calculation tool rather than a triage tool.
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?
Usage is implied by the content (compute notification timing), but it never states when to reach for this versus breach_triage or the DSAR tools, nor any preconditions. Adequate but with a clear gap on alternatives/differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
breach_triagePersonal data breach triageARead-onlyIdempotentInspect
A likely-reportability view on a personal data breach (UK, EU/EEA, Switzerland), following the ICO guide "Personal data breaches: a guide" and EDPB Guidelines 9/2022: whether notifying the regulator and telling the people affected is likely or unlikely to be required, the factors behind that view, and the notification deadline. The controller decides. General information, not legal advice. Do not pass names or other personal data.
| Name | Required | Description | Default |
|---|---|---|---|
| aware_at | Yes | ISO date and time, with time zone, when the controller became aware of the breach. Example: 2026-10-17T09:30:00+01:00. | |
| encrypted | Yes | True if the data was strongly encrypted and the key was not compromised. | |
| recipient | Yes | Who received or could access the data: a trusted internal person, a trusted external professional, unknown or the public, or a malicious actor. | |
| recoverable | Yes | Whether the data has been recovered or deletion confirmed, is likely to be, or not. | |
| jurisdiction | Yes | UK, EU (EU/EEA GDPR) or CH (Switzerland). | |
| people_affected | Yes | Approximate number of people affected, or "unknown". | |
| special_category | Yes | True if special category or criminal offence data is involved (health, biometric, criminal records, etc.). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description still adds real context the annotations cannot: the output is advisory only, the controller decides, it is not legal advice, and the tool must not be fed personal data. It stops short of describing return format or handling of edge cases.
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 core deliverable is front-loaded in the first sentence, with legal-source attribution and the input restriction following. It is dense but every sentence carries information; the framing clause naming both the ICO guide and EDPB Guidelines is slightly over-long for what it adds.
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?
For a read-only, no-output-schema assessment tool this is complete: it says what it returns (likely/unlikely notification, the factors, the deadline), the jurisdictions covered, and the controller-decides caveat. No output schema means description must indicate the return shape, and it does.
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 100% across all seven required parameters, including worked examples and enum meanings, so the schema carries full semantic load. The description adds no parameter-level guidance beyond that, making the baseline 3 appropriate.
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?
States a specific verb and resource (triage a personal data breach) plus the exact output shape: reportability view, the factors behind it, and the notification deadline. The jurisdictional scope (UK, EU/EEA, CH) and the governing frameworks are named. It does not, however, differentiate itself from the sibling breach_clock, which likely also deals with notification timing.
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?
Usage is implied (assess a breach you have just become aware of) but never stated as a condition, and no alternative or sibling tool is named — notably breach_clock, which overlaps on the deadline dimension. The 'do not pass names or personal data' restriction is a useful input constraint rather than a when-to-use rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dsar_deadlineDSAR response deadlineARead-onlyIdempotentInspect
Calculate the statutory deadline for answering a data subject access request in the UK, the EU/EEA or Switzerland, with the rule that applies and the extension position. General information, not legal advice.
| Name | Required | Description | Default |
|---|---|---|---|
| extended | No | Also calculate the extended deadline where an extension is available. | |
| jurisdiction | Yes | UK, EU (EU/EEA GDPR) or CH (Switzerland). | |
| received_date | Yes | ISO date the clock starts. For the UK, the later of receipt and receipt of any requested ID or fee. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe, read-only, idempotent, closed-world operation, so the description only needs to add context. It does: it names the three legal regimes covered, says the output includes the governing rule and the extension position, and adds a non-legal-advice disclaimer. It does not describe output format or how the deadline is expressed.
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, no filler, with the core action and scope front-loaded and the disclaimer last. Every clause earns its place.
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?
For a stateless calculation tool with no output schema, the description tells the agent what will be returned (deadline, applicable rule, extension position) and under which regimes. It is nearly complete; only the result's format/date representation is left implicit.
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 100%, so all three parameters are already documented, including the subtle UK clock-start rule. The description adds only marginal meaning by tying 'extension position' to the extended flag and enumerating the jurisdictions already present in the enum. Baseline 3 applies.
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?
States a specific verb and resource ('Calculate the statutory deadline for answering a data subject access request') plus the jurisdictional scope and what the result includes ('the rule that applies and the extension position'). It is clearly distinct from siblings like breach_clock or dsar_letter_template, but never explicitly contrasts itself with a named alternative.
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?
Usage is implied by the jurisdiction enum and the DSAR framing, and the 'General information, not legal advice' caveat sets a boundary. However, there is no explicit when-to-use guidance or routing against siblings such as breach_clock or dsar_request_scoping.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dsar_letter_templateDSAR letter templateARead-onlyIdempotentInspect
Plain-text letter template, in British English with [placeholders], for an acknowledgement, an extension of time or a request for clarification of a data subject access request, under UK, EU/EEA or Swiss law. Fills in the dates if received_date is given. General information, not legal advice.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| due_date | No | Optional ISO due date, used in place of the calculated one. | |
| jurisdiction | Yes | UK, EU (EU/EEA GDPR) or CH (Switzerland). | |
| received_date | No | Optional ISO date the clock started. For the UK, the later of receipt and receipt of any requested ID or fee. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and a closed world, so the safety profile is covered. The description adds genuinely useful context beyond that: output is plain text in British English with [placeholders], dates are auto-filled when received_date is supplied, and the result is general information rather than legal advice.
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 tightly packed sentences with no filler; the artifact and its scope come first, followed by behavior and the disclaimer. Slightly dense prose, but every clause carries information.
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?
With four parameters (two required), no output schema, and safety annotations already present, the description supplies what is missing: output style, placeholder convention, date-fill behavior, and the no-legal-advice caveat. Only edge behavior (invalid kind/jurisdiction combinations, what happens without received_date) is left implicit.
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 coverage is 75% (kind lacks a schema description), and the description compensates by mapping each enum value to a concrete letter type and by explaining the interaction between received_date and date calculation. It does not mention the due_date override, which is only documented in the 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?
Names a specific artifact (a plain-text letter template), the three letter kinds it produces (acknowledgement, extension, clarification) and the legal regimes covered, so the agent knows exactly what it gets back. It does not explicitly distinguish itself from near-neighbours such as dsar_quote or dsar_request_scoping, which prevents a 5.
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 implies the usage context (responding to a DSAR under UK/EU/CH law) and enumerates the scenarios via the kind values, but never states when-not to use it or names an alternative sibling tool. Guidance is inferable rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dsar_quoteDSAR fixed-price quoteARead-onlyIdempotentInspect
Fixed price from Double AIgents for preparing a DSAR response, by pack size in pages after de-duplication. Also gives the retainer price (15% off). Excludes VAT.
| Name | Required | Description | Default |
|---|---|---|---|
| pages | Yes | Number of pages after de-duplication. | |
| currency | No | GBP (UK), EUR (EU/EEA) or CHF (Switzerland). | GBP |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety and determinism profile is covered. The description adds genuine business context beyond that — pack-based pricing, the 15% retainer discount, VAT exclusion — but says nothing about whether the quote is binding, validity period, or minimum pack thresholds.
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 tight sentences: the core deliverable and its unit first, then the supplementary retainer and VAT caveats. No filler, no repetition, and the most important information is front-loaded.
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?
There is no output schema, so the description carries the burden of explaining the return, and it does name the three components (fixed price, retainer price, VAT treatment). For a simple read-only pricing tool this is nearly sufficient; the main omission is any indication of whether the quote is binding or how long it holds.
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 100%, so both parameters are fully documented in the schema, including the 'pages after de-duplication' semantics and the GBP/EUR/CHF currency enum. The description only echoes the de-duplication caveat and adds nothing new about the currency parameter, so the baseline of 3 applies.
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 names a specific deliverable (a fixed price for preparing a DSAR response) and its unit of measure (pack size in pages after de-duplication), plus what else comes back (retainer price at 15% off, VAT excluded). That is far more than a restatement of the title. It does not, however, distinguish itself from the sibling dsar_service_info, which an agent could plausibly confuse it with.
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?
Usage is strongly implied — call it with a de-duplicated page count to obtain pricing — but the description never states when to use this versus dsar_service_info or any other sibling, nor any prerequisite such as needing the page count first. Adequate implied guidance, no explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dsar_request_scopingStart DSAR scopingARead-onlyIdempotentInspect
Explains how to start free scoping and returns a prefilled email (mailto URL) to james@doubleaigents.com. Sends nothing and stores nothing. Do not pass the requester's personal data or the request letter.
| Name | Required | Description | Default |
|---|---|---|---|
| contact_name | Yes | Name of the person at the organisation handling the request (not the requester). | |
| jurisdiction | Yes | ||
| organisation | Yes | The controller organisation that received the request. | |
| approx_volume | No | Optional rough volume, for example "two mailboxes, about 3 years". | |
| contact_email | Yes | Email of that person. | |
| date_received | Yes | ISO date the request was received. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as a safe, non-destructive, idempotent local read. The description earns credit by disclosing the concrete behavior an agent cannot infer: it returns a mailto URL addressed to a specific recipient, and that nothing is sent or stored server-side. The data-handling warning adds further operational context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each load-bearing: output, side-effect profile, and a hard data constraint. The most decision-relevant fact (what it returns) is front-loaded and there is no filler.
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?
With no output schema, the description still explains the return value, confirms no persistence or transmission occurs, and sets a privacy boundary on the inputs. Nothing an agent needs in order to call this correctly is missing.
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 coverage is already high at 83%, and the schema itself clarifies that contact_name refers to the organisation's handler, not the requester. The description reinforces this by warning against passing the requester's personal data or the letter, which meaningfully constrains what belongs in the fields.
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?
States a specific action and its concrete output: it returns a prefilled email (mailto URL) for starting free scoping. An agent can tell what it gets back without opening the schema, though it never explicitly contrasts itself with the nearby dsar_quote or dsar_service_info siblings.
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?
Gives clear context ("start free scoping") plus an explicit exclusion: "Do not pass the requester's personal data or the request letter." No alternative tool is named for the case where the agent needs a quote or a template, so it stops short of full when/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dsar_search_checklistDSAR search checklistARead-onlyIdempotentInspect
Where to search when answering a subject access request, especially from an employee: Microsoft 365 (Exchange and archives, shared mailboxes, Teams, OneDrive, SharePoint), other collaboration tools, HR, payroll, recruitment, CCTV, access logs, devices, line manager notes, paper files, occupational health and backups; search-term tips; and the search standard (UK GDPR Art. 15(1A) reasonable and proportionate searches). General information, not legal advice.
| Name | Required | Description | Default |
|---|---|---|---|
| organisation_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds the 'General information, not legal advice' caveat, which is genuine added context, but says nothing about return format or length beyond the topic list.
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?
Single front-loaded sentence that leads with the core purpose, then itemizes scope. Dense but no filler; the semicolon lists are efficient rather than bloated.
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?
No output schema exists, and the description does explain what content the checklist covers, which is the main burden. However it leaves the required organisation_type's effect unexplained, so an agent cannot know how its choice alters the answer.
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 coverage is 0% for the single enum parameter organisation_type, and the description only obliquely hints at it via 'especially from an employee'. It never explains what employer/law_firm/other change in the output, so the one parameter an agent must supply is effectively undocumented.
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?
States a concrete deliverable — a checklist of where to search when answering a DSAR — and enumerates the covered sources (M365, HR, payroll, CCTV, backups, etc.). This clearly separates it from siblings like dsar_request_scoping or dsar_deadline.
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?
Usage is implied by 'when answering a subject access request, especially from an employee', but it never states when to pick this over dsar_request_scoping or dsar_service_info, nor any preconditions. Adequate context, no explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dsar_service_infoDSAR service informationBRead-onlyIdempotentInspect
What the Double AIgents DSAR service covers: scoping, collection guidance, de-duplication, redaction, exemption recommendations, two independent reviews, secure delivery, data handling, jurisdictions and partner arrangements.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered without the description. The description adds only a topical outline of what the response discusses; it does not disclose the return format (e.g., static text vs structured data) despite there being no output schema.
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?
A single front-loaded sentence that opens with the subject and then lists coverage areas; no filler or repetition. It is list-dense but every clause maps to a distinct topic, so it stays readable.
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?
For a zero-parameter, annotation-covered reference tool with no output schema, the enumerated coverage list largely communicates what the caller will get back. The only shortfall is that it never states the response shape (static documentation text), which an agent would have to discover at call time.
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 tool takes no parameters, so there is nothing for the description to disambiguate and the baseline is 4. No parameter-related information is missing.
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 identifies the resource (the DSAR service) and enumerates the topics the tool covers, so an agent knows this is a static service-overview/reference tool rather than an action. It implicitly separates itself from functional siblings such as dsar_deadline or dsar_quote, though it never states the verb ('returns/explains') or names those alternatives directly.
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?
There is no guidance on when to call this versus siblings like dsar_request_scoping, dsar_quote, or dsar_search_checklist, nor any exclusions or preconditions. The agent must infer that this is background material to consult before the more specific DSAR tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hr_retentionHR record retention periods (UK)ARead-onlyIdempotentInspect
Recommended retention period for a common UK HR record, whether it is statutory or only recommended, and the source (HMRC, Home Office, RIDDOR 2013, Working Time Regulations, Limitation Act 1980, ICO, DBS). UK only for now. General information, not legal advice.
| Name | Required | Description | Default |
|---|---|---|---|
| record_type | Yes | ||
| jurisdiction | No | UK |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so the description's job is to add context beyond that. It does by disclosing that results are flagged statutory vs recommended, that sources are attributed (HMRC, RIDDOR 2013, Limitation Act 1980, etc.), and by adding an explicit 'general information, not legal advice' disclaimer. No return format or pagination detail is given, but for a static lookup that is a minor gap.
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 short sentences with no filler: the core behavior first, scope second, disclaimer last. Every clause earns its place and nothing is repeated from the schema or annotations.
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?
With no output schema, the description correctly carries the burden of explaining the return contents (period, statutory vs recommended, source), which is the key information an agent needs. It is nearly complete; only the granularity of the response (one record type per call) is left implicit.
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 0%, so the description should compensate. It partially does by clarifying jurisdiction ('UK only for now'), which matches the single-value enum, but it says nothing about record_type beyond the enum's self-explanatory values. Baseline 3 is appropriate since the enums are largely self-documenting.
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 states a specific resource and enumerates exactly what is returned: a retention period, whether it is statutory or only recommended, and the source it derives from. It also bounds scope with 'UK only for now', so an agent can tell immediately this is a read-only reference lookup with no counterpart among the DSAR/breach siblings.
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?
Usage is only implied by the purpose and the 'UK only for now' constraint. There is no explicit 'use this when...' guidance, no mention of calling it repeatedly per record type, and no statement of what to do when the requested jurisdiction or record type is out of scope. Adequate but leaves the agent to infer applicability.
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.
10 tool updates
- First observed
ai_tool_check - First observed
breach_clock - First observed
breach_triage - First observed
dsar_deadline - First observed
dsar_letter_template - First observed
dsar_quote - First observed
dsar_request_scoping - First observed
dsar_search_checklist - First observed
dsar_service_info - First observed
hr_retention
Related MCP Connectors
Incident-reporting deadlines from the law: CRA, NIS2, DORA, GDPR, HIPAA, SEC 8-K. 6 of 9 tools free.
UK compliance documentation for the EU AI Act, Worker Protection Act 2024, and UK GDPR.
Run deterministic SaaS contract redlining, GDPR Art. 28 DPA & EU AI Act compliance audits.
Run deterministic SaaS contract redlining, GDPR Art. 28 DPA & EU AI Act compliance audits.
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides comprehensive GDPR compliance assessment tools for AI/ML systems, including lawful basis determination, DPIA generation, and data subject rights handling. It also crosswalks GDPR requirements to EU AI Act obligations with AI-specific considerations throughout.66 npm134 PyPIMIT
- AlicenseNot gradedqualityDmaintenanceEnables GDPR privacy compliance and DSAR management, including creating, tracking, and updating Data Subject Access Requests, checking GDPR compliance, and maintaining a data processing inventory through MCP tools.MIT
- AlicenseBqualityCmaintenanceMulti-regime AI incident classification and reporting MCP supporting EU AI Act Article 73, DORA, NIS2, and GDPR breach reporting.348 PyPIMIT
- AlicenseBqualityDmaintenanceTracks AI regulations, deadlines, risk assessments, and policy updates across multiple global jurisdictions, helping users stay compliant with evolving AI laws.63 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.