关于 MCP-Haskell (hs-mcp)
MCP-Haskell(hs-mcp)是一个 Haskell 实现的 Model Context Protocol 库,可让 Haskell 应用向 Claude 等 MCP 客户端暴露工具、资源和提示词。适合希望用 Haskell 编写 MCP 服务的开发者。
主要功能
- 01实现 MCP 协议的核心功能
- 02基于 StdIO 的本地进程通信
- 03JSON-RPC 消息处理
- 04支持工具、资源和提示词
- 05包含测试套件
适用场景
- 01用 Haskell 编写自定义 MCP 服务
- 02使用示例 echo 服务测试 MCP 功能
- 03通过 MCP Inspector 或 Claude Desktop 调试服务
MCP 相关
作为 MCP 服务端库,Haskell 应用可向 Claude Desktop 等 MCP 客户端暴露 tools、resources 和 prompts。传输方式目前为 StdIO。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP-Haskell (hs-mcp)
Model Context Protocol (MCP) 的 Haskell 实现。
概述
MCP-Haskell (hs-mcp) 提供了 Model Context Protocol 的 Haskell 实现,使 Haskell 应用能够向 Claude 等兼容 MCP 的客户端暴露工具、资源和提示词。
主要特性:
- 完整实现 MCP 协议
- 用于本地进程通信的 StdIO 传输
- JSON-RPC 消息传递
- 支持资源、工具和提示词
- 全面的测试套件
安装
# Clone the repository
git clone github.com:buecking/hs-mcp.git
cd hs-mcp
# direnv
# echo 'use flake' > .envrc
direnv allow
# nix
nix develop
# Build the project
cabal build
用法
创建简单的服务
import Network.MCP.Server
import Network.MCP.Types
import Network.MCP.Server.StdIO
main :: IO ()
main = do
-- Create server
let serverInfo = Implementation "my-server" "1.0.0"
serverCapabilities = ServerCapabilities
{ resourcesCapability = Just $ ResourcesCapability True
, toolsCapability = Just $ ToolsCapability True
, promptsCapability = Nothing
}
server <- createServer serverInfo serverCapabilities
-- Register resources (optional)
let resource = Resource
{ resourceUri = "my://resource"
, resourceName = "My Resource"
, resourceDescription = Just "Description"
, resourceMimeType = Just "text/plain"
, resourceTemplate = Nothing
}
registerResources server [resource]
-- Register resource read handler
registerResourceReadHandler server $ \request -> do
-- Implement resource reading logic
...
-- Register tools (optional)
let tool = Tool
{ toolName = "my-tool"
, toolDescription = Just "My tool"
, toolInputSchema = "{...}" -- JSON schema
}
registerTools server [tool]
-- Register tool call handler
registerToolCallHandler server $ \request -> do
-- Implement tool execution logic
...
-- Start the server with StdIO transport
runServerWithSTDIO server
示例服务
该项目包含一个演示 MCP 功能的示例 echo 服务:
# Build and run the example server
cabal run mcp-echo-server
你可以使用 MCP Inspector 或 Claude Desktop 进行测试。
测试
运行测试套件:
cabal test
协议兼容性
此实现遵循 Model Context Protocol 规范,并兼容:
- Claude Desktop
- MCP Inspector
- 其他遵循该规范的 MCP 客户端
项目结构
src/Network/MCP/Types.hs- 核心 MCP 类型src/Network/MCP/Transport/- 传输实现src/Network/MCP/Server/- 服务实现Examples/- 示例实现Test/- 测试套件
贡献
欢迎贡献!请随时提交 Pull Request。
许可证
本项目采用 BSD-3-Clause 许可证 - 详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。