dpa_check_scope
ChatGPTEvaluate whether a query lies inside the DPA corpus WITHOUT executing it. Returns the same deterministic coverage block that search/count responses carry — per-dimension verdicts on DPA's GRADED envelope (focus-set jurisdictions, priority vs secondary policy areas, bindingness, litigation stage), possibly-engaged exclusions, and data currency — computed from configuration alone. NO API call is made and no records are returned. USE THIS TOOL: - BEFORE a search, when the question might fall outside DPA's scope (pre-2020 dates, non-focus countries, public-sector regulation, standalone strategy documents, lawsuit filings, secondary policy areas). - AFTER a zero-result search, to diagnose whether the zero means genuine absence (absence_within_scope) or a coverage boundary. - When orchestrating across data sources, to decide whether DPA is the right corpus before spending a data call. Accepts the same typed filters as dpa_search_events. Filters without a dedicated coverage dimension (economic_activities, government_branch, implementation_level, threads) are accepted without error but do not change dimension verdicts. Optionally pass question (the user's natural-language question): keyword signals from it feed exclusions_possibly_engaged, but verdicts are computed ONLY from the explicit typed arguments. The full corpus envelope (time floor, focus set, wild-card triggers, priority areas, verification regime) is a document of its own: call read_resource with uri=dpa://reference/corpus-manifest first.
dpa_count_data
ChatGPTBEFORE calling this tool, read each guide whose question shape matches, the first when none does: - an overview, a count or a list, of events or of policies → call read_resource with uri=dpa://guide/query-intent - announced, in force, published, active, draft or a year → call read_resource with uri=dpa://guide/date-fields - a policy area or topic, AI, or a category such as 'data rules' → call read_resource with uri=dpa://guide/policy-areas - a zero result, or an absence to confirm → call read_resource with uri=dpa://reference/database-scope - how complete coverage is, or why a topic looks thin → call read_resource with uri=dpa://guide/reporting-heuristic - soft law, strategies, lawsuits or content moderation → call read_resource with uri=dpa://guide/reduced-tracking-rules - combining DPA with another corpus → call read_resource with uri=dpa://reference/corpus-manifest Count and aggregate digital policy interventions or events by 1–3 dimensions. USE THIS FIRST for overviews and trends: it pre-aggregates server-side in 1–3s. Aggregates ONLY — no titles, descriptions or records; for those, follow up with dpa_search_events. NEVER sum group rows into a topline: event-level and many-to-many dimensions (event_type, event_date_year, implementer, policy_area, ...) place one intervention in several rows. Use the reported "Total (distinct ...)" value. The response carries its counting unit and a chartable {labels, datasets: [{label, values}]} JSON block; pass it to a charting tool, if the client has one, without re-keying or recomputing the numbers. Default event window: 2020-01-01 → today, like the DPA website; widen it with event_period_start / event_period_end.
dpa_find_analyses
ChatGPTDiscover DPA reports, blogs, digests and AI Rules without reading prose. Resolve a named or described publication to exact `report_id values. If candidates are ambiguous, present them rather than choosing silently. Then pass selected IDs to dpa_search_analyses`. Use event/count tools for live structured policy facts and document tools for legal text.
dpa_get_event
ChatGPTFetch complete details for one event or an ordered batch of up to 10 events. Cite the record through the workbench citation system using its single linked event_id; keep the semantic identifier visible once. Use this tool to get full information for events identified from search results. A batch uses one upstream request, preserves caller order, and reports missing IDs without discarding successful records. Full-text records consume the monthly DPA record allowance; already-counted records are not charged twice in the same month.
dpa_search_analyses
ChatGPTRetrieve grounded passages from one or more published DPA analyses. This returns dated publication findings, not live event totals or legal-text documents. Resolve named publications first, preserve selected IDs, and cite the returned DPA publication URLs and dates. Unknown IDs fail closed.
dpa_search_events
ChatGPTBEFORE calling this tool, read each guide whose question shape matches, the first when none does: - an overview, a count or a list, of events or of policies → call read_resource with uri=dpa://guide/query-intent - announced, in force, published, active, draft or a year → call read_resource with uri=dpa://guide/date-fields - a policy area or topic, AI, or a category such as 'data rules' → call read_resource with uri=dpa://guide/policy-areas - a zero result, or an absence to confirm → call read_resource with uri=dpa://reference/database-scope - how complete coverage is, or why a topic looks thin → call read_resource with uri=dpa://guide/reporting-heuristic - soft law, strategies, lawsuits or content moderation → call read_resource with uri=dpa://guide/reduced-tracking-rules - combining DPA with another corpus → call read_resource with uri=dpa://reference/corpus-manifest Search and retrieve digital policy events — laws, orders, decisions, investigations and other regulatory actions — by country, sector, policy area, date or thematic thread. Cite each record once, through its linked event_id in the workbench citation system. For overviews and trends, call dpa_count_data FIRST: on a broad topic this tool returns up to 200 records and takes 5–30s. For one event's full text, call dpa_get_event; this triage tool never returns descriptions by default. Use structured filters FIRST; add query ONLY for named entities no filter captures (company names, program names, bill numbers). semantic_query ranks that candidate set by meaning, so do not also set sorting; include_matched_snippets=True adds citation-ready evidence sentences.
dpa_search_interventions
ChatGPTBEFORE calling this tool, read each guide whose question shape matches, the first when none does: - an overview, a count or a list, of events or of policies → call read_resource with uri=dpa://guide/query-intent - announced, in force, published, active, draft or a year → call read_resource with uri=dpa://guide/date-fields - a policy area or topic, AI, or a category such as 'data rules' → call read_resource with uri=dpa://guide/policy-areas - a zero result, or an absence to confirm → call read_resource with uri=dpa://reference/database-scope - how complete coverage is, or why a topic looks thin → call read_resource with uri=dpa://guide/reporting-heuristic - soft law, strategies, lawsuits or content moderation → call read_resource with uri=dpa://guide/reduced-tracking-rules - combining DPA with another corpus → call read_resource with uri=dpa://reference/corpus-manifest Search digital policy interventions (policy measures) from the DPA database. Cite returned records through the workbench citation system using the single linked intervention_id; keep the semantic identifier visible once. An intervention is a policy measure that contains one or more events (regulatory actions). Use this tool when you want to see the full picture of a policy measure including all its associated events (e.g., announcement, adoption, implementation). Use this tool to: - Find policy measures and their full event history - Analyze how policies evolve through multiple regulatory actions - Search interventions by status (adopted, in force, under deliberation, etc.) - Find interventions by keyword search
dpa_semantic_search
ChatGPTBEFORE calling this tool, read each guide whose question shape matches, the first when none does: - an overview, a count or a list, of events or of policies → call read_resource with uri=dpa://guide/query-intent - announced, in force, published, active, draft or a year → call read_resource with uri=dpa://guide/date-fields - a policy area or topic, AI, or a category such as 'data rules' → call read_resource with uri=dpa://guide/policy-areas - a zero result, or an absence to confirm → call read_resource with uri=dpa://reference/database-scope - how complete coverage is, or why a topic looks thin → call read_resource with uri=dpa://guide/reporting-heuristic - soft law, strategies, lawsuits or content moderation → call read_resource with uri=dpa://guide/reduced-tracking-rules - combining DPA with another corpus → call read_resource with uri=dpa://reference/corpus-manifest Semantic vector search over DPA digital policy event descriptions. Cite returned records through the workbench citation system using the single linked event_id; keep the semantic identifier visible once. Ranks events by how well their full text matches a natural-language query. Use this for thematic or conceptual searches that structured filters cannot capture (e.g. "AI governance framework", "data localization requirements", "platform regulation"). Best used AFTER dpa_search_events: first narrow the candidate pool with structured filters (jurisdiction, policy area, event type, etc.), collect the event IDs, then pass them here via event_ids to rank by thematic relevance. A score is text similarity, not legal applicability, scope or status: read the record with dpa_get_event before asserting an obligation its snippets do not state. If this tool errors, it returned no semantic results; say so. A dpa_search_events fallback is a structured-filter search or, with semantic_query, a ranking of only its filtered candidates (its notice states any cap); never describe either as a corpus-wide search.
interpret_query
ChatGPTTurn a natural-language question into a STRUCTURED QUERY PLAN, without executing it. Use this BEFORE any data tool when the user's question is vague — i.e. when more than one of the DPA's thirteen vectors of ambiguity is unresolved (intervention vs event, implementation level, policy area boundaries, instrument granularity, event type binding/non-binding/enforcement, lifecycle status, government branch, economic activity, date semantics, wild card, cross-area, n.e.s., priority). The plan is JSON with keys: summary, primary_tool, suggested_filters, unit_of_analysis, ambiguities_resolved (list), ambiguities_outstanding (list), scope_note_preview (object), next_step (string), references (list). It tells the user which tool would run, with which filters, at which unit of analysis, and what ambiguities were resolved vs. what remains open. The user confirms or refines the plan; only THEN does the LLM call the data tool. Important: this tool does NOT call the DPA API. It does NOT return data. It returns a plan. Calling it before a data tool reduces silent default-application and the resulting "false zero" / "wrong scope" outcomes.
list_resources
ChatGPTList the full catalogue of readable DPA documents — every static resource and URI template on this server, with its name and description. Use it to find the reference tables behind the filter values (jurisdictions, policy areas, event types, threads, statuses and the rest), the DPA Activity Tracking Handbook, and the per-jurisdiction and per-activity lookup templates. For building a DPA query you do not need this list: read_resource's own description already names the documents that matter and the question shape that selects each one. Pass any URI listed here to read_resource to fetch it.
lookup_economic_activities
ChatGPTReturn the DPA economic-activity table with optional fuzzy NL→activity mapping. The DPA's economic-activity taxonomy is its own working classification because no international standard exists at this granularity. "Big Tech" is not a category; it splits across platform intermediaries, search service providers, software providers, and others. "AI" most often maps to ML and AI development, but AI rules frequently apply cross-cuttingly. Use this tool to: - Browse the full activity table (no query). - Resolve a natural-language term to candidate activities (query="big tech" → ranked matches). For activity-specific queries, run this tool first and let the user confirm the mapping before calling dpa_search_events / dpa_count_data with the activity filter. For cross-cutting policies, default to no economic-activity filter at all. Returns JSON with activities (full table) and optional matches (when query was given, ranked by similarity score).
lookup_policy_areas
ChatGPTReturn the DPA policy-area tree (areas → instruments) with optional fuzzy mapping. The DPA's natural-language category terms rarely map cleanly onto its taxonomy. "Data rules" can plausibly cover data protection regulation, cross-border data transfer, data localisation, cybersecurity, or DPA governance. "Content rules" splits across content moderation, intellectual property, and consumer protection. "AI rules" splits across design and testing standards, data governance, and IP. Use this tool to: - Browse the full policy-area-and-instrument tree (no query, no policy_area). - Resolve a natural-language term to candidate areas / instruments (query="data privacy" → ranked matches). - Drill into a single area's sub-instruments (policy_area="data governance" → that area's instruments only). Returns JSON with tree (areas with nested instruments), optional matches (when query was given), and priority_areas for orientation. tree is sorted: priority areas first. The DPA priority policy areas (close-to-comprehensive coverage) are data governance, content moderation, competition, and taxation. Other areas (intellectual property, labour law, consumer protection, etc.) receive non-exhaustive secondary coverage: call read_resource with uri=dpa://guide/reporting-heuristic first.
read_resource
ChatGPTRead one DPA document by URI, in a single call. Call this tool BEFORE your first dpa_search_events, dpa_search_interventions, dpa_count_data or dpa_semantic_search call, with each document whose question shape matches the user's, the first when none does — each line below is a shape, then the URI to pass as uri, then what that document settles: - an overview, a count or a list, of events or of policies → dpa://guide/query-intent — event vs intervention as the unit, counts first for overviews, interpret_query when 2+ ambiguities are open - announced, in force, published, active, draft or a year → dpa://guide/date-fields — announcement vs implementation vs publication dates, and the lifecycle-status aliases - a policy area or topic, AI, or a category such as 'data rules' → dpa://guide/policy-areas — policy area vs instrument, AI through the 'Regulating Artificial Intelligence' thread, priority vs secondary areas - a zero result, or an absence to confirm → dpa://reference/database-scope — coverage starts 1 January 2020, the focus-country set, and the false-zero query patterns - how complete coverage is, or why a topic looks thin → dpa://guide/reporting-heuristic — the six priority dimensions and the five wild cards that override normal priority - soft law, strategies, lawsuits or content moderation → dpa://guide/reduced-tracking-rules — outlines only when tied to a specific law, civil lawsuits only from the ruling, platforms but not publishers - combining DPA with another corpus → dpa://reference/corpus-manifest — the JSON coverage envelope carrying the stable dpa.* rule ids that coverage blocks cite A URI carrying a #section fragment reads the whole document, so any URI a response cites can be passed through verbatim. Reading the matching document before the first query is cheaper than a misinterpreted result. list_resources has the full catalogue.
dpa_check_scope
Claudedpa_check_usage
Claudedpa_count_data
Claudedpa_find_analyses
Claudedpa_get_event
Claudedpa_search_analyses
Claudedpa_search_events
Claudedpa_search_interventions
Claudedpa_semantic_search
Claudeinterpret_query
Claudelist_resources
Claudelookup_economic_activities
Claudelookup_policy_areas
Clauderead_resource
Claude