mcpField
S
Simple CLI MCP Client Using LangChain / Python

Simple CLI MCP Client Using LangChain / Python

github.com/hideya框架与 SDK139 周前更新

关于 Simple CLI MCP Client Using LangChain / Python

这是一款使用 LangChain Agent 测试和探索 MCP 服务的 Python 命令行客户端。它可连接本地和远程服务,并通过 LangChain 使用 MCP 工具。

主要功能

  1. 01连接本地和远程 MCP 服务
  2. 02JSON5 配置与环境变量
  3. 03支持多种大模型提供方
  4. 04可指定目录保存本地服务日志
  5. 05交互式示例查询

适用场景

  1. 01探索 MCP 服务工具
  2. 02测试本地或远程服务
  3. 03原型化 MCP 集成

MCP 相关

可连接本地和远程 MCP 服务并使用其工具。仅支持文本工具结果,不支持 MCP 资源、提示词或采样。

详细介绍

探索 MCP 服务的简单 MCP 客户端 License: MIT pypi version

通过命令行快速测试和探索 MCP 服务!

项目状态

此工具基于 langchain-mcp-tools, 目前支持 MCP 协议版本 2025-03-26。

它不支持 MCP 2026-07-28 规范。

简介

一个基于文本的简单命令行客户端,使用 LangChain 和 Python 构建,可连接 Model Context Protocol(MCP) 服务。
适用于测试 MCP 服务、探索其功能以及为集成进行原型开发。

它内部使用 LangChain Agent 和 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.4-mini"
        // "provider": "anthropic",    "model": "claude-haiku-4-5"
        // "provider": "google_genai", "model": "gemini-2.5-flash"
        // "provider": "xai",          "model": "grok-4-1-fast-non-reasoning"
        // "provider": "cerebras",     "model": "gpt-oss-120b"
        // "provider": "groq",         "model": "openai/gpt-oss-20b"
      },
    
      "mcp_servers": {
        "us-weather": {  // US weather only
          "command": "npx", 
          "args": ["-y", "@h1deya/mcp-server-weather"]
        },
      },
    
      "example_queries": [
        "Tell me how LLMs work in a few sentences",
        "Are there any weather alerts in California?",
      ],
    }
    
  • 设置 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 服务
  • 灵活配置:支持环境变量的 JSON5 配置
  • 多种 LLM/API 服务商:OpenAI、Anthropic、Google(GenAI)、xAI、Ceberas、Groq
  • 命令和 URL 服务:支持本地和远程 MCP 服务
  • 本地 MCP 服务日志:将 stdio MCP 服务日志保存到可自定义的日志目录
  • 交互式测试:提供示例查询,方便重复测试

限制

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

用法

基本用法
mcp-chat

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

使用选项
# Specify the config file to use
mcp-chat --config my-config.json5

# Store local (stdio) MCP server logs in specific directory
mcp-chat --log-dir ./logs

# Enable verbose logging
mcp-chat --verbose

# Show help
mcp-chat --help

支持的模型/API 提供商

  • OpenAI:gpt-5.4-mini、gpt-5.2 等。
  • Anthropic:claude-sonnet-4-6、claude-haiku-4-5 等。
  • Google (GenAI):gemini-3.1-flash-lite-preview、gemini-2.5-flash 等。
  • xAI:grok-4-1-fast-non-reasoning、grok-3-mini 等。
  • Cerebras:gpt-oss-120b 等。
  • Groq:openai/gpt-oss-20b、openai/gpt-oss-120b 等。

配置

创建 llm_mcp_config.json5 文件:

  • MCP 服务的配置文件格式 与 Claude for Desktop采用相同的结构, 但有一处不同:键名 mcpServers 已更改为 mcp_servers, 以遵循 JSON 配置文件中常用的 snake_case 命名约定。
  • 文件格式为 JSON5, 支持注释和尾随逗号。
  • 格式还进行了扩展,可将 ${...} 表示法 替换为对应环境变量的值。
  • 请将所有凭据和私人信息保存在 .env 文件中, 并按需使用 ${...} 表示法引用它们
{
  "llm": {
    "provider": "openai",       "model": "gpt-5.4-mini"
    // "provider": "anthropic",    "model": "claude-haiku-4-5"
    // "provider": "google_genai", "model": "gemini-2.5-flash"
    // "provider": "xai",          "model": "grok-4-1-fast-non-reasoning"
    // "provider": "cerebras",     "model": "gpt-oss-120b"
    // "provider": "groq",         "model": "openai/gpt-oss-20b"
  },

  "example_queries": [
    "Read and briefly summarize the llm_mcp_config.json5 file in the current directory",
    "Fetch the raw HTML content from bbc.com and tell me the titile",
    // "Search for 'news in California' and show the first hit",
    // "Tell me about my authenticated GitHub profile",
    // "Tell me about my authenticated Notion account",
  ],

  "mcp_servers": {
    // Local MCP server that uses `npx`
    // https://www.npmjs.com/package/@modelcontextprotocol/server-filesystem
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "."  // path to a directory to allow access to
      ]
    },

    // Local MCP server that uses `uvx`
    // https://pypi.org/project/mcp-server-fetch/
    "fetch": {
      "command": "uvx",
      "args": [
        "mcp-server-fetch"
      ]
    },

    // Embedding the value of an environment variable
    // https://www.npmjs.com/package/@modelcontextprotocol/server-brave-search
    "brave-search": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-brave-search"
      ],
      "env": {
        "BRAVE_API_KEY": "${BRAVE_API_KEY}"
      }
    },

    // Example of remote MCP server authentication via Authorization header
    // https://github.com/github/github-mcp-server?tab=readme-ov-file#remote-github-mcp-server
    "github": {
      // To avoid auto protocol fallback, specify the protocol explicitly when using authentication
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ${GITHUB_PERSONAL_ACCESS_TOKEN}"
      }
    },

    // For remote MCP servers that require OAuth, consider using "mcp-remote"
    "notion": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.notion.com/mcp"],
    },
  }
}
环境变量

创建 .env 文件以存放 API 密钥:

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_...

# Other services as needed
GITHUB_PERSONAL_ACCESS_TOKEN=github_pat_...
BRAVE_API_KEY=BSA...

可尝试的热门 MCP 服务

目前已有不少实用的 MCP 服务:

故障排除

  • 确保配置文件和 .env 文件正确无误,尤其要检查 API 密钥的拼写
  • 查看本地 MCP 服务日志
  • 使用 --verbose 标志查看详细日志
  • 参阅 MCP 文档中的调试部分

从源代码构建

详情请参阅 README_DEV.md。

更新日志

点击此处查看

许可证

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

贡献

欢迎提交问题和拉取请求!
特别欢迎分享与最新版本的大模型和特定 MCP 服务相关的问题。
此工具旨在让 MCP 服务测试尽可能简单。

评论

支持 Markdown

第一次接触 MCP?

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

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