SiteMinder人工智能助手-MCP集成
使用Claude AI完成端到端应用程序,演示MCP(模型上下文协议)与SiteMinder策略服务器的集成。
🌐 快速访问
应用程序正在以下位置运行:
- 本地服务器: http://localhost:8080
- 网络: http://YOUR_SERVER_IP:8080
📖 看 QUICKSTART.md 了解详细的访问说明。
建筑
User → Web UI (Frontend) → Backend API Server → Claude API
↓
MCP Client
↓
MCP Server → SiteMinder Policy Server (REST API)组件
1.MCP服务器(mcp-server/)
- 将SiteMinder功能作为MCP工具公开
- 提供12个工具:
- list_user_directories -列出所有用户目录 - get_user_directory -获取特定用户目录详细信息 - list_domains -列出所有域 - get_domain -获取特定域详细信息 - list_agents -列出所有策略服务器代理 - get_agent -获取特定代理详细信息 - list_realms -列出所有领域 - get_realm -获取特定领域的详细信息 - get_system_health -检查系统运行状况 - get_audit_logs -获取审核日志 - get_active_sessions -获取活动会话 - terminate_session -终止用户会话
2.后端服务器(backend/)
- Express.js API服务器
- 连接到Claude API
- 生成MCP服务器作为子进程
- 处理来自前端的聊天请求
3.前端用户界面(frontend/)
- 简单的HTML/CSS/JS界面
- 聊天式界面
- 与后端实时通信
安装
先决条件
- Node.js 18+
- SiteMinder策略服务器正在运行(可在以下网址访问https://casso.cx.anapartner.net)
- 无烟煤API键
快速开始
- 环境已配置 在
.env文件
- 启动所有服务:
./start-all.sh这将:
- 安装依赖项(如果需要)
- 启动后端服务器(端口3000)
- 启动MCP服务器(自动)
- 启动前端服务器(端口8080)
- 使用日志在后台运行所有内容
- 打开浏览器: http://localhost:8080
管理脚本
检查服务状态:
./status.sh停止所有服务:
./stop-all.sh查看日志:
tail -f logs/backend.log # Backend + MCP server logs
tail -f logs/frontend.log # Frontend server logs运作原理
- 用户提问 在web UI中:
- “列出所有用户目录”
- 前端 向后端发送请求:
POST /api/chat
{ "message": "List all user directories" }- 后端 使用可用的MCP工具转发给Claude:
- 克劳德理解这个请求 - 决定致电 list_user_directories 工具
- 后端 通过stdio调用MCP服务器:
- MCP服务器执行SiteMinder REST API调用 - 返回结果
- 克劳德 处理结果并生成响应
- 后端 向前端返回格式化响应
- 前端 向用户显示响应
交互示例
示例1:列出用户目录
用户: “列出所有用户目录”
流量:
- 克劳德打电话来
list_user_directories工具 - MCP服务器调用SiteMinder REST API
/ca/api/sso/services/policy/v1/userdirectories - Claude为用户格式化响应
示例2:系统健康状况
用户: “检查系统运行状况”
流量:
- 克劳德打电话来
get_system_health工具 - MCP服务器调用SiteMinder
/adminui/api/health - 克劳德介绍健康状况
示例3:列出域
用户: “显示所有域”
流量:
- 克劳德打电话来
list_domains工具 - MCP服务器调用
/ca/api/sso/services/policy/v1/domains - Claude以可读格式显示域
配置
SiteMinder连接
编辑 .env 文件:
SITEMINDER_BASE_URL=https://casso.cx.anapartner.net
SITEMINDER_USER=siteminder
SITEMINDER_PASSWORD=anaPassword01无烟煤API
ANTHROPIC_API_KEY=your-api-key-here从外部网络访问
应用程序配置为在所有接口(0.0.0.0)上侦听:
- 本地: http://localhost:8080
- 网络: http://YOUR_SERVER_IP:8080
API 参考
后端端点
POST/api/聊天
与Claude讨论SiteMinder
请求:
{
"message": "List all domains",
"conversationHistory": []
}答复:
{
"response": "Here are the domains...",
"conversationHistory": [...]
}GET/api/健康
检查后端和MCP状态
答复:
{
"status": "ok",
"mcpConnected": true,
"availableTools": ["list_user_directories", "get_domain", ...]
}调试模式
通过以下方式在UI中启用调试模式:
- 点击“🐛 调试”切换按钮
- 发送您的消息
- 查看详细的MCP工具调用和响应
安全说明
⚠️ 重要安全注意事项:
- MCP服务器:内部运行,不暴露于互联网
- API密钥:从不将API密钥提交到git
- 超文本传输安全协议:SiteMinder API使用自签名证书(拒绝授权:false)
- 认证:在生产环境中配置正确的身份验证
- 网络:使用防火墙规则限制访问
故障排除
后端无法启动
- 检查
ANTHROPIC_API_KEY已设置.env - 验证Node.js版本(18+)
- 检查日志:
tail -f logs/backend.log
MCP工具不工作
- 验证SiteMinder是否可访问
- 检查凭据(站点识别用户/站点识别密码)
- 手动测试SiteMinder:
curl -k -u siteminder:anaPassword01 https://casso.cx.anapartner.net/
前端无法连接
- 确保后端在端口3000上运行
- 检查
./status.sh - 打开浏览器控制台查看错误
端口已在使用中
- 停止现有服务:
./stop-all.sh - 检查端口的使用情况:
lsof -i :3000或lsof -i :8080
系统信息
- 后端端口: 3000
- 前端端口: 8080
- SiteMinder URL:在.env文件中配置
后续步骤
- 添加更多MCP工具(创建/更新操作)
- 实现前端用户身份验证
- 添加对话持久性
- 创建更复杂的UI
- 添加实时通知
- 实施基于角色的访问控制
支持
有关问题或疑问,请查看:
- SiteMinder文档:https://techdocs.broadcom.com/
- MCP文件:https://modelcontextprotocol.io/
- 人类学文献:https://docs.anthropic.com/
