P

Poe代理-MCP

@Anansitrading/poe-proxy-mcp
0 Stars 412 次浏览 Anansitrading 更新于 2026-08-23

一个FastMCP服务器,它代理了Poe.com的API,允许用户查询各种AI模型(包括Claude 3.7 Sonnet),并能与支持该功能的模型共享文件。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

Poe Proxy MCP 服务器

一个 FastMCP 服务器,用于代理 Poe.com API,提供查询 Poe 模型和共享文件的工具。此服务器特别设计以确保与 Claude 3.7 Sonnet 和通过 Poe 可用的其他模型兼容。

特性

  • 多模型支持:查询 Poe 上可用的各种模型,包括 GPT-4o、Claude 3 Opus、Claude 3 Sonnet、Gemini Pro 等
  • Claude 3.7 Sonnet 兼容性:对 Claude 的思考协议进行特殊处理
  • 文件共享:与支持它的模型共享文件
  • 会话管理:在多个查询中保持对话上下文
  • 流式响应:从模型获取实时流式响应
  • Web 客户端支持:通过 SSE 传输使用 Web 客户端访问服务器

安装

前提条件

  • Python 3.8 或更高版本
  • Poe API 密钥(从 Poe.com 获取)

快速安装

使用提供的安装脚本:

git clone https://github.com/Anansitrading/poe-proxy-mcp.git
cd poe-proxy-mcp
chmod +x install.sh
./install.sh

该脚本将:

  1. 创建虚拟环境
  2. 安装所有依赖项
  3. 如果不存在则创建 .env 文件
  4. 设置服务器以支持 STDIO 和 SSE 传输

手动设置

如果您更喜欢手动设置:

  1. 克隆此仓库:

    git clone https://github.com/Anansitrading/poe-proxy-mcp.git
    cd poe-proxy-mcp
    
  2. 创建虚拟环境并安装依赖项:

    python -m venv venv
    source venv/bin/activate  # 在 Windows 上:venv\Scripts\activate
    pip install -r requirements.txt
    
  3. 使用您的 Poe API 密钥创建 .env 文件:

    cp .env.example .env
    # 编辑 .env 文件以添加您的 API 密钥
    

作为包安装

您也可以将服务器作为 Python 包安装:

pip install -e .

这将在您的环境中提供 poe-mcppoe-mcp-sse 命令。

配置

服务器可以使用环境变量进行配置:

变量 描述 默认值
POE_API_KEY 您的 Poe API 密钥(必需)
DEBUG_MODE 启用详细日志记录 false
CLAUDE_COMPATIBLE 启用 Claude 兼容模式 true
MAX_FILE_SIZE_MB 上传文件的最大大小(MB) 10
SESSION_EXPIRY_MINUTES 会话过期时间(分钟) 60

使用

运行服务器

标准模式 (STDIO)

这是默认模式,适用于命令行使用:

# If installed as a package:
poe-mcp

# Or directly:
python poe_server.py

Web 模式 (SSE)

这种模式使服务器能够与 Web 客户端一起使用:

# If installed as a package:
poe-mcp-sse [port]

# Or directly:
python run_sse_server.py [port]

服务器默认将在 8000 端口启动,或者您可以指定不同的端口。

可用工具

服务器提供了以下工具:

ask_poe

向 Poe 机器人提问。

response = await mcp.call("ask_poe", {
    "bot": "claude",  # or "o3", "gemini", "perplexity", "gpt"
    "prompt": "What is the capital of France?",
    "session_id": "optional-session-id",  # Optional
    "thinking": {  # Optional, for Claude models
        "thinking_enabled": True,
        "thinking_depth": 2
    }
})

ask_with_attachment

附带文件向 Poe 机器人提问。

response = await mcp.call("ask_with_attachment", {
    "bot": "claude",
    "prompt": "Analyze this code",
    "attachment_path": "/path/to/file.py",
    "session_id": "optional-session-id",  # Optional
    "thinking": {  # Optional, for Claude models
        "thinking_enabled": True
    }
})

clear_session

清除会话的历史记录。

response = await mcp.call("clear_session", {
    "session_id": "your-session-id"
})

list_available_models

列出可用的 Poe 模型及其功能。

response = await mcp.call("list_available_models", {})

get_server_info

获取关于服务器配置的信息。

response = await mcp.call("get_server_info", {})

Web 客户端

examples 目录中包含了一个简单的 Web 客户端。要使用它:

  1. 以 SSE 模式启动服务器:

    python run_sse_server.py
    
  2. 在浏览器中打开 examples/web_client.html

  3. 输入服务器 URL(默认:http://localhost:8000),然后点击“获取可用模型”。

  4. 选择一个模型,输入您的提示,并点击“提交”。

示例

简单查询

# examples/simple_query.py
import asyncio
from fastmcp import MCPClient

async def main():
    client = MCPClient("http://localhost:8000")
    
    response = await client.call("ask_poe", {
        "bot": "claude",
        "prompt": "Explain quantum computing in simple terms"
    })
    
    print(f"Session ID: {response['session_id']}")
    print(f"Response: {response['text']}")

if __name__ == "__main__":
    asyncio.run(main())

文件附件

# examples/file_attachment.py
import asyncio
from fastmcp import MCPClient

async def main():
    client = MCPClient("http://localhost:8000")
    
    response = await client.call("ask_with_attachment", {
        "bot": "claude",
        "prompt": "Analyze this code and suggest improvements",
        "attachment_path": "examples/simple_query.py"
    })
    
    print(f"Session ID: {response['session_id']}")
    print(f"Response: {response['text']}")

if __name__ == "__main__":
    asyncio.run(main())

Claude 兼容性

此服务器对 Claude 模型进行了特殊处理,特别是 Claude 3.7 Sonnet,它需要特定格式的思考协议。当使用 Claude 模型时:

  1. 服务器会自动检测 Claude 模型并应用适当的格式。
  2. 可以通过提供 thinking 参数来启用思考协议:
    "thinking": {
        "thinking_enabled": True,
        "thinking_depth": 2,  # 可选,默认为 1
        "thinking_style": "detailed"  # 可选
    }
    
  3. 如果思考协议失败,服务器将自动重试而不使用它。

测试

要运行测试套件:

python run_tests.py

对于详细输出:

python run_tests.py --verbose

故障排除

常见问题

  1. 认证错误:确保你的 Poe API 密钥在 .env 文件中是正确的。
  2. 连接错误:检查你是否可以从你的网络访问 Poe.com。
  3. 文件上传错误:确保文件存在且不超过大小限制。
  4. Claude 思考协议问题:如果你遇到 Claude 的思考协议错误,尝试通过在 .env 文件中设置 CLAUDE_COMPATIBLE=false 来禁用它。

调试

通过在 .env 文件中设置 DEBUG_MODE=true 启用调试模式,以获得更详细的日志。

许可证

本项目根据 MIT 许可证发布 - 详情请参阅 LICENSE 文件。

相关 MCP 服务