快速从命令行测试和探索MCP服务器!
这是一个基于文本的CLI客户端,用于模型上下文协议(MCP)服务器,使用LangChain和Python构建。
适用于测试MCP服务器、探索其功能以及原型集成。
内部使用了LangChain ReAct代理和
来自langchain_mcp_tools的实用函数convert_mcp_to_langchain_tools()。
该工具的TypeScript等效版本可在此处找到:这里
uv (uvx),
用于运行基于Python包的MCP服务器npx),
用于运行基于Node.js包的MCP服务器安装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服务器的日志输出到当前目录。
response_format: 'content'(默认),这仅支持文本字符串。
虽然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
gpt-5-mini,gpt-4.1-nano等claude-sonnet-4-0,claude-3-5-haiku-latest等gemini-2.5-flash,gemini-2.5-pro等grok-3-mini,grok-4等gpt-oss-120b等openai/gpt-oss-20b,openai/gpt-oss-120b等创建一个llm_mcp_config.json5文件:
mcpServers已更改为mcp_servers,以遵循通常用于JSON配置文件的snake_case约定。${...}表示法。.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服务器可用:
.env文件正确无误,特别是API密钥的拼写--verbose标志查看详细日志可以在此处找到
详情请参阅README_DEV.md。
MIT许可证 - 详情请参阅LICENSE文件。
欢迎提出问题和拉请求!此工具旨在尽可能简化MCP服务器测试。