mcpx-py

mcpx-py

用于与服务交互的Python客户端库。

PyPI

安装

# 使用 uv(推荐)
uv add mcpx-py

# 或使用 pip
pip install mcpx-py

前置准备

依赖项

  • uv
  • npm
  • ollama(可选)

获取 mcp.run 会话 ID

# 自动写入配置文件
npx --yes -p @dylibso/mcpx gen-session --write

# 或手动设置环境变量
export MCP_RUN_SESSION_ID=$(npx --yes -p @dylibso/mcpx gen-session | grep "会话:" | cut -d' ' -f2)

基本使用

from mcpx_py import Chat

# 创建 LLM 实例
llm = Chat("claude-3-5-sonnet-latest")
# 或 llm = Chat("gpt-4o")
# 或 llm = Chat("ollama:qwen2.5")
# 或 llm = Chat("gemini-2.0-flash")

# 发送消息并获取响应
response = llm.send_message_sync("总结 example.com 的内容")
print(response.data)

结构化输出

from mcpx_py import Chat, BaseModel, Field
from typing import List

class Summary(BaseModel):
    """某些较长文本的摘要"""
    source: str = Field("原始文本的来源")
    original_text: str = Field("要被摘要的原始文本")
    items: List[str] = Field("摘要要点列表")

llm = Chat("claude-3-5-sonnet-latest", result_type=Summary)
response = llm.send_message_sync("总结 example.com 的内容")
print(response.data)

命令行使用

# 安装 CLI 工具
uv tool install mcpx-py

# 聊天模式
mcpx-client chat

# 列出可用工具
mcpx-client list

# 调用工具
mcpx-client tool eval-js '{"code": "2+2"}'

API 密钥设置

  • Claude: ANTHROPIC_API_KEY=your_key_here
  • OpenAI: OPENAI_API_KEY=your_key_here
  • Gemini: GEMINI_API_KEY=your_key_here
  • Ollama: 本地运行,无需 API 密钥
  • Llamafile: 本地运行,无需 API 密钥

更多示例请查看 GitHub 仓库