关于 MCPHost 🤖
一个 Go 实现的 CLI 主机应用,使大模型通过 MCP 与外部工具交互。支持 Claude 3.5 Sonnet 和 Ollama 模型,管理 MCP 服务连接并提供工具调用能力。
主要功能
- 01Claude 和 Ollama 模型支持
- 02多个 MCP 服务管理
- 03动态工具发现
- 04交互式对话界面
- 05可配置消息历史窗口
适用场景
- 01本地 LLM 与工具集成
- 02多 MCP 服务管理
- 03AI 模型工具调用
- 04开发 MCP 服务测试
MCP 相关
MCPHost 作为 MCP 主机,维护与多个 MCP 服务的连接,使大模型能够发现和调用这些服务暴露的工具和资源。
详细介绍
MCPHost 🤖
一个 CLI 主应用,使大模型能够通过 Model Context Protocol (MCP) 与外部工具交互。目前支持 Claude 3.5 Sonnet 和 Ollama 模型。
概述 🌟
MCPHost 在 MCP 客户端-服务器架构中充当主应用,其中:
- 主应用(如 MCPHost)是管理连接和交互的大模型应用
- 客户端与 MCP 服务维持 1:1 连接
- 服务为大模型提供上下文、工具和功能
这种架构允许语言模型:
- 访问外部工具和数据源 🛠️
- 在交互间保持一致的上下文 🔄
- 安全地执行命令和检索信息 🔒
目前支持:
- Claude 3.5 Sonnet (claude-3-5-sonnet-20240620)
- 任何支持函数调用的 Ollama 兼容模型
功能 ✨
- 与 Claude 3.5 Sonnet 或 Ollama 模型的交互式对话
- 支持多个并发 MCP 服务
- 动态工具发现和集成
- 两种模型类型的工具调用功能
- 可配置的 MCP 服务位置和参数
- 跨模型类型的一致命令接口
- 可配置的消息历史窗口用于上下文管理
需求 📋
- Go 1.23 或更高版本
- Claude:Anthropic API 密钥
- Ollama:本地 Ollama 安装和所需模型
- 一个或多个 MCP 兼容的工具服务
环境设置 🔧
- Anthropic API 密钥(用于 Claude):
export ANTHROPIC_API_KEY='your-api-key'
- Ollama 设置:
- 从 https://ollama.ai 安装 Ollama
- 拉取您所需的模型:
ollama pull mistral
- 确保 Ollama 正在运行:
ollama serve
安装 📦
go install github.com/mark3labs/mcphost@latest
配置 ⚙️
MCPHost 会在 ~/.mcp.json 处自动创建配置文件(如果不存在)。您也可以使用 --config 标志指定自定义位置:
{
"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 服务:
使用 🚀
MCPHost 是一个 CLI 工具,允许您通过统一接口与各种 AI 模型交互。它通过 MCP 服务支持各种工具。
可用模型
可以使用 --model (-m) 标志指定模型:
- Anthropic Claude(默认):
anthropic:claude-3-5-sonnet-latest - OpenAI:
openai:gpt-4 - Ollama 模型:
ollama:modelname
示例
# Use Ollama with Qwen model
mcphost -m ollama:qwen2.5:3b
# Use OpenAI's GPT-4
mcphost -m openai:gpt-4
标志
--anthropic-url string:Anthropic API 基础 URL(默认为 api.anthropic.com)--anthropic-api-key string:Anthropic API 密钥(也可通过 ANTHROPIC_API_KEY 环境变量设置)--config string:配置文件位置(默认为 $HOME/mcp.json)--debug:启用调试日志--message-window int:保持在上下文中的消息数量(默认:10)-m, --model string:要使用的模型(格式:provider:model)(默认 "anthropic:claude-3-5-sonnet-latest")--openai-url string:OpenAI API 基础 URL(默认为 api.openai.com)--openai-api-key string:OpenAI API 密钥(也可通过 OPENAI_API_KEY 环境变量设置)
交互式命令
聊天时,您可以使用:
/help:显示可用命令/tools:列出所有可用工具/servers:列出配置的 MCP 服务/history:显示对话历史/quit:退出应用Ctrl+C:随时退出
全局标志
--config:指定自定义配置文件位置--message-window:设置保持在上下文中的消息数量(默认:10)
MCP 服务兼容性 🔌
MCPHost 可与任何符合 MCP 的服务配合使用。有关示例和参考实现,请参阅 MCP 服务仓库。
贡献 🤝
欢迎贡献!你可以:
- 通过 issue 提交 bug 报告或功能请求
- 创建 pull request 进行改进
- 分享你的自定义 MCP 服务
- 改进文档
请确保你的贡献遵循良好的编码实践并包含适当的测试。
许可证 📄
本项目采用 MIT 许可证 - 详见 LICENSE 文件。
致谢 🙏
- 感谢 Anthropic 团队提供 Claude 和 MCP 规范
- 感谢 Ollama 团队提供他们的本地大模型运行时
- 感谢所有帮助改进此工具的贡献者
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。