Atlas / MCP servers / bradleygolden / HexDocs

HexDocsSAFE

mcp/bradleygolden/hexdocs-1

Semantic search for Hex documentation, right in your editor ✨

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
5 5r · 0w · 0d
Transport
stdio
License
MIT
Stars
70
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

HexDocs MCP is a project that provides semantic search capabilities for Hex package documentation, designed specifically for AI applications. It consists of two main components:

  1. An Elixir binary that downloads, processes, and generates embeddings from Hex package documentation
  2. A TypeScript server implementing the Model Context Protocol (MCP) that calls the Elixir binary to fetch and search documentation
[!CAUTION] This documentation reflects the current development state on the main branch. For documentation on the latest stable release, please see the latest release page and the latest release branch.

Installation

MCP Client Configuration

The TypeScript MCP server implements the Model Context Protocol (MCP) and is designed to be used by MCP-compatible clients such as Cursor, Claude Desktop App, Continue, and others. The server provides tools for semantic search of Hex documentation. For a complete list of MCP-compatible clients, see the MCP Clients documentation.

Add this to your client's MCP json config:

{
"mcpServers": {
"hexdocs-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
]
}
}
}

This command will automatically download the elixir binaries to both fetch_docs and search documentation. While the server handles downloading the binaries, you still need Elixir and Mix installed on your system for the HexDocs fetching functionality to work properly.

Smithery

Alternatively, you can use Smithery to automatically add the MCP server to your client config.

For example, for Cursor, you can use the following command:

npx -y @smithery/cli@latest install @bradleygolden/hexdocs-mcp --cli
Read from source at commit 06b723a3129eOBSERVED · 2026-10-07
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code
claude mcp add hexdocs-mcp -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "hexdocs-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ]
    }
  }
}
03

Exposed tools (5)

5 read · 0 write · 0 destructive.

ToolRiskDescription
check_embeddingsreadChecks if embeddings exist for a specific Hex package and version. This is useful before attempting semantic search to ensure the package has been processed. Returns information about whether embeddings exist and how many.
fetch_docsread
fulltext_searchreadPerforms full-text search on HexDocs documentation using Typesense search engine. This searches the actual documentation content across all packages on HexDocs. Note: If TideWave is available in your current Phoenix project, prefer using TideWave
hex_searchreadSearches for Elixir packages on Hex.pm by name or description. Can search across all packages, within a specific package
semantic_searchread
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (3 observation(s))
Network
declared (2 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (5)

LOWInventory / provenance · inv.hidden_file · CWE-1104
.credo.exs
.credo.exs
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.formatter.exs
.formatter.exs
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWPrivilege escalation / persistence · priv.escalate · CWE-269, CWE-250
.github/workflows/build_test_release.yml:44
run: sudo apt-get -y install xz-utils
Why it matters. asks for elevated privileges
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/sdk, zod, @types/node, typescript
Why it matters. 4 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · prompt.pipe_to_shell · CWE-829, CWE-1357
README.md:211
curl https://mise.run | sh

Gates applied: no_behavioural_pass.

Audited 2026-10-07 · audit v0.4.1 · source sha 06b723a3129efull audit observations/trust-audit/mcp-server/bradleygolden__hexdocs-1.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-0706b723a3129eSAFEB89first audit
06

Questions

What is the HexDocs MCP server?

Semantic search for Hex documentation, right in your editor ✨

What tools does HexDocs expose?

5 in total: 5 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is HexDocs safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does HexDocs need?

No credential environment variables were found in its source, so it appears to need none.

How does HexDocs run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as hexdocs-mcp at 0.6.0.

How current is this page?

The grade is for one exact copy of the source (06b723a3129e), read on 2026-10-07. The repository is watched and re-audited when it changes.

Advertisement