关于 MCP-CLI-HOST
MCP-CLI-HOST 是一个命令行形式的 MCP 客户端,让 LLM 通过 Model Context Protocol 调用外部工具。它支持 OpenAI、Azure OpenAI、Deepseek、Ollama 和 Gemini 等模型,适合希望在终端中统一使用多个模型和 MCP 服务的用户。
主要功能
- 01支持同时连接多个 MCP 服务
- 02动态发现并集成工具
- 03可配置 MCP 服务的位置与参数
- 04支持消息历史窗口管理上下文
- 05支持 Sampling、Roots、Elicitation 及资源和提示词获取
- 06支持 Streamable HTTP 远程服务
适用场景
- 01在命令行中与不同 LLM 模型交互并调用本地或远程工具
- 02通过 SQLite 或文件系统等 MCP 服务查询与操作数据
- 03在运行时排除特定工具以控制对话中可用的能力
MCP 相关
作为 MCP 客户端,它读取 ~/.mcp.json 等配置文件,连接 STDIO 或 Streamable HTTP 类型的 MCP 服务,并把服务提供的工具、资源和提示词提供给 LLM 使用。
详细介绍
MCPCLIHost 🤖
一个 CLI 宿主应用,可让大语言模型(LLM)通过 Model Context Protocol(MCP)与外部工具交互。目前支持 Openai、Azure Openai、Deepseek 和 Ollama 模型。
英语 | 简体中文
效果展示:🤠

功能 ✨
- 与多个 LLM 模型进行交互式对话
- 支持多个并发 MCP 服务
- 动态发现并集成工具
- 可配置 MCP 服务的位置和参数
- 可配置用于上下文管理的消息历史窗口
- 监控/追踪服务端错误
- 支持 Sampling、Roots、Elicitation、检索 Resource、Prompts
- 支持在运行时排除特定工具
- 连接后显示 MCP 服务卡片
- 显示工具调用输出中的图片
最新更新 💌
- [2025-11-26] 支持显示工具调用输出中的图片
- [2025-07-18] 支持 Streamable HTTP MCP 服务,暂不支持 OAuth 流程
- [2025-07-02] 支持 Elicitation
- [2025-06-27] 处理 MCP 服务中的
Prompts:链接 - [2025-06-20] 处理 MCP 服务中的
Resources:链接
环境设置 🔧
- 对于 Openai 和 Deepseek:
export OPENAI_API_KEY='your-api-key'
Openai 的默认 base_url 为 "https://api.openai.com/v1"
Deepseek 的默认值为 "https://api.deepseek.com",你可以通过 --base-url 更改
- 对于 Ollama,需先进行设置:
- 从 https://ollama.ai 安装 Ollama
- 拉取所需模型:
ollama pull mistral
- 确保 Ollama 正在运行:
ollama serve
- 对于 Azure Openai:
export AZURE_OPENAI_DEPLOYMENT='your-azure-deployment'
export AZURE_OPENAI_API_KEY='your-azure-openai-api-key'
export AZURE_OPENAI_API_VERSION='your-azure-openai-api-version'
export AZURE_OPENAI_ENDPOINT='your-azure-openai-endpoint'
- 对于 Google Gemini
export GEMINI_API_KEY='your-gemini-api-token'
安装 📦
pip install mcp-cli-host
配置 ⚙️
MCPCLIHost 会自动查找 ~/.mcp.json 配置文件。你也可以使用 --config 标志指定自定义位置:
STDIO MCP 服务
{
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": [
"mcp-server-sqlite",
"--db-path",
"/tmp/foo.db"
]
},
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/tmp"
]
}
}
}
每个 MCP 服务条目都需要:
command:要运行的命令(例如uvx、npx)args:命令参数数组:- 对于 SQLite 服务:
mcp-server-sqlite和数据库路径 - 对于文件系统服务:
@modelcontextprotocol/server-filesystem和目录路径
- 对于 SQLite 服务:
远程 MCP 服务(仅支持 Streamable HTTP)
{
"mcpServers": {
"github": {
"url": "https://api.githubcopilot.com/mcp/",
"headers": {"Authorization": "Bearer <your PAT>"}
}
}
}
用法 🚀
MCPCLIHost 是一个 CLI 工具,可让你通过统一界面与各种 AI 模型交互。它通过 MCP 服务支持各种工具。
可用模型
可使用 --model(-m)标志指定模型:
- Deepseek:
deepseek:deepseek-chat - OpenAI:
openai:gpt-4 - Ollama 模型:
ollama:modelname - Azure Openai:
azure:gpt-4-0613 - Gemini:
gemini:gemini-2.5-flash
示例
# Use Ollama with Qwen model
mcpclihost -m ollama:qwen2.5:3b
# Use Deepseek
mcpclihost -m deepseek:deepseek-chat --sys-prompt 'You are a slightly playful assistant, please answer questions in a cute tone!'
标志
--config string:配置文件位置(默认为 $HOME/mcp.json)--debug:启用调试日志--message-window int:上下文中保留的消息数量(默认值:10)-m, --model string:要使用的模型(格式:provider:model)(默认值 "anthropic:claude-3-5-sonnet-latest")--base-url string:OpenAI API 的基础 URL(默认为 api.openai.com)--roots string:向服务公开文件系统“roots”的 MCP 客户端--sys-prompt string:系统提示词
交互式命令
聊天时,你可以使用:
/help:显示可用命令/tools:列出所有可用工具/exclude_tool tool_name:将指定工具排除在对话之外/resources:列出所有可用资源/get_resource:按 uri 获取指定资源,例如:/get_resource resource_uri/prompts:列出所有可用提示词/get_prompt:按名称获取指定提示词,例如:/get_prompt prompt_name/servers:列出已配置的 MCP 服务/history:显示对话历史/quit:随时退出
MCP 服务兼容性 🔌
MCPCliHost 可与任何符合 MCP 规范的服务配合使用。示例和参考实现请参阅 MCP 服务仓库。
已知问题 🐛
- 在
Sampling和Elicitation场景中,输入 "Ctrl+c" 时,进程会因类似asyncio.exceptions.CancelledError的错误而崩溃,之后会修复。
许可证 📄
本项目采用 Apache 2.0 License 许可,详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。