mcphost

MCPHost:一款 CLI 客户端,通过 MCP 协议助力 LLM 与外部工具高效集成,支持 Claude 和 Ollama 模型。

mcphost
mcphost能力展示

mcphost 解决方案概述

MCPHost 是一个命令行工具,作为 MCP 客户端-服务器架构中的主机,旨在简化大型语言模型(LLM)与外部工具的交互。它支持 Claude 3.5 Sonnet 和 Ollama 等模型,使开发者能够轻松地将 AI 模型连接到各种数据源和服务。

MCPHost 的核心功能包括动态工具发现、并发 MCP 服务器支持以及跨不同模型类型的一致命令界面。通过可配置的 MCP 服务器位置和消息历史记录窗口,开发者可以灵活地管理上下文和集成外部功能。

使用 MCPHost 的主要价值在于它简化了 AI 模型的扩展,解决了开发者在集成外部工具时面临的复杂性。它通过标准化的 MCP 协议,实现了 AI 模型与外部世界的安全、高效连接,从而加速了 AI 应用的开发和部署。MCPHost 通过 Go 语言构建,并支持通过标准输入/输出或 HTTP/SSE 进行通信。

mcphost 核心能力

统一的LLM交互界面

mcphost提供了一个统一的命令行界面,允许用户与不同的LLM(如Claude 3.5 Sonnet和Ollama模型)进行交互。用户无需关心底层模型的差异,即可通过一致的命令和参数与它们进行对话。这极大地简化了开发者在不同LLM之间切换和测试的工作流程。例如,开发者可以使用相同的命令来查询Claude 3.5 Sonnet和Ollama中的Mistral模型,从而比较它们的性能和输出结果。这种统一性降低了学习成本,并提高了开发效率。mcphost通过解析用户输入的命令,并将其转换为特定LLM所需的格式来实现这一功能。它还处理了不同LLM的API密钥和配置,使得用户可以专注于对话内容本身。

动态工具发现与集成

mcphost能够动态地发现和集成MCP服务器提供的工具。这意味着LLM可以在运行时访问各种外部工具和服务,而无需预先进行硬编码。这种动态性使得LLM能够适应不断变化的环境,并执行更复杂的任务。例如,如果一个MCP服务器提供了一个用于查询天气信息的工具,mcphost可以自动发现并将其提供给LLM。LLM可以利用这个工具来回答用户关于天气的问题。mcphost通过定期扫描配置文件中定义的MCP服务器,并解析它们提供的工具描述来实现这一功能。它还负责处理工具的认证和授权,确保LLM只能访问其被授权使用的工具。

可配置的MCP服务器管理

mcphost允许用户配置多个MCP服务器,并指定它们的命令和参数。这使得用户可以灵活地选择和组合不同的工具和服务,以满足其特定的需求。例如,用户可以配置一个MCP服务器来访问数据库,另一个MCP服务器来访问文件系统。然后,他们可以使用mcphost来指示LLM同时使用这两个服务器,从而执行需要访问数据库和文件系统的复杂任务。mcphost使用一个JSON配置文件来存储MCP服务器的配置信息。用户可以通过编辑这个文件来添加、删除或修改MCP服务器。mcphost还提供了一些命令行选项,允许用户在运行时覆盖配置文件中的设置。

技术实现:消息历史记录管理

mcphost维护一个可配置的消息历史记录窗口,用于上下文管理。这意味着LLM可以记住之前的对话内容,并将其用于生成后续的回复。这对于需要保持一致性和连贯性的对话非常重要。例如,如果用户问“今天天气怎么样?”,然后又问“明天呢?”,LLM可以利用消息历史记录来理解“明天”指的是明天的天气。mcphost使用一个环形缓冲区来存储消息历史记录。用户可以通过命令行选项来设置消息历史记录窗口的大小。mcphost还提供了一个/history命令,允许用户查看当前的对话历史记录。