项目简介

Open Edison 旨在为与公司数据和软件交互的AI代理提供可观察性、控制和策略执行能力。它作为一个MCP服务器代理,允许LLM客户端(如ChatGPT)通过标准的JSON-RPC协议连接,同时通过精细的安全控制(包括对资源、工具和提示的权限管理)来减轻数据泄露和代理劫持的风险。

主要功能点

  • 数据泄露监控与阻断: 实时检测并根据可配置的安全策略阻止潜在的数据泄露。
  • 受控执行: 提供结构化的执行控制,以降低数据外泄风险,包括对“致命三元组”风险的监控(私有数据访问、不可信内容暴露、外部通信)。
  • AI代理交互可视化: 跟踪和监控AI代理与连接软件/数据的交互,提供日志和审计能力。
  • MCP服务器管理: 轻松配置和管理您连接的MCP服务器,包括启动、停止和重新初始化。
  • 简单API: 提供REST API用于管理Open Edison服务器和代理请求。
  • Docker支持: 便于容器化部署。
  • LangGraph集成: 通过简单的 '@edison.track()' 装饰器,即可快速与LangGraph、LangChain等代理框架集成,实现即时可观测性和策略执行。

安装步骤

最快的方式是使用 'curl' 命令自动安装 'uv' 并启动 Open Edison:

curl -fsSL https://raw.githubusercontent.com/Edison-Watch/open-edison/main/curl_pipe_bash.sh | bash

或者,如果您已经安装了 'uvx' 或 'pipx',可以通过以下命令安装并运行:

# 使用 uvx
uvx open-edison

# 使用 pipx
pipx install open-edison
open-edison

通过 Docker 运行:

git clone https://github.com/Edison-Watch/open-edison.git
cd open-edison
make docker_run

服务器启动后,Open Edison的MCP服务器通常在 'http://localhost:3000' 提供服务,而管理API和前端界面则在 'http://localhost:3001'。

服务器配置

Open Edison 的核心配置通过 'config.json' 文件进行管理。此文件通常位于应用程序数据目录中(例如,macOS上是 '~/Library/Application Support/Open Edison',Linux上是 '~/.config/open-edison'),您可以配置其监听端口、API密钥以及管理其他MCP服务器。

以下是 'config.json' 的一个示例,展示了如何配置Open Edison服务器本身,以及如何定义它应该作为代理或控制面板的其他MCP服务器:

{
  "server": {
    "host": "0.0.0.0",                 // Open Edison 监听的主机地址
    "port": 3000,                      // Open Edison 监听的 MCP 协议端口
    "api_key": "YOUR_API_KEY_HERE"     // 用于认证的 API 密钥,请替换为强密码
  },
  "logging": {
    "level": "INFO"                    // 日志级别(如 INFO, DEBUG, WARNING, ERROR)
  },
  "mcp_servers": [                     // Open Edison 管理的其他 MCP 服务器列表
    {
      "name": "filesystem",            // 该 MCP 服务器的唯一名称
      "command": "uvx",                // 启动该 MCP 服务器的命令行指令
      "args": ["mcp-server-filesystem", "/tmp"], // 传递给命令的参数列表
      "enabled": true                  // 是否自动启动并管理该服务器
    },
    {
      "name": "github",
      "enabled": false,
      "env": {                         // (可选)启动该服务器时设置的环境变量
        "GITHUB_PERSONAL_ACCESS_TOKEN": "your-github-token"
      }
    }
  ]
}

配置说明:

  • 'server': 配置 Open Edison 自身的网络监听设置和认证密钥。
  • 'logging': 配置 Open Edison 的日志输出级别。
  • 'mcp_servers': 这是一个列表,您可以在其中定义 Open Edison 将代理或管理的其他 MCP 服务器。Open Edison 会将这些服务器的工具、资源和提示注册到自身,并对其进行安全控制。

基本使用方法

  1. 启动 Open Edison 服务器: 按照上述安装步骤启动 Open Edison。
  2. 连接 MCP 客户端: 您可以使用任何支持 MCP 协议的客户端连接到运行中的 Open Edison。例如,使用 'mcp-remote' 客户端连接到 Open Edison 的 MCP 端点:
    npx -y mcp-remote http://localhost:3000/mcp/ --http-only --header "Authorization: Bearer your-api-key"
    请将 'your-api-key' 替换为 'config.json' 中配置的 'server.api_key'。
  3. 连接 ChatGPT (或其他LLM): 如果您希望让ChatGPT或其他LLM通过Open Edison访问工具,可以配置LLM连接器。例如,对于ChatGPT,您可以通过 ngrok 将 Open Edison 公开到互联网(具体步骤请参考Open Edison文档),然后在ChatGPT的“连接器”设置中,将 Open Edison 的 ngrok URL 配置为 MCP Server URL,并提供相应的API密钥。
  4. 配置权限: 编辑应用程序数据目录中的 'tool_permissions.json'、'resource_permissions.json' 和 'prompt_permissions.json' 文件。这些文件允许您定义和调整每个工具、资源和提示的访问权限和安全分类,以实施精细的安全策略。

信息

分类

开发者工具