The IRISfile MCP server

An AI agent can check 1099 files with the IRISfile MCP server. It can convert them to IRIS XML and look up a submission's status. It works with Claude, Cursor and any client that speaks MCP over HTTP.

What the server does

The server gives an agent four IRISfile tools. The agent can list the forms IRISfile supports. It can check a FIRE or CSV file against the IRS rules. It can convert a clean file to IRIS A2A XML and check where a submission stands.

Filing isn't available through MCP. No tool sends anything to the IRS or takes a payment. You file and pay in the IRISfile dashboard.

Endpoint and authentication

Endpoint
https://irisfile.co/mcp
Transport
Streamable HTTP, stateless. Send each JSON-RPC message as its own POST.
API key
Send it as Authorization: Bearer <key> or as an x-api-key header.
Without a key
Only initialize, notifications/initialized, tools/list and ping work, so clients and directories can list the tools.
Request size
Up to 4 MB of file text per call. Upload a larger file in the dashboard and pass its submission_id.

Get an API key

  1. Open API keys

    Sign in to IRISfile and click API keys in the top bar, or go to the API keys page.

  2. Create the key

    Type a name for the key, such as the client it is for, and click Create key.

  3. Copy it now

    Copy the key. IRISfile shows it once and stores only a fingerprint of it.

  4. Revoke it when you are done

    To stop a key working, click Revoke on its row, then Confirm revoke.

An account can hold 10 active keys. Each key can read every file in the account, so treat it like a password.

Connect a client

Claude Code

Run this in a terminal. It adds the server for your user with the key in a header.

claude mcp add --transport http --scope user \
  irisfile https://irisfile.co/mcp \
  --header "Authorization: Bearer $IRISFILE_API_KEY"

Claude desktop and claude.ai

Open Customize, then Connectors. Click Add, then Add custom connector. Enter the endpoint URL and choose No sign in. Under Request headers, add Authorization with the value Bearer followed by your key.

Cursor

Add this to ~/.cursor/mcp.json, or to .cursor/mcp.json in one project. Cursor reads the key from the IRISFILE_API_KEY environment variable.

{
  "mcpServers": {
    "irisfile": {
      "url": "https://irisfile.co/mcp",
      "headers": {
        "Authorization": "Bearer ${env:IRISFILE_API_KEY}"
      }
    }
  }
}

Other clients

Clients that take a JSON server list with a type field use this shape.

{
  "mcpServers": {
    "irisfile": {
      "type": "http",
      "url": "https://irisfile.co/mcp",
      "headers": {
        "Authorization": "Bearer ${IRISFILE_API_KEY}"
      }
    }
  }
}

Tools

irisfile_supported_forms
Input: No input.
Output: Each form and tax year, whether IRIS A2A XML is available, and the reason when it isn't.
irisfile_validate
Input: content (the file text) with format, fire or csv; or the submission_id of a file in your account.
Output: Record counts per form, errors and warnings by record and source row, and records left out with the reason. Nothing is stored.
irisfile_convert
Input: The same input as irisfile_validate.
Output: One download link per transmission when the forms are paid for. Otherwise the validation report, or the price and the dashboard link where you pay.
irisfile_submission_status
Input: The submission_id of a file in your account.
Output: Its status, record and error counts, and each transmission's receipt ID and IRS acknowledgement. A file split by payer lists each payer's file.

Each call returns up to 200 errors and warnings. The dashboard keeps the full list for a stored file.

Pricing

Checking and converting are free through MCP, as they are in the dashboard. The XML download link needs a license for the file’s tax year. irisfile_convert returns it only when your account holds that license.

Without a license, the result says license_required. It gives the tax years, the license price and a link to the dashboard billing page. Buy the license there, then call irisfile_convert again. See pricing for the prices.

How the server handles taxpayer data

TINs are masked

Every response masks SSNs and EINs to their last 4 digits. That covers tool results, validation messages and error replies. Names, addresses and amounts still appear in results, because the agent needs them to fix a record.

XML is never returned inline

IRIS XML carries full TINs, so irisfile_convert never puts it in the response. It returns a signed download link for each transmission.

Download links last 10 minutes

Each link stops working 10 minutes after the call. Call irisfile_convert again for a new link.

What IRISfile stores

irisfile_validate stores nothing: IRISfile reads the file, reports on it and keeps no copy. irisfile_convert with file text doesn't keep the text either. It stores the XML it generates in your account's storage, so the link can serve it. An hourly cleanup deletes that XML once its link has been expired for 10 minutes. XML for a file you uploaded in the dashboard stays with that file, as it does in the dashboard. Each key records the date it was last used.

What your AI provider sees

A file your agent sends passes through your AI client and its model provider before it reaches IRISfile. IRISfile can't control what that provider keeps. Send only the files you want the agent to process, and check your provider's data settings.

Rate limits

Each key can make 60 requests a minute on each IRISfile server instance. Calls without a key are limited to 120 a minute from one address on each instance. A request over the limit gets HTTP 429 with a Retry-After header.

Questions

Can an agent file 1099s with the IRS through MCP?
No. The MCP tools check, convert and report status only. You file from the IRISfile dashboard, where filing in production asks you to confirm you reviewed the return data.
Does the agent ever see a full SSN or EIN?
Not from IRISfile. Every response masks TINs to the last 4 digits, and the XML comes only as a download link. The agent and its model provider still see the whole file you give the agent.
What does the MCP server cost?
Calling the tools is free. The XML download link needs a license for the file's tax year, bought in the dashboard. XML debits no form credits.
Do I need a key to try it?
You need a key to call any tool. Without one, a client can connect and list the tools. Create a key on the API keys page in the dashboard.

Give an agent your 1099 files to check.

Get notified