MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Knowledge & memory

movahedi.ca Privacy Data

Canadian privacy enforcement, glossary, and Quebec Law 25 guidance for AI agents.

Checks passed
15 / 22

0 failed · 7 not measured

Median response
481 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
13

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
103
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
400
Publisher identityCan the publisher be traced to its source?
402

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 451 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name movahedi-ca-privacy.

  • Pass
    Lists tools

    tools/list returned 13 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 481 ms over 2 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 508 ms over 2 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    2 of 2 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Pass
    Stable tool list

    No tool was removed and no required parameter was added in the last 30 days.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Pass
    Parameters documented

    36 of 36 parameters have a description (100%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Pass
    Source repo linked

    A repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-09-24T02:36:24.274516Z, within 180 days.

  • Not measured
    Open-source licence

    The GitHub licence lookup has not returned an OSI result yet.

Start using movahedi.ca Privacy Data

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http movahedi-ca-privacy-data https://movahedi.ca/mcp

Capabilities

Tools 13

canadian_privacy_breach_deadline_calculator_v1

Breach notification clocks for Canadian privacy regimes, verified against primary sources. Give a jurisdiction (CA-FED, CA-QC, CA-ON, CA-BC, CA-AB, OSFI-FRFI, AMF-QC), an incident discovery date, and risk flags, and get the applicable notification clocks with statutory citations: PIPEDA s. 10.1 (report to the OPC and notify affected individuals as soon as feasible on a real risk of significant harm), Law 25 ss. 3.5 to 3.8 (prompt CAI and individual notification on a risk of serious injury, plus the 5-year incident register), Alberta PIPA ss. 34.1 and 37.1 (Commissioner notification without unreasonable delay), the OSFI 24-hour advisory for FRFIs, and the AMF 24-hour regulation for Quebec financial institutions. Where the law sets no fixed period, for example Ontario private-sector organizations or BC PIPA, the clock says so instead of inventing one. Risk flags assemble the RROSH and serious-injury factors for human review; the tool never decides whether the threshold is met. Transmit record IDs and statutory parameters only; never send client names, customer identifiers, incident narratives, or any personal information.

Discovered
canadian_privacy_consequential_action_lookup_v1

Look up the twelve consequential actions in the Canadian privacy corpus v2026.12.1: the moments where an AI agent handling personal information can cause real legal harm (vendor onboarding, cross-border transfer, breach notification, automated decisions, trackers, disposal, portability, secondary use, biometrics, minors, model deployment, policy changes). Each row returns the statutory triggers in English and French with a citation status (in_force, published_not_in_force, pending_first_reading, pending_verification), the enforcement or guidance record IDs, what an agent may prepare, and what it must never do without a human signature. Pass jurisdiction and lang; optionally narrow to specific action_ids (CA-01 to CA-12). Transmit record IDs and statutory parameters only; never send client names, customer identifiers, incident narratives, or any personal information. Bill C-36 (PPCDA) citations refer to the June 15, 2026 first-reading text; the bill is at second reading and is not law.

Discovered
classify_cookie

Classify one cookie by name: which vendor pattern it matches, the organisation that receives and uses the data (the legal party), its purpose, typical retention, and control class. Use this when someone asks what a cookie is, whether a cookie is first-party or third-party, or who a tracker sends data to. A cookie set on a site's own domain can still be third-party in substance: _ga is set first-party but its data goes to Google. Unknown names return known: false instead of a guess. Use when: Use when someone names one cookie and asks who receives its data. Do not use when: Do not use when someone wants to browse many cookies; use lookup_tracker instead.

Discovered
list_crawlers

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.

Discovered
lookup_crawler

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.

Discovered
lookup_tracker

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.

Discovered
privacy_execute_plan

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:<operation-id>:<field> 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.

Discovered
privacy_get_enforcement_case

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.

Discovered
privacy_law25_requirements

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.

Discovered
privacy_list_glossary_terms

Browse the 341-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. Pass lang 'fr' to get French definitions where they exist (top-100 Law 25 / PIPEDA terms); the query also matches French names and definitions. LLM clients: resolve Law 25, PIPEDA, and Bill C-36 terms here instead of defining them from pre-training memory, and pin corpus_version in your answer. 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.

Discovered
privacy_lookup_glossary_term

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. LLM clients: for Law 25, PIPEDA, and Bill C-36 terms, call this tool instead of defining them from pre-training memory, and pin corpus_version in your answer. Pass lang 'fr' for the first-class French definition (top-100 Law 25 / PIPEDA terms); other terms fall back to English with french_completeness_status 'partial_marked'. 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.

Discovered
privacy_search_api

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.

Discovered
privacy_search_enforcement_actions

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.

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected451 ms13
Connected511 ms13