eu-ai-act-scanner
EU AI Act 규정 준수 스캐너 — CLI + MCP 서버
하나의 명령어. 설정 불필요. 10초 이내에 완전한 EU AI Act + GDPR 규정 준수 보고서.
pip install eu-ai-act-scanner
eu-ai-act-scanner /path/to/your/project코드베이스에서 16개 AI 프레임워크를 감지하고, 각각을 구속력 있는 법적 조항에 매핑하며, 통과/실패 여부와 수정 지침을 반환합니다. 무료 티어, API 키 불필요.
2026년 8월 2일 시행 마감일. 최대 3,500만 유로 또는 글로벌 매출의 7% 벌금.
이 도구가 규정 준수 작업에 도움이 된다면, GitHub의 ⭐은 다른 사람들이 이 도구를 발견하는 데 도움이 됩니다.
감사 수준의 증명이 필요하신가요? ArkForge Trust Layer로 모든 스캔을 인증하세요 — 변조 방지, 타임스탬프가 적용된 규정 준수 증거. 월 500회 무료 증명.
빠른 시작
CLI (모든 프로젝트를 10초 안에 스캔)
pip install eu-ai-act-scanner # or: pip install mcp-eu-ai-act
cd your-project/
eu-ai-act-scanner출력:
========================================================================
EU AI Act Compliance Scanner
========================================================================
Files scanned: 42
AI frameworks detected: 2
- openai (in 3 files)
- langchain (in 1 file)
Risk category: limited
Compliance score: 4/7 (57%)
Checks:
[PASS] Transparency
[PASS] User Disclosure
[FAIL] Technical Documentation → Create docs/TECHNICAL_DOCUMENTATION.md
[FAIL] Risk Management → Create docs/RISK_MANAGEMENT.md
[FAIL] Data Governance → Create docs/DATA_GOVERNANCE.md또는 경로를 직접 지정: eu-ai-act-scanner /path/to/your/project
시간 경과에 따른 규정 준수 추적 (무료): eu-ai-act-scanner . --register you@email.com
Related MCP server: EU AI Act Compliance MCP Server
무료 vs 프로
무료 | 프로 (월 €29) | 인증형 (월 €99) | |
일일 스캔 횟수 | 5 | 무제한 | 무제한 |
AI 프레임워크 감지 | ✓ (16개 프레임워크) | ✓ (16개 프레임워크) | ✓ (16개 프레임워크) |
위험 범주 제안 | ✓ | ✓ | ✓ |
규정 준수 확인 | — | ✓ (콘텐츠 점수 0-100) | ✓ |
전체 규정 준수 보고서 | — | ✓ (경영진 + 기술) | ✓ |
규정 준수 로드맵 | — | ✓ (주별 계획) | ✓ |
부속서 IV 패키지 | — | ✓ (감사 준비 완료 ZIP) | ✓ |
GDPR 스캔 | — | ✓ | ✓ |
EU AI Act + GDPR 결합 | — | ✓ (이중 규정 준수 핫스팟) | ✓ |
Trust Layer 인증 | — | — | ✓ (암호화 증명) |
CI/CD 통합 | — | ✓ | ✓ |
API 키 | 불필요 | ✓ | ✓ |
사용 가능 도구 | 2 | 10 | 10 + 인증 |
무료 티어: 가입 불필요, API 키 불필요 — 그냥 pip install하고 스캔하세요. 프로는 2026년 8월 마감일 이전에 팀에 필요한 전체 규정 준수 도구 키트를 제공합니다.
v2 새로운 기능
기능 | 설명 |
| 마감일까지 규정 준수를 달성하기 위한 주별 실행 계획 |
| 코드에서 채워진 8개 부속서 IV 섹션 전체가 포함된 감사 준비 완료 ZIP |
| Trust Layer를 통한 암호화 증명 (EU AI Act 제12조) |
콘텐츠 점수 매기기 |
|
조항 매핑 | 모든 발견 사항이 특정 EU AI Act 조항에 매핑됨 |
MCP 서버 (소스에서)
git clone https://github.com/ark-forge/mcp-eu-ai-act.git
cd mcp-eu-ai-act
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python3 server.py테스트 실행
pip install pytest
pytest tests/ -vMCP 통합
PyPI에서 설치 (권장)
pip install eu-ai-act-scannerClaude Code
claude mcp add eu-ai-act -- eu-ai-act-mcpClaude Desktop
claude_desktop_config.json에 추가:
{
"mcpServers": {
"eu-ai-act": {
"command": "eu-ai-act-mcp"
}
}
}Cursor
.cursor/mcp.json에 추가:
{
"mcpServers": {
"eu-ai-act": {
"command": "eu-ai-act-mcp"
}
}
}HTTP 모드 (CI/CD 또는 원격 클라이언트용)
pip install uvicorn
python3 server.py --http
# Listening on 0.0.0.0:8089도구 참조
1. scan_project
소스 코드 및 설정/매니페스트 파일에서 AI 프레임워크 사용을 감지합니다. Python, JS, TS, Go, Java, Rust 전반에 걸쳐 16개 프레임워크를 지원합니다.
주요 매개변수: project_path (문자열, 필수)
예시 출력:
{
"files_scanned": 42,
"ai_files": [
{"file": "src/chat.py", "frameworks": ["openai"]},
{"file": "requirements.txt", "frameworks": ["openai"], "source": "config"}
],
"detected_models": {"openai": ["src/chat.py", "requirements.txt"]}
}2. check_compliance
문서 내용 품질(0-100)을 평가하고 각 발견 사항을 특정 EU AI Act 조항에 매핑합니다. 점수 ≥40 = 통과. v1과 완전히 역호환됩니다.
주요 매개변수: project_path (문자열, 필수), risk_category (문자열, 기본값: limited)
예시 출력 (v2):
{
"risk_category": "high",
"compliance_score": "4/6",
"compliance_percentage": 66.7,
"content_scores": {
"RISK_MANAGEMENT.md": 82,
"TRANSPARENCY.md": 45,
"DATA_GOVERNANCE.md": 12
},
"article_map": {
"art_9": {"status": "pass", "score": 82},
"art_10": {"status": "fail", "score": 12},
"art_13": {"status": "pass", "score": 45}
}
}3. generate_compliance_roadmap — v2 NEW
마감일 인식, 2026년 8월 2일 이전에 EU AI Act 규정 준수를 달성하기 위한 주별 실행 계획. 중요도 × 1/노력 알고리즘을 사용하여 빠른 성과를 먼저 배치합니다.
주요 매개변수: project_path (문자열, 필수), risk_category (문자열), target_date (문자열, ISO 형식, 기본값: 2026-08-02)
예시 출력:
{
"weeks_remaining": 16,
"phases": [
{
"week": 1,
"action": "Add TRANSPARENCY.md with user disclosure statement",
"article": "Art. 13",
"effort_days": 1,
"priority": "critical"
},
{
"week": 2,
"action": "Draft risk management procedure covering Art. 9 requirements",
"article": "Art. 9",
"effort_days": 3,
"priority": "high"
}
],
"estimated_completion_week": 8
}4. generate_report
스캔 + 규정 준수 확인을 실행하고, 두 가지 수준의 출력(DPO/법무팀을 위한 경영진 요약 및 개발자를 위한 기술 분석)이 포함된 결합 보고서를 반환합니다. 조항별 인용 포함.
주요 매개변수: project_path (문자열, 필수), risk_category (문자열, 기본값: limited)
예시 출력:
{
"executive_summary": {
"compliance_percentage": 67,
"deadline": "2026-08-02",
"days_remaining": 117,
"gap_count": 3,
"verdict": "Action required — 3 gaps must be addressed before deadline"
},
"technical_breakdown": {
"art_9": {"status": "fail", "missing": ["hazard identification section", "residual risk log"]},
"art_13": {"status": "pass", "score": 78}
},
"recommendations": [
{"article": "Art. 9", "action": "Add hazard identification section to RISK_MANAGEMENT.md", "effort": "2 days"}
]
}5. suggest_risk_category
일반 텍스트 설명에서 AI 시스템을 EU AI Act 위험 범주로 분류합니다. 제5조(금지), 부속서 III(고위험), 제52조(제한), 최소 위험과 매칭합니다.
주요 매개변수: system_description (문자열, 필수)
예시 출력:
{
"suggested_category": "high",
"confidence": "high",
"matched_criteria": ["Annex III, Category 4 — AI in employment decisions"],
"obligations_summary": "Technical documentation, risk management, human oversight, data governance, transparency"
}6. generate_compliance_templates
각 필수 규정 준수 문서에 대한 시작용 마크다운 템플릿을 반환합니다. docs/에 저장하고 대괄호 섹션을 채우세요.
주요 매개변수: risk_category (문자열, 기본값: high)
high 위험의 경우: 위험 관리(제9조), 기술 문서(제11조), 데이터 거버넌스(제10조), 인간 감독(제14조), 견고성(제15조), 투명성(제13조).
7. generate_annex4_package — v2 NEW
실제 프로젝트 파일에서 채워진 8개 부속서 IV 섹션 전체가 포함된 감사 준비 완료 ZIP을 생성합니다. 선택적으로 Trust Layer로 인증하여 암호화 증명을 제공합니다.
주요 매개변수: project_path (문자열, 필수), sign_with_trust_layer (부울, 기본값: false), trust_layer_key (문자열, 선택 사항)
예시 출력:
{
"package_path": "/tmp/annex4_myproject_20260407.zip",
"sha256": "a3f8c2d1...",
"sections_populated": 8,
"sections_missing_data": ["section_6_accuracy_metrics"],
"proof_id": "prf_01j9z8x7w6v5u4t3s2r1",
"verification_url": "https://trust.arkforge.tech/verify/prf_01j9z8x7w6v5u4t3s2r1"
}8. certify_compliance_report — v2 NEW
모든 규정 준수 보고서를 ArkForge Trust Layer로 인증합니다. 감사관을 위한 변조 방지 proof_id 및 공개 확인 URL을 반환합니다 (EU AI Act 제12조 감사 추적).
주요 매개변수: report_data (문자열, JSON 직렬화된 보고서), trust_layer_key (문자열, 필수)
예시 출력:
{
"proof_id": "prf_01j9z8x7w6v5u4t3s2r1",
"timestamp": "2026-04-07T14:32:00Z",
"sha256": "a3f8c2d1e4b5...",
"verification_url": "https://trust.arkforge.tech/verify/prf_01j9z8x7w6v5u4t3s2r1",
"article": "EU AI Act Art. 12"
}9. gdpr_scan_project
개인 데이터 처리 패턴 스캔: PII 필드, 추적 픽셀, 지리적 위치, 파일 업로드, 쿠키 패턴. GDPR 제22조/35조 요구 사항에 매핑됩니다.
주요 매개변수: project_path (문자열, 필수)
10. combined_compliance_report
GDPR + EU AI Act 스캔을 동시에 실행하고 이중 규정 준수 핫스팟(두 규정이 동시에 적용되는 파일)을 식별합니다.
주요 매개변수: project_path (문자열, 필수), risk_category (문자열, 기본값: limited)
예시 출력:
{
"hotspots": [
{
"file": "src/hiring_model.py",
"eu_ai_act_risk": "high",
"gdpr_risk": "high",
"overlap_patterns": ["AI+PII", "AI+automated_decision"],
"combined_articles": ["EU AI Act Art. 14", "GDPR Art. 22"],
"priority": "critical"
}
],
"key_insight": "2 files require simultaneous GDPR + EU AI Act remediation"
}규정 준수 인증 (EU AI Act 제12조)
암호화 방식으로 인증된 규정 준수 증거를 생성하는 유일한 MCP입니다.
# Step 1: Generate Annex IV package and certify it
generate_annex4_package(
project_path="/path/to/project",
sign_with_trust_layer=True,
trust_layer_key="your_trust_layer_key"
)
# → Returns proof_id + public verification URL for your auditor
# Step 2: Or certify any compliance report directly
certify_compliance_report(
report_data='{"compliance_percentage": 87, "risk_category": "high"}',
trust_layer_key="your_trust_layer_key"
)무료 Trust Layer 계정: 월 500회 인증된 증명 → arkforge.tech
가격
요금제 | 가격 | 포함 사항 |
무료 | €0 | 일 5회 스캔 · scan_project + suggest_risk_category |
프로 | 월 €29 | 무제한 스캔 · 전체 10개 도구 · 규정 준수 로드맵 · 부속서 IV 패키지 |
인증형 | 월 €99 | 프로의 모든 기능 + 모든 보고서에 Trust Layer 인증 |
REST API
별도의 HTTP API(paywall_api.py)는 CI/CD 및 외부 클라이언트를 위한 속도 제한 REST 엔드포인트를 제공합니다.
python3 paywall_api.py
# Listening on 0.0.0.0:8091메서드 | 경로 | 인증 | 설명 |
|
| 없음 | 서비스 상태 + 사용자 속도 제한 |
|
| 없음 | 현재 IP의 무료 티어 사용량 |
|
| 무료/프로 | AI 프레임워크 프로젝트 스캔 |
|
| 무료/프로 | EU AI Act 규정 준수 확인 |
|
| 무료/프로 | 전체 규정 준수 보고서 |
|
| 무료 (속도 제한) | URL로 GitHub 저장소 스캔 |
|
| 없음 | Stripe 결제 세션 |
|
| Stripe 서명 | Stripe 웹훅 핸들러 |
무료 티어: IP당 일 5회 스캔, 가입 불필요.
프로 티어: 무제한 스캔, X-API-Key 헤더. 월 29 EUR via arkforge.tech/pricing.
예시: REST를 통한 스캔
curl -X POST https://arkforge.tech/mcp/api/v1/scan \
-H "Content-Type: application/json" \
-d '{"project_path": "/path/to/your/project"}'설정
REST API(Stripe 결제, 이메일 알림)의 경우 settings.env를 생성하세요:
STRIPE_LIVE_SECRET_KEY=sk_live_...
STRIPE_WEBHOOK_SECRET=whsec_...
TRUST_LAYER_INTERNAL_SECRET=<random-64-char-hex>
SMTP_HOST=ssl0.ovh.net
IMAP_USER=contact@example.com
IMAP_PASSWORD=...SETTINGS_ENV_PATH를 파일 위치로 설정하세요 (기본값: /opt/claude-ceo/config/settings.env).
지원되는 프레임워크 (16개)
프레임워크 | 탐지 대상 |
OpenAI | GPT-3.5, GPT-4, GPT-4o, o1, o3, embeddings |
Anthropic | Claude (Opus, Sonnet, Haiku) |
Google Gemini | Gemini Pro, Ultra, 1.5, 2, 3, Flash |
Vertex AI | Google Cloud AI Platform |
Mistral | Mistral Large/Medium/Small, Mixtral, Codestral, Magistral |
Cohere | Command-R, Command-R+, embeddings |
HuggingFace | Transformers, Diffusers, Accelerate, SmolAgents |
TensorFlow | Keras, .h5 모델 파일 |
PyTorch | .pt/.pth 모델 파일, nn.Module |
LangChain | Core, Community, OpenAI, Anthropic 통합 |
AWS Bedrock | Bedrock Runtime, Agent Runtime |
Azure OpenAI | Azure AI OpenAI Service |
Ollama | 로컬 모델 추론 |
LlamaIndex | VectorStoreIndex, SimpleDirectoryReader |
Replicate | 클라우드 모델 추론 |
Groq | 고속 추론 API |
탐지는 소스 코드의 import와 설정 파일의 의존성 선언 모두에서 작동합니다.
EU AI Act 위험 범주
범주 | 예시 | 주요 의무 사항 |
허용 불가 | 사회적 점수 매기기, 대규모 생체 인식 감시 | 금지 |
고위험 | 채용, 신용 평가, 법 집행 | 문서화, 위험 관리, 인간 감독 |
제한적 | 챗봇, 콘텐츠 생성 | 투명성, 사용자 공개, 콘텐츠 표시 |
최소 | 스팸 필터, 비디오 게임 | 없음 |
제한 사항
정적 분석만 수행 — import와 패턴은 탐지하지만 런타임 동작은 탐지하지 않음
코드만으로 위험 범주를 자동으로 판단할 수 없음 (
suggest_risk_category에 설명을 제공해야 함)check_compliance는 콘텐츠 품질을 평가 — 상용구/플레이스홀더 텍스트가 포함된 문서는 낮은 점수를 받음파일 스캔은 파일 5,000개, 파일당 1MB로 제한됨
보안상 특정 시스템 경로는 스캔이 차단됨
ArkForge 생태계
이 스캐너는 ArkForge Trust Layer를 통해 자율적으로 판매되는 첫 번째 서비스입니다. Trust Layer는 API 호출을 검증 가능하고, 유료이며, 변조 불가능한 트랜잭션으로 변환하는 인증 프록시입니다.
Agent Client → Trust Layer → EU AI Act Scanner
pays certifies delivers구성 요소 | 설명 | 저장소 |
Trust Layer | 인증 프록시 — 청구, 증명 체인, 검증 | |
MCP EU AI Act | 규정 준수 툴킷 (이 저장소) | |
Proof Spec | 증명 형식에 대한 공개 명세 + 테스트 벡터 | |
Agent Client | 자율 구매자 — 비인간 고객의 개념 증명 |
커뮤니티
질문 / 통합 도움말 → GitHub Discussions Q&A
버그 신고 → 이슈 열기
기능 요청 → 이슈 열기 또는 토론 참여
경험 공유 → 발견한 규정 준수 격차 알려주기
로드맵
v3: GPAI 의무 모듈 (Art. 51-55, 2025년 7월 행동 강령)
v3: CI/CD 규정 준수 게이트를 위한 GitHub Action
v3: 런타임 에이전트 규정 준수 강제 (Art. 14)
유용하게 사용하셨나요? GitHub에서 ⭐ 하나가 다른 규정 준수 팀이 이 툴킷을 발견하는 데 도움이 됩니다. 2초면 끝나고 큰 도움이 됩니다.
라이선스
MIT
Available Tools
16 toolscertify_compliance_reportAInspect
Make your compliance report tamper-proof for Art. 12 audit trail — pass the report JSON, get back a proof_id and a public verification URL you can hand to auditors. Certified plan required. Run generate_report() first to produce the report.
| Name | Required | Description | Default |
|---|---|---|---|
| report_data | Yes | JSON string of the compliance report to certify. | |
| trust_layer_key | Yes | ArkForge Trust Layer API key. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It explains the transformation (tamper-proofing), the output (proof_id, URL), and prerequisites (generate_report, certified plan). It does not cover rate limits or side effects, but for a certification action this is reasonable and informative.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundant words. The main purpose and key outputs are front-loaded, and the prerequisites are in the second sentence. Every piece contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the return values (proof_id, verification URL) and the audit context (Art. 12, auditors), which compensates for the absence of an output schema. It also gives a prerequisite and a required plan. Minor gaps like error handling or key input are not significant given the simple parameter set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes both parameters fully (report_data as JSON string, trust_layer_key as API key). The description reinforces 'pass the report JSON' but adds no new parameter semantics beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb phrase 'Make your compliance report tamper-proof' and identifies the resource (compliance report) and the outcome (proof_id and public verification URL). It clearly distinguishes this certification tool from sibling tools like generate_report and check_compliance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear prerequisite: 'Run generate_report() first to produce the report' and notes 'Certified plan required.' This gives strong guidance on when to use the tool, though it does not explicitly state when not to use it or name alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_complianceAInspect
Check whether your project passes or fails each EU AI Act requirement — no arguments, 5 seconds. See exactly which articles you violate (Art. 52 transparency, Art. 11 documentation, Art. 14 human oversight, Art. 15 robustness) and get step-by-step fix instructions for every gap. Call combined_compliance_report() for EU AI Act + GDPR together.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to the project root. Omit entirely or pass '.' to check the current working directory. | . |
| risk_category | No | EU AI Act risk category: 'minimal', 'limited' (default, fits most AI apps), 'high', or 'unacceptable'. | limited |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses speed (~5 seconds), that it returns pass/fail per requirement, and that it provides fix instructions. However, it incorrectly claims 'no arguments' while the schema defines two optional parameters, and it does not state whether the operation is read-only (though 'check' implies it).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact (three sentences) and front-loaded with the main purpose. The phrase 'no arguments' is inaccurate and wasteful, but otherwise every sentence adds useful context such as specific articles and the alternative combined tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains what results look like (pass/fail, article-level violations, step-by-step fixes), so return values are covered despite no output schema. It does not mention risk_category semantics, but the schema provides that. The tool is sufficiently described for an optional-parameter check tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add param semantics, and its claim of 'no arguments' is misleading given the optional project_path and risk_category parameters. Schema descriptions already cover both parameters, so the description neither helps nor hurts beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks EU AI Act compliance, lists specific articles (Art. 52, 11, 14, 15), and mentions fix instructions. It also distinguishes itself from combined_compliance_report for GDPR+AI Act.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly directs users to call combined_compliance_report() for combined EU AI Act + GDPR, implying this tool is for EU AI Act only. It does not mention when to prefer this over gdpr_check_compliance, but the name and the mention of EU AI Act requirements provide sufficient context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
combined_compliance_reportAInspect
Run this before your next deploy. One call reveals every EU AI Act + GDPR gap in your codebase — no arguments, no setup, under 10 seconds, free. Detects AI frameworks and personal data flows, flags where both laws overlap, returns pass/fail per article with a prioritized fix list. EU AI Act fines up to 35M EUR, GDPR up to 20M EUR. Replaces separate scan_project() and gdpr_scan_project() calls.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to the project root. Omit entirely or pass '.' to scan the current working directory — no arguments required. | . |
| risk_category | No | EU AI Act risk category: 'minimal', 'limited' (default, fits most AI apps), 'high', or 'unacceptable'. | limited |
| processing_role | No | GDPR processing role: 'controller' (default, most common), 'processor', or 'minimal_processing'. | controller |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. It states 'no arguments, no setup, under 10 seconds, free,' describes detection scope ('AI frameworks and personal data flows'), and explains the return format ('pass/fail per article with a prioritized fix list'). This is solid behavioral context, though it does not explicitly state that the operation is read-only or non-destructive, which is implied by 'detects.'
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a strong call to action and efficiently packs key facts: scope, speed, cost, detection targets, output structure, and sibling replacement. The sentence about fines adds persuasive context but is not strictly necessary for tool invocation; however, it reinforces urgency and value. Overall, it's tight and well-ordered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description compensates by explicitly describing the return value: 'pass/fail per article with a prioritized fix list.' It covers the tool's scope, performance, and positioning relative to alternatives. It does not describe edge cases or how the optional parameters affect results, but the schema already documents those parameters, so the description is sufficiently complete for a scan tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter is fully explained in the schema (e.g., 'Omit entirely or pass '.' to scan the current working directory'). The description adds no new parameter information beyond saying 'no arguments,' which is consistent with all parameters being optional with defaults. Baseline 3 is appropriate because the schema handles parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action: 'Run this before your next deploy' and 'One call reveals every EU AI Act + GDPR gap in your codebase.' It explicitly distinguishes the tool from siblings by saying 'Replaces separate scan_project() and gdpr_scan_project() calls,' making it unambiguous what this tool does and how it differs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear when-to-use instruction ('Run this before your next deploy') and explicitly names the alternatives it replaces ('scan_project() and gdpr_scan_project()'). This provides concrete guidance for selecting this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gdpr_check_complianceCInspect
Check whether your project passes or fails each GDPR requirement — no arguments. See pass/fail for lawful basis (Art. 6), consent (Art. 7), data subject rights (Art. 15–22), security (Art. 32), and breach notification (Art. 33–34) with fix instructions for every gap. GDPR fines reach 20M EUR or 4% turnover. For EU AI Act + GDPR together, call combined_compliance_report().
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to the project root. Leave empty or pass '.' to check the current directory. | . |
| processing_role | No | GDPR role: controller, processor, or minimal_processing. | controller |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals the output format (pass/fail per article, fix instructions) but fails to mention that the tool takes arguments (or that they are optional), and does not explain how the compliance check is performed (e.g., static analysis, scanning files). The 'no arguments' statement is actively misleading about the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise (four sentences) and front-loads the primary purpose. However, the sentence about GDPR fines ('GDPR fines reach 20M EUR or 4% turnover') is promotional and not directly relevant to tool invocation, adding unnecessary noise. The structure could be tightened by removing that filler and correcting the parameter claim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and no annotations, so the description needs to provide complete context. It does well by outlining the covered articles and the pass/fail output with fix instructions. But it fails to mention the two optional parameters, misrepresents argument usage, and lacks any explanation of the underlying mechanism (e.g., does it scan the project path?). This leaves significant gaps for an agent deciding how to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both project_path and processing_role have descriptions), so the baseline would be 3. However, the description's assertion 'no arguments' directly contradicts the schema, adding no value and potentially confusing an agent. The parameter descriptions in the schema are self-explanatory, but the false claim in the description outweighs the baseline benefit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Check whether your project passes or fails each GDPR requirement' and lists specific articles (Art. 6, 7, 15–22, 32, 33–34), giving a focused scope. It also distinguishes itself from combined_compliance_report by directing users there for EU AI Act + GDPR. However, the claim 'no arguments' is inaccurate given the input schema, which slightly undermines clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly names an alternative: 'For EU AI Act + GDPR together, call combined_compliance_report().' This provides a clear when-to-use vs. alternative. However, the misleading statement 'no arguments' contradicts the actual schema and could cause an agent to ignore the optional project_path and processing_role parameters, which is a significant usage guidance flaw.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gdpr_generate_reportAInspect
Generate the GDPR report your DPO needs — no arguments. Combines personal data inventory, gap analysis, and remediation steps in one structured document for DPO review, audit prep, or regulatory response. For EU AI Act + GDPR together, call combined_compliance_report().
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to the project root. Leave empty or pass '.' to scan the current directory. | . |
| processing_role | No | GDPR role: controller, processor, or minimal_processing. | controller |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It states 'no arguments' but the schema defines two optional parameters, which is misleading. It also doesn't disclose whether the tool performs read-only scanning, requires permissions, or has side effects. The intended output content is described, but behavioral transparency is undermined by the inaccurate 'no arguments' claim.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the core purpose. The first sentence states the tool's function and output; the second covers the alternative. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there's no output schema, the description explains what the report contains and its use cases, which is sufficient for basic understanding. It doesn't clarify how the report is generated or the return format, but considering the tool's simplicity and sibling alternatives, it's reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter descriptions are clear (project_path and processing_role with their defaults). The description itself adds nothing beyond the schema, and the 'no arguments' phrase conflicts with the existence of parameters, but the schema sufficiently documents the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a GDPR report, listing specific contents (personal data inventory, gap analysis, remediation steps). It also explicitly differentiates from combined_compliance_report, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides strong context (DPO review, audit prep, regulatory response) and explicitly names combined_compliance_report for EU AI Act + GDPR cases. However, it doesn't distinguish when to use this over other GDPR siblings like gdpr_check_compliance or gdpr_scan_project, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gdpr_generate_templatesAInspect
Get pre-filled GDPR templates your organization actually needs — no arguments. Privacy Policy, DPIA, Records of Processing Activities (ROPA), and Data Breach Procedure tailored to your processing role. Fill in [bracketed] sections. Run gdpr_check_compliance() first to see which documents you're missing.
| Name | Required | Description | Default |
|---|---|---|---|
| processing_role | No | GDPR role: controller, processor, or minimal_processing. | controller |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description falsely claims 'no arguments' while the schema includes an optional processing_role parameter. This misleads the agent about the tool's configurability. No annotations exist to carry safety or side-effect information, so the description must disclose behavior; it fails to mention that the processing role affects output or that the default is 'controller'. The 'no arguments' statement actively contradicts the schema, reducing transparency significantly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise at four sentences, front-loading the core function and list of templates. The flow moves from what you get to usage ('Fill in [bracketed] sections') to prerequisite. However, the erroneous 'no arguments' phrase wastes space and could be removed, preventing a top score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should clarify what the tool returns (e.g., text, downloadable files) and how the processing role affects the templates. It neither mentions the output format nor explains the role's effect. The false 'no arguments' claim adds confusion. The prerequisite reference is helpful but does not make up for missing critical details about return type and role-driven customization.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the schema description covers 100% of the parameter, the tool description says 'no arguments', directly contradicting the existence of processing_role. The description does not add any value to the parameter meaning; instead it actively misleads. This lowers the effective parameter semantics below the baseline for high schema coverage because the misinformation outweighs the schema's clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves pre-filled GDPR templates, listing specific document types (Privacy Policy, DPIA, ROPA, Data Breach Procedure). It also distinguishes itself from siblings like gdpr_generate_report and check_compliance by focusing on template generation. The verb 'Get' plus resource and scope makes the purpose highly clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance by instructing to 'Run gdpr_check_compliance() first to see which documents you're missing.' This establishes a clear workflow and prerequisite, helping an agent decide when to invoke this tool versus alternatives. It also implies the tool is useful when missing specific documents, which is strong usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gdpr_scan_projectAInspect
Find every file in your project that touches personal data — no arguments, 5 seconds, free. Detects PII fields, cookies, tracking pixels, analytics SDKs, and consent flows. Returns flagged files with data categories and applicable GDPR articles. GDPR fines reach 20M EUR or 4% turnover. For EU AI Act + GDPR together, call combined_compliance_report().
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to the project root. Leave empty or pass '.' to scan the current directory. | . |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses return value composition ('flagged files with data categories and applicable GDPR articles') and implies a read-only scan ('Find every file'). It also mentions '5 seconds' and 'free' as operational traits. The 'no arguments' claim is slightly offset by the optional project_path parameter, but not harmful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The utility sentence 'GDPR fines reach 20M EUR or 4% turnover' is irrelevant to selecting or invoking the tool and wastes a slot. The useful information (function, speed, cost, output) is front-loaded, but the fine scare line is extraneous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one optional parameter, no output schema) and the description sufficiently explains what it does, what it scans for, and what it returns. It also provides a pointer to an alternative for combined requirements, making it complete for practical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with a single optional parameter already well-described ('Leave empty or pass '.' to scan the current directory'). The tool description adds no parameter-specific meaning beyond saying 'no arguments', which actually understates the optional project_path parameter. Thus baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Find every file in your project that touches personal data.' It enumerates what is detected (PII, cookies, tracking pixels, analytics SDKs, consent flows) and distinguishes itself from generic scan_project by focusing on GDPR. It also points to combined_compliance_report for a different scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on when to use this tool ('no arguments, 5 seconds, free') and explicitly directs users to combine with EU AI Act via combined_compliance_report(). However, it does not articulate exclusions or contrast with sibling tools like gdpr_check_compliance or scan_project.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_annex4_packageBInspect
Build the Annex IV evidence package your auditor needs for high-risk AI — no arguments. All 8 mandatory sections auto-populated from your project scan, SHA-256 integrity hash included. High-risk rules apply Aug 2026. Pro plan required.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to the project root. Leave empty or pass '.' to scan the current directory. | . |
| trust_layer_key | No | ArkForge Trust Layer API key. Required if sign_with_trust_layer is True. | |
| sign_with_trust_layer | No | Certify the package via Trust Layer for Art. 12 audit trail. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden of behavioral disclosure. It does mention the SHA-256 hash, Pro plan requirement, and auto-population, but it misleadingly claims 'no arguments' while the schema defines three optional parameters. It also fails to state side effects, prerequisites like a prior project scan, or output location.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured into three concise sentences, with the core action front-loaded. Each clause adds relevant context (audience, auto-population, integrity hash, compliance date, plan requirement). The only minor flaw is the misleading 'no arguments' phrase, which costs a point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives a high-level overview of purpose and constraints but omits operational details such as where the package is saved, what file format is produced, and whether a previous scan_project call is required. With no output schema and no annotations, these gaps leave the agent without complete invocation context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides full descriptions for all three parameters, which would normally warrant a baseline of 3. However, the description's 'no arguments' statement actively contradicts and muddies the schema, adding no value and potentially confusing users into thinking parameters don't exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Build the Annex IV evidence package' and immediately identifies the audience ('your auditor') and the context ('high-risk AI'). It also highlights the deliverable's 8 mandatory sections, distinguishing it from sibling compliance and reporting tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for high-risk AI audits and notes the Aug 2026 applicability, giving context for when the tool is relevant. However, it does not explicitly state when not to use it or mention alternatives like check_compliance or generate_report, so it lacks explicit exclusions and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_compliance_roadmapAInspect
Get a prioritized, week-by-week plan to close every compliance gap before Aug 2027 — no arguments. Auto-scans your project, ranks fixes by impact, sequences quick wins first, tells you whether your deadline is achievable. Pro plan required — run check_compliance() for a free gap summary.
| Name | Required | Description | Default |
|---|---|---|---|
| deadline | No | Target compliance deadline in ISO format. | 2027-08-02 |
| project_path | No | Path to the project root. Leave empty or pass '.' to scan the current directory. | . |
| risk_category | No | EU AI Act risk category. | high |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it does well: it discloses that the tool auto-scans the project, ranks fixes by impact, sequences quick wins first, tells whether the deadline is achievable, and requires a Pro plan. The only notable gap is that it does not describe the output format or clarify that optional parameters exist despite saying 'no arguments.'
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, all informative and front-loaded. The first sentence states the core deliverable, the second explains the tool's behavior, and the third provides access requirements and a fallback option. There is no fluff or redundant restating of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and many siblings, the description provides enough context: the roadmap is week-by-week, prioritized, deadline-aware, and requires Pro. It also includes an alternative for free users. The main gap is that it does not describe the exact return structure or how optional parameters affect the generated roadmap, though these are partly covered by the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all three parameters (deadline, project_path, risk_category). The description adds limited semantic value by saying 'no arguments' and noting auto-scan behavior, which helps explain the defaults, but it does not elaborate on the optional parameters. This matches the baseline 3 for a fully schema-documented parameter set.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific deliverable: 'Get a prioritized, week-by-week plan to close every compliance gap before Aug 2027.' This clearly identifies the tool as a roadmap generator and distinguishes it from sibling tools like check_compliance and generate_report. The mention of ranking, sequencing, and deadline feasibility further sharpens its unique purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: it is a Pro-plan tool and points users to check_compliance() as a free alternative. It also implies this is the tool to use when a full prioritized plan is needed rather than a simple gap summary. It does not explicitly discuss other siblings like combined_compliance_report, but the stated alternative is a useful decision point.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_compliance_templatesAInspect
Stop writing compliance docs from scratch — get pre-filled templates for risk management, technical documentation, transparency notice, and human oversight policy tailored to your risk category. High-risk systems get all 6 mandatory documents. Save to docs/, fill in [bracketed] sections. Run check_compliance() first to see which documents you're missing.
| Name | Required | Description | Default |
|---|---|---|---|
| risk_category | No | EU AI Act risk category. Templates are most useful for 'high' risk. | high |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses that templates are pre-filled, tailored to risk category, and highlights that high-risk systems get all 6 mandatory documents. It also instructs to 'Save to docs/, fill in [bracketed] sections,' conveying the output format and intended use. It does not mention potential side effects like overwriting files, but the behavior is clearly outlined.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded. The first sentence immediately conveys the core value proposition, and the second sentence adds essential usage details (save location, fill-in instructions, prerequisite). Every sentence earns its place, with no redundant or vague language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given moderate complexity (single parameter, no output schema, no annotations), the description provides sufficient context: what the tool does, how to use it (save/fill), and a workflow hint (run check_compliance first). It doesn't discuss edge cases like unacceptable risk or all possible document types, but it covers the main usage adequately for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides a detailed description for risk_category ('EU AI Act risk category. Templates are most useful for high risk.'), achieving 100% coverage. The tool description adds further meaning by specifying that 'High-risk systems get all 6 mandatory documents,' implying that different categories produce different outputs. This goes beyond the schema's baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'get pre-filled templates for risk management, technical documentation, transparency notice, and human oversight policy.' It also specifies the resource (templates) and scope (tailored to risk category, with high-risk systems receiving 'all 6 mandatory documents'), distinguishing it from sibling tools like generate_report or check_compliance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the user to 'Run check_compliance() first to see which documents you're missing,' providing a clear prerequisite and workflow. It implies usage for EU AI Act compliance template generation and differentiates from manual writing ('Stop writing compliance docs from scratch'), but it does not explicitly list alternative tools when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_reportAInspect
Generate the compliance report your legal team is asking for — no arguments. One call auto-detects AI frameworks, runs gap analysis, and produces a structured remediation plan ready for legal review or DPIA attachment. No API key needed.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to the project root. Omit entirely or pass '.' to scan the current working directory. | . |
| risk_category | No | EU AI Act risk category: 'minimal', 'limited' (default), 'high', or 'unacceptable'. | limited |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral transparency burden. It discloses that one call auto-detects AI frameworks, runs gap analysis, produces a structured plan, and requires no API key—valuable operational details. It does not address side effects or error cases, but for a read/analysis tool this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-load the core purpose and immediately follow with the value proposition. Every clause adds information (target audience, zero-config, auto-detection, output artifact, auth requirement), with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool's simplicity (two optional params, no output schema) is well matched by a description that explains purpose, behavior, and output. The only minor gap is not explicitly mentioning the optional parameters' existence, but the schema covers them. Overall, an agent can confidently invoke this tool without further clarification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are fully documented in the schema with descriptions and defaults (100% coverage), so the baseline is 3. The description adds slight semantic value by emphasizing 'no arguments' and the auto-detection behavior, implying parameters are optional conveniences. It does not elaborate on how risk_category influences the report beyond the schema's enum explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair ('Generate the compliance report') and extends the purpose with concrete deliverables (gap analysis, structured remediation plan). It distinguishes itself as a zero-argument report tool aimed at legal review, which differentiates it from siblings like gdpr_generate_report or generate_compliance_roadmap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a use case ('your legal team is asking for') and notes 'no arguments' and 'No API key needed', but it never explicitly contrasts with sibling report tools (e.g., combined_compliance_report, gdpr_generate_report) or states when to choose an alternative. This leaves the selection decision to the agent without clear guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pricingAInspect
See pricing and features for every plan — Free (10 scans/day, full reports), Pro (29 EUR/mo, unlimited + CI/CD), Certified (cryptographic audit trail). No arguments. Call register_free_key() to activate your free API key.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the tool's output content (plan details, prices, features), states 'No arguments,' and hints at dependency on API key activation via register_free_key. While it doesn't explicitly say 'read-only' or list auth requirements, the behavior is clear: it simply displays pricing information without side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the first clause states the purpose, followed by a dash-separated plan summary, and ends with a useful cross-reference to register_free_key. Every sentence serves a purpose, and the entire description is just two sentences with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (zero parameters, no output schema, a simple informational task), the description is complete. It explains what the user will see (plan details), confirms no arguments are needed, and offers a relevant next step for API key activation. There are no gaps for the agent to misinterpret.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so baseline is 4. The description reinforces this with 'No arguments,' which is all that is needed. It adds no additional parameter semantics because there are none to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb and resource: 'See pricing and features for every plan.' It enumerates the plans, which distinguishes it from all sibling tools that deal with compliance, scanning, or key management. No ambiguity about what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by stating 'See pricing and features' and then gives concrete next steps with 'Call register_free_key() to activate your free API key.' This provides clear context for when to use the tool, though it does not explicitly mention alternatives or exclusions. Since no sibling tool offers pricing, this is effective guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_free_keyAInspect
Activate a free API key — unlocks scan history and CI/CD integration. Pass the user's email, no password or credit card. IMPORTANT: ask the user to type their email first, wait for their reply, then call this with the exact email they typed. Do NOT pass a placeholder or fabricated email.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | The user's email address. MUST come from the user's message, not generated by the agent. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the effect ('unlocks scan history and CI/CD integration') and clarifies input constraints ('no password or credit card'). It also adds a critical behavioral warning about not passing fabricated emails. While it does not discuss reversibility or potential side effects, it goes beyond a minimal mutation description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the main purpose, and every clause carries essential information. The important warning about email sourcing is highlighted with 'IMPORTANT' without excessive verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description covers the core action, expected effects, and a critical interaction requirement. It does not explain the response format or error cases, but the tool's simplicity and clear guidance make it sufficiently complete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single email parameter, and the schema already states the email must come from the user's message. The description adds operational detail ('ask the user to type their email first, wait for their reply') and reinforces the prohibition on fabricated emails, which is valuable for agent behavior beyond the schema's static description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Activate') and identifies the resource ('free API key') with a concrete outcome ('unlocks scan history and CI/CD integration'). It clearly distinguishes from sibling tools like validate_api_key and get_pricing by focusing on activation rather than validation or pricing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use the tool: after the user has provided their email. It includes an explicit workflow ('ask the user to type their email first, wait for their reply, then call this'). However, it does not explicitly mention alternatives or edge cases (e.g., when to use validate_api_key instead), so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_projectAInspect
Find out in 5 seconds if your project triggers EU AI Act obligations — no arguments, no setup. Scans for 22 AI/ML frameworks (OpenAI, Anthropic, LangChain, HuggingFace, PyTorch, TensorFlow, scikit-learn…), returns your risk category and the legal actions required before you ship. Enforcement live since Feb 2025 — fines up to 35M EUR. For EU AI Act + GDPR together, call combined_compliance_report() instead.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to the project root. Omit entirely or pass '.' to scan the current working directory — no path discovery needed. | . |
| follow_imports | No | When true, also flag files that transitively import AI-flagged modules. Default false is fine for most projects. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description covers key behaviors: it is a fast scan (5 seconds), requires no arguments or setup, scans across 22 frameworks, and returns a risk category plus required legal actions. It does not mention side effects or network usage, but for a read-only scan tool these omissions are minor, so a slight deduction from full marks is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded; the first sentence states the core value proposition, the second explains what it scans and returns, and the third gives a necessary alternative. No unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with zero required parameters and full schema coverage, the description provides a complete picture: purpose, behavior, output, and a clear alternative. The return value is described as 'risk category and the legal actions required', which is sufficient without an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for both parameters (100% coverage). The description adds little beyond saying 'no arguments', which is consistent with both parameters having defaults. Since the schema handles parameter semantics, the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Find out in 5 seconds if your project triggers EU AI Act obligations' and specifies it scans for 22 AI/ML frameworks. It distinguishes itself from siblings by explicitly telling users to call combined_compliance_report instead for EU AI Act + GDPR combined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage guidance is provided: 'For EU AI Act + GDPR together, call combined_compliance_report() instead.' This directly tells the agent when not to use this tool and offers a clear alternative, satisfying the when/when-not criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_risk_categoryAInspect
Describe what your AI system does in plain language — get back your EU AI Act risk tier, the articles that apply, and your first compliance step. Returns matched category (minimal/limited/high/unacceptable) with confidence level and triggering risk indicators. No project scan needed, no API key.
| Name | Required | Description | Default |
|---|---|---|---|
| system_description | Yes | Short description of what the AI system does, e.g. 'chatbot for customer support' or 'CV screening tool for recruitment'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden of behavioral disclosure. It discloses the output (category, confidence, indicators, articles, first step) and key constraints (no project scan, no API key). It does not mention potential caveats like the assessment being preliminary or non-authoritative, but it gives a clear picture of what to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: it immediately tells the user what to do and what to expect. Every sentence adds value (input, output, constraints) without repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no output schema, the description adequately covers input requirements and output contents, including the specific fields returned (category, confidence, indicators). It lacks details on the format of articles and compliance steps, but these are secondary to the core purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers 100% of the parameter with a clear description and example. The tool description reinforces 'plain language' but adds no new meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: it takes a plain-language description of an AI system and returns the EU AI Act risk tier, applicable articles, and first compliance step. It further specifies the returned data (matched category, confidence level, triggering indicators) and distinguishes itself from siblings with 'No project scan needed, no API key.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you have a system description and need a quick risk classification. It contrasts with project-scanning siblings by noting no scan or API key is required, which provides useful context. However, it does not explicitly state alternative tools for other use cases or provide explicit 'when not to use' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_api_keyAInspect
Check your API key status — returns plan tier (free/pro/certified), email, and usage stats (total scans, last scan date).
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | The API key to validate. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does explain the return output (plan tier, email, usage stats), which is useful. However, it does not explicitly indicate whether the operation is read-only or what happens for invalid keys, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately states the action and then enumerates the return data. Every word is informative and there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description is complete enough: it states what the tool does and what the user gets back. It does not specify error handling, but the scope is small and the return values are well covered. A 4 is appropriate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter 'api_key' is already well-documented. The description does not add any new parameter-specific meaning beyond what the schema provides, matching the baseline score of 3 for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Check') and resource ('your API key status') and lists specific return values (plan tier, email, usage stats). It distinguishes itself from siblings like register_free_key and get_pricing by focusing on validation of an existing key rather than registration or pricing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you need to check an API key's status. It provides clear context (checking status) but does not explicitly mention alternatives or when not to use it. This fits the 'clear context, no exclusions' level.
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.
16 tool updates
v1.5.0- First observed
certify_compliance_report - First observed
check_compliance - First observed
combined_compliance_report - First observed
gdpr_check_compliance - First observed
gdpr_generate_report - First observed
gdpr_generate_templates - First observed
gdpr_scan_project - First observed
generate_annex4_package - First observed
generate_compliance_roadmap - First observed
generate_compliance_templates - First observed
generate_report - First observed
get_pricing - First observed
register_free_key - First observed
scan_project - First observed
suggest_risk_category - First observed
validate_api_key
TDQS
Scored across 16 tools
Several tools perform project scans and gap analysis (scan_project, check_compliance, generate_report, combined_compliance_report), which creates real overlap in purpose. However, each description clarifies a different output type, and combined_compliance_report explicitly supersedes the separate scans.
Tool names mostly follow a consistent snake_case verb_noun pattern like scan_project, check_compliance, and generate_report. Minor deviations such as combined_compliance_report (adjective-noun rather than verb-noun) and the gdpr_*/generate_* variety keep it from being perfect.
16 tools is slightly above the ideal 3-15 range, but the count is reasonable given that the server covers EU AI Act, GDPR, combined reporting, templates, pricing, and API key management. The duplication between separate scans and the combined report adds minor bloat.
The tool surface covers risk categorization, project scanning, compliance checking, report generation, templates, roadmap, certification, pricing, and API key handling for both EU AI Act and GDPR. The main gap is conceptual redundancy rather than missing functionality, though true CRUD-style lifecycle coverage is not expected for a scanner.
Maintenance
Related MCP Connectors
AI inventory and EU AI Act compliance. Find AI tools and use cases, check new AI uses before launch.
Threat modeling, code/cloud/pipeline scanning, shadow-AI discovery, compliance checks and fixes.
Register every AI agent, log every action, prove it. EU AI Act compliance built in.
EU AI Act sovereignty scanning. Provider residency, registration status, audit trail support.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceThe only Multi-LLM Compliance Engine (GPT-4o + Claude + DeepSeek). Auto-fix GDPR/LGPD risks and more 15 frameworks. code.guard.eu5 npm1MIT
- AlicenseAqualityDmaintenanceProvides automated EU AI Act compliance tools, including risk classification, role determination, transparency disclosures, content watermarking, deepfake labeling, and security threat detection.1633Apache 2.0
- AlicenseNot gradedqualityBmaintenanceLocal-first AI compliance scanner via Model Context Protocol, scanning codebases for violations of DPDPA 2023, RBI FREE-AI, SEBI AI/ML, and the EU AI Act.18 PyPI1Apache 2.0
- AlicenseAqualityDmaintenanceEnables EU AI Act compliance assessment by classifying AI systems, listing obligations, computing deadlines, and scanning repos for required documentation, all running locally.42MIT