drio
Open app

Hackage Documentation MCP

Source

An MCP server to give Claude easy access to pulling docs

Catalog onlyCatalog onlySTDIO

Overview

Hackage Documentation MCP is a Machine-Controlled Program (MCP) that provides an interface for AI assistants to access Haskell documentation from Hackage, enabling real-time retrieval of precise and up-to-date documentation for specific Haskell modules.

To use the MCP, ensure you have Python 3.7+ installed, install the required dependencies, and run the server using the command python main.py. You can then use the get_docs(package, version, module) API to retrieve documentation for specific Haskell modules.

  • Retrieve documentation for specific modules from any package on Hackage. - Specify exact package versions to ensure accuracy. - Clean, text-based output that's easily consumable by AI assistants.
  1. Learning Haskell libraries by getting detailed information about specific modules.
  2. Understanding type signatures by accessing accurate type information for functions in Haskell modules.
  3. Exploring module hierarchies to understand how modules are organized within Haskell packages.
  4. Verifying AI-generated code by comparing AI suggestions with official documentation.

Add to your AI client

Use these steps to connect Hackage Documentation MCP in Cursor, Claude, VS Code, and other MCP-compatible apps. The same JSON appears in the Use with menu above for one-click copy.

Cursor

Add this to your .cursor/mcp.json file in your project root, then restart Cursor.

.cursor/mcp.json

{
  "mcpServers": {
    "haskell-hackage-mcp-apenugon": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-haskell-hackage-mcp-apenugon"
      ]
    }
  }
}

Claude Desktop

Add this server entry to the mcpServers object in your Claude Desktop config, then restart the app.

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)

{
  "mcpServers": {
    "haskell-hackage-mcp-apenugon": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-haskell-hackage-mcp-apenugon"
      ]
    }
  }
}

Claude Code

Add this to your project's .mcp.json file. Claude Code will detect it automatically.

.mcp.json (project root)

{
  "mcpServers": {
    "haskell-hackage-mcp-apenugon": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-haskell-hackage-mcp-apenugon"
      ]
    }
  }
}

VS Code (Copilot)

Add this to your .vscode/mcp.json file. Requires the GitHub Copilot extension with MCP support enabled.

.vscode/mcp.json

{
  "servers": {
    "haskell-hackage-mcp-apenugon": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-haskell-hackage-mcp-apenugon"
      ]
    }
  }
}

Windsurf

Add this to your Windsurf MCP config file, then restart Windsurf.

~/.codeium/windsurf/mcp_config.json

{
  "mcpServers": {
    "haskell-hackage-mcp-apenugon": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-haskell-hackage-mcp-apenugon"
      ]
    }
  }
}

Cline

Open Cline settings, navigate to MCP Servers, and add this server configuration.

Cline MCP Settings (via UI)

{
  "mcpServers": {
    "haskell-hackage-mcp-apenugon": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-haskell-hackage-mcp-apenugon"
      ]
    }
  }
}

FAQ

What programming language is this MCP written in?

The MCP is written in Python.

Do I need an internet connection to use this MCP?

Yes, an internet connection is required to access Hackage.

Can this MCP provide implementation code?

No, it only provides documentation content, not the implementation code.7:["$","div",null,{"className":"container mx-auto flex flex-col gap-4","children":["$L26","$L27",["$","$L28",null,{"currentProject":{"id":2910,"uuid":"058f2413-deec-4d31-849e-c4cd38cdf9d8","name":"haskell-hackage-mcp","title":"Hackage Documentation MCP","description":"An MCP server to give Claude easy access to pulling docs","avatar_url":"https://avatars.githubusercontent.com/u/854422?v=4","created_at":"2025-03-16T04:07:56.748Z","updated_at":"2025-03-16T06:11:53.073Z","status":"created","author_name":"apenugon","author_avatar_url":"https://avatars.githubusercontent.com/u/854422?v=4","tags":"[]","category":"research-and-data","is_featured":false,"sort":1,"url":"https://github.com/apenugon/haskell-hackage-mcp","target":"_self","content":"$29","summary":"$2a","img_url":null,"type":null,"metadata":"{\"star\":\"0\",\"license\":\"MIT license\",\"language\":\"Python\",\"is_official\":false,\"latest_commit_time\":\"2025-03-15 22:36:51\"}","user_uuid":null,"tools":null,"sse_url":null,"sse_provider":null,"sse_params":null,"is_official":false,"server_command":null,"server_params":null,"server_config":null,"allow_call":false,"is_innovation":false,"is_dxt":false,"dxt_manifest":null,"dxt_file_url":null,"is_audit":false},"randomProjects":[],"currentServerKey":"$undefined"}]]}]