mcpField
M
mcpx-py

mcpx-py

本地服务
docs.mcp.runAI 与智能体2577 周前更新

关于 mcpx-py

mcpx-py 是用于 mcp.run 工具的 Python 客户端库,可通过 PydanticAI 支持的各类模型与 LLM 交互。它面向需要在 Python 应用或命令行中调用 mcp.run 工具的开发者。

主要功能

  1. 01支持 PydanticAI 所支持的所有模型提供商
  2. 02通过 Chat 接口调用 mcp.run 工具
  3. 03支持以 result_type 获取结构化输出
  4. 04提供 mcpx-client 命令行工具
  5. 05支持 Ollama、Llamafile 等本地模型

适用场景

  1. 01在 Python 应用中调用 mcp.run 工具完成任务
  2. 02通过命令行列出并执行 mcp.run 工具
  3. 03基于 LLM 生成结构化摘要等输出

MCP 相关

该库作为 MCP 客户端连接 mcp.run 上的工具,需要先通过 gen-session 生成会话 ID 并设置环境变量。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"mcpx-py": {
"command": "npx",
"args": [
"-y",
"@dylibso/mcpx"
]
}
}
}
启动命令npx -y @dylibso/mcpx

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@dylibso/mcpx

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

mcpx-py

PyPI

一个使用 mcp.run 工具与大模型交互的 Python 库

功能特性

AI 提供商支持

mcpx-py 支持 PydanticAI 支持的所有模型

依赖项

  • uv
  • npm
  • ollama(可选)

mcp.run 配置

你需要通过运行以下命令来获取 mcp.run 会话 ID:

npx --yes -p @dylibso/mcpx gen-session --write

这将生成一个新会话,并将会话 ID 写入一个可供 mcpx-py 使用的配置文件。

如果你需要将会话 ID 存储在环境变量中,可以在不带 --write 标志的情况下运行 gen-session:

npx --yes -p @dylibso/mcpx gen-session

它应该会输出类似以下内容:

Login successful!
Session: kabA7w6qH58H7kKOQ5su4v3bX_CeFn4k.Y4l/s/9dQwkjv9r8t/xZFjsn2fkLzf+tkve89P1vKhQ

然后设置 MPC_RUN_SESSION_ID 环境变量:

$ export MCP_RUN_SESSION_ID=kabA7w6qH58H7kKOQ5su4v3bX_CeFn4k.Y4l/s/9dQwkjv9r8t/xZFjsn2fkLzf+tkve89P1vKhQ

Python 用法

安装

使用 uv:

uv add mcpx-py

或 pip:

pip install mcpx-py
示例代码
from mcpx_py import Chat

llm = Chat("claude-3-5-sonnet-latest")

# Or OpenAI
# llm = Chat("gpt-4o")

# Or Ollama
# llm = Chat("ollama:qwen2.5")

# Or Gemini
# llm = Chat("gemini-2.0-flash")

response = llm.send_message_sync(
    "summarize the contents of example.com"
)
print(response.data)

也可以通过设置 result_type 来获取结构化输出

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

class Summary(BaseModel):
    """
    A summary of some longer text
    """
    source: str = Field("The source of the original_text")
    original_text: str = Field("The original text to be summarized")
    items: List[str] = Field("A list of summary points")

llm = Chat("claude-3-5-sonnet-latest", result_type=Summary)
response = llm.send_message_sync(
    "summarize the contents of example.com"
)
print(response.data)

更多示例可以在 examples/ 目录中找到

命令行用法

安装
uv tool install mcpx-py

从 git 安装:

uv tool install git+https://github.com/dylibso/mcpx-py

或从仓库根目录安装:

uv tool install .
uvx

mcpx-client 也可以使用 uvx 在不安装的情况下执行:

uvx --from mcpx-py mcpx-client

或从 git 执行:

uvx --from git+https://github.com/dylibso/mcpx-py mcpx-client
运行
获取用法/帮助
mcpx-client --help
与大模型对话
mcpx-client chat
列出工具
mcpx-client list
调用工具
mcpx-client tool eval-js '{"code": "2+2"}'
大模型配置
提供商设置
Claude
  1. 在 https://console.anthropic.com 注册一个 Anthropic API 账户
  2. 从控制台获取你的 API key
  3. 设置环境变量:ANTHROPIC_API_KEY=your_key_here
OpenAI
  1. 在 https://platform.openai.com 创建一个 OpenAI 账户
  2. 在你的账户设置中生成一个 API key
  3. 设置环境变量:OPENAI_API_KEY=your_key_here
Gemini
  1. 在 https://aistudio.google.com 创建一个 Gemini 账户
  2. 在你的账户设置中生成一个 API key
  3. 设置环境变量:GEMINI_API_KEY=your_key_here
Ollama
  1. 从 https://ollama.ai 安装 Ollama
  2. 拉取你想要的模型:ollama pull llama3.2
  3. 无需 API key - 本地运行
Llamafile
  1. 从 https://github.com/Mozilla-Ocho/llamafile/releases 下载一个 Llamafile 模型
  2. 使文件可执行:chmod +x your-model.llamafile
  3. 以 JSON API 模式运行:./your-model.llamafile --json-api --host 127.0.0.1 --port 8080
  4. 使用指向 http://localhost:8080 的 OpenAI 提供商

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。