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

# MCP Server

> Use Parzo directly inside Claude, Cursor, and any MCP-compatible AI client.

Parzo ships a native MCP (Model Context Protocol) server. Once installed, your AI agent can extract invoice data without writing a single line of integration code — just point it at a PDF and ask.

## Installation

Install the MCP server globally via npm:

```bash theme={null}
npm install -g parzo-mcp
```

## Configuration

### Claude Code

Add Parzo to your Claude Code MCP config file:

<CodeGroup>
  ```json macOS / Linux (~/.claude/claude_desktop_config.json) theme={null}
  {
    "mcpServers": {
      "parzo": {
        "command": "parzo-mcp",
        "env": {
          "PARZO_API_KEY": "inv_your_key_here"
        }
      }
    }
  }
  ```

  ```json Windows (%APPDATA%\Claude\claude_desktop_config.json) theme={null}
  {
    "mcpServers": {
      "parzo": {
        "command": "parzo-mcp",
        "env": {
          "PARZO_API_KEY": "inv_your_key_here"
        }
      }
    }
  }
  ```
</CodeGroup>

Replace `inv_your_key_here` with your Parzo API key. [Get one free →](https://parzo.dev/signup)

### Cursor

Add the following to your Cursor MCP settings:

```json theme={null}
{
  "mcpServers": {
    "parzo": {
      "command": "parzo-mcp",
      "env": {
        "PARZO_API_KEY": "inv_your_key_here"
      }
    }
  }
}
```

## Available tools

### `extract_invoice`

Extracts structured data from an invoice PDF file.

| Parameter   | Type   | Description                                         |
| ----------- | ------ | --------------------------------------------------- |
| `file_path` | string | Absolute path to the PDF file on your local machine |
| `api_key`   | string | Your Parzo API key (optional if set via env)        |

**Example prompt:**

```
Extract the invoice data from /Users/me/invoices/acme-april.pdf
```

The agent will call `extract_invoice`, poll for the result, and return the full JSON — vendor, buyer, line items, financials, and validation flags.

### `get_job`

Retrieves the status and result of an existing extraction job.

| Parameter | Type   | Description                                  |
| --------- | ------ | -------------------------------------------- |
| `job_id`  | string | The job ID returned by a previous extraction |
| `api_key` | string | Your Parzo API key (optional if set via env) |

**Example prompt:**

```
Get the result of job 3419ae1e-93c3-48a1-95ac-833c390f9916
```

## Example workflow

Once Parzo is connected, you can use natural language to process invoices:

```
I have 3 invoices in ~/Downloads/invoices/. 
Extract the data from each one and give me a summary 
of the total amount due and due dates.
```

The agent will automatically call `extract_invoice` for each file and synthesize the results.

## Verify the connection

After adding the config, restart your client and run:

```
List the available Parzo tools
```

You should see `extract_invoice` and `get_job` listed.

## Troubleshooting

**"Missing X-API-Key header"** — Make sure your API key is set correctly in the `env` block of your config file.

**"File not found"** — Use the absolute path to the PDF. On Windows with WSL, use `/mnt/c/Users/...` format.

**Server not showing up** — Restart your MCP client after editing the config file.

***

<Note>
  The MCP server is open source and published on npm as [`parzo-mcp`](https://www.npmjs.com/package/parzo-mcp).
  Found a bug? Open an issue on GitHub.
</Note>
