MCP上下文管理服务器添加福利群:解决AI开发者的「MCP实战痛点」一个模型上下文协议服务器,通过 Apache Unomi 的配置文件管理功能使 Claude 能够维护用户上下文。
⚠️ 早期实现通知
这是一个用于演示目的的早期实现:
- 尚未验证可用于生产环境
- 可能会有所更改
- 尚未(目前)得到官方支持
- 仅用于学习和实验
此实现提供:
其他 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。然后,您可以点击聊天窗口右下角的工具图标,以确保它已找到该服务器提供的所有工具。
get_my_profile - 使用环境变量获取您的个人资料
update_my_profile - 更新您的个人资料属性
{
"properties": {
"firstName": "John",
"age": 30,
"isSubscribed": true,
"oldProperty": null
}
}

get_profile - 通过 ID 检索特定的个人资料
search_profiles - 搜索个人资料
create_scope - 创建一个新的 Unomi 范围
{
"scope": "my-app",
"name": "My Application",
"description": "Scope for my application events"
}

服务器自动为您管理范围:
默认范围:
claude-desktop自定义范围:
create_scope 工具创建自动范围创建:
注意:虽然在需要时会自动创建范围,但您仍然可以使用
create_scope工具手动创建具有自定义名称和描述的范围。
此 MCP 服务器使 Claude 能够通过 Apache 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:
电子邮件查找(如果设置了 UNOMI_EMAIL):
备用用户画像 ID:
UNOMI_EMAILUNOMI_PROFILE_ID响应将通过 source 字段指示使用了哪种方法:
"email_lookup":通过电子邮件找到的用户画像"environment":使用备用用户画像 ID在 etc/org.apache.unomi.cluster.cfg 中配置受保护事件:
# 受保护事件(如属性更新)所需
org.apache.unomi.cluster.authorization.key=your-unomi-key
# 允许 Claude Desktop 访问 Unomi 所需
# 将 your-claude-desktop-ip 替换为实际 IP
org.apache.unomi.ip.ranges=127.0.0.1,::1,your-claude-desktop-ip

确保你的 Unomi 服务器在 etc/org.apache.unomi.cors.cfg 中正确配置了 CORS:
# 如有需要,添加你的 Claude Desktop 源
org.apache.unomi.cors.allowed.origins=http://localhost:*

重启 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:
电子邮件查找(如果设置了 UNOMI_EMAIL):
备用用户画像 ID:
UNOMI_EMAILUNOMI_PROFILE_ID响应将通过 source 字段指示使用了哪种方法:
"email_lookup":通过电子邮件找到的用户画像"environment":使用备用用户画像 ID在 etc/org.apache.unomi.cluster.cfg 中配置受保护的事件:
# 对于属性更新等受保护的事件是必需的
org.apache.unomi.cluster.authorization.key=your-unomi-key
# 允许 Claude Desktop 访问 Unomi 所需
# 请将 your-claude-desktop-ip 替换为您的实际 IP 地址
org.apache.unomi.ip.ranges=127.0.0.1,::1,your-claude-desktop-ip

确保您的 Unomi 服务器在 etc/org.apache.unomi.cors.cfg 中正确配置了 CORS:
# 如有需要,请添加您的 Claude Desktop 源
org.apache.unomi.cors.allowed.origins=http://localhost:*

重启 Unomi 服务器以应用更改
重要:Unomi 密钥必须在您的服务器配置和 Claude Desktop 中的 UNOMI_KEY 环境变量之间完全匹配。
安装依赖项:
npm install
构建服务器:
npm run build
对于带有自动重建的开发:
npm run watch
由于 MCP 服务器通过 stdio 进行通信,调试可能会比较困难。我们建议使用 MCP Inspector,它作为一个包脚本提供:
npm run inspector
Inspector 将提供一个 URL,您可以在浏览器中访问调试工具。
您还可以跟踪 Claude Desktop 的日志来查看 MCP 请求和响应:
# Follow logs in real-time
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log

当使用 get_my_profile 时,会话 ID 会自动生成,格式如下:
[profileId]-YYYYMMDD
例如,如果您的个人资料 ID 是 "user123" 且今天是 2024 年 3 月 15 日,则会话 ID 为:
user123-20240315
受保护的事件失败
找不到个人资料
会话问题
profileId-YYYYMMDD连接问题
Claude Desktop 日志:
# MacOS
~/Library/Logs/Claude/mcp*.log
# Windows
%APPDATA%\Claude\mcp*.log

Unomi 服务器日志:
# 通常位于
$UNOMI_HOME/logs/karaf.log

重置状态:
# 停止 Claude Desktop
# 清除日志
rm ~/Library/Logs/Claude/mcp*.log
# 重启 Claude Desktop

验证配置:
# 检查 Unomi 连接
curl -u username:password http://your-unomi-server:8181/cxs/cluster
# 测试范围是否存在
curl -u username:password http://your-unomi-server:8181/cxs/scopes/claude-desktop

创建或编辑你的 Claude Desktop 配置文件:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%/Claude/claude_desktop_config.json使用 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 ...
}
}
}
}
