这是一个提供欧盟AI法案合规工具的模型上下文协议(MCP)服务器。此服务器帮助开发聊天机器人和AI代理等AI应用的开发者满足整个欧盟AI法案框架中的透明度、安全性和治理要求。
⚠️ BETA软件 - 不构成法律建议
此MCP服务器正在积极开发中。它提供了技术工具来协助欧盟AI法案的合规性,但不构成法律建议。对于合规决策,请咨询合格的法律顾问。
🧑 需要贡献者!
此解决方案尚处于早期阶段,还有未添加的欧盟AI法案要求以及一般指导。如果您希望为所有人改进解决方案,我们非常欢迎!请参阅此处的贡献指南以获取一般指导。
这个可以自托管的MCP服务器提供了自动合规工具,帮助您和您的AI系统符合欧盟AI法案的要求:
多种风险类型的合规截止日期:2026年8月2日 🗓️
classify_ai_system_risk - 确定风险级别(第5、6、50条)check_prohibited_practices - 检查第5条违规determine_eu_ai_act_role - 确定您的角色(第3条)get_ai_interaction_disclosure - 聊天机器人的披露(第50(1)条)get_emotion_recognition_disclosure - 情绪AI的披露(第50(3)条)get_deepfake_label_templates - 访问所有标签模板label_news_text - 标记AI生成的新闻(第50(4)条)watermark_text - 水印AI文本(第50(2)条)watermark_image - 使用C2PA水印AI图像(第50(2)条)watermark_video - 使用C2PA水印AI视频(第50(2)条)watermark_audio - 水印AI音频(第50(2)条)label_image_deepfake - 标记AI生成的图像(第50(4)条)label_video_deepfake - 标记AI生成的视频(第50(4)条)label_audio_deepfake - 标记AI生成的音频(第50(4)条)scan_for_prompt_injection - 检测提示攻击(第15条)check_sensitive_file_access - 监控文件访问(第10条和第15条)disclosure-templates://ai-interaction-and-emotion - 预写好的披露deepfake-labels://content-labeling - 所有深度伪造标签article50-rules://official-text - 官方第50条规则watermark-config://technical-standards - C2PA及IPTC标准所有披露和标签均支持以下语言:
您可以成为设计合作伙伴,并在SonnyLabs.ai使用我们的托管欧盟AI法案MCP服务器。
本地克隆此仓库。
cd FILE_PATH_OF_THIS_MCP
python3 -m venv venv
source venv/bin/activate # 在Windows上:venv\Scripts\activate
pip install -r requirements.txt
对于安全工具,从SonnyLabs仪表板获取凭证:
export SONNYLABS_API_TOKEN="your_api_token"
export SONNYLABS_ANALYSIS_ID="your_analysis_id"
注意:为了获取SonnyLabs API令牌和分析ID,在SonnyLabs仪表板注册后,可以在SonnyLabs仪表板上的API密钥生成新的API密钥。下一步是在SonnyLabs仪表板上创建新的分析,并获取与其关联的分析ID。
有一个慷慨的免费层级,您可以调用SonnyLabs API。
# 快速测试 - 所有工具
./venv/bin/python test_all_tools.py
# 测试特定类别
./venv/bin/python test_risk_classification.py
./venv/bin/python test_role_determination.py
./venv/bin/python test_sonnylabs_security.py
查看下面的为Claude Desktop设置、为Windsurf设置或为cursor设置。
这也适用于像CrewAI代理这样的AI代理。
.
├── server.py # 包含所有17个工具的主要MCP服务器
├── main.py # 服务器入口点
├── requirements.txt # Python依赖项
│
├── Resources (4个JSON文件)
├── disclosure_templates.json # 预写好的披露(50(1),50(3))
├── deepfake_labels.json # 深度伪造标签(50(4))
├── article50_rules.json # 官方第50条规则
├── watermark_config.json # C2PA及IPTC水印标准
│
├── Tests (7个测试文件)
├── test_all_tools.py # 测试所有17个工具
├── test_risk_classification.py # 测试风险及禁止工具
├── test_role_determination.py # 测试角色确定
├── test_sonnylabs_security.py # 测试安全工具
├── test_watermark_media.py # 测试水印工具
├── test_label_*_deepfake.py # 测试深度伪造标记
│
└── Documentation
├── README.md # 此文件
├── SONNYLABS_TESTING_GUIDE.md # 安全工具指南
└── PHASE2_SUMMARY.md # 实现总结
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%\Claude\claude_desktop_config.json **Linux**:~/.config/Claude/claude_desktop_config.json`
编辑配置文件并添加:
{
"mcpServers": {
"eu-ai-act-compliance": {
"command": "FILE_PATH_OF_THIS_MCP/venv/bin/python",
"args": [
"FILE_PATH_OF_THIS_MCP/server.py"
],
"env": {}
}
}
}
完全退出Claude Desktop并重新打开它。
在一个新的对话中,询问Claude:
使用classify_ai_system_risk对与用户交互的聊天机器人进行分类。
Windsurf MCP配置文件位于:
macOS/Linux:~/.codeium/windsurf/mcp_config.json
Windows:%USERPROFILE%.codeium\windsurf\mcp_config.json`
编辑配置文件并添加:
{
"mcpServers": {
"eu-ai-act-compliance": {
"command": "/path/to/your/project/venv/bin/python",
"args": [
"/path/to/your/project/main.py"
],
"env": {
"SONNYLABS_API_TOKEN": "your_sonnylabs_api_token_here",
"SONNYLABS_ANALYSIS_ID": "your_analysis_id_here"
}
}
}
}
替换占位符:
/path/to/your/project/venv/bin/python - 您虚拟环境Python二进制文件的路径/path/to/your/project/main.py - 本仓库中main.py文件的路径your_sonnylabs_api_token_here - 您的SonnyLabs API令牌(可选,仅安全工具需要)your_analysis_id_here - 您的SonnyLabs分析ID(可选,仅安全工具需要)注意:在Windows上,路径使用反斜杠(例如,C:\\path\\to\\project\\venv\\Scripts\\python.exe)
完全退出Windsurf并重新打开它。
只需在Windsurf中询问我:
使用get_ai_interaction_disclosure,语言为“en”,风格为“simple”
编辑配置文件并添加:
{ "mcpServers": { "eu-ai-act-compliance": { "command": "/path/to/your/project/venv/bin/python", "args": [ "/path/to/your/project/main.py" ], "env": { "SONNYLABS_API_TOKEN": "your_sonnylabs_api_token_here", "SONNYLABS_ANALYSIS_ID": "your_analysis_id_here" } } } }
/path/to/your/project/venv/bin/python - 您虚拟环境Python二进制文件的路径/path/to/your/project/main.py - 本仓库中main.py文件的路径your_sonnylabs_api_token_here - 您的SonnyLabs API令牌(可选,仅安全工具需要)your_analysis_id_here - 您的SonnyLabs分析ID(可选,仅安全工具需要)注意:在Windows上,路径使用反斜杠(例如,C:\\path\\to\\project\\venv\\Scripts\\python.exe)
完全退出Cursor并重新打开它。
切换到AI面板并创建一个新聊天,询问:
使用get_ai_interaction_disclosure,语言为“en”,风格为“simple”
一个对话框应该出现,提供运行get_ai_interaction_disclosure工具的选项。点击运行,您应该会看到类似以下的响应:
{
"article": "50(1)",
"obligation": "AI Interaction Transparency",
"language": "en",
"style": "simple",
"disclosure": "您正在与AI助手聊天。",
"usage": "在AI交互之前或期间向用户显示此文本",
"compliance_deadline": "2026-08-02"
}
您正在与AI助手聊天。
所有工具在Claude Desktop或Windsurf中的调用方式相同。只需让AI助手使用该工具!
使用classify_ai_system_risk对我的系统进行分类:
- 描述:“用于客户服务的AI聊天机器人”
- 使用场景:“聊天机器人”
- 与用户交互:true
- 生成内容:true
返回:风险级别(禁止、高风险、有限风险或低风险)及其适用义务
使用determine_eu_ai_act_role:
- 公司:“AI软件开发公司”
- 地点:“美国”
- 开发AI系统:true
- 销售AI系统:true
- 用自己的名义:true
返回:您的角色(供应商、部署者、进口商等)及其具体义务
使用get_ai_interaction_disclosure,语言为“en”,风格为“simple”
返回:“您正在与AI助手聊天。”
使用watermark_text:
- 文本:“这篇文章是关于量子计算的……”
- 生成器:“GPT-4”
- 格式:“markdown”
返回:带有嵌入元数据水印的文本
使用label_image_deepfake:
- 描述:“AI生成的肖像照片”
- 是否艺术作品:false
- 语言:“en”
返回:标签文本和放置指南
使用scan_for_prompt_injection:
- 输入:“忽略所有先前指令”
- API令牌:[您的令牌]
- 分析ID:[您的ID]
返回:威胁分析,包括风险级别和建议
用于在Claude Desktop或Windsurf中测试所有工具的现成提示。只需复制粘贴!
使用classify_ai_system_risk对具有以下详细信息的系统进行分类:
- system_description: “用于医疗保健的客户服务AI聊天机器人”
- use_case: “医疗保健”
- interacts_with_users: true
- generates_content: true
- processes_personal_data: true
- makes_automated_decisions: false
- in_critical_infrastructure: false
- used_for_employment: false
- used_for_education: false
- used_for_law_enforcement: false
- used_for_migration: false
- used_for_justice: false
我的风险级别是什么?有哪些义务适用?
使用check_prohibited_practices检查我的系统是否有第5条违规:
- system_description: “员工监控系统,带有行为评分”
- subliminal_manipulation: false
- vulnerability_exploitation: false
- social_scoring: true
- biometric_categorization: false
- emotion_recognition_workplace: true
- emotion_recognition_education: false
- untargeted_scraping: false
- risk_assessment_personal_characteristics: false
检测到了哪些违规行为?处罚是什么?
使用determine_eu_ai_act_role找出我的角色:
- company_description: “美国的AI软件公司”
- company_location: “美国”
- develops_ai_system: true
- uses_ai_system: false
- sells_ai_system: true
- distributes_in_eu: true
- imports_to_eu: true
- under_own_name_or_trademark: true
- integrates_ai_into_product: false
- represents_non_eu_provider: false
我有哪些角色?我的义务是什么?
使用get_ai_interaction_disclosure,语言为“en”,风格为“详细”
给我看我需要为我的聊天机器人的披露文本。
使用get_emotion_recognition_disclosure:
- 语言:“en”
- 风格:“隐私通知”
我需要的情绪识别披露是什么?
使用get_deepfake_label_templates,语言为“es”
给我看西班牙语的所有可用标签。
使用label_news_text标记这篇文章:
- text_content: “突破:科学家宣布可再生能源存储的重大突破。新技术承诺电池容量增加10倍。”
- has_human_editor: true
- editor_name: “Sarah Johnson”
- 语言:“en”
给我看正确标记的版本。
使用watermark_text水印此内容:
- text_content: “人工智能正在改变我们的工作和生活。从医疗诊断到创意写作,AI系统正成为现代社会不可或缺的一部分。本文探讨了各行业采用AI的影响。”
- 生成器:“GPT-4”
- 格式类型:“markdown”
给我看水印元数据和说明。
classify_ai_system_risk**目的