项目简介

Karen 是一个综合性的业务管理解决方案,其核心组件之一是 Model Context Protocol (MCP) 服务器。该服务器旨在为大型语言模型(LLM)客户端提供结构化的业务上下文和功能调用能力。通过标准化的 API 接口,Karen MCP 服务器允许 LLM 应用安全、可扩展地访问企业数据资源,执行预定义的工具,并利用 Prompt 模板实现定制化的交互模式。

主要功能点

  • 资源 (Resources) 管理:提供业务记录的创建、检索、更新和删除 (CRUD) 功能,例如客户信息、产品数据等,作为 LLM 可访问的上下文资源。
  • 工具 (Tools) 注册与执行:内置支持工单系统 API,允许 LLM 客户端通过调用预定义函数(Tools)创建和查询支持工单,扩展 LLM 的服务能力。
  • 用户认证与授权:支持自定义 Header API Key 认证和 JWT 用户认证,确保数据访问的安全性。
  • API 优先设计:所有功能均通过 RESTful API 暴露,方便 MCP 客户端以标准化的 JSON-RPC 协议进行交互。
  • 可扩展的后端架构:基于 Django 框架构建,后端技术栈成熟可靠,易于部署和扩展。
  • AI 聊天机器人集成:内置基于 ChatGPT 的 AI MicroAgent,可作为 MCP 客户端的应用示例,展示如何利用上下文数据和工具进行智能交互。

安装步骤

  1. 环境准备

    • 确保已安装 Python 3.7+ 和 pip。
    • 安装 Ubuntu 服务器或类似的 Linux 发行版,并具备 SSH 访问权限。
    • 建议购买域名并指向服务器 IP 地址。
    • 可选:为了集成邮件发送功能,建议注册 SendGrid 账号并获取 API Key。
  2. 安装 Nginx (或 Caddy) 服务器

    • 根据文档指引安装和配置 Nginx 或 Caddy 作为反向代理服务器,将 HTTP 请求转发到 Django 应用。
    • 配置 SSL 证书以启用 HTTPS (可选,但推荐)。
  3. 安装 Docker (可选)

    • 根据文档指引安装 Docker 和 Docker Compose,以便更便捷地部署和管理应用。
  4. 设置 Python 虚拟环境

    python3 -m venv kenv
    source kenv/bin/activate
  5. 克隆仓库代码

    git clone https://github.com/armenmerikyan/karen.git
    cd karen
  6. 安装项目依赖

    pip install -r requirements.txt
  7. 配置 Django 项目

    • 执行数据库迁移:
      python3 manage.py makemigrations
      python3 manage.py migrate
    • 创建 Django 超级用户用于管理后台:
      python3 manage.py createsuperuser
  8. 配置 Systemd 服务 (可选)

    • 根据文档指引创建和启用 Systemd 服务,以便在服务器启动时自动运行 Karen 应用。
  9. 启动服务器

    • 启动 Django 开发服务器进行测试:
    python3 manage.py runserver 0.0.0.0:8000
    • 或通过 Systemd 启动 (如果已配置):
    sudo systemctl start karen

服务器配置 (MCP 客户端)

以下 JSON 配置信息可用于 MCP 客户端连接 Karen MCP 服务器。请根据实际部署情况修改 'command' 和 'args' 字段。

{
  "serverName": "Karen MCP Server",  // MCP 服务器名称,可自定义
  "command": "python3",         // 启动 MCP 服务器的命令,这里假设使用 Python 运行 Django 应用
  "args": [                     // 启动命令的参数
    "/path/to/karen/manage.py", // Django 项目的 manage.py 路径,请替换为实际路径
    "runserver",                // Django manage.py 的子命令,用于启动开发服务器
    "0.0.0.0:8000"              // 监听地址和端口,根据实际配置修改
  ],
  "transport": "http",          // 通信协议,默认为 HTTP
  "handshake": {               // 握手信息 (可选,如果 MCP 客户端需要)
    "protocolVersion": "1.0",   // 协议版本
    "clientVersion": "1.0"      // 客户端版本
  },
  "capabilities": [            // 服务器能力声明 (可选,如果 MCP 客户端需要)
    "resources",               // 支持资源管理
    "tools",                   // 支持工具调用
    "prompts"                  // 支持 Prompt 模板
  ]
}

注意

  • '/path/to/karen/manage.py' 需要替换为 Karen 项目 'manage.py' 文件的实际绝对路径。
  • '0.0.0.0:8000' 是示例地址和端口,应与 Django 应用实际监听的地址和端口一致。
  • 'transport' 字段可以根据实际情况配置为 'stdio', 'sse', 'websocket' 等 MCP 支持的传输协议。
  • 'handshake' 和 'capabilities' 字段是可选的,根据 MCP 客户端的需求进行配置。
  • 生产环境部署建议使用 Nginx 或 Caddy 部署,并配置 HTTPS。

基本使用方法

  1. 启动 Karen MCP 服务器

    • 根据安装步骤启动 Django 应用。
  2. 配置 MCP 客户端

    • 在 MCP 客户端中,配置上述 JSON 信息,确保 'command' 和 'args' 指向正确的 Karen 服务器启动命令。
    • 根据需要配置 'transport', 'handshake', 'capabilities' 等参数。
  3. 通过 MCP 客户端与服务器交互

    • MCP 客户端将按照 MCP 协议规范,发送 JSON-RPC 请求到 Karen MCP 服务器。
    • 服务器将处理请求,并返回 JSON-RPC 响应或发送通知。
    • 具体 API 调用方法和参数,请参考仓库代码和 API 文档(如有)。

重要提示

  • 此使用说明基于仓库的 README.md 和代码结构分析生成,可能需要根据实际代码运行情况进行调整。
  • 请务必仔细阅读仓库的完整文档和代码,以获得更准确和详细的使用信息。
  • 生产环境部署请务必关注安全性,配置 HTTPS 和适当的访问控制。

信息

分类

商业系统