Skip to main content

hex-mcp

An MIT-licensed MCP server generated from the official Hex public API specification.

The server loads Hex's current OpenAPI document at startup and exposes its operations as deterministic, snake_case MCP tools through FastMCP.

The PyPI distribution is named hex-openapi-mcp; the installed command and Python import remain hex-mcp and hex_mcp.

Capability modes

  • read-only exposes only operations classified as non-mutating, regardless of the configured Hex token's permissions.
  • full exposes the complete official API surface.

read-only is the default. It registers GET operations and the non-mutating export_project POST operation. Mutating tools do not exist in the MCP catalog in this mode, even when HEX_API_TOKEN has write permissions.

Install

Requirements: Python 3.12 or newer and uv.

Run the server directly from PyPI:

HEX_API_TOKEN=your_hex_token uvx --from hex-openapi-mcp hex-mcp

Enable the complete API surface explicitly:

HEX_API_TOKEN=your_hex_token HEX_MCP_MODE=full uvx --from hex-openapi-mcp hex-mcp

The default transport is stdio. To run Streamable HTTP:

HEX_API_TOKEN=your_hex_token HEX_TRANSPORT=http uvx --from hex-openapi-mcp hex-mcp

It listens on http://127.0.0.1:8000/mcp by default.

Run from source

Requirements: Python 3.12 or newer and uv.

uv sync --locked --dev
HEX_API_TOKEN=your_hex_token uv run hex-mcp

MCP client configuration

From PyPI:

{
  "mcpServers": {
    "hex": {
      "command": "uvx",
      "args": ["--from", "hex-openapi-mcp", "hex-mcp"],
      "env": {
        "HEX_API_TOKEN": "your_hex_token",
        "HEX_MCP_MODE": "read-only"
      }
    }
  }
}

For a local checkout, use "command": "uv" with "args": ["--directory", "/absolute/path/to/hex-mcp", "run", "hex-mcp"].

For stdio, the MCP client passes HEX_API_TOKEN only to the child process. Do not put the token in command-line arguments.

Configuration

Variable Default Purpose
HEX_API_TOKEN Required Hex personal or workspace bearer token
HEX_MCP_MODE read-only read-only or full tool catalog
HEX_API_BASE_URL https://app.hex.tech/api Hex API base URL
HEX_OPENAPI_SPEC https://static.hex.site/openapi.json Official spec URL or a local JSON file
HEX_TRANSPORT stdio stdio or http
HEX_HTTP_HOST 127.0.0.1 Streamable HTTP bind host
HEX_HTTP_PORT 8000 Streamable HTTP bind port
HEX_HTTP_PATH /mcp Streamable HTTP endpoint path
HEX_REQUEST_TIMEOUT_SECONDS 30 Spec download and Hex API timeout

Development

uv run ruff format --check .
uv run ruff check .
uv run mypy
uv run pytest

The repository does not vendor Hex's specification. Contract behavior can be tested offline by setting HEX_OPENAPI_SPEC to an independently supplied local copy.

Safety and reliability

  • Every tool has MCP read-only, destructive, idempotent, and open-world annotations derived from its official operation and HTTP method.
  • Tool results and Hex error bodies recursively redact known credential fields and Hex bearer tokens before they reach MCP output or error logging.
  • Hex HTTP errors preserve the status, reason, and trace ID in a structured MCP error without exposing internal stack traces.
  • GET requests retry transient 429, 502, 503, and 504 responses up to twice, respect Retry-After, and use bounded exponential backoff. Write requests are never retried automatically.

Hex's specification currently publishes two semantic paths with backend regex syntax as literal OpenAPI paths. Those literals return 404, while both expanded routes exist. The loader normalizes them to the current /v1/semantic-projects/... naming before generating tools while retaining the original specification digest for observability.

Streamable HTTP currently uses the single server-wide HEX_API_TOKEN and has no inbound client authentication. Keep the default loopback bind unless access is protected by a trusted authentication proxy.

Design documents

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hex_openapi_mcp-0.1.0.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hex_openapi_mcp-0.1.0-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file hex_openapi_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: hex_openapi_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for hex_openapi_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ba6108666160af192759ba19acc8f212bf26cd587944275ea5d890cb44cb4d3b
MD5 59a5f5f7f1f7727024d558b3f7d5980c
BLAKE2b-256 adb5e1b6abadc50efbf7838f8470cdf17f391b3a2c3f5f8a3f092cdf621d2ff3

See more details on using hashes here.

File details

Details for the file hex_openapi_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: hex_openapi_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for hex_openapi_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9be058023b17158e32eb9dee90f0db7963b42f37bf57d978124883d20d753e8e
MD5 62e0a0cce1ebbac4f8eb2395d38a2bdf
BLAKE2b-256 693f1dbc56affa4e507b433b8b095db1f59476aa6ea3e18b654ee260aa5c0e19

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.0

2 files

0.1.1

2 files

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page