返回市场
伊丽莎操作系统_mcp

伊丽莎操作系统_mcp

作者:wearesociety9 星标更新:2025-05-19

项目介绍

【技术文档摘要】

alt text

Society ElizaOS Connector MCP

Society ElizaOS Connector MCP(模型上下文协议)允许您无缝集成您的ElizaOS代理与Cursor。这使您可以列出可用的代理,选择特定的代理进行交互,并从Cursor IDE内部直接与您的ElizaOS代理聊天。

此MCP服务器在您的机器上本地运行,并由Cursor使用stdio传输管理,这意味着Cursor会自动启动并与之通信。

功能

  • 列出代理:从您的ElizaOS实例中检索可用代理列表。
  • 选择代理:选择一个特定的代理进行交互。Room ID将自动设置以匹配Agent ID
  • 与代理聊天:向选定的ElizaOS代理发送消息并接收响应。
  • 检查状态:验证MCP服务器的连接状态和当前代理配置。

预备条件

  • Node.js 和 npm(v14或更高版本)。
  • 运行并可访问的ElizaOS服务器实例(例如,在本地http://localhost:3000)。
  • 支持MCP的Cursor IDE。

安装及使用方法

快速设置(推荐)

最简单的方法是直接使用Cursor通过npx来使用这个MCP。Cursor会自动处理运行该包。

  1. 配置Cursor: 创建或打开项目文件夹中的.cursor/mcp.json文件(或全局的~/.cursor/mcp.json文件),并添加以下内容:
{
  "mcpServers": {
    "society-elizaos-mcp-npx": { 
      "command": "npx",
      "args": [
        "-y",
        "society-elizaos-mcp@1.0.9"
      ],
      "env": {
        "ELIZAOS_SERVER_URL": "http://localhost:3000",
        "ELIZAOS_USER_ID": "000000000000000000000000000000000000",  示例 ad64a76a-0e09-0899-b8f8-492d6aea4118
        "ELIZAOS_WORLD_ID": "000000000000000000000000000000000000", 示例 c930b151-dcfb-41c5-96af-550ffea7023c
        "ELIZAOS_AGENT_ID": "000000000000000000000000000000000000", 示例 85e9fa66-6f8c-0f18-922c-d6c962e21e18
        "ELIZAOS_ROOM_ID": "000000000000000000000000000000000000",  需要等于ELIZAOS_AGENT_ID 
        "ELIZAOS_CONNECTION_TIMEOUT": "120000",
        "ELIZAOS_RESPONSE_TIMEOUT": "90000",
        "PORT": "3099",
        "DEBUG": "true",
        "NODE_ENV": "production",
        "MCP_DISABLE_PINGS": "true"
      }
  }
}
  1. 替换所有占位符UUID为您的实际ElizaOS ID。

  2. 重启Cursor以应用配置更改。

  3. 开始使用Cursor界面中的工具 - 它们将显示为:

    • get_status
    • list_agents
    • chat_with_agent
    • set_agent

本地开发设置

如果您想运行连接器的本地开发版本,请按照以下步骤操作:

  1. 克隆并安装依赖项

    git clone https://github.com/your-username/society-elizaos-mcp.git
    cd society-elizaos-mcp
    npm install
    
  2. 构建包

    npm run build
    
  3. 本地运行

    # 设置必需的环境变量
    export ELIZAOS_SERVER_URL="http://localhost:3000"
    export ELIZAOS_USER_ID="your-elizaos-user-uuid"
    export ELIZAOS_WORLD_ID="your-elizaos-world-uuid"
    export ELIZAOS_AGENT_ID="your-initial-agent-uuid"
    export ELIZAOS_ROOM_ID="your-initial-agent-uuid"
    
    # 运行服务器
    node dist/index.js
    
  4. 或者使用便捷脚本

    # 脚本设置默认环境变量并运行服务器
    ./scripts/mcp_run.sh
    
  5. 配置Cursor以使用本地版本: 如果您希望Cursor使用您的本地版本而不是npm包,请更新您的.cursor/mcp.json

    {
      "mcpServers": {
        "society-elizaos-mcp-local": {
          "command": "node",
          "args": [
            "/path/to/your/society-elizaos-mcp/dist/index.js"
          ],
          "env": {
            "ELIZAOS_SERVER_URL": "http://localhost:3000",
            "ELIZAOS_USER_ID": "your-elizaos-user-uuid",
            "ELIZAOS_WORLD_ID": "your-elizaos-world-uuid",
            "ELIZAOS_AGENT_ID": "your-initial-agent-uuid", 
            "ELIZAOS_ROOM_ID": "your-initial-agent-uuid",
            "ELIZAOS_CONNECTION_TIMEOUT": "120000",
            "ELIZAOS_RESPONSE_TIMEOUT": "90000",
            "PORT": "3069",
            "DEBUG": "true",
            "NODE_ENV": "production",
            "MCP_DISABLE_PINGS": "true"
          }
        }
      }
    }
    

配置选项

所有配置均通过环境变量完成,您可以在.cursor/mcp.json文件的env部分设置这些变量:

环境变量必需描述
ELIZAOS_SERVER_URL您的ElizaOS服务器的URL(例如,http://localhost:3000
ELIZAOS_USER_ID您的ElizaOS用户UUID
ELIZAOS_WORLD_ID您的ElizaOS世界UUID
ELIZAOS_AGENT_ID初始连接的代理UUID(可选但建议)
ELIZAOS_ROOM_ID如果提供,则必须与ELIZAOS_AGENT_ID相同
ELIZAOS_CONNECTION_TIMEOUT套接字连接超时时间(单位:毫秒,默认值:120000)
ELIZAOS_RESPONSE_TIMEOUT代理响应超时时间(单位:毫秒,默认值:90000)

安全注意事项

⚠️ 重要:切勿在您的.cursor/mcp.json文件或发布的任何代码中包含任何API密钥或秘密。MCP无需任何外部API密钥即可运行。

MCP工具参考

一旦配置好,Cursor可以通过以下四个工具与您的ElizaOS代理通信:

1. get_status

获取ElizaOS MCP的当前连接状态和配置。

参数:不需要(传递空对象{}{"random_string": "any"}

返回

{
  "connectionState": "connected", 
  "currentAgent": "agent-uuid",
  "currentRoom": "room-uuid",
  "serverUrl": "http://localhost:3000",
  "userId": "user-uuid",
  "worldId": "world-uuid",
  "connectionTimeout": 120000,
  "responseTimeout": 90000
}

2. list_agents

列出您的ElizaOS服务器上的所有可用代理。

参数:不需要(传递空对象{}{"random_string": "any"}

返回

[
  {
    "id": "agent-uuid-1",
    "name": "Agent Name 1"
  },
  {
    "id": "agent-uuid-2",
    "name": "Agent Name 2"
  }
]

3. chat_with_agent

向当前选定的代理发送消息并返回响应。

参数

{
  "message": "您要发送给代理的消息"
}

返回

{
  "messageText": "您要发送给代理的消息",
  "senderId": "your-user-id",
  "response": {
    "senderId": "agent-id",
    "senderName": "Agent Name",
    "text": "代理的响应文本",
    "roomId": "room-id",
    "createdAt": 1747632281772,
    "source": "mcp_client_chat",
    "thought": "如果可用,可选的代理思考过程",
    "actions": ["REPLY"]
  }
}

4. set_agent

切换到不同的代理。请注意,在ElizaOS中,agent_idroom_id必须相同。

参数

{
  "agent_id": "要使用的代理UUID",
  "room_id": "要使用的代理UUID"
}

返回

{
  "success": true,
  "oldConfig": {
    "agentId": "之前的代理UUID",
    "roomId": "之前的房间UUID"
  },
  "newConfig": {
    "agentId": "新的代理UUID",
    "roomId": "新的代理UUID"
  }
}

故障排除

常见问题

  • “缺少必需的ElizaOS环境变量”

    • 确保在MCP配置中设置了ELIZAOS_USER_IDELIZAOS_WORLD_IDELIZAOS_SERVER_URL
  • “无法连接到ElizaOS进行聊天”

    • 确认您的ElizaOS服务器正在指定的URL运行。
    • 验证代理和房间ID是否匹配且有效。
  • 没有代理响应

    • 检查代理是否在您的ElizaOS环境中处于活动状态。
    • 如果代理响应较慢,增加ELIZAOS_RESPONSE_TIMEOUT
  • “对于ElizaOS,agent_id和room_id必须相同”

    • 使用set_agent时,确保两个ID值相同。

许可证

MIT


这份README提供了详细的指南,用于设置和使用Society ElizaOS Connector MCP与Cursor。如需更多帮助,请在GitHub仓库中提交问题。