Haskell

v1.0.0Developer Toolsstable

An Awesome MCP Server Framework for Haskell

haskellmcpai-integration
Share:
46
Stars
0
Downloads
0
Weekly
0/5

What is Haskell?

Haskell is a Model Context Protocol (MCP) server that allows AI assistants like Claude, Cursor, and VS Code to awesome mcp server framework for haskell

An Awesome MCP Server Framework for Haskell

This server falls under the Developer Tools category on MCPgee, the world's largest MCP server directory with 33,000+ servers.

Features

  • An Awesome MCP Server Framework for Haskell

Use Cases

Build MCP servers using Haskell framework
Enable functional programming integration with AI agents
drshade

Maintainer

LicenseBSD-3-Clause
Languagehaskell
Versionv1.0.0
UpdatedMay 16, 2026
Statushealthy
Maintenanceactive

Works with

ClaudeOpenAIwindowsmacoslinux

Installation

Manual Installation

npx haskell

Configuration

Configuration Details

Config File

claude_desktop_config.json

Performance

Response Metrics

Response Time< 200ms
ThroughputMedium

Resource Usage

Memory UsageLow
CPU UsageLow

How to Set Up and Use Haskell

The Haskell MCP Server is a framework library for building Model Context Protocol servers in Haskell, supporting both STDIO and HTTP transports. It provides type-safe abstractions for defining prompts, resources, and tools that AI agents can call, with Template Haskell macros to reduce boilerplate. Functional programming teams can use this library to expose Haskell business logic directly to LLMs through a well-typed, composable MCP interface.

Prerequisites

  • GHC (Glasgow Haskell Compiler) 9.x or later
  • Cabal or Stack build tool
  • Docker (optional, for containerized deployment)
  • An MCP-compatible client such as Claude Desktop
1

Add mcp-server to your Cabal dependencies

In your .cabal project file, add mcp-server to the build-depends field of your library or executable stanza.

build-depends:
    base ^>=4.18
  , mcp-server
2

Define your server info and handlers

Create your server info record and use Template Haskell macros to derive type-safe handlers for tools, prompts, and resources from your algebraic data types.

handlers = McpServerHandlers
  { prompts   = Just $(derivePromptHandler   ''MyPrompt   'handlePrompt)
  , resources = Just $(deriveResourceHandler ''MyResource 'handleResource)
  , tools     = Just $(deriveToolHandler     ''MyTool     'handleTool)
  }
3

Run the server in STDIO mode

Launch the server using runMcpServerStdio for standard MCP client compatibility. This is the default transport for Claude Desktop integration.

main :: IO ()
main = runMcpServerStdio serverInfo handlers
4

Build a Docker image for deployment

Build a Docker image so the MCP client can launch the server via docker run without requiring a local Haskell toolchain.

docker build -t haskell-mcp-server .
5

Configure Claude Desktop to use the server

Add the Docker-based server to your Claude Desktop configuration so the client can launch and communicate with it.

{
  "mcpServers": {
    "simple-example": {
      "command": "docker",
      "args": ["run", "-i", "--entrypoint=/usr/local/bin/simple-example", "haskell-mcp-server"]
    }
  }
}

Haskell Examples

Client configuration

Claude Desktop configuration for launching the Haskell MCP server via a Docker container.

{
  "mcpServers": {
    "haskell-mcp": {
      "command": "docker",
      "args": ["run", "-i", "--entrypoint=/usr/local/bin/simple-example", "haskell-mcp-server"]
    }
  }
}

Prompts to try

Once a Haskell MCP server exposing custom tools is connected, you can invoke those tools through natural language.

- "Call the calculate tool with input 42"
- "List all available resources from the Haskell server"
- "Use the greet prompt with name 'Alice'"
- "What tools does the Haskell MCP server expose?"

Troubleshooting Haskell

Template Haskell macros fail to compile

Ensure you have enabled the TemplateHaskell language extension in your .cabal file or source file with {-# LANGUAGE TemplateHaskell #-}. Also confirm your data types derive the necessary instances expected by the macro.

Docker container exits immediately with no output

The STDIO transport requires the container stdin to remain open. Make sure you pass the -i flag to docker run (not -it, as TTY allocation is not needed for MCP). The entrypoint path must match the compiled binary location inside the image.

HTTP transport is not accepting connections

When using runMcpServerHttpWithConfig, verify the httpPort and httpHost values match what your client expects. Default port is 8080 at /mcp — set httpEndpoint if your client requires a different path.

Frequently Asked Questions about Haskell

What is Haskell?

Haskell is a Model Context Protocol (MCP) server that awesome mcp server framework for haskell It connects AI assistants to external tools and data sources through a standardized interface.

How do I install Haskell?

Follow the installation instructions on the Haskell GitHub repository. Clone the repo, install dependencies, and add the server config to your AI client.

Which AI clients work with Haskell?

Haskell works with all major MCP-compatible AI clients including Claude Desktop, Claude Code, Cursor, VS Code (GitHub Copilot), Windsurf, and Cline.

Is Haskell free to use?

Yes, Haskell is open source and available under the BSD-3-Clause license. You can use it freely in both personal and commercial projects.

Browse More Developer Tools MCP Servers

Explore all developer tools servers available in the MCPgee directory. Each server includes setup guides for Claude, Cursor, and VS Code.

Quick Config Preview

{ "mcpServers": { "haskell": { "command": "npx", "args": ["-y", "haskell"] } } }

Add this to your claude_desktop_config.json or .cursor/mcp.json

Read the full setup guide →

Ready to use Haskell?

Browse our complete directory of 33,000+ MCP servers, read setup guides for your editor, and start building with the Model Context Protocol.

33,000+ ServersFree & Open SourceStep-by-Step Guides