关于 Simple CLI MCP Client Using LangChain / Python
这是一款使用 LangChain Agent 测试和探索 MCP 服务的 Python 命令行客户端。它可连接本地和远程服务,并通过 LangChain 使用 MCP 工具。
主要功能
- 01连接本地和远程 MCP 服务
- 02JSON5 配置与环境变量
- 03支持多种大模型提供方
- 04可指定目录保存本地服务日志
- 05交互式示例查询
适用场景
- 01探索 MCP 服务工具
- 02测试本地或远程服务
- 03原型化 MCP 集成
MCP 相关
可连接本地和远程 MCP 服务并使用其工具。仅支持文本工具结果,不支持 MCP 资源、提示词或采样。
详细介绍
探索 MCP 服务的简单 MCP 客户端

通过命令行快速测试和探索 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 等效版本可在此处获取。
前置条件
- Python 3.11+
- [可选] 安装
uv(uvx), 用于运行基于 Python 包的本地 MCP 服务 - [可选] npm 7+ (
npx), 用于运行基于 Node.js 包的本地 MCP 服务 - 按需获取以下服务商的一个或多个 LLM API 密钥: OpenAI、 Anthropic、 Google AI Studio(用于 GenAI/Gemini)、 xAI、 Cerebras 和/或 Groq
快速开始
-
安装
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 服务测试尽可能简单。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。