mcpField
M
MCPHost 🤖

MCPHost 🤖

github.com/dictybase-docker框架与 SDK082 周前更新

关于 MCPHost 🤖

一个 Go 实现的 CLI 主机应用,使大模型通过 MCP 与外部工具交互。支持 Claude 3.5 Sonnet 和 Ollama 模型,管理 MCP 服务连接并提供工具调用能力。

主要功能

  1. 01Claude 和 Ollama 模型支持
  2. 02多个 MCP 服务管理
  3. 03动态工具发现
  4. 04交互式对话界面
  5. 05可配置消息历史窗口

适用场景

  1. 01本地 LLM 与工具集成
  2. 02多 MCP 服务管理
  3. 03AI 模型工具调用
  4. 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 兼容的工具服务

环境设置 🔧

  1. Anthropic API 密钥(用于 Claude):
export ANTHROPIC_API_KEY='your-api-key'
  1. 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 和目录路径

使用 🚀

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

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。