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

从命令行快速测试和探索 MCP 服务!
项目状态
此工具基于
@h1deya/langchain-mcp-tools,
目前支持 MCP 协议版本 2025-03-26。
它不支持 MCP 2026-07-28 规范。
简介
这是一款基于文本的简易命令行客户端,用于连接由 LangChain 和 TypeScript 构建的 Model Context Protocol (MCP) 服务。
此工具会自动调整架构以兼容大模型,这有助于某些无法正常运行的 MCP 服务成功运行。
适用于测试 MCP 服务、探索其功能以及构建集成原型。
它在内部使用 LangChain Agent 和
@h1deya/langchain-mcp-tools 中的实用函数 convertMcpToLangchainTools()。
此函数会执行上述 MCP 工具架构转换,以兼容大模型。
详情请参阅此页面。
此工具的 Python 等效版本可在此处获取。
前置条件
- Node.js 18+
- [可选] npm 7+ (
npx) 用于运行基于 Node.js 包的本地 MCP 服务 - [可选] 安装
uv(uvx) 用于运行基于 Python 的本地(stdio)MCP 服务 - 根据需要准备以下服务商的一个或多个大模型 API 密钥: OpenAI、 Anthropic、 Google AI Studio(用于 GenAI/Gemini)、 xAI、 Cerebras 和/或 Groq
快速开始
-
安装
mcp-client-cli工具。 完成安装最多可能需要几分钟:npm install -g @h1deya/mcp-client-cli -
通过配置文件
llm_mcp_config.json5配置大模型和 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-client-cli默认情况下,它会从当前目录读取配置文件
llm_mcp_config.json5。
然后,它会应用.env文件中指定的环境变量,以及已定义的环境变量。
功能
- 轻松设置:开箱即用,支持常见的 MCP 服务
- 灵活配置:支持环境变量的 JSON5 配置
- 多个大模型服务商:OpenAI、Anthropic、Google (GenAI)
- 架构兼容性支持:自动调整工具架构以兼容大模型,这有助于某些无法正常运行的 MCP 服务成功运行。
详情请参阅此页面。
如果要禁用架构转换,请在配置文件的顶层添加
"schema_transformations": false,。 - 命令和 URL 服务:支持本地和远程 MCP 服务。
使用mcp-remote通过 OAuth 连接远程服务(请参阅下方配置示例末尾)。 - 实时日志记录:实时查看 stdio MCP 服务日志,并可自定义日志目录
- 交互式测试:提供示例查询,方便重复测试
限制
- 工具返回类型:目前仅支持工具调用返回文本结果。
内部使用 LangChain 的
response_format: 'content'(默认值),该格式仅支持文本字符串。 虽然 MCP 工具可以返回多种内容类型(文本、图像等),但此库目前只会筛选并使用文本内容。 - MCP 功能:仅支持 MCP 工具。其他 MCP 功能(如资源、提示词和采样)尚未实现。
使用方法
基本用法
mcp-client-cli
默认情况下,会从当前目录读取配置文件 llm_mcp_config.json5。
然后应用 .env 文件中指定的环境变量,
以及已定义的环境变量。
本地 MCP 服务日志会输出到当前目录。
使用选项
# Specify the config file to use
mcp-client-cli --config my-config.json5
# Store local (stdio) MCP server logs in specific directory
mcp-client-cli --log-dir ./logs
# Enable verbose logging
mcp-client-cli --verbose
# Show help
mcp-client-cli --help
支持的大模型提供商
- 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"
},
// To disable the automatic schema transformations, uncomment the following line.
// See this for details about the schema transformations:
// https://github.com/hideya/langchain-mcp-tools-ts/blob/main/README.md#llm-provider-schema-compatibility
//
// "schema_transformations": false,
"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...
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 服务相关的问题。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。