用途
Inoyu Apache Unomi MCP Server 是一个模型上下文协议(MCP)服务器,旨在让 Claude 通过 Apache Unomi CDP(客户数据平台)维护用户上下文和进行档案管理。它使 Claude 能够在对话中识别用户、保持跨会话的用户上下文,并管理用户同意偏好。
主要能力
- 用户识别:通过电子邮件或档案 ID 跨对话识别用户,自动创建和管理用户档案。
- 档案管理:支持档案查找与创建、档案属性管理、基本会话处理以及用于上下文隔离的 scope 管理。
- 同意管理:提供工具来更新、获取和列出用户同意,支持 GDPR 合规的同意过期处理。
- 集成特性:与 Claude Desktop 无缝集成,自动会话管理,基于 scope 的上下文隔离。
可用工具
get_my_profile:使用环境变量获取个人档案,自动生成基于日期的会话 ID,可选参数包括是否包含细分(segments)和评分(scores)。update_my_profile:更新个人档案属性,接受键值对对象,支持字符串、数字、布尔值和 null 值。get_profile:通过 ID 获取特定档案,返回完整档案数据。search_profiles:搜索档案,支持按 query 字符串及可选 limit/offset 参数,在 firstName、lastName 和 email 字段中搜索。create_scope:创建新的 Unomi scope,接受 scope 标识符及可选名称/描述。get_tenant_info:获取当前租户信息(仅 V3),返回租户详情、版本信息和密钥状态。update_consent:使用 modifyConsent 事件更新用户同意状态,必需参数为 consentId 和 status(GRANTED、DENIED 或 REVOKED),可选参数包括 typeIdentifier、scope 和 metadata。get_consent:获取特定同意信息,必需参数为 consentId,返回状态、时间戳和元数据。list_consents:列出档案的所有同意,支持按 profileId、status 和 scope 过滤。
使用方式
该服务器需与 Claude Desktop 配合使用。在 Claude Desktop 配置文件中添加服务器配置和环境变量:
- MacOS:~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:%APPDATA%/Claude/claude_desktop_config.json
在配置的 env 部分设置服务器所需的环境变量,需替换为实际的 Unomi 服务器详情。更新配置后重启 Claude Desktop,然后点击聊天窗口右下角的工具图标以确认服务器提供的所有工具已被发现。
环境变量
服务器需要以下环境变量(具体变量名请参考仓库文档):
- 对于 V2 认证:需要 UNOMI_USERNAME、UNOMI_PASSWORD 和 UNOMI_KEY。
- 对于 V3 认证:需要 UNOMI_TENANT_ID、UNOMI_PUBLIC_KEY 和 UNOMI_PRIVATE_KEY。
- 还可设置 UNOMI_VERSION(=2 或 =3,默认 3)、UNOMI_EMAIL、UNOMI_PROFILE_ID 等。
档案解析
服务器使用两步过程解析档案 ID:
- 电子邮件查找(如果设置了 UNOMI_EMAIL):搜索匹配电子邮件的档案,若找到则使用该档案的 ID。
- 后备档案 ID:如果电子邮件查找失败或未设置 UNOMI_EMAIL,则使用环境变量中的 UNOMI_PROFILE_ID。响应中的 source 字段会指示使用的方法("email_lookup" 或 "environment")。
Unomi 服务器配置
在 etc/org.apache.unomi.cluster.cfg 中配置受保护事件:
- 设置 org.apache.unomi.cluster.authorization.key 为你的 Unomi 密钥。
- 设置 org.apache.unomi.ip.ranges 以包含 Claude Desktop 的 IP 地址。
适用场景
- 希望 Claude 跨对话记住用户偏好。
- 存储和检索用户特定信息。
- 通过电子邮件识别管理多个用户。
- 跟踪和管理用户同意偏好,符合 GDPR、CCPA 等隐私法规。
- 实时更新同意状态并查询同意历史。
限制
- 这是一个早期实现,主要用于演示目的:未经生产使用验证,可能发生变更,尚未获得官方支持,仅用于学习和实验。
- 目前未实现 Unomi 的其他功能,如事件、细分、会话属性等。
- 需要预先运行 Apache Unomi 服务器、安装 Claude Desktop,并具备对 Unomi 服务器的网络访问权限。
- 需要适当的安全配置和所需的环境变量。
版本兼容性
支持 Apache Unomi V2 和 V3,具有自动版本检测和相应认证方式:
- V2:使用系统管理员认证(默认 karaf/karaf),所有操作使用相同认证方法。
- V3(多租户):使用基于租户的认证和 API 密钥。公共端点使用 X-Unomi-Api-Key 头与公钥,私有端点使用租户认证(tenantId:privateKey),系统操作回退到系统管理员认证。
从 V2 迁移到 V3 需要更新环境变量,移除 V2 特定变量并添加 V3 特定变量。V3 提供租户间完全数据隔离、增强的安全性、更好的可扩展性和改进的数据隐私合规性。
Scope 管理
服务器自动管理 scope:默认 scope 为 claude-desktop,用于所有操作,按需自动创建。可以使用 create_scope 工具创建自定义 scope,用于分隔不同应用程序或上下文,但在用于档案操作前必须存在。服务器会检查所需 scope 是否存在,若缺失则自动创建。