Back to the catalog

io.github.ElliotPadfield/hatchet-mcp

Observe and operate Hatchet workflows from an AI agent — runs, logs, trigger, cancel, replay.

Open source Open in the app JSON README (API)

About

Observe and operate Hatchet workflows from an AI agent — runs, logs, trigger, cancel, replay.

Details

Kind
MCP servers
Topic
No topic detected
Publisher
elliotpadfield
Origin
official
Category
ferramentas
Transport
local
Version
0.1.1
Stars
1
Open pull requests
1
Last push
2026-08-24T22:37:02Z
Repository state
ativo
Language
TypeScript
License
MIT
Added
2026-08-29 03:01:50
Updated
2026-08-29 03:01:50
Origin id
io.github.ElliotPadfield/hatchet-mcp

README

# hatchet-mcp

[![CI](https://github.com/ElliotPadfield/hatchet-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/ElliotPadfield/hatchet-mcp/actions/workflows/ci.yml)
[![npm version](https://img.shields.io/npm/v/hatchet-mcp.svg)](https://www.npmjs.com/package/hatchet-mcp)
[![license: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)

An MCP server that lets AI agents observe and operate [Hatchet](https://hatchet.run) workflows — status, runs, logs, workers, and metrics, plus trigger / cancel / replay.

**Why:** Hatchet has a great API but no MCP. This wraps it so agents (Claude Code / Desktop, etc.) can see and act on workflow state.

## Install

Add this to your Claude Code / Claude Desktop MCP config:

```json
{
  "mcpServers": {
    "hatchet": {
      "command": "npx",
      "args": ["-y", "hatchet-mcp"],
      "env": { "HATCHET_CLIENT_TOKEN": "<your-hatchet-api-token>" }
    }
  }
}
```

Get the token from the Hatchet dashboard → **API tokens**. The token is a JWT that encodes the server URL and tenant, so it's the only required setting.

## Configuration

| Variable | Required | Description |
| --- | --- | --- |
| `HATCHET_CLIENT_TOKEN` | Yes | Hatchet API token (JWT). Encodes the server URL + tenant, so it's normally all you need. |
| `HATCHET_API_BASE` | No | Override the API base URL. Self-hosters can point this at any Hatchet instance. |
| `HATCHET_TENANT_ID` | No | Override the tenant id decoded from the token. |

Self-hosting? Set `HATCHET_API_BASE` to your own Hatchet instance and it works anywhere.

## Tools

### Observability (read-only)

| Tool | Description |
| --- | --- |
| `whoami` | Show the resolved Hatchet tenant + server URL and confirm the token works. |
| `list_workflows` | List workflow definitions for the tenant. |
| `list_runs` | List workflow runs (with an optional lookback window and filters). |
| `get_run` | Get the full detail of one workflow run — status, tasks, errors. |
| `get_run_logs` | Get log lines for a task by its external id. |
| `list_workers` | List workers and their status. |
| `get_queue_metrics` | Get task/queue metrics for the tenant (queue health). |

### Actions (mutate live state)

| Tool | Description |
| --- | --- |
| `trigger_workflow` | Trigger a new workflow run by name with a JSON input payload. |
| `cancel_runs` | Cancel one or more runs/tasks by external id. |
| `replay_runs` | Replay/retry one or more runs/tasks by external id. |

## Safety

The read tools (`whoami`, `list_workflows`, `list_runs`, `get_run`, `get_run_logs`, `list_workers`, `get_queue_metrics`) are non-destructive.

`trigger_workflow`, `cancel_runs`, and `replay_runs` **mutate live state** — their descriptions are prefixed `MUTATES LIVE STATE` so agents and users know they affect real runs.

The token grants full tenant access — treat it as a secret. Never commit it to source control.

## Development

```bash
pnpm install
pnpm test    # vitest
pnpm build   # tsup -> dist/index.js
```

TypeScript / ESM, tested with [vitest](https://vitest.dev).

## Status

v0.1.0 — all tools verified against Hatchet Cloud; works with self-hosted instances via `HATCHET_API_BASE`. `trigger_workflow` uses the stable `/workflow-runs/trigger` endpoint.

More