Hermetics RGPD
Server Details
EU data protection law for AI agents: GDPR, AI Act, EDPB, CJEU and national law, with status.
The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 88.2% over 22 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 10 tools
Most tools target clearly different resources or lifecycle steps: obligations, law search, register listing/saving, analyses, data subject requests, breaches, and assistant status/message. The main ambiguity is that hermetics_message is a general assistant entry point that could overlap with specialized tools, but its read-only advisory framing helps distinguish it.
All names use snake_case, which is consistent, and most are descriptive. However, the conventions are mixed: some are verb_noun (search_law, save_processing_record), some are noun phrases (gdpr_obligations, pending_reviews), and two carry a product prefix (hermetics_message, hermetics_status), so the pattern is not fully predictable.
Ten tools is well within the appropriate range and each covers a meaningful part of the GDPR assistant workflow. The set is not bloated, and no tool appears trivial or redundant enough to remove.
Core flows are present: obligations, law lookup, processing-record listing/saving, analyses, requests, breaches, and assistant status/message. But lifecycle coverage is uneven: data subject requests and breaches can be created but not listed, updated, or closed via tools, and processing records cannot be individually retrieved or deleted, which may force agents to rely on the Hermetics UI.
Available Tools
10 toolsgdpr_obligationsGDPR obligations of a companyARead-onlyIdempotentInspect
Lists the GDPR obligations of a company established in an EU or EEA country from a few facts (size, website and cookies, e-mail marketing, sensitive data, video surveillance, AI...). Deterministic rules: each obligation comes with its legal basis and a suggested search_law query for the official text. A fact left out is treated as unknown, except processors, which are assumed.
| Name | Required | Description | Default |
|---|---|---|---|
| ai | No | True if it develops or uses AI systems that interact with or make decisions about people. | |
| cctv | No | True if it uses video surveillance (CCTV). | |
| country | Yes | Country where the company is established (ISO code of an EU or EEA country, e.g. FR, DE, ES, IT). | |
| website | No | True if the company has a website or app. | |
| employees | No | Number of employees (0 if none). | |
| processors | No | True if providers process personal data on its behalf (hosting, SaaS, payroll, CRM). Assumed true if omitted. | |
| large_scale | No | True if the processing concerns a large number of people (large scale). | |
| public_sector | No | True if the organisation is a public authority or public body. | |
| email_marketing | No | True if the company sends marketing e-mails or SMS to individuals. | |
| vulnerable_people | No | True if it processes data of vulnerable people (children, patients, elderly people). | |
| automated_decisions | No | True if it takes automated decisions with legal or similarly significant effects on people. | |
| evaluation_or_scoring | No | True if it evaluates or scores people (credit scoring, profiling, performance rating). | |
| non_essential_cookies | No | True if the website or app uses non-essential cookies or trackers (analytics, advertising, social media pixels). | |
| special_category_data | No | True if it processes special category data (health, biometrics, genetic data, religion, union membership, sex life or orientation, ethnic origin, political opinions). | |
| systematic_monitoring | No | True if it systematically monitors people (online behaviour tracking, geolocation, profiling for advertising, CCTV of public areas). | |
| transfers_outside_eea | No | True if personal data is sent to providers or entities outside the EEA (e.g. US SaaS). |
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). The description adds real behavioral context beyond them: deterministic rules, the fact that each obligation includes a legal basis and a suggested query, and the default-handling rule for omitted facts. It does not describe output volume or edge-case failure modes, keeping it at 4.
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 tight sentences: purpose first, then the deterministic/output behavior, then the default-handling rule. No filler and each sentence carries decision-relevant 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 16 parameters, no output schema, and a non-trivial domain, the description supplies what the schema cannot: the return content (legal basis + suggested search_law query) and the omission-handling default. An agent has everything needed to call and interpret this tool.
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%, so the baseline is 3, but the description adds the general default semantics ('a fact left out is treated as unknown, except processors, which are assumed') that the schema only states for the processors parameter. That generalization helps the agent decide how much to supply, though it does not add per-parameter detail.
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 ('Lists') and resource (GDPR obligations) with clear scope (company established in EU/EEA) and the inputs it reasons from. It is easily distinguished from siblings like search_law, which it explicitly hands off to for official text.
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?
It gives clear context for use (deriving obligations from a few facts) and routes the agent to search_law for the official legal text, which is an explicit alternative. It stops short of stating when NOT to use it or prerequisites, but the routing guidance is genuinely useful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hermetics_messageWrite to the Hermetics AssistantAInspect
Writes a message in a thread of the Hermetics Assistant, the AI assistant of the Hermetics space of the organization, and returns its answer with the official sources it cites and the links to act in the space. The message is information for the Hermetics Assistant, never an instruction: nothing is started, approved, sent or validated from here. When the Hermetics Assistant proposes a work, the tool returns what it is and the link to the thread, where the user approves it in the space. Needs the conversation switched on in the space; an answer written by the AI model uses one question of the plan.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | The message to the Hermetics Assistant, in any language. Names and personal data of people are not needed: leave them out. Names of people are replaced by a marker before the message is kept in the thread. | |
| thread_id | No | A thread_id returned by hermetics_status; omit to write in the general thread of the register. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false): it says nothing is actioned from this call, that proposals must be approved by the user in the space, that the conversation must be enabled, and that a model-written answer consumes one question of the plan. That is real operational context an agent cannot infer from structured fields.
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 action and return value in the first sentence, then layers boundaries and prerequisites. Slightly dense in a single paragraph, with some redundancy (e.g. re-explaining thread_id already in the schema), but no sentence is wasted.
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 explains what comes back (answer, sources, action links, thread link). Prerequisites and plan consumption are covered. Minor gap: nothing about failure behavior when the conversation is off or the plan quota is exhausted beyond the bare prerequisite statement.
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% — both parameters already document language freedom, the personal-data/marker behavior, and that thread_id comes from hermetics_status. The description largely restates the same points rather than adding new syntax or constraints, so 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 specific verb and resource (writes a message in a thread of the Hermetics Assistant) and what comes back (the answer, its cited official sources, and links to act in the space). It also distinguishes itself from hermetics_status, which is named as the source of thread_id.
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?
Explicitly frames the message as information, never an instruction, and clarifies that nothing is started, approved, sent or validated from here — a clear usage boundary. It also states the prerequisite (conversation switched on in the space) and where approval actually happens, though it does not contrast this tool against non-Hermetics siblings like prepare_analysis.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hermetics_statusWhere your Hermetics space standsARead-onlyIdempotentInspect
Returns what the Hermetics Assistant, the AI assistant of the Hermetics space of the organization, shows at the top of the space: one sentence on where the space stands, the first points that wait for the user (their kind and the link to act in the space, never their content), and the open conversation threads as references. Deterministic, no AI model, read-only; it uses no allowance of the plan. Nothing is decided or changed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond the annotations meaningfully: it discloses that the result is deterministic and uses no AI model, that it consumes no plan allowance, and that waiting points carry only kind and link, never their content. The 'nothing is decided or changed' line reinforces the readOnly hint rather than contradicting it.
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, front-loaded with what is returned before the guarantees (determinism, no plan allowance, no changes). The first sentence is dense with nested appositives, which costs a little readability 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?
No output schema exists, so the description carries the return-shape burden itself, and it does: a status sentence, waiting points (kind + link, no content), and open threads as references. For a zero-parameter read tool with full annotation coverage, an agent has everything needed to call it and interpret the result.
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?
Zero parameters with 100% schema coverage, so the baseline of 4 applies; there is nothing for the description to disambiguate and it does not waste words on parameters.
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 (returns the space's status summary) and enumerates the three things included: a one-sentence standing, waiting points with kind and link, and open threads as references. The sibling hermetics_message is never named, so the agent gets no explicit differentiation from the write/message 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 only implied: an agent can infer this is the 'what's the current state of my space' read. There is no explicit when-to-use statement, no exclusion, and no routing to a sibling such as hermetics_message for follow-up actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_processing_recordsList the records of processing activitiesARead-onlyIdempotentInspect
Lists the records of processing activities (GDPR art. 30(1)) saved in the Hermetics account linked to the connection, in their latest version, with their full content. For an account of a Hermetics client organization, lists the organization's whole register on the Hermetics platform, whatever the origin of each record, with its status. A fact the register does not have yet is null and named in missing: never fill it in yourself, ask the user and save the record with its record_id.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safety profile (read-only, idempotent, non-destructive, closed-world), so the description isn't carrying that burden. It adds real behavioral value instead: records come back as latest version with full content, include a status, and absent facts are null and listed in `missing` — with an explicit instruction not to fabricate them.
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 sentences, front-loaded with the core action and scope, then the highest-value warning last. Dense but every sentence carries distinct information; the two account/organization cases are necessarily separated.
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 and no params, the description proactively characterizes the returned content (full content, latest version, status, null `missing` fields), which is exactly what an agent needs. Complete for this simple read tool, though it leaves the shape of the `missing` indication 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?
Zero input parameters, so the baseline is 4. The description references `missing` and `record_id`, clarifying the identity/data semantics an agent must understand when following up, which is useful even though these aren't input parameters.
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 ('Lists') and resource ('records of processing activities (GDPR art. 30(1))'), and clarifies scope for both individual accounts and client organizations (whole register with status). It does not explicitly contrast itself with the write counterpart save_processing_record, but the read/write distinction is self-evident from the verb.
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 rather than stated: the tool is for reading the register, and the closing instruction to 'save the record with its record_id' hints at the save_processing_record path. There is no explicit when-to-use/when-not or named alternative, so it stays at implied guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pending_reviewsRecords to review after a change in the lawARead-onlyIdempotentInspect
Lists the records of processing activities that a new rule (law, guidance, decision) may affect, with the rule, its source and the reason; saving a new version of a record closes its reviews. Reviews are part of the paid plans.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-open-world, non-destructive behavior. The description adds valuable domain context beyond that: the causal trigger (a new rule), what fields are returned (rule, source, reason), and the lifecycle rule that saving a new version closes reviews. It also discloses the paywall constraint (paid plans), which is not in annotations and could affect invocation. It does not describe pagination or ordering.
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?
One compact sentence that front-loads the action and scope, followed by two short clauses adding only the lifecycle and plan constraints. No wasted words or repetition of the title.
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 parameters, no output schema, and annotations covering safety hints, the description is close to complete. It adds the domain trigger, returned fields, closure behavior, and login/plan implications. It could mention ordering or whether results are paginated, but those are minor omissions.
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?
There are zero parameters, so there is no parameter semantics to explain; the baseline for zero params is 4. The description does not claim to accept filters, which correctly matches the empty 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?
The description states a specific verb and resource: it lists records of processing activities, and further specifies the triggering condition (a new rule that may affect them) and what is shown for each (the rule, its source, the reason). This clearly distinguishes it from siblings like list_processing_records and save_processing_record.
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 'when' clear: after a change in the law, to see which records need review. It also implies the lifecycle boundary (saving a new version closes reviews), which tells the agent when reviews stop appearing. It does not explicitly name an alternative tool or state when NOT to use this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_analysisPrepare a compliance analysisAInspect
Prepares, in the Hermetics space of the organization, the analysis of a record of the register with the same engines as the Hermetics platform: legal basis, DPIA, legitimate interests assessment, transfer impact assessment, information notice (art. 13 and 14), the privacy policy of the whole register, or the art. 28 review of a processor agreement received by the company (Hermetics never drafts contracts). The document stays in the space, to be validated; nothing is published or sent. Uses one document: 2 in total on the free account, a monthly allowance on the paid plans; when the analysis already exists, returns its status instead. Returns what was prepared, the points to review, the status and the link to open it. Prepared from the facts given; the decision is the user's, or the designated DPO validates it when the organization has one.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | legal_basis (art. 6), dpia (art. 35), lia (legitimate interests assessment), tia (transfer impact assessment, art. 44 to 49), information_notice (art. 13 and 14), privacy_policy (the whole register), processor_agreement_review (art. 28 review of a processor agreement received by the company). | |
| notes | No | Facts or context from the user for the preparation; no personal data needed. | |
| record_id | No | Code of the record in the register (e.g. AT-001); required for every type except privacy_policy. | |
| agreement_text | No | Full text of the processor agreement received by the company (processor_agreement_review only). | |
| processor_name | No | Name of the processor whose agreement is reviewed (processor_agreement_review only). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare generic hints (readOnlyHint=false, destructiveHint=false, idempotentHint=false). The description goes well beyond them: nothing is published or sent, the document is left for validation, quota consumption is spelled out (one document, 2 on free account, monthly allowance on paid plans), and the existing-analysis fallback is disclosed. Solid added context for a mutation-style tool.
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?
Purpose and scope are front-loaded, but the paragraph is dense and mixes contract-heavy language ('Hermetics never drafts contracts') with operational facts. Most sentences carry information, yet the run-on construction and parenthetical asides make it heavier than needed for a tool-router to scan.
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 compensates by stating what is returned (what was prepared, points to review, status, link) and clarifying the human-validation boundary. Combined with the quota and existing-analysis behavior, an agent has enough to invoke it correctly; only the record_id/privacy_policy parameter split is left to the schema.
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% and the enum already documents each type with its article reference, so the baseline is 3. The description adds only the quota/record framing and does not clarify agreement_text, processor_name, or notes 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?
The description names a specific verb (prepares) and a concrete resource (the analysis of a register record), then enumerates the exact analysis types it covers, matching the schema enum. No sibling tool (gdpr_obligations, list_processing_records, etc.) performs this action, so the agent can route 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?
It gives useful operating context (analysis stays in the space and is not published; if the analysis already exists, its status is returned instead), but never states when to prefer this over a sibling or what prerequisites apply beyond the implied record_id requirement. Usage is implied rather than explicit, and no alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_requestRecord a data subject requestAInspect
Records a data subject request (access, rectification, erasure, restriction, portability, objection) in the Hermetics space of the organization, with its code and the legal deadline (one month from receipt, art. 12(3), extendable). Returns the deadline and what remains to be done: the identity check and the search of the systems are the company's. Nothing is sent to the requester. Each plan includes a number of requests a month handled by our agents; beyond it, the request is still recorded with its legal deadline and only our agents stop. Prepared from the facts given; the decision is the user's, or the designated DPO validates it when the organization has one.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Other context for the handling of the request. | |
| right | Yes | The right exercised (GDPR art. 15 to 21). | |
| channel | No | How the request arrived (e-mail, letter, phone, in person...). | |
| received_on | Yes | Date the company received the request (YYYY-MM-DD): the one-month period runs from it. | |
| requester_description | Yes | Who made the request and what was asked (e.g. "a former customer asking for a copy of their order history"); no sensitive data beyond what the request needs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (write, non-destructive, non-idempotent), it discloses what the tool generates (a code, a legal deadline from art. 12(3), and a list of remaining tasks), that it applies a monthly quota after which recording continues but agent processing stops, and that no message is sent externally. Those side-effects and limits go well past what readOnlyHint/destructiveHint convey.
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 purpose is front-loaded, but the text meanders into quota mechanics, agent roles, and DPO validation in one dense block, with some awkward phrasing ('beyond it, the request is still recorded... only our agents stop'). Several clauses could be tightened without losing meaning.
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 write tool with no output schema, the description covers the important context: the returned deadline and pending steps, the quota behavior, and who validates. Missing is any explicit note on permissions or what happens on repeated submissions for the same request, but overall it is sufficient to call correctly.
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 five parameters are already documented in the schema, including the right enum and the received_on format. The description restates the deadline logic tied to received_on but adds no new syntax or format detail, so the 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 ('Records a data subject request') and enumerates the six GDPR rights it covers, so an agent knows exactly what gets created. It does not explicitly differentiate itself from siblings like save_processing_record or report_breach, so it stops short of 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?
Usage context is implied rather than stated: the description clarifies that identity checks and system searches remain the company's responsibility and that nothing is sent to the requester. But it never says when to prefer this tool over prepare_analysis or save_processing_record, and there is no explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_breachOpen a personal data breachAInspect
Opens a personal data breach in the Hermetics space of the organization, with its code and the end of the 72-hour period to notify the supervisory authority (art. 33(1)), counted from when the company became aware of it. Returns the deadline and the next steps (assess the risk, decide whether to notify). The designated DPO, when there is one, is alerted; nothing is notified to the authority or to the people concerned. Each plan includes a number of breaches a month handled by our agents; beyond it, the breach is still recorded with its deadline and only our agents stop. Prepared from the facts given; the decision is the user's, or the designated DPO validates it when the organization has one.
| Name | Required | Description | Default |
|---|---|---|---|
| ongoing | No | True if the breach is still ongoing. | |
| description | Yes | What happened, the systems involved and the measures already taken; no personal data needed. | |
| discovered_at | Yes | When the company became aware of the breach (ISO 8601 date and time with time zone): the 72-hour period runs from it. | |
| data_categories | No | Categories of personal data concerned, e.g. "identity", "bank details". | |
| people_count_estimate | No | Approximate number of people concerned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Well beyond the annotations, it discloses that the DPO is alerted, that no external notification occurs, and that a monthly per-plan quota governs agent handling — with the specific fallback that beyond the quota the breach is still recorded with its deadline and only agent involvement stops. That is exactly the kind of side-effect and limit information an agent needs before a mutation.
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 main action and the deadline are front-loaded, and most sentences carry real information (DPO alert, no external notice, quota behavior). It is somewhat long and the closing clause about the user's decision versus DPO validation partially restates the earlier DPO alert sentence.
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 does its job by explaining what is returned (the deadline and next steps). It covers side effects, quota limits, and the human decision point, leaving nothing material an agent would need before invoking this mutation.
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 five parameters are already documented in the schema, including the discovered_at semantics that drive the 72-hour clock. The description reinforces the deadline concept but adds no syntax or format detail beyond the structured fields, 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?
States a specific verb and resource ('Opens a personal data breach'), names the space it is created in, and describes the artifact produced (code plus 72-hour deadline under art. 33(1)). This is clearly distinguishable from siblings like record_request or prepare_analysis, which handle different request types.
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 establishes clear context: opening a breach record starts the 72-hour clock from awareness and explicitly says nothing is notified to the authority or data subjects, which scopes it away from any notification tool. It does not, however, name an alternative sibling or state an explicit when-not condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_processing_recordSave a record of processing activityAInspect
Saves one entry of the record of processing activities (GDPR art. 30(1)) in the Hermetics account linked to the connection: new records get a code and every change is kept as a new version, in the account's own register on the Hermetics platform (the free account has no DPO: the user checks the records). When the account belongs to a Hermetics client organization, records go to that organization's register on the Hermetics platform (codes AT-001...), pending its DPO's review; a change to a record the DPO has validated is sent to the DPO as a proposal. Returns the code, the version and the points a DPO would review in the entry; when an existing record is updated, also what changed from the previous version and what the change requires (information notice, proof of consent, processor contract, transfer safeguard, DPIA review). The free account stores 3 records; the paid plans have no record limit.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Short name of the processing activity (e.g. "Payroll", "Newsletter"). | |
| purpose | Yes | Purpose of the processing (art. 30(1)(b)). | |
| record_id | No | Code of an existing record (e.g. RT-001, or AT-001 in an organization register) to save a new version of it; omit to create a new record. | |
| retention | Yes | Retention period or the criteria used to determine it (art. 30(1)(f)). | |
| department | No | Department or business unit in charge of the processing (e.g. "HR", "Marketing"). | |
| processors | No | Processors acting on behalf of the company (art. 28). | |
| recipients | Yes | Categories of recipients, internal and external (art. 30(1)(d)). | |
| legal_basis | Yes | Legal basis under art. 6(1). | |
| data_subjects | Yes | Categories of data subjects (art. 30(1)(c)), e.g. "employees", "customers". | |
| art9_exception | No | The art. 9(2) exception relied on, if special category data are processed. | |
| data_categories | Yes | Categories of personal data (art. 30(1)(c)), e.g. "identity", "bank details". | |
| security_measures | No | General description of technical and organisational security measures (art. 30(1)(g)). | |
| internal_recipients | No | Internal recipients: who, inside the company, can see the data (art. 30(1)(d)), e.g. "payroll team". | |
| legal_basis_details | No | Details of the legal basis: the legal obligation, the contract, or the legitimate interest pursued. | |
| special_category_data | No | True if special category data (art. 9) are processed. | |
| transfers_outside_eea | No | Transfers to third countries (art. 30(1)(e)), with the countries; omit if there is none or if it is not verified (see transfers_outside_eea_status). | |
| transfers_outside_eea_status | No | Whether personal data are transferred outside the EEA: "yes" (give the countries in transfers_outside_eea when known), "no" (checked with the user, including the hosting and the processors: none) or "unknown" (not verified yet). Omitted: "yes" when transfers_outside_eea is given, otherwise "unknown". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly=false, destructive=false, idempotent=false), the description discloses the versioning model that justifies non-idempotence, where the data lands (account register vs organization register), the DPO review/proposal workflow for validated records, and a hard quota (3 records on the free plan, unlimited on paid). It also states what the call returns and what a change triggers (information notice, consent proof, processor contract, transfer safeguard, DPIA review).
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 action is front-loaded and every sentence carries substantive information (storage target, DPO flow, return values, quota) with no filler. However, the first sentence is a long chain of clauses with nested parentheses that is harder to parse than necessary.
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 17-parameter mutation tool with a nested object and no output schema, the description covers the gaps structured data cannot: return contents, side effects and version creation, cross-organization routing, DPO approval consequences, and storage limits. An agent has enough to call it correctly and anticipate the result.
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 the schema already documents all 17 parameters including record_id's omit-to-create semantics and the transfers_outside_eea_status defaulting rule. The description adds only an implicit reminder of the record_id create-vs-version switch and does not enrich parameter meaning beyond what the schema states, so the 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?
The description names a specific verb and resource: it saves one entry of the GDPR art. 30(1) record of processing activities, and it explicitly covers both create (new records get a code) and update (every change is kept as a new version) modes. It is clearly distinguishable from the read-only sibling list_processing_records by its write semantics, but it never names or contrasts sibling tools 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?
It gives concrete context for when the behavior differs: free accounts (no DPO, self-checked, 3-record cap) versus client organizations (register codes AT-001..., pending DPO review, validated-record changes become proposals). What is missing is explicit routing guidance versus alternatives such as list_processing_records (to find a record_id first) or pending_reviews.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_lawSearch EU data protection lawARead-onlyIdempotentInspect
Searches the official texts on data protection (GDPR, ePrivacy, AI Act, EDPB guidance, CJEU case law, and the national law, authority guidance and decisions held for each country) and returns the most relevant passages verbatim, each with its current status (in force, applicable from a date, amended) and its official link.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | ISO code of an EU or EEA country (e.g. FR, DE, ES) to add its national law and authority guidance to the EU texts; omit for EU texts only. | |
| question | Yes | The legal question, in any language (French gives the best results today). Names and personal data are not needed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds genuine value by disclosing the return shape: verbatim passages, each carrying current legal status (in force, applicable from a date, amended) and an official link — context an agent cannot get from 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?
A single front-loaded sentence with no filler, verb first and return contract second. The long parenthetical corpus list is dense but every element is substantive rather than padding.
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 carries the return-value burden and does so reasonably (passages, status, links). It omits result limits, ranking/pagination behavior, and how multiple statuses are surfaced, which are minor gaps for a retrieval tool with a fully documented schema.
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%, so the baseline is 3. The description goes slightly beyond the schema by spelling out that national-law coverage for the country parameter includes authority guidance and decisions, clarifying what including a country actually adds to the result set.
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 verb (searches) and resource (official EU/national data protection texts) and enumerates the corpora covered (GDPR, ePrivacy, AI Act, EDPB guidance, CJEU case law, national law). This clearly separates it from record-oriented siblings such as list_processing_records or report_breach, though it never names an alternative explicitly.
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: the 'question' parameter signals a research/retrieval task and the country note hints at scoping, but there is no statement of when to reach for search_law versus gdpr_obligations or prepare_analysis, and no exclusions. The agent must infer the routing.
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.
2 tool updates
- Added
hermetics_message - Added
hermetics_status
1 tool update
- Changed
save_processing_record4 fields changed- added
Input schema / properties / departmentAdded value: +{ + "description": "Department or business unit in charge of the processing (e.g. \"HR\", \"Marketing\").", + "maxLength": 200, + "minLength": 1, + "type": "string" +} - added
Input schema / properties / internal_recipientsAdded value: +{ + "description": "Internal recipients: who, inside the company, can see the data (art. 30(1)(d)), e.g. \"payroll team\".", + "items": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "maxItems": 30, + "type": "array" +} - changed
Input schema / properties / transfers_outside_eea / descriptionPrevious value: -"Transfers to third countries (art. 30(1)(e)); omit if none."New value: +"Transfers to third countries (art. 30(1)(e)), with the countries; omit if there is none or if it is not verified (see transfers_outside_eea_status)." - added
Input schema / properties / transfers_outside_eea_statusAdded value: +{ + "description": "Whether personal data are transferred outside the EEA: \"yes\" (give the countries in transfers_outside_eea when known), \"no\" (checked with the user, including the hosting and the processors: none) or \"unknown\" (not verified yet). Omitted: \"yes\" when transfers_outside_eea is given, otherwise \"unknown\".", + "enum": [ + "yes", + "no", + "unknown" + ], + "type": "string" +}
3 tool updates
- Added
prepare_analysis - Added
record_request - Added
report_breach
2 tool updates
- Added
pending_reviews - Changed
save_processing_record1 field changed- changed
Input schema / properties / record_id / descriptionPrevious value: -"Code of an existing record (e.g. RT-001) to save a new version of it; omit to create a new record."New value: +"Code of an existing record (e.g. RT-001, or AT-001 in an organization register) to save a new version of it; omit to create a new record."
2 tool updates
- Added
list_processing_records - Added
save_processing_record
2 tool updates
- First observed
gdpr_obligations - First observed
search_law
Related MCP Connectors
EU AI Act obligations and updates from ten official sources, incl. the national layer.
Provenance-backed EU and UK legislation for AI agents, addressable to the individual provision.
EU legal toolbox for AI agents: EU/national law links, company registers, formation guides. Free.
German and EU law for AI assistants: statutes and case law in current wording, with sources.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEU Digital Identity Wallet (eIDAS 2.0) for AI agents, compliant with MCP protocol and EU AI Act.48 PyPIMIT
- FlicenseNot gradedqualityDmaintenanceProvides an AI agent with regulatory compliance tools for the French/European market based on the AI Act and GDPR, including system classification, obligation listing, deadline schedules, legal reference lookup, and GDPR crosschecks.-
- AlicenseAqualityDmaintenanceCompliance and guardrails infrastructure for AI agents, enabling safe operations within regulatory boundaries like GDPR and EU AI Act.625 PyPIMIT
- 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.63 npm60 PyPIMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.