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

# Connect Claude, ChatGPT and Copilot (MCP)

> Connect your AI assistant to Polygon One through the Model Context Protocol — with controlled read and write access

## What is it?

Polygon One exposes its REST API as an **MCP server** (Model Context Protocol). Your AI assistant uses it
with your Polygon One data — articles, suppliers, orders, plots and their analysis, DDS statements,
evidence, PPWR packaging units, components, declarations of conformity and volume reports — and works
with it in your chat.

> [!NOTE]
>
> **Exactly ten write tools.** The assistant can create articles, suppliers and orders, update orders,
> create DDS drafts, update external DDS metadata, and create or update PPWR components and packaging
> units and link them. It can never delete, invite suppliers, submit or
> retract a DDS in TRACES, or make a compliance decision. Every call runs under your own user and
> permissions; writes are audited at their API endpoint.

## Server URL

| | URL |
| :- | :- |
| MCP server | `https://app.polygon-one.com/api/mcp` |
| Metadata | `https://app.polygon-one.com/.well-known/oauth-protected-resource` |

## Signing in: two ways

* **OAuth (recommended)** — The assistant sends you to Polygon One. You log in and approve once; the
  consent screen prominently shows the verified redirect host alongside the application name, requested
  access and your account. Unknown hosts cannot be approved. Access can be revoked — contact support.
* **API key** — for applications that only support a static key (e.g. Microsoft Copilot Studio). Header
  `Authorization`, value `Bearer eudr_…`. Create the key under **Settings > API Keys** and grant only the
  permissions you need. The write tools additionally require `articles:write`, `suppliers:write`,
  `orders:write`, `dds:write`, and (PPWR) `packaging:write`.
  (see [Permissions](https://help.polygon-one.com/en/api-reference/introduction.md#permissions)).

## Setup

**Claude.ai**

**1. Add a connector**

Open **Settings → Connectors** and click **Add custom connector**.

**2. Enter the URL**

Paste `https://app.polygon-one.com/api/mcp` and click **Connect**.

**3. Log in and approve**

Log in to Polygon One and click **Allow**.

**ChatGPT**

Requires a paid plan with developer mode.

**1. Turn on developer mode**

Open **Settings → Connectors** and switch on **Developer mode**.

**2. Create the connector**

Click **Create**, enter a name, enter `https://app.polygon-one.com/api/mcp`, choose **OAuth** and
click **Create**.

**3. Connect and approve**

Click **Connect**, log in to Polygon One and click **Allow**.

**Microsoft Copilot Studio**

**1. Add a tool**

Open your agent, then **Tools → Add a tool → New tool → Model Context Protocol**.

**2. Enter the URL**

Enter `https://app.polygon-one.com/api/mcp`.

**3. Authentication**

Choose **API key**, header `Authorization`, value `Bearer eudr_…` (a key with only the read and
write permissions you need, see above).

## Available tools

Each tool matches an endpoint of the [API reference](https://help.polygon-one.com/en/api-reference/introduction.md). The list is pinned
to 22 read tools and ten write tools; new API writes are not exposed automatically.

| Tool | Returns |
| :- | :- |
| **EUDR** | |
| `listArticles` | List articles |
| `getArticle` | One article |
| `listSuppliers` | List suppliers |
| `getSupplier` | One supplier |
| `listOrders` | List orders |
| `getOrder` | One order |
| `listDdsStatements` | List DDS statements |
| `getDdsStatement` | One DDS statement |
| `listPlots` | List plots |
| `getPlot` | One plot with its analysis result |
| `listEvidence` | List evidence |
| `getImportJob` | Status of an import job |
| `getReadiness` | Whether one action (DDS draft, DDS submission, PPWR reply, declaration of conformity) is possible for a resource now, with findings and next steps |
| `createArticle` | Create one article or an article batch |
| `createSupplier` | Create one supplier or a supplier batch |
| `createOrder` | Create one order or start a batch import (`202` + job ID) |
| `updateOrder` | Update an order |
| `createDdsStatement` | Create a DDS draft — never submit it to TRACES |
| `updateDdsStatement` | Update metadata for an external DDS statement |
| **PPWR** | |
| `listPpwrArticleUnits` | Packaging units linked to an article or an order |
| `listPpwrComponents` | List packaging components |
| `getPpwrComponent` | One packaging component |
| `listPpwrUnits` | List packaging units |
| `getPpwrUnit` | One packaging unit |
| `listPpwrDeclarations` | List declarations of conformity |
| `getPpwrDeclaration` | One declaration of conformity |
| `listMengenmeldungReports` | List volume reports |
| `downloadMengenmeldungReport` | The file of a volume report |
| `upsertPpwrComponents` | Create or update packaging components |
| `upsertPpwrUnits` | Create or update packaging units |
| `createPpwrLinks` | Link components to packaging units (bill of materials) |
| `createPpwrArticleLinks` | Link packaging units to articles |

## Example prompts

* "Which of my orders have no DDS statement yet, and which supplier is blocking?"
* "Show the analysis result for plot X and tell me what 'not measured' means."
* "List the packaging units without a signed declaration of conformity."
* "Which supplier articles have evidence expiring this quarter?"
* "Check this order CSV for conflicting HS codes. Import it only after I correct them, wait for the
  import job, and prepare a DDS draft for the ready orders."

> [!WARNING]
>
> "Not measured" does not mean "fine". This is exactly why Polygon One returns structured status flags
> instead of free text, so the assistant does not present a missing measurement as a clean result.

## Limits

* **120 calls per minute** per user and assistant.
* Write calls accept at most 1,000,000 characters in the JSON body; the API's own row limits also apply.
* Results are paginated as in the API.
* File downloads (plot report, declaration PDF) are not available to assistants yet; use the app or the
  REST API for those.
* The assistant's own context window limits how much it can read at once.

## Troubleshooting

| Problem | Fix |
| :- | :- |
| `401` | Sign in again, or the API key has expired — create a new key. |
| "Tool not found" | This operation is not available to assistants. |
| `429` | Wait a minute. |
| The tool list is empty | The server URL must be exactly `https://app.polygon-one.com/api/mcp`. |

> [!NOTE]
>
> Your data stays in Polygon One. The assistant provider receives only the data and inputs you let it
> access. Support answers questions about data processing.


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