MCPHost 实战:利用模型上下文协议连接大模型与外部工具
MCPHost 是一个轻量级的命令行宿主应用,核心作用是让大型语言模型(LLM)通过模型上下文协议(MCP)与外部工具进行交互。它支持 Claude、Ollama 以及本地部署的 DeepSeek 等模型。这次实践主要围绕如何配置并跑通 Time MCP 服务展开。
安装与准备
MCPHost 本身非常小巧,无需复杂的环境依赖,下载解压即可运行。官方在 GitHub 上提供了 Windows、Linux 和 macOS 的压缩包。
建议先准备好前置环境,主要是 uv 和 nodejs,这有助于后续运行部分 MCP 服务器。
配置 MCP 服务
要在命令行下使用 MCP 交互,首先需要创建一个配置文件,比如命名为 mcp.json。这个文件定义了 LLM 可以调用的工具。
以时间服务为例,配置内容如下:
{
"mcpServers": {
"time": {
"command": "uvx",
"args": ["mcp-server-time", "--local-timezone=Asia/Shanghai"]
}
}
}
这里的关键是 command 和 args,它们指定了启动外部工具的命令及参数。注意时区设置,避免获取到 UTC 时间导致混淆。
启动与交互
接下来就是最关键的步骤:连接 AI 服务器并启动服务。假设你有一个本地运行的 AI API 服务地址(例如 http://192.168.1.5:1337),或者直接使用 OpenAI、Ollama 等提供的 API。
一条命令即可连通服务器、加载配置并进入交互模式:
mcphost --openai-api-key=$OPENAI_API_KEY -m openai:gpt-4o --openai-url http://192.168.1.5:1337 --config mcp.json
进入界面后,直接输入问题即可。比如询问当前时间,系统会自动调用配置的 time 工具。
如果需要查看可用指令,输入 /help;查看已加载的工具列表用 /tools;查看配置的服务用 /servers。这些内置命令能帮你快速排查问题。
调试与模型选择
在实际测试中,模型的选择对功能实现影响很大。起初尝试 GPT-4o,虽然能正常对话,但无法准确调用时间工具返回结果。切换到 Claude 3.5 Sonnet 时,由于本地服务器配置或模型兼容性问题,偶尔会出现连接中断或报错。
后来将模型切换为 DeepSeek-V3,问题迎刃而解。DeepSeek-V3 对函数调用(Function Calling)的支持比较稳定,能够正确解析 MCP 请求并返回时间信息。


