Skip to main content
Glama

Spurvik EU AI Act

Server Details

Live URL scan, AI Act risk check, 24-EU-language Art. 50 badge, HMAC receipts & approval gates.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
spurvik/spurvik
GitHub Stars
0
ChatGPT
–
Claude
–

TDQS

A4/5.0

Scored across 7 tools

Disambiguation4/5

Each tool targets a distinct artifact: risk classification, receipt verification, source-code scanning, notice/badge generation, marking hooks, live-page scanning, and SDK setup snippets. The only soft overlaps are find_unwrapped_calls vs. scan_live_url (source code vs. live HTML) and generate_art50_badge vs. marking_hooks vs. setup_snippet (all emit or explain snippets), but the descriptions draw clear lines between them.

Naming Consistency4/5

All names share the spurvik_ prefix and snake_case, with most following a verb_noun shape (classify_ai_act_risk, explain_receipt, find_unwrapped_calls, generate_art50_badge, scan_live_url). Two are bare noun phrases (marking_hooks, setup_snippet), a minor deviation rather than a pattern break.

Tool Count5/5

Seven tools is well within the ideal range and each maps to a concrete compliance workflow step (classify, generate disclosure, wire SDK, scan code, scan page, verify receipts, understand marking). No tool appears redundant or filler.

Completeness4/5

The surface covers the authoring/diagnosis lifecycle well: classification, transparency notices, SDK integration, and heuristic scanning of both code and deployed pages. Gaps exist on the output side — no tool to persist a classification, produce Annex IV-style documentation, or apply fixes for unwrapped calls — but agents can work around these by acting on the returned snippets.

Available Tools

7 tools
spurvik_classify_ai_act_riskA
Read-onlyIdempotent
Inspect

Self-assessment of an AI system under the EU AI Act from a few answers: prohibited (Article 5), high-risk (Annex III), Article 50 transparency only, minimal risk, or outside the EU. Returns the duties with their dates and the Spurvik setup steps. Not legal advice and not a decision under Article 6.

Inputs: inEu (required), annexIii, prohibited, transparency.

spurvik_explain_receiptA
Read-onlyIdempotent
Inspect

Explain the fields of an HMAC provenance receipt JSON. If signingSecret is passed, or SPURVIK_SIGNING_SECRET is set, check the HMAC locally with verifyProvenanceSignature, which checks that the record's signed fields still match the HMAC-SHA-256 signature. It does not show that a notice was shown, that output is marked, or that your system meets the Act. The signing secret is not logged. Omit the secret to explain the fields without checking.

Inputs: receipt (required), signingSecret.

spurvik_find_unwrapped_callsA
Read-onlyIdempotent
Inspect

Heuristic static scan of one directory inside the workspace root for AI client calls that are not passed through withSpurvik, spurvikMiddleware, withSpurvikMastra, withSpurvikModel, withSpurvikModelProvider, withSpurvikLangGraph, or spurvikInterrupt. A StateGraph constructor is reported when the file does not call withSpurvikLangGraph. A bare interrupt() call is reported when the file does not call spurvikInterrupt or resolveLangGraphInterrupts. The scan reads .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, and .cts files. It does not read .md or .mdc files. Results are file:line. The line number is 1-based and counts every newline, including comments and strings. This is a heuristic, so it can miss a call or report one that is already wrapped. The scan does not change files and does not use the network. Paths that leave the workspace, including '..', are rejected. The scanner skips files named .env or .env.* (any case), including through symlinks and hard links. Over HTTP there is no workspace directory. Pass code (a string, max 128 KB) or files (an array of { path, content }). If neither is passed, this tool explains that, and how to run the local stdio MCP server or /spurvik:check for a directory scan.

Inputs: code, files.

spurvik_generate_art50_badgeA
Read-onlyIdempotent
Inspect

Generate a copy-paste EU AI Act Article 50 notice: a badge.js tag or a React snippet, in any of the 24 EU languages, with a preview of the notice text. The language is inferred from a domain-like systemName when locale is omitted.

Inputs: systemName (required), theme, format, locale, +3 more.

spurvik_marking_hooksA
Read-onlyIdempotent
Inspect

Explain how to plug your own Article 50(2) marking into marking.text or marking.media. Spurvik does not mark content. withSpurvik and spurvikMiddleware log the call and attach an HMAC receipt. A hook runs only when you supply one. The signed text trailer is an application-level binding you can opt into. It is not, by itself, an Article 50(2) machine-readable mark.

Inputs: surface.

spurvik_scan_live_urlA
Read-onlyIdempotent
Inspect

Scan one public HTTPS page for AI chat widgets and AI SDKs and check whether a visible EU AI Act Article 50(1) notice is present. Returns the host, HTTP status, findings, the suggested notice language, a one-line badge.js fix and links to the full report. Heuristic: reads the HTML of one page only. Not legal advice.

Inputs: url (required).

spurvik_setup_snippetA
Read-onlyIdempotent
Inspect

Return a setup snippet for openai, anthropic, google-genai, vercel-ai-sdk, mastra, openai-agents, or langgraph. Provider clients are wrapped with withSpurvik. The Vercel AI SDK snippet passes spurvikMiddleware to wrapLanguageModel. The Mastra snippet calls withSpurvikMastra. The OpenAI Agents snippet calls withSpurvikModelProvider. The LangGraph snippet calls withSpurvikLangGraph and spurvikInterrupt. The snippet is built from the installed spurvik exports (spurvik or spurvik-sdk, including spurvik/ai, spurvik/langgraph, spurvik/mastra, and spurvik/openai-agents). The disclosure label is a separate React client snippet that imports spurvik/react. riskTier is a sample value. Set your own classification (as provider or deployer); Spurvik does not classify your use case. The SDK logs the call and attaches an HMAC receipt. It does not mark content. Also accepts react.

Inputs: target (required), runtime, framework.

Tool Schema Changelog

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

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Provides automated EU AI Act compliance tools, including risk classification, role determination, transparency disclosures, content watermarking, deepfake labeling, and security threat detection.
      16
      34
      Apache 2.0
    • A
      license
      A
      quality
      D
      maintenance
      Generates EU AI Act Article 50 transparency disclosures for AI features, in all 24 EU languages, with copy-paste HTML snippets and determines which rules apply.
      2
      5 npm
      MIT
    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.