Inoyu Apache Unomi MCP Server

by sergehuber

Integrations

  • Integrates with Apache Unomi for user profile management and context storage, enabling Claude to maintain user context through Apache Unomi's profile management system

Inoyu Apache Unomi MCP 服务器

模型上下文协议服务器使 Claude 能够通过 Apache Unomi 配置文件管理维护用户上下文。

⚠️提前实施通知

这是用于演示目的的早期实现:

  • 未经生产用途验证
  • 如有更改,恕不另行通知
  • 尚未获得官方支持
  • 仅供学习和实验

当前范围

此实现提供:

  • 使用电子邮件查找和创建个人资料
  • 简介物业管理
  • 基本会话处理
  • 上下文隔离的范围管理

Unomi 的其他功能(例如事件、细分、会话属性等)目前尚未实现。欢迎社区就未来的开发重点提供反馈。

演示

观看 MCP 服务器如何帮助 Claude 维护上下文并管理用户配置文件:

安装

要与 Claude Desktop 一起使用,请添加服务器配置和环境变量:

在 MacOS 上: ~/Library/Application Support/Claude/claude_desktop_config.json在 Windows 上: %APPDATA%/Claude/claude_desktop_config.json

{ "mcpServers": { "unomi-server": { "command": "npx", "args": ["@inoyu/mcp-unomi-server"], "env": { "UNOMI_BASE_URL": "http://your-unomi-server:8181", "UNOMI_USERNAME": "your-username", // by default Apache Unomi uses karaf "UNOMI_PASSWORD": "your-password", // by default Apache Unomi uses karaf "UNOMI_PROFILE_ID": "your-profile-id", "UNOMI_KEY": "your-unomi-key", // by default Apache Unomi uses 670c26d1cc413346c3b2fd9ce65dab41 "UNOMI_EMAIL": "your-email@example.com", "UNOMI_SOURCE_ID": "claude-desktop" } } } }

配置中的env部分允许您设置服务器所需的环境变量。请将值替换为您的实际 Unomi 服务器详细信息。

更新配置后,请务必重新启动 Claude Desktop。然后,您可以点击聊天窗口右下角的工具图标,以确保它已找到此服务器提供的所有工具。

特征

个人资料访问

  • 通过电子邮件查找并自动创建个人资料
  • 配置文件属性、段和分数访问
  • 所有数据交换均采用 JSON 格式
  • 使用基于日期的 ID 进行自动会话管理

工具

  • get_my_profile - 使用环境变量获取您的个人资料
    • 使用来自环境或电子邮件查找的 UNOMI_PROFILE_ID
    • 根据当前日期自动生成会话 ID
    • 可选参数:
      • requireSegments:包含段信息
      • requireScores:包含评分信息
  • update_my_profile - 更新您的个人资料属性
    • 使用来自环境或电子邮件查找的 UNOMI_PROFILE_ID
    • 采用带有键值对的属性对象进行更新
    • 支持字符串、数字、布尔值和空值
    • 例子:
      { "properties": { "firstName": "John", "age": 30, "isSubscribed": true, "oldProperty": null } }
  • get_profile - 通过 ID 检索特定配置文件
    • 将 profileId 作为必需参数
    • 从 Unomi 返回完整的个人资料数据
  • search_profiles - 搜索个人资料
    • 采用查询字符串和可选的限制/偏移参数
    • 搜索 firstName、lastName 和 email 字段
  • create_scope - 创建一个新的 Unomi 范围
    • 采用范围标识符和可选名称/描述
    • 事件跟踪和配置文件更新所必需的
    • 例子:
      { "scope": "my-app", "name": "My Application", "description": "Scope for my application events" }

范围管理

服务器自动为您管理范围:

  1. 默认范围:
    • 所有操作均使用默认范围claude-desktop
    • 需要时自动创建
    • 用于个人资料更新和事件跟踪
  2. 自定义范围:
    • 可以使用create_scope工具创建
    • 有助于分离不同的应用程序或上下文
    • 在配置文件操作中使用之前必须存在
  3. 自动范围创建:
    • 服务器检查所需范围是否存在
    • 如果缺失,则自动创建
    • 对范围元数据使用有意义的默认值

注意:虽然范围在需要时会自动创建,但您仍然可以使用create_scope工具以自定义名称和描述手动创建它们。

概述

此 MCP 服务器使 Claude 能够通过 Apache Unomi 的配置文件管理系统维护用户上下文。您可以使用它实现以下功能:

关键功能

  1. 用户识别
    • 使用电子邮件或个人资料 ID 在对话中识别用户
    • 在会话之间保持一致的用户上下文
    • 自动创建和管理用户配置文件
  2. 上下文管理
    • 存储和检索用户偏好
  3. 集成功能
    • 无缝 Claude Desktop 集成
    • 自动会话管理
    • 基于范围的上下文隔离

您可以做什么

  • 让 Claude 记住对话中的用户偏好
  • 存储和检索用户特定信息
  • 保持一致的用户上下文
  • 通过电子邮件识别管理多个用户

先决条件

  • 运行 Apache Unomi 服务器
  • Claude桌面安装
  • 通过网络访问 Unomi 服务器
  • 适当的安全配置
  • 必需的环境变量

配置

环境变量

服务器需要以下环境变量:

UNOMI_BASE_URL=http://your-unomi-server:8181 UNOMI_USERNAME=your-username UNOMI_PASSWORD=your-password UNOMI_PROFILE_ID=your-profile-id UNOMI_SOURCE_ID=your-source-id UNOMI_KEY=your-unomi-key UNOMI_EMAIL=your-email

配置文件解析

服务器使用两步流程来解析配置文件 ID:

  1. 电子邮件查找(如果设置了UNOMI_EMAIL ):
    • 搜索具有匹配电子邮件的个人资料
    • 如果找到,则使用该配置文件的 ID
    • 有助于在会话之间保持一致的配置文件
  2. 后备配置文件 ID:
    • 如果电子邮件查找失败或未设置UNOMI_EMAIL
    • 使用环境中的UNOMI_PROFILE_ID
    • 确保配置文件始终可用

响应将通过source字段指示使用了哪种方法:

  • "email_lookup" :通过电子邮件找到的个人资料
  • "environment" :使用后备配置文件 ID

Unomi 服务器配置

  1. etc/org.apache.unomi.cluster.cfg中配置受保护的事件:
    # Required for protected events like property updates org.apache.unomi.cluster.authorization.key=your-unomi-key # Required to allow Claude Desktop to access Unomi # Replace your-claude-desktop-ip with your actual IP org.apache.unomi.ip.ranges=127.0.0.1,::1,your-claude-desktop-ip
  2. 确保您的 Unomi 服务器在etc/org.apache.unomi.cors.cfg中正确配置了 CORS:
    # Add your Claude Desktop origin if needed org.apache.unomi.cors.allowed.origins=http://localhost:*
  3. 重新启动 Unomi 服务器以应用更改

重要提示:Unomi 密钥必须与您的服务器配置和 Claude Desktop 中的 UNOMI_KEY 环境变量完全匹配。

配置

环境变量

服务器需要以下环境变量:

UNOMI_BASE_URL=http://your-unomi-server:8181 UNOMI_USERNAME=your-username UNOMI_PASSWORD=your-password UNOMI_PROFILE_ID=your-profile-id UNOMI_SOURCE_ID=your-source-id UNOMI_KEY=your-unomi-key UNOMI_EMAIL=your-email

配置文件解析

服务器使用两步流程来解析配置文件 ID:

  1. 电子邮件查找(如果设置了UNOMI_EMAIL ):
    • 搜索具有匹配电子邮件的个人资料
    • 如果找到,则使用该配置文件的 ID
    • 有助于在会话之间保持一致的配置文件
  2. 后备配置文件 ID:
    • 如果电子邮件查找失败或未设置UNOMI_EMAIL
    • 使用环境中的UNOMI_PROFILE_ID
    • 确保配置文件始终可用

响应将通过source字段指示使用了哪种方法:

  • "email_lookup" :通过电子邮件找到的个人资料
  • "environment" :使用后备配置文件 ID

Unomi 服务器配置

  1. etc/org.apache.unomi.cluster.cfg中配置受保护的事件:
    # Required for protected events like property updates org.apache.unomi.cluster.authorization.key=your-unomi-key # Required to allow Claude Desktop to access Unomi # Replace your-claude-desktop-ip with your actual IP org.apache.unomi.ip.ranges=127.0.0.1,::1,your-claude-desktop-ip
  2. 确保您的 Unomi 服务器在etc/org.apache.unomi.cors.cfg中正确配置了 CORS:
    # Add your Claude Desktop origin if needed org.apache.unomi.cors.allowed.origins=http://localhost:*
  3. 重新启动 Unomi 服务器以应用更改

重要提示:Unomi 密钥必须与您的服务器配置和 Claude Desktop 中的 UNOMI_KEY 环境变量完全匹配。

发展

安装依赖项:

npm install

构建服务器:

npm run build

对于使用自动重建的开发:

npm run watch

调试

由于 MCP 服务器通过 stdio 进行通信,调试起来可能比较困难。我们推荐使用MCP Inspector ,它以包脚本的形式提供:

npm run inspector

检查器将提供一个 URL 来访问浏览器中的调试工具。

您还可以跟踪 Claude Desktop 日志来查看 MCP 请求和响应:

# Follow logs in real-time tail -n 20 -f ~/Library/Logs/Claude/mcp*.log

会话 ID 格式

使用get_my_profile时,会话 ID 将使用以下格式自动生成:

[profileId]-YYYYMMDD

例如,如果您的个人资料 ID 是“user123”,并且今天是 2024 年 3 月 15 日,则会话 ID 将为:

user123-20240315

故障排除

常见问题

  1. 受保护事件失败
    • 验证 Unomi 密钥在两个配置中完全匹配
    • 检查 IP 地址是否正确列入白名单
    • 更新属性之前确保范围存在
    • 如果需要,请验证 CORS 配置
  2. 未找到个人资料
    • 检查 UNOMI_EMAIL 是否正确设置
    • 验证电子邮件格式是否有效
    • 确保配置文件存在于 Unomi 中
    • 检查后备 UNOMI_PROFILE_ID 是否有效
  3. 会话问题
    • 请记住,会议是基于日期的
    • 每个个人资料每天仅限一次会话
    • 检查会话 ID 格式是否与profileId-YYYYMMDD匹配
    • 验证会话的范围是否存在
  4. 连接问题
    • 验证 Unomi 服务器是否正在运行
    • 检查网络连接
    • 确保 UNOMI_BASE_URL 正确
    • 验证身份验证凭据

要检查的日志

  1. Claude 桌面日志
    # MacOS ~/Library/Logs/Claude/mcp*.log # Windows %APPDATA%\Claude\mcp*.log
  2. Unomi 服务器日志
    # Usually in $UNOMI_HOME/logs/karaf.log

快速修复

  1. 重置状态
    # Stop Claude Desktop # Clear logs rm ~/Library/Logs/Claude/mcp*.log # Restart Claude Desktop
  2. 验证配置
    # Check Unomi connection curl -u username:password http://your-unomi-server:8181/cxs/cluster # Test scope exists curl -u username:password http://your-unomi-server:8181/cxs/scopes/claude-desktop

Claude 桌面配置选项

  1. 创建或编辑您的 Claude Desktop 配置:
    • MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%/Claude/claude_desktop_config.json
  2. 使用 NPX 添加服务器配置:
    { "mcpServers": { "unomi-server": { "command": "npx", "args": ["@inoyu/mcp-unomi-server"], "env": { "UNOMI_BASE_URL": "http://your-unomi-server:8181", "UNOMI_USERNAME": "your-username", "UNOMI_PASSWORD": "your-password", "UNOMI_PROFILE_ID": "your-profile-id", "UNOMI_KEY": "your-unomi-key", "UNOMI_EMAIL": "your-email@example.com", "UNOMI_SOURCE_ID": "claude-desktop" } } } }

注意:使用 NPX 可确保您始终运行服务器的最新发布版本。

或者,如果您想使用特定版本:

{ "mcpServers": { "unomi-server": { "command": "npx", "args": ["@inoyu/mcp-unomi-server@0.1.0"], "env": { // ... environment variables ... } } } }

对于开发或本地安装:

{ "mcpServers": { "unomi-server": { "command": "node", "args": ["/path/to/local/mcp-unomi-server/build/index.js"], "env": { // ... environment variables ... } } } }
-
security - not tested
A
license - permissive license
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

模型上下文协议服务器使 Claude 能够通过 Apache Unomi 配置文件管理维护用户上下文。

  1. Current Scope
    1. Demo
      1. Installation
        1. Features
          1. Profile Access
          2. Tools
          3. Scope Management
        2. Overview
          1. Key Capabilities
          2. What You Can Do
          3. Prerequisites
        3. Configuration
          1. Environment Variables
          2. Profile Resolution
          3. Unomi Server Configuration
        4. Configuration
          1. Environment Variables
          2. Profile Resolution
          3. Unomi Server Configuration
        5. Development
          1. Debugging
          2. Session ID Format
        6. Troubleshooting
          1. Common Issues
          2. Logs to Check
          3. Quick Fixes
          4. Claude Desktop Configuration options
        ID: cot5p3ud7z