Hoogle MCP Server
一个用于在AI助手(Cursor、Claude Desktop、Codebuddy等)中搜索Haskell文档的MCP(模型上下文协议)服务器。
 ](https://nodejs.org/) 
📑 快速导航
| 文档 | 说明 |
|---|---|
| 🎉 WELCOME.md | 新手从这里开始! 快速上手指南 |
| 🚀 QUICKSTART.md | 5分钟快速配置 |
| 💡 USAGE_EXAMPLES.md | 详细使用示例和技巧 |
| 📊 PROJECT_SUMMARY.md | 项目技术细节和架构 |
| ✅ DELIVERY_CHECKLIST.md | 项目完成度检查清单 |
功能特性
- 🔍 通过Hoogle API搜索Haskell函数、类型、模块和包
- 📚 支持函数名搜索、类型签名搜索和关键词搜索
- 🌐 可通过stdio或HTTP两种方式运行
- 🚀 完整的TypeScript类型支持
安装
npm install
npm run build使用方法
方式1:Stdio模式(推荐用于Claude Desktop、Codebuddy)
启动stdio服务器:
npm start方式2:HTTP模式(用于远程访问)
启动HTTP服务器:
npm run start:streamableHttp默认监听端口:3088
配置AI工具
Claude Desktop配置
编辑Claude Desktop配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
添加以下配置:
{
"mcpServers": {
"hoogle": {
"command": "node",
"args": ["/path/to/Hoogle_MCP_Server/dist/index.js"]
}
}
}Codebuddy配置
在Codebuddy设置中添加MCP服务器,配置类似:
{
"mcpServers": {
"hoogle": {
"command": "node",
"args": ["/home/unixzhang/Hoogle_MCP_Server/dist/index.js"]
}
}
}Cursor配置
Cursor通常使用HTTP模式连接MCP服务器:
- 启动HTTP服务器:
npm run start:streamableHttp - 在Cursor设置中添加MCP端点:
http://localhost:3088/mcp
可用工具
search_hoogle
在Hoogle中搜索Haskell相关内容。
参数:
query(string, 必需): 搜索查询,可以是:
- 函数名:map - 类型签名:(a -> b) -> [a] -> [b] - 关键词:monad transformer
count(number, 可选): 返回结果数量(默认10,最大100)
示例:
在AI助手中,你可以这样使用:
请搜索Haskell中的map函数帮我查找类型为 a -> [a] 的函数在Hoogle中搜索 monad transformer,显示前5个结果开发
监视模式
开发时可以使用watch模式自动重新编译:
npm run watch项目结构
Hoogle_MCP_Server/
├── src/
│ ├── index.ts # Stdio入口
│ ├── server.ts # 核心MCP服务器逻辑(Hoogle搜索实现)
│ └── streamableHttp.ts # HTTP服务器入口
├── dist/ # 编译输出
├── package.json
├── tsconfig.json
└── README.md技术栈
- MCP SDK:
@modelcontextprotocol/sdk- 模型上下文协议实现 - TypeScript: 类型安全的开发体验
- Zod: 运行时类型验证
- Express: HTTP服务器(可选)
- Hoogle API: https://hoogle.haskell.org/
API接口说明
Hoogle MCP Server使用Hoogle官方JSON API:
GET https://hoogle.haskell.org/?mode=json&hoogle={query}&count={count}返回的结果包含:
- 函数/类型的完整签名
- 所属模块和包信息
- 文档链接
- 简短说明
许可证
MIT
