Hex.pm MCP

MCP server for hex.pm and hexdocs.pm: search, inspect, compare, and audit Elixir packages

Should I use this

Quality & Safety

A
Description quality
93%
Schema completeness
97%
Naming quality
86%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • LOWTool 'compare' description lacks action verbin compare
  • LOWTool 'toolbox_groups' description lacks action verbin toolbox_groups

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,596Tokens (tool definitions)
~530 BTypical response size
Moderate attention impact (1.25% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "hexpm-mcp": {
      "url": "https://hexpm-mcp.fly.dev/mcp"
    }
  }
}

Remote endpoints

https://hexpm-mcp.fly.dev/mcpstreamable-http

What it can do

Tool inventory

Tools (24)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢alternatives(name)

Find alternative packages

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Package name on hex.pm",
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}
⚪audit(name, version)

Audit package dependencies for risks

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Package name on hex.pm",
      "type": "string"
    },
    "version": {
      "description": "Release version (defaults to latest)",
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}
⚪audit_mix_deps(deps)

Audit mix.exs dependencies for risks

Input Schema

{
  "type": "object",
  "properties": {
    "deps": {
      "description": "Mix.exs deps list as text, e.g. {:phoenix, \"~> 1.7\"}, {:ecto, \"~> 3.10\"}",
      "type": "string"
    }
  },
  "required": [
    "deps"
  ]
}
⚪compare(packages)

Compare 2-5 packages side by side

Input Schema

{
  "type": "object",
  "properties": {
    "packages": {
      "description": "Comma-separated list of package names (2-5 packages)",
      "type": "string"
    }
  },
  "required": [
    "packages"
  ]
}
⚪dep_tree(max_depth, name, version)

Build a package dependency tree

Input Schema

{
  "type": "object",
  "properties": {
    "max_depth": {
      "description": "Maximum depth to traverse (default 5, max 5)",
      "type": "integer"
    },
    "name": {
      "description": "Package name on hex.pm",
      "type": "string"
    },
    "version": {
      "description": "Release version (defaults to latest)",
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}
🟢dependencies(name, version)

Get dependencies for a package version

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Package name on hex.pm",
      "type": "string"
    },
    "version": {
      "description": "Release version (defaults to latest)",
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}
🟢doc_item(module, name, version)

Get documentation for a module or function

Input Schema

{
  "type": "object",
  "properties": {
    "module": {
      "description": "Module name (e.g. \"Plug.Conn\")",
      "type": "string"
    },
    "name": {
      "description": "Package name on hex.pm",
      "type": "string"
    },
    "version": {
      "description": "Package version (defaults to latest)",
      "type": "string"
    }
  },
  "required": [
    "name",
    "module"
  ]
}
⚪docs(name, version)

Browse a package documentation module listing

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Package name on hex.pm",
      "type": "string"
    },
    "version": {
      "description": "Package version (defaults to latest)",
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}
🟢downloads(name)

Get package download statistics

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Package name on hex.pm",
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}
🟢features(name, version)

Get optional features for a package release

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Package name on hex.pm",
      "type": "string"
    },
    "version": {
      "description": "Release version (defaults to latest)",
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}
🟢health(name)

Run a comprehensive package health check

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Package name on hex.pm",
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}
🟢info(name)

Get detailed package information

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Package name on hex.pm",
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}
🟢owners(name)

Get package owners and maintainers

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Package name on hex.pm",
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}
🟢readme(name, version)

Get package README content

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Package name on hex.pm",
      "type": "string"
    },
    "version": {
      "description": "Package version (defaults to latest)",
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}
🟢release(name, version)

Get detailed package release information

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Package name on hex.pm",
      "type": "string"
    },
    "version": {
      "description": "Release version (e.g. \"1.8.5\")",
      "type": "string"
    }
  },
  "required": [
    "name",
    "version"
  ]
}
🟢search(page, query, sort)

Search hex.pm packages

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number (default 1)",
      "type": "integer"
    },
    "query": {
      "description": "Search query string",
      "type": "string"
    },
    "sort": {
      "description": "Sort by: name, recent_downloads, total_downloads, inserted_at, updated_at",
      "type": "string"
    }
  },
  "required": [
    "query"
  ]
}
🟢search_docs(name, query, version)

Search within package documentation

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Package name on hex.pm",
      "type": "string"
    },
    "query": {
      "description": "Search query",
      "type": "string"
    },
    "version": {
      "description": "Package version (defaults to latest)",
      "type": "string"
    }
  },
  "required": [
    "name",
    "query"
  ]
}
🟢toolbox_category(category, group, sort)

List projects in a Toolbox category

Input Schema

{
  "type": "object",
  "properties": {
    "category": {
      "description": "Category slug within the group (e.g. \"frameworks\")",
      "type": "string"
    },
    "group": {
      "description": "Group slug (e.g. \"web\", \"ai\")",
      "type": "string"
    },
    "sort": {
      "description": "Ordering: \"name\" (alphabetical) or \"downloads\"; defaults to popularity order",
      "type": "string"
    }
  },
  "required": [
    "group",
    "category"
  ]
}
🟢toolbox_group(group)

List categories in a Toolbox group

Input Schema

{
  "type": "object",
  "properties": {
    "group": {
      "description": "Group slug (e.g. \"web\", \"ai\")",
      "type": "string"
    }
  },
  "required": [
    "group"
  ]
}
⚪toolbox_groups

Browse the Elixir Toolbox taxonomy

Input Schema

{
  "type": "object"
}
🟢toolbox_search(query)

Search packages through Elixir Toolbox

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Search query string",
      "type": "string"
    }
  },
  "required": [
    "query"
  ]
}
🟢toolbox_trending(limit)

List trending Elixir packages

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Maximum number of projects to return",
      "type": "integer"
    }
  }
}
🟢upgrade_check(deps)

Check mix.exs dependencies for upgrades

Input Schema

{
  "type": "object",
  "properties": {
    "deps": {
      "description": "Mix.exs deps list as text, e.g. {:phoenix, \"~> 1.7\"}, {:ecto, \"~> 3.10\"}",
      "type": "string"
    }
  },
  "required": [
    "deps"
  ]
}
🟢versions(name)

List all package versions

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Package name on hex.pm",
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded24 tools
verifiedversion not recorded24 tools
verifiedversion not recorded24 tools
verifiedversion not recorded24 tools
verifiedversion not recorded24 tools
verifiedversion not recorded24 tools