使用说明

项目简介

Hermes MCP 是一个基于 Elixir 语言构建的 Model Context Protocol (MCP) 实现,它提供了一套统一的解决方案,用于构建 MCP 客户端和服务器。该库充分利用 Elixir 语言的并发模型和容错能力,为 LLM 应用提供高性能、可靠的上下文服务。Hermes MCP 支持与 Phoenix 框架集成,以便使用 HTTP/SSE 传输,同时也支持标准的 Stdio 通信。

主要功能点

  • 完整的 MCP 协议实现: 实现了 Model Context Protocol 规范的客户端和服务器端。
  • 资源管理: 支持托管和管理各种类型的资源,为 LLM 提供数据访问能力。
  • 工具注册与执行: 允许注册和执行外部工具,扩展 LLM 的功能。
  • Prompt 模板: 支持定义和渲染 Prompt 模板,定制 LLM 交互模式。
  • 多种传输协议: 支持 Stdio 和 HTTP/SSE 传输协议。
  • 连接管理: 内置连接监控和自动恢复机制。
  • 能力协商: 支持客户端和服务器之间的能力协商。
  • 进度通知: 支持跟踪长时间运行操作的进度。
  • 结构化日志: 提供可配置的结构化日志系统。

安装步骤

  1. 添加依赖: 在你的 Elixir 项目的 'mix.exs' 文件中,将 'hermes_mcp' 添加到依赖项列表中:

    def deps do
      [
        {:hermes_mcp, "~> 0.2"}
      ]
    end
  2. 获取依赖: 运行以下命令来下载并安装依赖:

    mix deps.get

服务器配置

MCP 客户端需要配置连接 MCP 服务器的启动命令和参数。以下是根据仓库中提供的示例服务器生成的配置信息。你需要根据实际使用的服务器类型配置客户端。

  • Echo Server (Python 示例):

    {
      "server name": "Echo Server",
      "command": "python",
      "args": ["priv/dev/echo/index.py", "run", "stdio"],
      "description": "运行基于 Python 的 Echo Server 示例。请确保你的系统已安装 Python 环境,并且可以执行 'python' 命令。"
    }
  • Calculator Server (Go 示例):

    {
      "server name": "Calculator Server",
      "command": "go",
      "args": ["run", "priv/dev/calculator/main.go", "-transport", "stdio"],
      "description": "运行基于 Go 语言的 Calculator Server 示例。需要你的系统已安装 Go 语言环境,并且可以执行 'go' 命令。请在项目根目录下执行客户端,或者根据实际情况调整 'priv/dev/calculator/main.go' 的路径。"
    }

注意: 上述配置为示例配置, 实际使用时,你需要根据你部署的 MCP 服务器的类型、启动脚本路径、以及所需的运行参数进行调整。 'command' 指定了启动服务器的可执行命令, 'args' 是传递给该命令的参数列表。 'stdio' 通常用于本地进程间通信。

基本使用方法

Hermes MCP 主要包含客户端和服务端两部分,仓库文档和示例代码主要展示了客户端的使用方法。以下是基本的使用流程:

  1. 启动 MCP 服务器: 根据你选择的服务器示例 (如 Echo Server 或 Calculator Server),按照其说明启动 MCP 服务器。确保服务器运行并监听客户端连接。

  2. 配置并启动 MCP 客户端: 在你的 Elixir 应用中,根据 "Usage Example" 中的代码示例,配置并启动 Hermes MCP 客户端。你需要指定服务器的传输方式 (如 Stdio) 和服务器的启动配置 (command, args)。

  3. 使用客户端 API 与服务器交互: 通过 'Hermes.Client' 模块提供的函数,例如 'Hermes.Client.list_resources', 'Hermes.Client.read_resource', 'Hermes.Client.call_tool', 'Hermes.Client.list_prompts', 'Hermes.Client.get_prompt' 等,向 MCP 服务器发送请求,获取资源信息、调用工具或获取 Prompt 模板。

  4. 处理响应: 客户端 API 调用返回 '{:ok, result}' 或 '{:error, error}' 格式的结果。你需要根据返回结果进行相应的处理,例如解析资源数据、处理工具调用结果或处理错误信息。

请参考仓库的 README.md 文件、示例代码以及文档,了解更详细的客户端和服务端使用方法和 API 说明。

信息

分类

AI与计算