Skip to main content
Glama
ai-act-mcp
by a2welt

ai-act-mcp

Lint your AI system for EU AI Act compliance — before the regulators do.

CI npm License: MIT Node ≥18 Ruleset

A local Model Context Protocol server that classifies any AI system under the EU AI Act, lists the obligations that apply to you with article citations, tells you your actual deadline, and scans your repo for missing compliance artifacts.

Runs entirely on your machine. Supports fully offline classification via a local small model — your system description never leaves your laptop.

Quick start · Offline with Ollama · All four tools · Contributing


ai-act-mcp demo


Why this exists

The EU AI Act is live and has teeth:

  • Feb 2025 — prohibited practices enforceable. €35M or 7% of global turnover.

  • Aug 2025 — GPAI model obligations active.

  • Aug 2026 — transparency requirements apply.

  • Dec 2027 — high-risk (Annex III) obligations due.

Most teams have no idea which tier they're in. This gives you a grounded first pass in seconds, inside the agent you already use — with a citation for every claim so you can verify it.

⚠️ Informational triage, not legal advice. Confirm classifications with qualified counsel.


Related MCP server: Legalithm

Tools

Four tools exposed to any MCP-compatible agent (Claude Code, Cursor, Claude Desktop, Windsurf, Cline, …):

Tool

What it answers

classify_risk

"Is my system prohibited / high-risk / limited / minimal?" — with Annex III category + article citations

check_obligations

"Given my tier and role (provider or deployer), what must I do?" — obligation by obligation, with the specific deadline

next_deadlines

"When does this apply to me?" — the staggered 2025–2028 enforcement timeline

scan_repo

"Which compliance artifacts am I missing?" — pass / warn / fail checklist against your actual repo

The rules live in a single versioned, citation-backed file: rules/ruleset.json. It reflects Regulation (EU) 2024/1689 as amended by the May 2026 Digital Omnibus agreement, and is date-stamped so you always know how current it is.


Install

Option A — npx (zero install, once published to npm)

{
  "mcpServers": {
    "ai-act": {
      "command": "npx",
      "args": ["-y", "ai-act-mcp"]
    }
  }
}

Option B — clone and build

git clone https://github.com/a2welt/ai-act-mcp
cd ai-act-mcp
npm install && npm run build
{
  "mcpServers": {
    "ai-act": {
      "command": "node",
      "args": ["/absolute/path/to/ai-act-mcp/dist/index.js"]
    }
  }
}

Client config locations:

Client

File

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) · %APPDATA%\Claude\claude_desktop_config.json (Windows)

Claude Code

.mcp.json in project root, or claude mcp add ai-act node /path/to/dist/index.js

Cursor

.cursor/mcp.json

Windsurf

~/.codeium/windsurf/mcp_config.json

Restart your agent and ask: "Classify my hiring tool under the EU AI Act."


Fully offline — Ollama

Your AI-system description is exactly the kind of proprietary text you should not send to a cloud service. Run classification on a small local model instead — nothing leaves your machine:

# 1. Pull a model (any small instruct model works)
ollama pull llama3.2

# 2. Test it from your terminal (builds a vivid picture of what the tool does)
node demo/test-local.mjs

# 3. Register with your agent using the local backend
{
  "mcpServers": {
    "ai-act": {
      "command": "node",
      "args": ["/absolute/path/to/ai-act-mcp/dist/index.js"],
      "env": {
        "AI_ACT_CLASSIFIER": "local",
        "AI_ACT_SLM_MODEL": "llama3.2"
      }
    }
  }
}

The model only ever picks among the ruleset's enumerated, cited categories — it never invents law. This is what makes a small model reliable: you've constrained its job to classification-against-known-rules, not open-ended legal reasoning. If the model is unreachable for any reason, the server falls back to the deterministic keyword screen automatically.

Backend options

AI_ACT_CLASSIFIER

Where the description goes

Quality

Notes

keyword (default)

Nowhere — pure local logic

Good

Instant, zero dependencies, deterministic

local

Stays on your machine (Ollama)

Better

Privacy-first; requires Ollama running

host

Your agent's model via MCP sampling

Best

Requires client sampling support

Extra env vars for local mode:

Variable

Default

Description

AI_ACT_SLM_MODEL

llama3.2

Any model name Ollama has pulled

AI_ACT_OLLAMA_URL

http://localhost:11434

Ollama server URL

AI_ACT_SLM_TIMEOUT_MS

30000

Timeout before falling back to keyword


Example

Prompt: I'm building a tool that screens job applicants' CVs and ranks them. Classify it under the EU AI Act.

# AI Act risk classification

**Likely tier: High-risk** (Art. 6 + Annex I / Annex III)

Permitted but subject to the heaviest obligations (risk management, data
governance, logging, human oversight, conformity assessment, registration).

## ⚠️ Possible high-risk categories (Annex III)
- **Employment**: recruitment, screening, filtering applications, evaluating
  candidates, or decisions on promotion/termination/task allocation — Annex III(4)

> Check the Art. 6(3) exemption: system does NOT pose a significant risk of harm
  to health, safety or fundamental rights…

## What to do next
Run `check_obligations` with tier "high" and your role (provider or deployer)
for the full obligation list, and `next_deadlines` for your timeline.

---
Ruleset 2026.06 (current as of 2026-06-09). Informational triage only.
Not legal advice. Verify against the official text and consult qualified counsel.

Run the tests

npm test

15 tests covering classification, obligations, deadlines, repo scanning, all three classifier backends, and the offline fallback path.


Roadmap

  • Four core tools — classify, obligations, deadlines, repo scan

  • Versioned, citation-backed ruleset (rules/ruleset.json)

  • Pass / warn / fail repo artifact checklist

  • Per-tier deadlines in obligation output

  • Pluggable classifier backends — keyword (default), local SLM (fully offline via Ollama), host-model sampling

  • npm publish — zero-install npx setup

  • FRIA (fundamental rights impact assessment) scaffold generator

  • GPAI Code of Practice checklist

  • Ruleset auto-update workflow as Omnibus amendments are adopted


Contributing

Corrections to the ruleset — with article citations — are the most valuable contributions. See CONTRIBUTING.md for the full guide.

Quick ways to help:


License

MIT — see LICENSE

Available Tools

4 tools
check_obligationsA

List the concrete EU AI Act obligations for a given risk tier and role (provider or deployer), with article citations. Set is_gpai true if you also provide a general-purpose AI model.

Inputs: tier (required), role, is_gpai.

classify_riskA

Classify an AI system under the EU AI Act risk tiers (prohibited / high / limited / minimal) from a plain-English description of what it does and who it affects. Returns the likely tier with cited articles and Annex III categories. Informational triage, not legal advice.

Inputs: description (required).

next_deadlinesA

Return the EU AI Act compliance timeline, optionally highlighting the date relevant to a given risk tier.

Inputs: tier.

scan_repoA

Scan a local repository path for the documentation artifacts the AI Act expects (model card, data governance, risk management, logging, human oversight, transparency notices) and report pass/warn/fail per artifact.

Inputs: path (required).

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: classifying risk, listing obligations, providing deadlines, and scanning documentation. There is no overlap or ambiguity between them.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern (check_obligations, classify_risk, next_deadlines, scan_repo), making them predictable and easy to understand.

    Tool Count5/5

    Four tools are well-suited for the domain of EU AI Act compliance, covering classification, obligations, deadlines, and documentation scanning without being too few or too many.

    Completeness5/5

    The tool surface covers the core lifecycle: understanding risk tier, knowing obligations, checking deadlines, and verifying documentation readiness. No obvious gaps for the stated purpose.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers