返回市场
MCP客户端语言链Python

MCP客户端语言链Python

作者:hideya10 星标更新:2025-09-03

项目介绍

简易MCP客户端以探索MCP服务器 License: MIT pypi version

快速从命令行测试和探索MCP服务器!

这是一个基于文本的CLI客户端,用于模型上下文协议(MCP)服务器,使用LangChain和Python构建。
适用于测试MCP服务器、探索其功能以及原型集成。

内部使用了LangChain ReAct代理和 来自langchain_mcp_tools的实用函数convert_mcp_to_langchain_tools()

该工具的TypeScript等效版本可在此处找到:这里

预备条件

快速开始

  • 安装mcp-chat工具。 这可能需要几分钟完成:

    pip install mcp-chat
    
  • 通过配置文件llm_mcp_config.json5配置LLM和MCP服务器设置

    code llm_mcp_config.json5
    

    下面是一个简单的配置用于快速测试:

    {
      "llm": {
        "provider": "openai",       "model": "gpt-5-mini",
        // "provider": "anthropic",    "model": "claude-3-5-haiku-latest",
        // "provider": "google_genai", "model": "gemini-2.5-flash",
        // "provider": "xai",          "model": "grok-3-mini",
        // "provider": "cerebras",     "model": "gpt--oss-120b",
        // "provider": "groq",         "model": "openai/gpt-oss-20b",
      },
    
      "mcp_servers": {
        "us-weather": {  // 仅限美国天气
          "command": "npx", 
          "args": ["-y", "@h1deya/mcp-server-weather"]
        },
      },
    
      "example_queries": [
        "用几句话告诉我LLMs是如何工作的",
        "加利福尼亚州是否有任何天气警报?",
      ],
    }
    
  • 设置API密钥

    echo "ANTHROPIC_API_KEY=sk-ant-...                                       
    OPENAI_API_KEY=sk-proj-...
    GOOGLE_API_KEY=AI...
    XAI_API_KEY=xai-...
    CEREBRAS_API_KEY=csk-...
    GROQ_API_KEY=gsk_..." > .env
    
    code .env
    
  • 运行工具

    mcp-chat
    

    默认情况下,它会读取当前目录中的配置文件llm_mcp_config.json5
    然后,它应用.env文件中指定的环境变量, 以及已经定义的那些变量。
    它将本地MCP服务器的日志输出到当前目录。

功能

  • 简易设置:开箱即用,支持流行的MCP服务器
  • 灵活配置:支持环境变量的JSON5配置
  • 多个LLM/API提供商:OpenAI、Anthropic、Google(GenAI)、xAI、Cerebras、Groq
  • 命令与URL服务器:支持本地和远程MCP服务器
  • 本地MCP服务器日志记录:保存标准输入输出MCP服务器日志,并可自定义日志目录
  • 交互式测试:示例查询方便重复测试

局限性

  • 工具返回类型:目前只支持工具调用的文本结果。 内部使用LangChain的response_format: 'content'(默认),这仅支持文本字符串。 虽然MCP工具可以返回多种内容类型(文本、图像等),但此库目前过滤并仅使用文本内容。
  • MCP特性:仅支持MCP工具。其他MCP特性如资源、提示和采样尚未实现。

使用方法

基本使用

mcp-chat

默认情况下,它会读取当前目录中的配置文件llm_mcp_config.json5
然后,它应用.env文件中指定的环境变量, 以及已经定义的那些变量。
它将本地MCP服务器的日志输出到当前目录。

带选项

# 指定要使用的配置文件
mcp-chat --config my-config.json5

# 将本地(标准输入输出)MCP服务器日志存储在特定目录
mcp-chat --log-dir ./logs

# 启用详细日志
mcp-chat --verbose

# 显示帮助
mcp-chat --help

支持的模型/API提供商

  • OpenAIgpt-5-minigpt-4.1-nano
  • Anthropicclaude-sonnet-4-0claude-3-5-haiku-latest
  • Google(GenAI)gemini-2.5-flashgemini-2.5-pro
  • xAIgrok-3-minigrok-4
  • Cerebrasgpt-oss-120b
  • Groqopenai/gpt-oss-20bopenai/gpt-oss-120b

配置

创建一个llm_mcp_config.json5文件:

  • 配置文件格式 对于MCP服务器遵循与 Claude桌面版相同的结构, 有一个不同之处:键名mcpServers已更改为mcp_servers,以遵循通常用于JSON配置文件的snake_case约定。
  • 文件格式是JSON5, 其中允许注释和尾随逗号。
  • 格式进一步扩展,用相应的环境变量值替换${...}表示法。
  • 将所有凭证和私有信息保留在.env文件中, 并根据需要使用${...}表示法引用它们
{
  "llm": {
    "provider": "openai",
    "model": "gpt-4.1-nano",
    // model: "gpt-5-mini",
  },

  // "llm": {
  //   "provider": "anthropic",
  //   "model": "claude-3-5-haiku-latest",
  //   // "model": "claude-sonnet-4-0",
  // },

  // "llm": {
  //   "provider": "google_genai",
  //   "model": "gemini-2.5-flash",
  //   // "model": "gemini-2.5-pro",
  // },

  // "llm": {
  //   "provider": "xai",
  //   "model": "grok-3-mini",
  //   // "model": "grok-4",
  // },

  // "llm": {
  //   "provider": "cerebras",
  //   "model": "gpt-oss-120b",
  // },

  // "llm": {
  //   "provider": "groq",
  //   "model": "openai/gpt-oss-20b",
  //   // "model": "openai/gpt-oss-120b",
  // },

  "example_queries": [
    "用几句话告诉我LLMs是如何工作的",
    "加利福尼亚州是否有任何天气警报?",
    "阅读bbc.com上的新闻头条",
  ],

  "mcp_servers": {
    // 使用`npx`的本地MCP服务器
    "weather": {
      "command": "npx", 
      "args": [ "-y", "@h1deya/mcp-server-weather" ]
    },

    // 另一个使用`uvx`的本地服务器
    "fetch": {
      "command": "uvx",
      "args": [ "mcp-server-fetch" ]
    },

    // 嵌入环境变量的值
    "brave-search": {
      "command": "npx",
      "args": [ "-y", "@modelcontextprotocol/server-brave-search" ],
      "env": { "BRAVE_API_KEY": "${BRAVE_API_KEY}" }
    },

    // 通过URL的远程MCP服务器
    // 自动检测:首先尝试流式HTTP,如果失败则回退到SSE
    "remote-mcp-server": {
      "url": "https://api.example.com/..."
    },

    // 需要身份验证的服务器
    "github": {
      "type": "http",  // 当使用身份验证时建议明确指定协议
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ${GITHUB_PERSONAL_ACCESS_TOKEN}"
      }
    },

    // 对于需要OAuth的MCP服务器,请考虑使用"mcp-remote"
    "notion": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.notion.com/mcp"],
    },
  }
}

环境变量

创建一个包含API密钥的.env文件:

OPENAI_API_KEY=sk-ant-...
ANTHROPIC_API_KEY=sk-proj-...
GOOGLE_API_KEY=AI...
XAI_API_KEY=xai-...
CEREBRAS_API_KEY=csk-...
GROQ_API_KEY=gsk_...

# 根据需要添加其他服务
GITHUB_PERSONAL_ACCESS_TOKEN=github_pat_...
BRAVE_API_KEY=BSA...

常见的MCP服务器

已经有相当多的有用的MCP服务器可用:

故障排除

  • 确保您的配置和.env文件正确无误,特别是API密钥的拼写
  • 查看本地MCP服务器日志
  • 使用--verbose标志查看详细日志
  • 参考MCP文档中的调试部分

更改日志

可以在此处找到

从源代码构建

详情请参阅README_DEV.md

许可证

MIT许可证 - 详情请参阅LICENSE文件。

贡献

欢迎提出问题和拉请求!此工具旨在尽可能简化MCP服务器测试。