> ## Documentation Index
> Fetch the complete documentation index at: https://docs.paubox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP tools

> Reference for all tools exposed by the Paubox MCP Server.

The Paubox MCP Server exposes five tools. Each tool maps to an underlying Paubox API operation and is available to any connected MCP client.

## send\_secure\_email

Sends a single HIPAA-compliant email through the Paubox Email API. The sender address must belong to a domain you have verified in the Paubox dashboard.

| Parameter                 | Type             | Required | Description                                                                                            |
| :------------------------ | :--------------- | :------- | :----------------------------------------------------------------------------------------------------- |
| `from`                    | string           | Yes      | Sender address. Must be on a verified Paubox domain.                                                   |
| `to`                      | array of strings | Yes      | Recipient email addresses.                                                                             |
| `subject`                 | string           | Yes      | Email subject line.                                                                                    |
| `message`                 | string           | Yes      | Message body. Sent as plain text; the server also generates an HTML version automatically.             |
| `cc`                      | array of strings | No       | CC recipients.                                                                                         |
| `bcc`                     | array of strings | No       | BCC recipients.                                                                                        |
| `forceSecureNotification` | boolean          | No       | Force a secure notification regardless of recipient settings. Defaults to `false`.                     |
| `apiKey`                  | string           | No       | Paubox API key. HTTP transport only; overrides the credential resolved from the connector or headers.  |
| `apiUser`                 | string           | No       | Paubox API user. HTTP transport only; overrides the credential resolved from the connector or headers. |

**Example payload**

```json theme={null}
{
  "from": "provider@clinic.com",
  "to": ["patient@example.com"],
  "subject": "Your appointment summary",
  "message": "Thank you for visiting us today."
}
```

**Response:** returns a `sourceTrackingId` string you can pass to `check_email_status`.

## check\_email\_status

Retrieves the current delivery status of a message sent via `send_secure_email`.

| Parameter          | Type   | Required | Description                                      |
| :----------------- | :----- | :------- | :----------------------------------------------- |
| `sourceTrackingId` | string | Yes      | The tracking ID returned by `send_secure_email`. |
| `apiKey`           | string | No       | Paubox API key. HTTP transport only.             |
| `apiUser`          | string | No       | Paubox API user. HTTP transport only.            |

**Example payload**

```json theme={null}
{
  "sourceTrackingId": "abc123def456"
}
```

**Response:** returns an object with delivery disposition details and a timestamp.

## validate\_credentials

Verifies that the Paubox API credentials are present and valid by making a live check against the Paubox API. Useful as a first step before sending email.

| Parameter | Type   | Required | Description                                                                                                                     |
| :-------- | :----- | :------- | :------------------------------------------------------------------------------------------------------------------------------ |
| `apiKey`  | string | No       | Paubox API key. HTTP transport only; pass if you want to validate specific credentials rather than the ones already configured. |
| `apiUser` | string | No       | Paubox API user. HTTP transport only.                                                                                           |

When connecting via stdio (Claude Code), credentials come from environment variables and no parameters are needed.

**Example payload**

```json theme={null}
{}
```

**Response:** returns a confirmation with the API user and a masked API key on success, or an error description if the credentials are missing or invalid.

## get\_form

<Note>Available via HTTP transport only. Not available when using the stdio transport (Claude Code).</Note>

Retrieves the full definition of a Paubox Form, including its title, description, and field schema, so an agent can present the form questions in a conversation. No authentication is required for this tool.

| Parameter | Type          | Required | Description                          |
| :-------- | :------------ | :------- | :----------------------------------- |
| `formId`  | string (UUID) | Yes      | UUID of the Paubox Form to retrieve. |

**Example payload**

```json theme={null}
{
  "formId": "550e8400-e29b-41d4-a716-446655440000"
}
```

**Response:** returns a form object including `title`, `description`, `form_json` (field definitions), and metadata fields (`active`, `signable`, `submission_count`, `created_at`, `updated_at`).

## submit\_form

<Note>Available via HTTP transport only. Not available when using the stdio transport (Claude Code).</Note>

Submits a completed response to a Paubox Form. No authentication is required for this tool.

| Parameter     | Type             | Required | Description                                                                                                               |
| :------------ | :--------------- | :------- | :------------------------------------------------------------------------------------------------------------------------ |
| `formId`      | string (UUID)    | Yes      | UUID of the form being submitted.                                                                                         |
| `formData`    | object           | Yes      | Key-value pairs matching the form's field schema (`form_json`). Structure varies per form.                                |
| `attachments` | array of objects | No       | File attachments. Each object must include `name` (filename) and `content` (base64-encoded file). Max total size: 250 MB. |

**Example payload: text fields only**

```json theme={null}
{
  "formId": "550e8400-e29b-41d4-a716-446655440000",
  "formData": {
    "first_name": "Jane",
    "last_name": "Smith",
    "email": "jane@example.com"
  }
}
```

**Example payload: with attachment**

```json theme={null}
{
  "formId": "550e8400-e29b-41d4-a716-446655440000",
  "formData": {
    "first_name": "Jane"
  },
  "attachments": [
    {
      "name": "consent.pdf",
      "content": "JVBERi0xLjQ..."
    }
  ]
}
```

**Response:** returns a success confirmation message on success.
