DutyKit
EU business duties for AI agents: legal obligations with sources and pre-checks (DE, LU, EU)
제작자가 쓴 설명(영어 원문)
EU AI Act compliance scanner for Python AI agents — scan, analyze, and remediate
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"air-blackbox": {
"command": "uvx",
"args": [
"air-blackbox-mcp"
]
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add air-blackbox -- uvx air-blackbox-mcp프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"air-blackbox": {
"command": "uvx",
"args": [
"air-blackbox-mcp"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"air-blackbox": {
"type": "stdio",
"command": "uvx",
"args": [
"air-blackbox-mcp"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검
게시자(shotwellj)가 저장소 소유자(airblackbox)가 아니에요. 다른 사람이 등록했을 수 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 0개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.1.2)은 8개월 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Python (uv)도 있어야 해요.
같은 카테고리에는: DutyKit, Agent Data Tools: Company, compliance and checks, Agent Data Tools
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
EU business duties for AI agents: legal obligations with sources and pre-checks (DE, LU, EU)
38 tools: OFAC sanctions, counterparty checks, company, domain, email. 25 free calls.
641 agent tools: chain data, prices, sanctions, web, PDF. 25 free calls, then from $0.002.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
EU AI Act compliance scanning for Claude Desktop, Claude Code, Cursor, and any MCP-compatible client.
Unlike other compliance scanners that only report problems, AIR Blackbox also remediates - generating working code fixes, trust layer integrations, GDPR compliance checks, bias analysis, and full compliance reports. Under the hood, the scanning feeds into air-trust, a cryptographic audit chain (HMAC-SHA256) with Ed25519 signed handoffs that ensures compliance data integrity.
| Tier | Tool | What it does | Requires SDK |
|---|---|---|---|
| Scanning | scan_code | Scan a code string for all 6 EU AI Act articles (Python, notebooks, TypeScript, JavaScript, Java, Kotlin with the SDK; Python without) | Recommended |
| Scanning | scan_file | Read and scan a single source file | Recommended |
| Scanning | scan_project | Recursively scan a project directory | Recommended |
| Analysis | analyze_with_model | Deep analysis via local fine-tuned model (Ollama) | No |
| Analysis | check_injection | Detect prompt injection attacks (15 patterns) | No |
| Analysis | classify_risk | Classify tools by EU AI Act risk level | No |
| Remediation | add_trust_layer | Generate trust layer integration code | No |
| Remediation | suggest_fix | Get article-specific fix recommendations | No |
| Documentation | explain_article | Technical explanation of EU AI Act articles | No |
| Documentation | generate_compliance_report | Full markdown compliance report | No |
| GDPR | scan_gdpr | GDPR-specific compliance scan | Yes |
| Bias | scan_bias | Bias and fairness analysis | Yes |
| Validation | validate_action | Validate agent actions before execution (Article 14) | Yes |
| History | compliance_history | View past scans, trends, and compliance scores | Yes |
LangChain, CrewAI, AutoGen, OpenAI, Haystack, LlamaIndex, Semantic Kernel, Google ADK, Claude Agent SDK, and generic RAG pipelines.
pip install air-blackbox-mcp[full]
Installs the air-blackbox SDK (>=1.17,<2). The scanning tools then run the same engine as the air-blackbox CLI and read Python, Jupyter notebooks, TypeScript, JavaScript, Java and Kotlin, with the same verdict the CLI gives the same code. The floor is the version this package is tested against, and the major cap means a 2.x SDK cannot silently change your findings.
pip install air-blackbox-mcp
Works standalone with the lightweight built-in scanner: Python files only, a smaller rule set.
This package supports both MCP SDK generations — `mcp>=1.0`, no upper bound.
mcp 2.0 removed mcp.server.fastmcp and replaced FastMCP with MCPServer. Rather than pin away from it, the server detects which generation is installed and binds to the right class, so it runs on 1.x and 2.x alike:
| installed | server class |
|---|---|
mcp 1.x | FastMCP |
mcp 2.x | MCPServer |
Both paths are covered by tests that launch python -m air_blackbox_mcp as a real subprocess and drive it over stdio — the same way Claude Desktop and Cursor do — and the full suite runs green on both.
If you are on 0.2.3, upgrade. That version declared an unpinned mcp>=1.0.0, so once mcp 2.0 shipped, every fresh install produced a server that died on import:
ModuleNotFoundError: No module named 'mcp.server.fastmcp'
pip install --upgrade air-blackbox-mcp
0.2.4 fixed it by capping at mcp<2; 0.3.0 removes the cap entirely, so this server no longer conflicts with anything built for mcp 2.x sharing the same environment.
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": { "air-blackbox": { "command": "python3", "args": ["-m", "air_blackbox_mcp"] } } }
Restart Claude Desktop. The 14 tools will appear automatically.
Add to .cursor/mcp.json in your project:
{
"mcpServers": { "air-blackbox": { "command": "python3", "args": ["-m", "air_blackbox_mcp"] } } }
Or add to .claude/mcp.json for Claude Code.
In Claude Desktop, Claude Code, or Cursor, just ask:
send_email"The full air-blackbox SDK unlocks 4 additional tools:
scan_gdpr)scan_bias)validate_action)compliance_history)For AI-powered analysis beyond regex patterns:
# Install Ollama
brew install ollama
ollama pull air-compliance-v2
Other MCP compliance tools only scan. AIR Blackbox:
Which engine runs is decided once, at import, by what is installed, and every result says which one ran. Until 0.4.0 the scanning tools always used the built-in scanner even when the SDK was installed; the two had drifted (fewer checks here, Python only, and a hiring-detection bug the SDK had fixed), so the same code got different verdicts from the CLI and from Claude.
| Tools | Engine | If the SDK is missing |
|---|---|---|
scan_code, scan_file, scan_project (and the rule-based part of analyze_with_model) | The air-blackbox SDK when installed, otherwise the built-in rule-based scanner | Built-in scanner: Python only, smaller rule set |
check_injection, classify_risk | Always the built-in rules | No effect |
Tier 5 (scan_gdpr, scan_bias, validate_action, compliance_history) | Always the full air-blackbox SDK | Explicit error telling you to install [full] |
The choice is made when the server starts, not per call, and provenance.engine names it on every result, so two reports are comparable exactly when their engine and ruleset_version match.
Because a compliance finding is only comparable to another if you know what produced it, every machine-readable result carries a `provenance` block:
{
"findings": [ ... ], "provenance": { "engine": "builtin-rules", "scanner_version": "0.2.4", "ruleset_id": "eu-ai-act-art9-15", "ruleset_version": "cee71577c486", "sdk_version": null } }
engine — builtin-rules or air-blackbox-sdk, whichever actually ran.ruleset_version — a content hash of the active rules, not a hand-maintained string. Change a regex and it changes by itself; a version someone must remember to bump is one that eventually misreports which rules ran.sdk_version — the SDK that *produced* this result, so it is null for built-in results even when the SDK is installed alongside. Reporting a version that contributed nothing would imply its rules ran.Two reports with the same engine + ruleset_version were produced by byte-identical rules and can be diffed directly. Different values mean the rules moved, and the diff needs that context to be meaningful.
Errors carry provenance too — knowing which version produced an error is as useful as knowing which version produced a finding.
Install [full] to unlock the Tier 5 SDK tools; the base install works standalone.
This MCP server is part of the AIR Blackbox ecosystem: