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

# IrisAgent MCP Server

> Connect Claude, ChatGPT, Claude Code, Cursor, or your own AI agents to IrisAgent's Support Analyst through MCP.

Use the [Support Analyst](https://docs.irisagent.com/support-analyst.md) from Claude, ChatGPT, Claude Code, Cursor, VS Code, or any [Model Context Protocol](https://modelcontextprotocol.io) (MCP) client. Answers come from the tickets, chats, and knowledge IrisAgent has ingested, and cite the tickets used. Access is read-only.

Example questions:

* "How many billing tickets did we get last week vs. the week before, and why?"
* "Summarize ticket 48213 and tell me whether the AI's answer was correct."
* "Give me this week's support briefing."

## Requirements

* An IrisAgent account with a connected ticketing system. MCP is on for every account.
* An MCP client that supports remote servers over Streamable HTTP and MCP sign-in. Each person signs in with their own IrisAgent login.
* Server URL: `https://mcp.irisagent.com/mcp`. The same URL and steps are on **Deploy > AI Assistants (MCP)** in the portal.

## Connect your assistant

> [tab] Claude
>
> 1. Open [IrisAgent in Claude's directory](https://claude.ai/directory/irisagent) and add it. On Team and Enterprise plans, an Owner adds it under **Organization settings > Connectors**, then members connect with their own account.
> 2. Sign in with IrisAgent and click **Allow access**.

> [tab] ChatGPT
>
> 1. Open [IrisAgent in ChatGPT Plugins](https://chatgpt.com/plugins/plugin_asdk_app_6ae650c3ecc88191a26980a45ecd8e54) and click **Install plugin**. On workspace plans, an admin may need to allow it first.
> 2. Sign in with IrisAgent and click **Allow access**.
> 3. In a chat, type **@** and pick IrisAgent.

> [tab] Claude Code
>
> 1. Run:
>    ```bash theme={null}
>    claude mcp add --transport http irisagent https://mcp.irisagent.com/mcp
>    ```
> 2. Run `/mcp`, select **irisagent**, and choose **Authenticate**.
> 3. Sign in with IrisAgent in the browser and click **Allow access**.

> [tab] Cursor
>
> 1. Add this to `~/.cursor/mcp.json` (or `.cursor/mcp.json` in a project):
>    ```json theme={null}
>    {
>      "mcpServers": {
>        "irisagent": { "url": "https://mcp.irisagent.com/mcp" }
>      }
>    }
>    ```
> 2. In Cursor's MCP settings, click the sign-in button next to **irisagent**.
> 3. Sign in with IrisAgent and click **Allow access**.

If the sign-in page says **Connect an unverified app**, IrisAgent can't confirm which app is asking. Only allow access if you started the connection.

To disconnect, remove the connector in your assistant, or click **Disconnect** under **Connected assistants** on **Deploy > AI Assistants (MCP)**. Admins can disconnect anyone there.

## API key for custom agents

Use an API key only for your own agents or scripts that can't sign in. Only admins can manage it.

1. On **Deploy > AI Assistants (MCP)**, open **API key for custom agents** and click **Generate key**.
2. Copy the key (starts with `irs_mcp_`). It is shown only once.
3. Point a Streamable HTTP MCP client at `https://mcp.irisagent.com/mcp` with the header `Authorization: Bearer YOUR_MCP_API_KEY`.

> [!WARNING]
>
> Generating or regenerating a key (including the first one) disconnects every assistant connected with sign-in across your organization. Regenerating also revokes the current key immediately. Warn your team first.

## Tools

All three tools are read-only. The assistant picks one based on your question.

| Tool | What it does | Inputs |
| - | - | - |
| `ask_support_analyst` | Answers questions about tickets, chats, accounts, agents, procedures, Jira issues, and AI answer quality. Returns the answer, referenced tickets, and a `conversation_id`. | `question` (required), `conversation_id`, `case_id`, `case_number`, `timezone` |
| `get_weekly_briefing` | Latest weekly briefing (deflection, conversations, auto-answered cases, escalations, knowledge gaps, AutoQA, trending categories) vs. the previous week. | None |
| `list_saved_questions` | Saved Support Analyst questions set up in the portal. | None |

* **Follow-ups**: the assistant passes back `conversation_id` to keep context. IDs work only with the connection or key that created them.
* **One ticket**: pass `case_id` (the ticket ID in your ticketing system). For Salesforce, you can also pass `case_number`.
* **Dates**: relative dates use UTC unless `timezone` is passed (for example `America/Los_Angeles`).
* **Progress**: clients that support MCP progress notifications see updates like "Searching tickets".

## Security and data

* **Read only.** Assistants can search, count, summarize, audit, and draft articles or procedures for review. Nothing is published or changed in IrisAgent or your ticketing system.
* **Scoped to your organization.** An assistant can never see another organization's data.
* **Per-person sign-in.** Each sign-in connection belongs to the user who approved it, and questions are logged under their name. Tokens are short-lived and refresh for up to 90 days, then you sign in again. IrisAgent stores only token hashes. Removing a user ends their connections.
* **Keys shown once.** IrisAgent stores only a hash. Treat the key like a password and regenerate it if exposed.
* **Data goes to your assistant's provider.** Answers, including quoted ticket text, are sent to that provider (for example Anthropic for Claude or Anysphere for Cursor) under your agreement with them.
* **Audited.** Every MCP question is logged with your Support Analyst activity.

## Limits

Each organization can ask up to 20 questions per minute, with up to 4 running at once. A complex question can take up to two minutes.

## Troubleshooting

| Symptom | Fix |
| - | - |
| `401 Unauthorized` | Key is missing, mistyped, or regenerated. Use `Authorization: Bearer irs_mcp_...` with the current key. With sign-in, reconnect. |
| "This connection link has expired" | Sign-in links last 15 minutes and work once. Start again from your assistant. |
| `403` "IrisAgent access is disabled for this organization" | Your account is inactive. [Contact us](https://irisagent.com/get-a-demo/). |
| "rate limit reached" or "too many Support Analyst questions are running" | Wait a minute and try again. |
| "conversation\_id must be a value returned by a previous answer" | Ask again without a `conversation_id`. |
| "took too long to answer" | Narrow the question (add a date range or account). |
| Assistant doesn't call IrisAgent | Mention IrisAgent or your support data, and check the server shows as connected. |

Need help? [Contact us](https://irisagent.com/get-a-demo/).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.