This project uses Nix and direnv for dependency management, NOT plain cabal.
- NEVER run
cabal updatedirectly - Use
direnv exec . cabal buildinstead ofcabal buildwhen there are dependency issues - Dependencies are provided via Nix and loaded through direnv
- If you add dependencies in cabal files or change nix files, you may need to use
direnv exec .to reload the environment
When writing tests for functionality, always encode them as unit tests for future reference and regression testing. One-off manual tests are useful for initial verification, but should be converted to automated tests if the functionality is meant to be maintained.
- MCP server for Hoogle (Haskell documentation search)
- Main entry point:
app/Main.hs - Library code:
src/ - Tests:
test/
The server provides a hoogle_search tool that:
- Takes a query string parameter
- Calls
hoogle search -- <query>on the command line - Returns the search results to the MCP client