Hex.pm MCP
An open-source MCP server that allows AI agents to query the Hex.pm package registry and Hexdocs documentation. It provides tools to search for Elixir/Erlang packages, inspect package details, compare versions, and audit dependencies for quality, security, or upgrade opportunities. It supports multiple MCP protocol revisions and can be run as a standalone binary or via a public instance.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://hexpm-mcp.fly.dev/mcpWhat its tools do
24 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Search for Elixir and Erlang packages on hex.pm
- Inspect package details and documentation from hexdocs.pm
- Audit dependencies for security vulnerabilities or quality issues
- Compare package versions to identify upgrade paths
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- hexpm-mcp 0.3.10
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 24 advertised
- Resources
- 1 advertised
- Resource templates
- 4 advertised
- Prompts
- 6 advertised
{
"tools": {},
"prompts": {},
"resources": {},
"completions": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
24 advertised
alternatives
Find alternative packages
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Package name on hex.pm"
}
}
}{}audit
Audit package dependencies for risks
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Package name on hex.pm"
},
"version": {
"type": "string",
"description": "Release version (defaults to latest)"
}
}
}{}audit_mix_deps
Audit mix.exs dependencies for risks
{
"type": "object",
"required": [
"deps"
],
"properties": {
"deps": {
"type": "string",
"description": "Mix.exs deps list as text, e.g. {:phoenix, \"~> 1.7\"}, {:ecto, \"~> 3.10\"}"
}
}
}{}compare
Compare 2-5 packages side by side
{
"type": "object",
"required": [
"packages"
],
"properties": {
"packages": {
"type": "string",
"description": "Comma-separated list of package names (2-5 packages)"
}
}
}{}dep_tree
Build a package dependency tree
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Package name on hex.pm"
},
"version": {
"type": "string",
"description": "Release version (defaults to latest)"
},
"max_depth": {
"type": "integer",
"description": "Maximum depth to traverse (default 5, max 5)"
}
}
}{}dependencies
Get dependencies for a package version
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Package name on hex.pm"
},
"version": {
"type": "string",
"description": "Release version (defaults to latest)"
}
}
}{}doc_item
Get documentation for a module or function
{
"type": "object",
"required": [
"name",
"module"
],
"properties": {
"name": {
"type": "string",
"description": "Package name on hex.pm"
},
"module": {
"type": "string",
"description": "Module name (e.g. \"Plug.Conn\")"
},
"version": {
"type": "string",
"description": "Package version (defaults to latest)"
}
}
}{}docs
Browse a package documentation module listing
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Package name on hex.pm"
},
"version": {
"type": "string",
"description": "Package version (defaults to latest)"
}
}
}{}downloads
Get package download statistics
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Package name on hex.pm"
}
}
}{}features
Get optional features for a package release
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Package name on hex.pm"
},
"version": {
"type": "string",
"description": "Release version (defaults to latest)"
}
}
}{}health
Run a comprehensive package health check
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Package name on hex.pm"
}
}
}{}info
Get detailed package information
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Package name on hex.pm"
}
}
}{}owners
Get package owners and maintainers
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Package name on hex.pm"
}
}
}{}readme
Get package README content
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Package name on hex.pm"
},
"version": {
"type": "string",
"description": "Package version (defaults to latest)"
}
}
}{}release
Get detailed package release information
{
"type": "object",
"required": [
"name",
"version"
],
"properties": {
"name": {
"type": "string",
"description": "Package name on hex.pm"
},
"version": {
"type": "string",
"description": "Release version (e.g. \"1.8.5\")"
}
}
}{}search
Search hex.pm packages
{
"type": "object",
"required": [
"query"
],
"properties": {
"page": {
"type": "integer",
"description": "Page number (default 1)"
},
"sort": {
"type": "string",
"description": "Sort by: name, recent_downloads, total_downloads, inserted_at, updated_at"
},
"query": {
"type": "string",
"description": "Search query string"
}
}
}{}search_docs
Search within package documentation
{
"type": "object",
"required": [
"name",
"query"
],
"properties": {
"name": {
"type": "string",
"description": "Package name on hex.pm"
},
"query": {
"type": "string",
"description": "Search query"
},
"version": {
"type": "string",
"description": "Package version (defaults to latest)"
}
}
}{}toolbox_category
List projects in a Toolbox category
{
"type": "object",
"required": [
"group",
"category"
],
"properties": {
"sort": {
"type": "string",
"description": "Ordering: \"name\" (alphabetical) or \"downloads\"; defaults to popularity order"
},
"group": {
"type": "string",
"description": "Group slug (e.g. \"web\", \"ai\")"
},
"category": {
"type": "string",
"description": "Category slug within the group (e.g. \"frameworks\")"
}
}
}{}toolbox_group
List categories in a Toolbox group
{
"type": "object",
"required": [
"group"
],
"properties": {
"group": {
"type": "string",
"description": "Group slug (e.g. \"web\", \"ai\")"
}
}
}{}toolbox_groups
Browse the Elixir Toolbox taxonomy
{
"type": "object"
}{}toolbox_search
Search packages through Elixir Toolbox
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "Search query string"
}
}
}{}toolbox_trending
List trending Elixir packages
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"description": "Maximum number of projects to return"
}
}
}{}upgrade_check
Check mix.exs dependencies for upgrades
{
"type": "object",
"required": [
"deps"
],
"properties": {
"deps": {
"type": "string",
"description": "Mix.exs deps list as text, e.g. {:phoenix, \"~> 1.7\"}, {:ecto, \"~> 3.10\"}"
}
}
}{}versions
List all package versions
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Package name on hex.pm"
}
}
}{}Prompts
6 advertised
analyze_package
Comprehensive analysis of a package's quality, maintenance, popularity, and alternatives
- name
- Package name on hex.pm (required)
compare_packages
Compare multiple hex.pm packages side by side
- names
- Comma-separated package names (2-5) (required)
evaluate_dependencies
Evaluate a set of hex.pm dependencies for health and security
- deps
- Comma-separated package names (required)
migration_guide
Guide a migration from one hex.pm package to another
- from
- Package to migrate from (required)
- to
- Package to migrate to (required)
package_review
Choose a review focus and prepare a read-only package investigation
- name
- Package name on hex.pm (required)
- focus
- quality, security, or upgrade; asks when omitted, or covers all three
recommend_packages
Find and evaluate hex.pm packages for a given use case
- use_case
- What you need a package for (required)
Resources
1 advertised
toolbox_groups
The Elixir Toolbox curated taxonomy of groups and categories
toolbox://groupspackage_docs
Get documentation module listing for a hex.pm package
hex://{name}/docspackage_info
Get package metadata from hex.pm
hex://{name}/infopackage_readme
Get README content for a hex.pm package
hex://{name}/readmetoolbox_category
Curated projects in an Elixir Toolbox category
toolbox://{group}/{category}30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 800 ms
- 95th percentile latency
- 800 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 800 ms · metadata changed · 24 tool(s), 1 resource(s), 4 resource template(s), 6 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http hex-pm-mcp-fly https://hexpm-mcp.fly.dev/mcpCodex
codex mcp add hex-pm-mcp-fly --url https://hexpm-mcp.fly.dev/mcpCursor
{
"mcpServers": {
"hex-pm-mcp-fly": {
"url": "https://hexpm-mcp.fly.dev/mcp"
}
}
}Cline
{
"mcpServers": {
"hex-pm-mcp-fly": {
"type": "streamableHttp",
"url": "https://hexpm-mcp.fly.dev/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"hex-pm-mcp-fly": {
"type": "http",
"url": "https://hexpm-mcp.fly.dev/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http hex-pm-mcp-fly https://hexpm-mcp.fly.dev/mcpClaude Desktop
https://hexpm-mcp.fly.dev/mcpWindsurf
{
"mcpServers": {
"hex-pm-mcp-fly": {
"serverUrl": "https://hexpm-mcp.fly.dev/mcp"
}
}
}Let your agent find its tools
Find servers like Hex.pm MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.