Skip to main content
Glama

Server Details

Free hosted MCP server for Canadian privacy law: Quebec Law 25 readiness, enforcement actions, and a 263-term privacy glossary.

Ownership verified
Status
Healthy
Uptime
100.0% over 41 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4.3/5.0

Scored across 11 tools

Disambiguation5/5

Each tool targets a distinct resource+action, and the descriptions explicitly pair the browse-vs-lookup boundaries (list_crawlers vs lookup_crawler, lookup_tracker vs classify_cookie) with 'use when / do not use when' guidance. The meta tools (privacy_search_api, privacy_execute_plan) have a clearly different role of discovery/orchestration rather than duplicating a specific lookup. No pair of tools appears to do the same thing.

Naming Consistency3/5

The verb_noun pattern is mostly followed (lookup_crawler, classify_cookie, search_enforcement_actions, get_enforcement_case), but the surface is split into two naming families: the cookie/crawler tools have no prefix while the rest carry a privacy_ prefix. privacy_law25_requirements also breaks the verb_noun style. It is readable, but the mixed conventions make the set feel assembled from two sources.

Tool Count5/5

Eleven tools is well within a healthy range, and each one earns its place: single-item lookups, list/browse counterparts, a checklist, a meta-search, and a batch executor. Nothing appears redundant or trivially scoped.

Completeness4/5

Coverage is strong: cookie/tracker classification and browsing, crawler list+lookup, enforcement search+detail, glossary list+lookup, a Law 25 checklist, plus discovery and batch helpers. The main gap is that compliance coverage is Law 25 only, with no equivalent PIPEDA requirements tool even though PIPEDA is referenced throughout the glossary and enforcement tools. As a read-only API, missing write operations are not a concern.

Available Tools

11 tools
list_crawlersList AI crawlers in the registryA
Read-onlyIdempotent
Inspect

List AI crawlers from the registry, optionally filtered by operator (OpenAI, Anthropic, Google), purpose (training, search-index, user-triggered, search-and-training, other), or status (active, retired, renamed). Use it to compare how operators split training from search agents, or to find every training crawler before writing robots.txt rules. Results are paginated. Use when: Use when someone wants to browse AI crawlers by operator, purpose, or status. Do not use when: Do not use when someone names one exact token; look that token up directly.

NameRequiredDescriptionDefault
limitNoMaximum records to return in this call.
queryNoFree-text search over token, operator, and notes.
offsetNoNumber of matching records to skip. Use next_offset to page forward.
statusNoLimit to one lifecycle status.
purposeNoLimit to one purpose class.
operatorNoLimit to one operator, matched exactly but case-insensitively, for example 'OpenAI'.

Output Schema

NameRequiredDescription
resultsYesMatching crawler records (summary fields; call lookup_crawler for the full record).
has_moreYesTrue when more results exist beyond this page.
truncatedYesTrue when results were shortened to fit the 50 KB output cap. Use the paginated REST API for the full set.
next_offsetYesPass as 'offset' in the next call to continue paging. Null when has_more is false.
total_countYesTotal number of matches across all pages.

TDQS

A4.3/5.0
Behavior4/5

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 profile is covered; the description adds the pagination trait and names the closed registry scope. It stops short of saying how filters combine or what ordering results come back in, which would be the remaining behavioral detail.

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

Conciseness4/5

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

Front-loaded with the core action and filters, then use cases, then exclusions — good ordering. Minor waste: the 'Use when' line largely repeats the opening sentence's filter list.

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

Completeness4/5

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

With an output schema present (including next_offset) and full annotation coverage, the description needn't explain return values, and it correctly flags pagination. The one gap is filter-combination behavior, which matters for a six-parameter list tool but is not addressed.

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

Parameters3/5

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

Schema description coverage is 100% and the enums are already documented, so the schema carries the parameter burden. The description restates the filter dimensions and their accepted values (operator examples, the five purpose classes) but adds no semantics the schema lacks, such as whether multiple filters AND together or how `query` interacts with the structured filters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List AI crawlers from the registry') plus the three filter axes, and implicitly separates itself from lookup_crawler by telling the agent not to use it for a named token. An agent can pick this over the lookup siblings without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Contains explicit 'Use when' and 'Do not use when' clauses, with the exclusion naming the alternative behavior ('look that token up directly' = lookup_crawler). It also gives two concrete motivating scenarios (comparing operator training/search splits, enumerating training crawlers before writing robots.txt rules).

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

lookup_crawlerLook up an AI crawler by user-agent tokenA
Read-onlyIdempotent
Inspect

Look up one AI crawler or bot by its exact user-agent token, for example GPTBot or Claude-User. Returns the operator, what the agent is for (training, search indexing, or user-triggered fetching), whether it honors robots.txt, and the operator's own documentation. Matching is case-insensitive and exact: GPT does not match GPTBot. Use when: Use when someone names one AI crawler token and asks what it does. Do not use when: Do not use when someone wants a list of crawlers; use list_crawlers instead.

NameRequiredDescriptionDefault
tokenYesThe exact user-agent token only, for example 'GPTBot' or 'Claude-User'. Not a full user-agent string, not a URL.

Output Schema

NameRequiredDescription
crawlerYesThe registry record for the token.

TDQS

A4.5/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is fully covered structurally. The description adds genuinely useful behavioral detail beyond that: matching is case-insensitive but exact, with 'GPT does not match GPTBot' as a concrete failure mode. However, the listed return fields (operator, purpose, robots.txt, documentation) largely duplicate what the output schema already conveys, so the net addition is moderate rather than rich.

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

Conciseness5/5

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

Front-loaded with the core action, followed by return value, matching rule, and a clean conditional block. Every sentence carries distinct information; nothing is padding despite the multi-part structure.

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

Completeness5/5

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

With one required parameter, full schema coverage, rich annotations, and an output schema, the description covers the remaining gaps: what the tool returns conceptually, how matching behaves, and when to route elsewhere. An agent has everything needed to call it correctly on the first attempt.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description contributes semantics the schema does not state: matching is case-insensitive yet exact, and a near-miss token returns nothing. That matching rule directly changes how an agent should construct the argument, which is real added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Look up one AI crawler or bot by its exact user-agent token') and immediately clarifies scope with named examples (GPTBot, Claude-User). The 'one' vs. list distinction makes it trivially separable from list_crawlers without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Uses explicit 'Use when' / 'Do not use when' framing, and the negative case names the correct alternative (list_crawlers). The condition that selects this tool — a single named token — is unambiguous.

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

lookup_trackerLook up cookie and tracker patternsA
Read-onlyIdempotent
Inspect

Search the cookie and tracker knowledge base by cookie name, vendor, recipient organisation, or purpose. Use this to find which cookies a vendor sets, which organisation receives a tracker's data, or to browse patterns before calling classify_cookie on a specific name. Results are paginated. Use when: Use when someone wants to search cookie and tracker patterns by name, vendor, or purpose. Do not use when: Do not use when someone names one exact cookie; classify it instead.

NameRequiredDescriptionDefault
limitNoMaximum patterns to return in this call.
queryNoFree-text search over pattern, vendor, recipient, and purpose.
offsetNoNumber of matching patterns to skip. Use next_offset to page forward.
vendorNoLimit to one vendor, matched as a substring, for example 'Google'.

Output Schema

NameRequiredDescription
resultsYesMatching cookie/tracker patterns.
has_moreYesTrue when more results exist beyond this page.
truncatedYesTrue when results were shortened to fit the 50 KB output cap. Use the paginated REST API for the full set.
next_offsetYesPass as 'offset' in the next call to continue paging. Null when has_more is false.
total_countYesTotal number of matches across all pages.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds that results are paginated and that it is a knowledge-base search rather than a live crawl, which is useful context beyond the annotations, though it doesn't mention ordering or whether matches include both cookies and non-cookie trackers in one result set.

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

Conciseness4/5

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

Front-loaded with purpose and search dimensions, then structured use/don't-use and a pagination note. Slight redundancy: the "Use when" clause restates the opening sentence's searchable fields almost verbatim.

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

Completeness4/5

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

With an output schema present, return-value explanation is unnecessary, and annotations cover safety. The description covers purpose, discovery routes, the sibling exclusion, and pagination, leaving only minor gaps such as result ordering or whether vendor and query filters combine.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters are already well documented, including query scope and offset/next_offset paging. The description's list of searchable fields largely restates the query parameter's documented coverage, adding only illustrative use cases rather than new parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Search the cookie and tracker knowledge base") and enumerates the searchable dimensions: cookie name, vendor, recipient organisation, purpose. It also explicitly contrasts with the sibling classify_cookie, so an agent can distinguish the two without inspecting schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit "Use when" and "Do not use when" clauses and names the alternative (classify_cookie) for the excluded case of a single known cookie. The routing decision is fully determined by the description.

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

privacy_execute_planExecute a privacy API planA
Read-onlyIdempotent
Inspect

Run several read-only privacy API operations in one call, instead of many single-tool calls. Each operation names an allowlisted GET path template, parameters, and optional select, filter, sort, limit, or count_only shaping. A parameter may use $ref:: to take a value from an earlier operation's first result. Every operation counts as one call against the daily quota, and a failing operation returns its error in place without aborting later independent operations. Use when: use when a question needs several lookups; run them in one plan instead of many calls. Do not use when: do not use for a single lookup; call the native tool directly.

NameRequiredDescriptionDefault
operationsNoOperations to run in order, at most 10. Each has id, path, params, and optional select, filter, sort, limit, count_only.

Output Schema

NameRequiredDescription
logNo
metaNo
resultsNo

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, and closed-world behavior. The description adds important beyond-schema behavior: each operation counts against the daily quota, a failed operation returns its error in place without aborting later independent operations, and $ref can pass values between operations.

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

Conciseness4/5

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

The description is front-loaded with the core behavior and then usage guidance. It is slightly repetitive in the 'Use when: use when...' and 'Do not use when: do not use...' phrasing, but every major sentence contributes useful operational context.

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

Completeness5/5

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

Given rich annotations, 100% schema coverage, and an output schema, the description covers what is still needed: batching semantics, quota impact, failure isolation, and cross-operation references. Nothing critical for correct invocation is missing.

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

Parameters4/5

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

Schema description coverage is 100%, so the nested operation fields are already documented. The description adds meaning beyond the schema by explaining the cross-operation $ref pattern and the shaping options in the context of batched execution.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: run several read-only privacy API operations in one call using allowlisted GET path templates. It explicitly distinguishes this batch tool from many single-tool calls and, in the guidance, from the native tool for single lookups.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use guidance ('a question needs several lookups') and when-not-to-use guidance ('a single lookup; call the native tool directly'). The alternative tool choice is named directly, leaving little inference.

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

privacy_get_enforcement_caseGet enforcement case detailsA
Read-onlyIdempotent
Inspect

Get the full record of one privacy enforcement action by its ID, including the plain-language summary, outcome, penalty amount, and the official regulator source link. Use this after privacy_search_enforcement_actions when you need complete details on a specific case, or when a case ID (like 'cai-2026-05-06-openai') is already known. Use when: Use when someone has a case id and wants that one case in full. Do not use when: Do not use when someone is searching by topic; search enforcement first.

NameRequiredDescriptionDefault
idYesThe case ID from a search result.

Output Schema

NameRequiredDescription
caseYes

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is fully covered. The description's field list (summary, outcome, penalty, source link) largely restates what the output schema already exposes. It does not say what happens for an unknown or malformed ID, which would be the genuinely additive detail.

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

Conciseness4/5

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

Front-loaded with purpose and contents, then usage rules, so structure is good. The 'Use when' line however restates the first paragraph almost verbatim ('someone has a case id and wants that one case in full'), which is mild redundancy.

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

Completeness4/5

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

With an output schema present, the description needn't explain return values, and it correctly focuses on selection and sequencing. The only gap is error behavior for invalid IDs, a minor omission for a single-parameter read tool.

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

Parameters3/5

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

Schema description coverage is 100%, with a regex pattern and an example ID already present. The description adds only that the ID originates 'from a search result,' which is marginal beyond the schema. Baseline 3 applies when the schema carries the parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get the full record of one privacy enforcement action by its ID') and enumerates what the record contains. It is clearly distinguishable from privacy_search_enforcement_actions, which is named as the search counterpart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit sequencing ('Use this after privacy_search_enforcement_actions'), an alternate trigger (case ID already known, with a concrete example ID), and an explicit exclusion ('Do not use when someone is searching by topic'). Both when and when-not are covered.

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

privacy_law25_requirementsGet Law 25 compliance requirementsA
Read-onlyIdempotent
Inspect

Get the Quebec Law 25 compliance checklist: the concrete requirements organizations must meet, covering the privacy officer, purposes, consent, individual rights, retention, cross-border transfers, breach notification, minors' data, automated decisions, and complaint paths. Use this when someone asks what Law 25 requires, how to comply with Law 25, or for a gap-assessment checklist. Optionally filter to one category like 'Consent' or 'Incident response'. Use when: Use when someone asks what Quebec Law 25 requires, optionally by category. Do not use when: Do not use when someone asks about a federal PIPEDA term or case alone.

NameRequiredDescriptionDefault
categoryNoOnly requirements in this category. Omit for the full checklist.

Output Schema

NameRequiredDescription
categoriesYesAll available categories for the 'category' filter.
total_countYesNumber of requirements returned.
requirementsYesLaw 25 requirements.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare this is a read-only, idempotent, non-destructive lookup with no open-world behavior. The description adds useful behavioral context about what the checklist covers and how category filtering works, without contradicting annotations. It could mention freshness or static-reference nature, but it is otherwise transparent.

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

Conciseness4/5

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

The key purpose is front-loaded and the description is reasonably sized. However, the later 'Use when' sentence partially repeats the earlier sentence about what Law 25 requires, adding mild redundancy.

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

Completeness5/5

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

Given the read-only reference nature, full parameter schema coverage, and presence of an output schema, the description supplies enough context for an agent to call it correctly. It covers scope, filtering, and exclusions.

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

Parameters3/5

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

Schema coverage is 100%, and the single optional category parameter is fully documented with an enum and description. The description gives examples like 'Consent' and 'Incident response' and says omit for the full checklist, but this largely repeats the schema's own description rather than adding new semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: get the Quebec Law 25 compliance checklist. It enumerates the substantive coverage areas and distinguishes it from federal PIPEDA or case-specific queries, so an agent can identify it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides both when to use it and when not to use it, including the optional category-filtering scenario. The alternative-boundary language about PIPEDA terms or cases alone is clear.

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

privacy_list_glossary_termsBrowse the privacy glossaryA
Read-onlyIdempotent
Inspect

Browse the 331-term Canadian privacy glossary with optional text search or first-letter filtering. Use this to explore which terms exist, find the right slug for privacy_lookup_glossary_term, or gather definitions on a topic. Results are paginated: follow next_offset while has_more is true. Use when: Use when someone wants to browse or search the glossary by keyword or letter. Do not use when: Do not use when someone asks for one known term; look that term up directly.

NameRequiredDescriptionDefault
limitNoMaximum terms to return in this call.
queryNoSearch term names and definitions.
offsetNoNumber of matching terms to skip. Use next_offset to page forward.
starts_withNoOnly terms whose slug starts with this letter.

Output Schema

NameRequiredDescription
termsYesMatching glossary terms.
has_moreYesTrue when more results exist beyond this page.
truncatedYesTrue when results were shortened to fit the 50 KB output cap. Use the paginated REST API for the full set.
next_offsetYesPass as 'offset' in the next call to continue paging. Null when has_more is false.
total_countYesTotal number of matches across all pages.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare this as a read-only, idempotent, non-destructive, closed-world operation, so the safety profile is covered. The description adds genuinely new behavioral context: the corpus size (331 terms) and the pagination contract (follow next_offset while has_more is true), which the annotations do not convey. It stops short of describing match/sort semantics for combined query plus starts_with filters.

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

Conciseness4/5

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

The opening sentence is front-loaded with scope, capability, and pagination, and the Use when / Do not use when lines are easy to scan. There is mild redundancy between the 'Use this to explore...' clause and the 'Use when someone wants to browse or search' line, which restates the same intent in different words.

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

Completeness5/5

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

For a paginated browse/search tool with four optional parameters, full schema coverage, and an existing output schema, the description covers everything an agent needs: corpus scope, filtering modes, the sibling to use for single-term lookups, and the pagination loop. Return-value details are correctly left to the output schema.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters (limit, query, offset, starts_with) are already documented with defaults, bounds, and patterns; the baseline of 3 applies. The description confirms that search and first-letter filtering are optional and independent, but adds no detail on how query matching or filter combination behaves beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource (browse the 331-term Canadian privacy glossary) plus the two filtering modes, and explicitly distinguishes it from the sibling privacy_lookup_glossary_term by pointing at slug discovery and exploration rather than single-term retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit use cases (explore existing terms, find a slug for the lookup tool, gather definitions on a topic) and an explicit exclusion: do not use it when one known term is requested, look that term up directly. The alternative sibling is named, not implied.

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

privacy_lookup_glossary_termLook up a privacy glossary termA
Read-onlyIdempotent
Inspect

Look up the plain-language definition of a privacy or data-protection term, from 'Law 25' and 'PIPEDA' to 'privacy officer', 'data breach', and AI governance concepts. Use this whenever someone asks what a term means, or when you need a precise definition before answering a Canadian privacy question. Terms are identified by slug (for example 'law-25'); use privacy_list_glossary_terms to discover slugs. Use when: Use when someone asks what one privacy term means, by slug. Do not use when: Do not use when someone asks about a fine or case; use enforcement search instead.

NameRequiredDescriptionDefault
termYesThe glossary slug.

Output Schema

NameRequiredDescription
termYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile needs no restating. The description adds useful operational context — lookup is keyed strictly by slug and requires a discovery step for unknown terms — but says nothing about what the payload contains, which is acceptable given an output schema exists.

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

Conciseness4/5

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

The opening sentence is well front-loaded and the when/when-not blocks are scannable. There is mild redundancy — the slug/discovery note appears in the opening paragraph and is partly restated in 'by slug' — but no sentence is wasted.

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

Completeness5/5

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

For a single-parameter, read-only lookup with an output schema and full annotation coverage, the description supplies everything an agent needs: trigger condition, exclusion, slug format, and the discovery path for unknown slugs. Nothing material is missing.

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

Parameters4/5

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

Schema coverage is 100% and the schema already supplies the slug pattern and examples, so the baseline would be 3. The description goes beyond it by clarifying the semantic role of the parameter (a slug, not a free-text term name) and by naming the sibling tool that produces valid slugs, which prevents the most likely invocation error.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Look up') and resource ('plain-language definition of a privacy or data-protection term') with concrete examples spanning Law 25, PIPEDA, and AI governance concepts. It is clearly distinguishable from siblings like privacy_list_glossary_terms (enumeration) and privacy_search_enforcement_actions (fines/cases).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit 'Use when' and 'Do not use when' blocks name the exact trigger (a user asking what one term means, by slug) and route the enforcement/fine case to a named alternative. It also proactively points to privacy_list_glossary_terms for slug discovery, so the agent has a complete decision path.

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

privacy_search_apiSearch the privacy API operationsA
Read-onlyIdempotent
Inspect

Search the movahedi.ca public API by plain question, without guessing an endpoint. Use this when unsure which operation fits a question, for example 'has anyone been fined for facial recognition' or 'what does PIPEDA mean'. Returns matching operations with method, path, summary, parameters, use-when and do-not-use guidance, and one example REST query each, scored deterministically with no model call. Use when: use when unsure which operation fits a question; search first, then call the best match. Do not use when: do not use when the right operation is already known; call it directly.

NameRequiredDescriptionDefault
limitNoMaximum operations to return, default 5.
queryNoPlain question about privacy data, up to 120 characters.

Output Schema

NameRequiredDescription
resultsNo
data_versionNo
operation_indexNo

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, it discloses that ranking is deterministic with no model call and that each hit carries method, path, parameters, use-when and do-not-use guidance plus an example query. That is exactly the context an agent needs to trust and act on the results.

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

Conciseness4/5

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

Front-loaded with purpose, examples, and return shape, then structured Use-when/Do-not-use lines. The 'use when unsure which operation fits a question' idea is stated three times, which costs a little tightness.

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

Completeness5/5

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

Annotations cover safety, an output schema covers return shape, and the prose adds the one thing neither provides: that results are deterministically scored and include per-operation usage guidance. Nothing needed to call it correctly is missing.

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

Parameters3/5

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

Schema coverage is 100%, with descriptions and examples for both query and limit, so the schema carries parameter meaning. The description adds no additional semantics about query phrasing or limit behavior, making baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Search the movahedi.ca public API') and frames the input as a plain question rather than an endpoint guess. This clearly distinguishes it from lookup/execute siblings such as lookup_tracker or privacy_execute_plan, which act on a known operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when/when-not blocks: 'search first, then call the best match' versus 'do not use when the right operation is already known; call it directly.' It even supplies concrete sample questions, so routing is unambiguous.

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

privacy_search_enforcement_actionsSearch privacy enforcement actionsA
Read-onlyIdempotent
Inspect

Search verified Canadian privacy enforcement actions: CAI orders and decisions under Quebec Law 25 and OPC findings under PIPEDA. Use this when someone asks about privacy fines, enforcement cases against a company, what regulators decided, or investigations (for example 'Has the CAI fined anyone for facial recognition?' or 'TikTok privacy investigation Canada'). Returns matching cases with dates, plain-language summaries, penalties, and links to the official regulator source. Start here to find a case ID, then call privacy_get_enforcement_case for full details. Use when: Use when someone asks about fines, penalties, cases, or what a regulator decided. Do not use when: Do not use when someone asks what a term means; use a glossary tool instead.

NameRequiredDescriptionDefault
yearNoFilter by decision year.
limitNoMaximum cases to return in this call.
queryNoFree-text search over case titles and summaries.
offsetNoNumber of matching cases to skip. Use next_offset from the previous response to page forward.
regulatorNoLimit to one regulator: 'cai' (Quebec Commission d'acces a l'information, Law 25) or 'opc' (federal Office of the Privacy Commissioner, PIPEDA).

Output Schema

NameRequiredDescription
resultsYesMatching enforcement actions.
has_moreYesTrue when more results exist beyond this page.
truncatedYesTrue when results were shortened to fit the 50 KB output cap. Use the paginated REST API for the full set.
next_offsetYesPass as 'offset' in the next call to continue paging. Null when has_more is false.
total_countYesTotal number of matches across all pages.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and closed-world scope, so the safety profile is covered. The description adds real value beyond that: what the response contains (dates, plain-language summaries, penalties, source links) and the intended two-step workflow into privacy_get_enforcement_case. It stops short of noting result ordering or search matching behavior.

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

Conciseness4/5

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

Front-loaded with the core statement, then workflow, then structured Use/Do-not-use lines. Slight redundancy: the 'Use when' line largely restates the opening sentence about fines and enforcement cases, costing a little space.

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

Completeness4/5

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

With an output schema, full parameter documentation, and rich annotations, the description covers purpose, scope, response contents, and next steps. Minor gap: nothing about result ordering or how paging interacts with the query/regulator filters beyond what the offset field says.

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

Parameters3/5

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

Schema description coverage is 100% and each parameter already documents its meaning and constraints. The description implies the year/regulator/query filters through examples but adds no syntax or semantics beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (search) and resource (verified Canadian privacy enforcement actions), and names the two covered regulator corpora (CAI/Law 25, OPC/PIPEDA). It distinguishes itself from privacy_get_enforcement_case by framing this as the discovery step that yields a case ID.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit 'Use when' triggers (fines, penalties, cases, investigations), concrete example queries, and an explicit 'Do not use when' pointing to a glossary tool for definitional questions. The alternative tool for full case details is named.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Addedprivacy_execute_plan
    • Addedprivacy_search_api
  2. 2 tool updates
    • Addedlist_crawlers
    • Addedlookup_crawler
  3. 2 tool updates
    • Addedclassify_cookie
    • Addedlookup_tracker
  4. 5 tool updates
    • First observedprivacy_get_enforcement_case
    • First observedprivacy_law25_requirements
    • First observedprivacy_list_glossary_terms
    • First observedprivacy_lookup_glossary_term
    • First observedprivacy_search_enforcement_actions

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Remote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    23 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources