cabal-version: 3.4 -- The cabal-version field refers to the version of the .cabal specification, -- and can be different from the cabal-install (the tool) version and the -- Cabal (the library) version you are using. As such, the Cabal (the library) -- version used must be equal or greater than the version stated in this field. -- Starting from the specification version 2.2, the cabal-version field must be -- the first thing in the cabal file. -- Initial package description 'mcp' generated by -- 'cabal init'. For further documentation, see: -- http://haskell.org/cabal/users-guide/ -- -- The name of the package. name: mcp -- The package version. -- See the Haskell package versioning policy (PVP) for standards -- guiding when and how versions should be incremented. -- https://pvp.haskell.org -- PVP summary: +-+------- breaking API changes -- | | +----- non-breaking API additions -- | | | +--- code changes with no API change version: 0.3.0.0 -- A short (one-line) description of the package. synopsis: A Haskell implementation of the Model Context Protocol (MCP) -- A longer description of the package. description: This library provides a complete implementation of the Model Context Protocol (MCP) for Haskell. MCP is a protocol that enables seamless communication between AI models and external tools, resources, and services. This implementation supports the latest MCP protocol version (2025-06-18) with full compatibility for resources, tools, prompts, and all standard MCP message types. It provides both a server framework and type definitions for building MCP-compliant applications. . Features dual transport support: . * StdIO transport for process-based clients (e.g., Claude Desktop) * HTTP transport following the official MCP specification for web-based integration, and supports OAuth authentication. . Both transports use the same MCPServer typeclass, allowing seamless switching between communication methods while maintaining identical server logic. -- The license under which the package is released. license: MIT -- The file containing the license text. license-file: LICENSE -- The package author(s). author: Matthias Pall Gissurarson -- An email address to which users can send suggestions, bug reports, and patches. maintainer: mpg@mpg.is -- A copyright notice. -- copyright: category: Network build-type: Simple -- Extra doc files to be distributed with the package, such as a CHANGELOG or a README. extra-doc-files: CHANGELOG.md -- Extra source files to be distributed with the package, such as examples, or a tutorial module. extra-source-files: schema.ts examples/README.md examples/http-server.hs examples/claude-desktop-config.json examples/full-config-example.json homepage: https://github.com/Tritlo/mcp source-repository head type: git location: https://github.com/Tritlo/mcp.git common warnings ghc-options: -Wall library -- Import common warning flags. import: warnings -- Modules exported by the library. exposed-modules: MCP.Types MCP.Protocol MCP.Server MCP.Server.StdIO MCP.Server.HTTP MCP.Server.Auth -- Modules included in this library but not exported. -- other-modules: -- LANGUAGE extensions used by modules in this package. -- other-extensions: -- Other library packages from which modules are imported. build-depends: base ^>=4.18.2.1, aeson >= 2.1 && < 2.3, text >= 2.0 && < 2.1, containers >= 0.6 && < 0.7, bytestring >= 0.11 && < 0.12, unordered-containers >= 0.2 && < 0.3, stm >= 2.5 && < 2.6, async >= 2.2 && < 2.3, mtl >= 2.3 && < 2.4, transformers >= 0.6 && < 0.7, warp >= 3.3 && < 3.4, wai >= 3.2 && < 3.3, wai-extra >= 3.1 && < 3.2, servant-server >= 0.19 && < 0.21, servant >= 0.19 && < 0.21, http-types >= 0.12 && < 0.13, servant-auth >= 0.4 && < 0.5, servant-auth-server >= 0.4 && < 0.5, jose >= 0.10 && < 0.12, cryptonite >= 0.30 && < 0.31, memory >= 0.18 && < 0.19, base64-bytestring >= 1.2 && < 1.3, http-conduit >= 2.3 && < 2.4, random >= 1.2 && < 1.3, time >= 1.12 && < 1.13, uuid >= 1.3 && < 1.4 -- Directories containing source files. hs-source-dirs: src -- Base language which the package is written in. default-language: GHC2021 executable mcp -- Import common warning flags. import: warnings -- .hs or .lhs file containing the Main module. main-is: Main.hs -- Modules included in this executable, other than Main. -- other-modules: -- LANGUAGE extensions used by modules in this package. -- other-extensions: -- Other library packages from which modules are imported. build-depends: base ^>=4.18.2.1, mcp, aeson >= 2.1 && < 2.3, text >= 2.0 && < 2.1, containers >= 0.6 && < 0.7, scientific >= 0.3 && < 0.4, time >= 1.12 && < 1.13 -- Directories containing source files. hs-source-dirs: app -- Base language which the package is written in. default-language: GHC2021 executable mcp-http -- Import common warning flags. import: warnings ghc-options: -threaded -- .hs or .lhs file containing the Main module. main-is: http-server.hs -- Modules included in this executable, other than Main. -- other-modules: -- LANGUAGE extensions used by modules in this package. -- other-extensions: -- Other library packages from which modules are imported. build-depends: base ^>=4.18.2.1, mcp, aeson >= 2.1 && < 2.3, text >= 2.0 && < 2.1, containers >= 0.6 && < 0.7, scientific >= 0.3 && < 0.4, time >= 1.12 && < 1.13, optparse-applicative >= 0.17 && < 0.19 -- Directories containing source files. hs-source-dirs: examples -- Base language which the package is written in. default-language: GHC2021 test-suite mcp-test -- Import common warning flags. import: warnings ghc-options: -threaded -- Base language which the package is written in. default-language: GHC2021 -- Modules included in this executable, other than Main. -- other-modules: -- LANGUAGE extensions used by modules in this package. -- other-extensions: -- The interface type and version of the test suite. type: exitcode-stdio-1.0 -- Directories containing source files. hs-source-dirs: test -- The entrypoint to the test suite. main-is: Main.hs -- Test dependencies. build-depends: base ^>=4.18.2.1, mcp