Skip to main content
Glama
authn8
by authn8
README.md
# @authn8/mcp-server

MCP server that provides AI agents access to Authn8 2FA codes via PAT authentication.

## Prerequisites

- An [Authn8](https://authn8.com) account
- A Personal Access Token (PAT) created in the Authn8 dashboard

## Quick Start

```bash
npx @authn8/mcp-server
```

Set the `AUTHN8_API_KEY` environment variable to your PAT token.

## Docker

```bash
docker run -e AUTHN8_API_KEY=pat_xxx ghcr.io/authn8/mcp-server
```

## Configuration

### Claude Desktop

Add to your Claude Desktop configuration file:

**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "authn8": {
      "command": "npx",
      "args": ["-y", "@authn8/mcp-server"],
      "env": {
        "AUTHN8_API_KEY": "pat_your_token_here"
      }
    }
  }
}
```

### Claude Code (CLI)

Add to your Claude Code configuration file:

**macOS:** `~/.claude.json`
**Windows:** `%USERPROFILE%\.claude.json`

```json
{
  "mcpServers": {
    "authn8": {
      "command": "npx",
      "args": ["-y", "@authn8/mcp-server"],
      "env": {
        "AUTHN8_API_KEY": "pat_your_token_here"
      }
    }
  }
}
```

### Cursor

Add to your Cursor MCP settings:

```json
{
  "mcpServers": {
    "authn8": {
      "command": "npx",
      "args": ["-y", "@authn8/mcp-server"],
      "env": {
        "AUTHN8_API_KEY": "pat_your_token_here"
      }
    }
  }
}
```

## Environment Variables

| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| `AUTHN8_API_KEY` | Yes | - | Your PAT token from Authn8 |
| `AUTHN8_API_URL` | No | `https://api.authn8.com` | API endpoint URL |

## Available Tools

All tools declare an output schema and return `structuredContent` alongside the
text block, so clients get typed results without re-parsing JSON out of text.

### list_accounts

Returns all 2FA accounts accessible to this token.

**Example response:**
```json
{
  "accounts": [
    {
      "id": "924c52a6-4457-4970-a39f-4dc620217683",
      "name": "AWS Production",
      "issuerDomain": "amazon.com"
    }
  ]
}
```

### get_otp

Generates a TOTP code for a specific account.

**Parameters:**
- `account_id` (string, optional) - UUID of the account
- `account_name` (string, optional) - Name or issuer domain to search for (case-insensitive partial match)

Provide either `account_id` or `account_name`. If multiple accounts match the
name, the tool returns them in `multipleMatches` so you can retry with an
`account_id`.

**Example response:**
```json
{
  "name": "AWS Production",
  "code": "483920",
  "length": 6
}
```

**Ambiguous match:**
```json
{
  "error": "Multiple accounts match 'aws'. Please be more specific or use account_id.",
  "length": 0,
  "multipleMatches": [
    {
      "id": "924c52a6-4457-4970-a39f-4dc620217683",
      "name": "AWS Production",
      "issuerDomain": "amazon.com"
    }
  ]
}
```

### whoami

Returns information about the current token.

**Example response:**
```json
{
  "tokenName": "MCP Server 2",
  "businessName": "Bytecode Solutions",
  "scopedGroups": [
    { "id": "cfeba14a-e990-49e8-b6e5-61d63f7d68c8", "name": "HR" }
  ],
  "expiresAt": "2025-12-25T23:59:59Z",
  "accountCount": 1
}
```

## Links

- [Authn8](https://authn8.com) - Create an account and manage 2FA tokens
- [GitHub Repository](https://github.com/authn8/mcp-server)