使用说明

项目简介

MCPMan 是一个强大的工具,旨在简化大型语言模型 (LLM) 与 Model Context Protocol (MCP) 服务器之间的交互。它充当一个协调器,帮助 LLM 调用 MCP 服务器提供的工具,从而执行复杂的任务和工作流程。该仓库不仅包含 MCPMan 协调工具本身,还提供了多个 MCP 服务器的示例实现(例如计算器、文件系统操作、日期时间工具),展示了如何构建和使用 MCP 服务器。

主要功能点

  • MCP 服务器管理: 方便地定义、启动和管理一个或多个 MCP 服务器进程。
  • 工具调用协调: 自动发现并向 LLM 提供 MCP 服务器暴露的工具,并将 LLM 生成的工具调用请求转发给相应的服务器执行。
  • 多 LLM 支持: 兼容多种主流 LLM 提供商和本地模型,包括 OpenAI, Anthropic Claude, Google Gemini, Ollama, LM Studio, OpenRouter 等。
  • 灵活配置: 支持通过 JSON 文件配置要连接的 MCP 服务器及其启动参数。
  • 详细日志: 生成结构化的 JSONL 格式日志,方便调试和分析每次 LLM 交互和工具调用的过程。
  • 可选的任务验证: 支持使用 LLM 对最终结果进行验证,确保任务已完全完成。

安装步骤

您可以使用 Python 包管理器 'pip' 或 'uv' 进行安装:

使用 pip 安装:

pip install mcpman

使用 uv 安装:

uv pip install mcpman

您也可以直接从 GitHub 安装最新版本(需要安装 'uv' 或 'pip install git+https://github.com/ericflo/mcpman.git'):

uvx pip install git+https://github.com/ericflo/mcpman.git

服务器配置

MCPMan 使用 JSON 格式的配置文件来定义它需要启动和连接哪些 MCP 服务器。这些配置文件告诉 MCPMan 进程如何运行 MCP 服务器进程。

配置文件的核心是一个名为 'mcpServers' 的 JSON 对象,其中键是您为服务器定义的逻辑名称,值是该服务器的启动配置。

例如,以下是示例配置文件中常见的配置结构:

  • 'calculator_server_mcp.json': 用于定义如何启动计算器 MCP 服务器。
  • 'datetime_server_mcp.json': 用于定义如何启动日期时间工具 MCP 服务器。
  • 'filesystem_server_mcp.json': 用于定义如何启动文件系统操作 MCP 服务器。
  • 'multi_server_mcp.json': 示例如何同时启动多个 MCP 服务器。

每个服务器配置('mcpServers' 对象下的每个值)是一个对象,包含以下关键信息:

  • 'command' (字符串): 启动 MCP 服务器进程的可执行文件或脚本命令(例如 '"python"')。
  • 'args' (字符串数组): 传递给 'command' 的命令行参数列表(例如 '["-m", "mcp_servers.calculator"]' 表示运行 'mcp_servers.calculator' 模块作为脚本)。
  • 'env' (可选,字符串到字符串的映射): 为启动的服务器进程设置额外的环境变量。

请注意: 这些 JSON 文件是给 MCPMan 工具(MCP 客户端)看的,用于配置它如何启动和连接 MCP 服务器。它们不是 MCP 服务器代码本身。真正的 MCP 服务器代码位于仓库的 'mcp_servers/' 目录下,它们需要被 MCPMan 按这里定义的 'command' 和 'args' 启动才能工作。

基本使用方法

安装 MCPMan 后,您可以使用命令行界面运行它,通过 LLM 与 MCP 服务器交互。

基本命令结构:

mcpman -c <CONFIG_FILE> -i <IMPLEMENTATION> -m <MODEL> -p "<PROMPT>" [其他选项]
  • '-c, --config <PATH>': 指定 MCP 服务器的配置文件路径(必需)。
  • '-i, --impl, --implementation <IMPL>': 指定要使用的 LLM 实现或提供商(例如 'openai', 'gemini', 'ollama', 'lmstudio')。
  • '-m, --model <MODEL>': 指定要使用的 LLM 模型名称(例如 'gpt-4.1-mini', 'llama3:8b')。
  • '-p, --prompt <PROMPT>': 用户的文本指令或包含指令的文件路径(必需)。

示例:

使用计算器服务器和 OpenAI 模型:

mcpman -c server_configs/calculator_server_mcp.json -i openai -m gpt-4.1-mini -p "What is 1567 * 329 and then divide by 58?"

使用文件系统服务器和本地 Ollama 模型:

mcpman -c ./server_configs/filesystem_server_mcp.json -i ollama -m llama3:8b -p "Create a file called example.txt with a sample Python function, then read it back to me"

使用包含多个服务器的配置和 OpenAI 模型,解决一个需要多种工具的问题:

mcpman -c ./server_configs/multi_server_mcp.json -i openai -m gpt-4.1-mini -p "Calculate 753 * 219 and tell me what time it is in Sydney, Australia"

您可以根据需要调整 '-s'(系统消息)、'--temperature'、'--max-tokens' 等其他选项。使用 '--no-verify' 可以禁用任务验证步骤。

信息

分类

开发者工具