使用说明
项目简介
Hermes MCP 是一个使用 Elixir 语言开发的高性能 Model Context Protocol (MCP) 实现库,旨在为大型语言模型 (LLM) 应用提供标准化的上下文服务。该仓库不仅包含客户端实现,也提供了服务器端的功能,允许开发者快速搭建 MCP 服务器来管理资源、工具和 Prompt 模板。虽然项目主要使用 Elixir 开发,但仓库中也提供了 Python 和 Go 语言编写的示例 MCP 服务器,方便用户快速体验和测试 MCP 协议的服务端能力。
主要功能点
- 资源管理: 支持托管和管理各种类型的资源,例如文本文件、数据库连接等,并通过标准化的 URI 访问。
- 工具注册与执行: 允许注册可被 LLM 调用的外部功能(工具),例如计算器、搜索引擎等,并支持参数化调用。
- Prompt 模板: 支持定义和渲染 Prompt 模板,根据客户端请求动态生成 Prompt,实现可定制的 LLM 交互模式。
- 多传输协议支持: 示例服务器支持 Stdio 传输协议,方便本地测试和开发。
- JSON-RPC 通信: 遵循 MCP 协议规范,使用 JSON-RPC 协议与客户端进行通信。
安装步骤
由于 Hermes MCP 主要是一个 Elixir 库,如果用户希望基于 Elixir 构建 MCP 服务器或客户端,需要 Elixir 环境。但对于体验仓库中提供的 Python 和 Go 示例服务器,则只需安装相应的运行时环境即可。
Python 示例服务器 (echo):
- 确保已安装 Python 环境。
- 切换到仓库目录,Python 示例服务器代码位于 'priv/dev/echo/index.py'。
Go 示例服务器 (calculator):
- 确保已安装 Go 环境。
- 切换到仓库目录,Go 示例服务器代码位于 'priv/dev/calculator/main.go'。
服务器配置
以下是 MCP 客户端连接到示例服务器时需要配置的关键信息。这些配置通常在 MCP 客户端的启动或连接设置中使用。
Python Echo 服务器配置:
{ "serverName": "Echo", "command": "python", "args": ["priv/dev/echo/index.py"] }
- 'serverName': 服务器名称,示例中为 "Echo"。
- 'command': 启动服务器的命令,这里使用 'python' 解释器。
- 'args': 传递给命令的参数,指定 Python 脚本的路径 'priv/dev/echo/index.py'。
Go Calculator 服务器配置:
{ "serverName": "Calculator", "command": "go", "args": ["run", "priv/dev/calculator/main.go"] }
- 'serverName': 服务器名称,示例中为 "Calculator"。
- 'command': 启动服务器的命令,使用 'go' 运行 Go 代码。
- 'args': 传递给命令的参数,指定 Go 代码路径 'priv/dev/calculator/main.go'。
注意: 实际使用时,MCP 客户端需要根据具体的服务器部署位置和启动方式配置 'command' 和 'args'。如果 Go 代码被编译成可执行文件,'command' 应指向可执行文件路径,'args' 可能为空或包含其他运行参数。
基本使用方法
- 启动 MCP 服务器: 根据选择的示例服务器 (Python 或 Go),在终端中执行相应的启动命令。例如,对于 Python Echo 服务器,可以直接运行 'python priv/dev/echo/index.py'。对于 Go Calculator 服务器,可以运行 'go run priv/dev/calculator/main.go'。
- 配置 MCP 客户端: 在 MCP 客户端中,配置连接信息,包括服务器的 'command' 和 'args',以及服务器名称等。
- 客户端与服务器交互: 客户端启动后,将自动与 MCP 服务器建立连接并进行能力协商。之后,客户端可以发送请求,例如列出资源、调用工具或获取 Prompt。
- 查看响应: 服务器处理客户端请求后,会将结果以 JSON-RPC 响应的形式返回给客户端。客户端根据响应内容进行后续处理。
示例操作 (假设使用 Python Echo 服务器):
- 客户端发送请求列出资源,服务器会返回 "echo://{message}" 资源。
- 客户端请求读取资源 "echo://hello",服务器会返回 "Resource echo: hello"。
- 客户端请求调用工具 "echo_tool",参数为 '{"message": "world"}',服务器会返回 "Tool echo: world"。
- 客户端请求获取 Prompt "echo_prompt",参数为 '{"message": "你好"}',服务器会返回 "Please process this message: 你好"。
请参考仓库 README 和 MCP 协议文档了解更多客户端操作和高级用法。
信息
分类
AI与计算