返回市场
麦凤凰

麦凤凰

作者:jmanhype66 星标更新:2025-11-05

项目介绍

MCPheonix

使用Elixir的Phoenix框架实现的Model Context Protocol (MCP)服务器的简化版本。

概述

MCPheonix是一个基于Model Context Protocol和Elixir的Phoenix框架构建的智能、自愈、分布式AI事件系统。它提供了一个实现Model Context Protocol的服务器,允许AI模型通过统一接口与应用程序数据和功能进行交互。

特性

  • 实时通知的Server-Sent Events (SSE)流
  • 客户端请求的JSON-RPC端点
  • 简单的资源系统
  • 事件发布/订阅机制
  • 基本工具调用
  • Flux图像生成集成
  • Dart任务管理集成
  • 可扩展的MCP服务器架构
  • 通过Cloudflare Durable Objects实现的自愈分布式架构
  • 通过Cloudflare Workers实现的边缘计算能力

自愈分布式架构

MCPheonix通过与Cloudflare Durable Objects和Workers的集成实现了复杂的自愈系统,创建了一个分布式的、具有弹性的架构,能够承受故障并确保持续运行。

关键组件

  • 持久对象:在Cloudflare全球边缘网络上运行的状态化无服务器组件,即使在故障情况下也能保持一致性。
  • 边缘分发:关键应用状态被复制到Cloudflare的全球网络中,确保即使在区域中断期间也具备可用性。
  • 自动恢复:如果实例变得不可用,系统会从持久存储中自动重新创建具有一致状态的实例。
  • 实时通信:WebSocket支持使即时恢复协调和分布式系统中的状态同步成为可能。
  • 事件驱动架构:组件通过发布/订阅模型对状态变化作出反应,使系统能够自我修复并适应故障。

有关实现的详细信息,请参阅Cloudflare集成文档。

快速开始

先决条件

  • Elixir 1.14或更高版本
  • Erlang 25或更高版本
  • Phoenix 1.7.0或更高版本
  • Python 3.9+(用于Flux和Dart集成)
  • Node.js 18+(用于Dart MCP服务器)
  • Cloudflare账户(用于Durable Objects集成)

安装

  1. 克隆仓库
git clone https://github.com/yourusername/mcpheonix.git
cd mcpheon
  1. 安装依赖
mix deps.get
  1. 配置Cloudflare集成

    • 使用模板在cloudflare/durable-objects-worker.js创建一个Cloudflare Worker
    • 将其部署到您的Cloudflare账户
    • 设置环境变量:
      • CLOUDFLARE_WORKER_URL:已部署工人的URL
      • CLOUDFLARE_ACCOUNT_ID:您的Cloudflare账户ID
      • CLOUDFLARE_API_TOKEN:具有Workers和DO权限的API令牌
  2. 配置Flux集成(如果使用图像生成)

    • 根据Flux集成部分所述设置Flux CLI环境
  3. 配置Dart集成(如果使用任务管理)

    • 根据Dart集成部分所述设置Dart MCP服务器
  4. 启动服务器

mix phx.server

服务器将在http://localhost:4001可用。

添加自定义MCP服务器

MCPheonix设计为可以与多个MCP服务器一起工作。该系统包括一个灵活的基础架构,用于通过以下方式集成自定义MCP服务器:

  1. 简单的JSON配置:在priv/config/mcp_servers.json中定义您的服务器设置:
{
  "mcpServers": {
    "your_server_id": {
      "command": "/path/to/executable",
      "args": ["arg1", "arg2"],
      "env": {
        "ENV_VAR1": "value1",
        "ENV_VAR2": "value2"
      },
      "tools": {
        "your_tool": {
          "description": "您的工具描述",
          "parameters": [
            { "name": "param1", "type": "string", "description": "参数描述" }
          ]
        }
      }
    }
  }
}
  1. 自动服务器管理:服务器会在应用程序启动时自动加载和管理。

有关详细的实现细节,包括Elixir架构、服务器生命周期管理和协议处理,请参阅添加MCP服务器文档。

MCP端点

  • SSE流GET /mcp/stream

    • 建立一个Server-Sent Events流以接收实时通知
    • 在响应头中返回客户端ID
  • JSON-RPCPOST /mcp/rpc

    • 接受JSON-RPC 2.0请求
    • 客户端ID可以在x-mcp-client-id头中提供,或者在缺失时生成

内置功能

资源