项目简介
hs-mcp 是一个使用 Haskell 语言实现的 Model Context Protocol (MCP) 服务器端框架。它允许开发者构建应用后端,以标准化的方式向兼容 MCP 的大型语言模型 (LLM) 客户端(如 Claude Desktop、MCP Inspector)提供上下文信息、工具和 Prompt 模板。
主要功能点
- 完整实现 MCP 协议,处理客户端发来的请求并返回响应。
- 支持通过 StdIO(标准输入/输出)进行通信,适用于本地进程间交互。
- 处理 JSON-RPC 格式的消息。
- 支持管理和提供 资源(例如文档、数据),客户端可以读取这些资源作为上下文。
- 支持注册和执行 工具,允许 LLM 调用外部功能。
- 支持定义和渲染 Prompt 模板(功能声明为可选)。
安装步骤
- 确保您的系统已安装 Haskell 开发环境(推荐使用 GHC 和 Cabal)。
- 打开终端,克隆项目仓库:
git clone https://github.com/buecking/hs-mcp.git cd hs-mcp - 使用 Cabal 构建项目:
cabal build
提示:项目也提供了 Nix 和 direnv 支持,但使用 Cabal 构建是最通用的方法。
服务器配置
MCP 客户端需要知道如何启动 MCP 服务器进程才能与其建立连接。通常,这需要您在客户端的配置界面中填写服务器的启动命令及其参数。
以下是一个示例配置结构,您需要根据实际情况填写:
{ "name": "自定义服务器名称", // 给您的服务器起一个易于识别的名字 "command": ["服务器可执行文件路径或构建命令"], // 启动服务器的命令,如 cabal run my-server "args": ["参数1", "参数2"] // 启动命令所需的额外参数,如果没有可以为空数组 [] }
例如,如果您要运行项目自带的 echo 示例服务器,配置中的 'command' 可能就是 '["cabal", "run", "mcp-echo-server"]'。
基本使用方法
- 安装并构建 hs-mcp 项目。
- 参考项目提供的示例(如 'mcp-echo-server'),编写您自己的 Haskell 程序。
- 在您的程序中,使用 hs-mcp 库提供的函数创建 MCP 服务器实例,并注册您想要提供的资源、工具及其对应的处理函数。
- 使用 'runServerWithSTDIO' 等函数启动服务器,使其监听来自 MCP 客户端的请求。
- 在兼容的 MCP 客户端中,添加并配置您的服务器启动命令,客户端即可连接并与您的服务器交互。
信息
分类
AI与计算