# Borduur-MCP-server voor AI-agenten

Canonieke pagina: https://embroideryfileconverter.com/nl/ai-agents

Verbind AI-agents met geauthenticeerde borduurgereedschappen via een externe MCP-server met OAuth, formaatdetectie, gebruiksstatus en privéverwerkingsjobs.

## Kies de juiste integratie

- Gebruik deze externe MCP-server wanneer een AI-assistent namens een gebruiker moet handelen via browser-goedgekeurde OAuth.
- Gebruik de [REST Developer API](https://embroideryfileconverter.com/nl/developers) voor een conventionele backend, SaaS-product of server-side automatisering.

## Een MCP-client verbinden

- Streamable HTTP-eindpunt: `https://embroideryfileconverter.com/mcp/embroidery`
- OAuth-scope: `mcp:use`
- Standaard MCP-ratelimit: 60 verzoeken per minuut
- Limiet voor bestandscreatie-tool: 6 verzoeken per minuut per gebruiker, plus een netwerklimiet
- Levensduur toegangstoken: 60 minuten
- Levensduur refreshtoken: 30 dagen

Het endpoint werkt met externe Streamable HTTP-clients. Geef de voorkeur aan native browser-OAuth; plak nooit wachtwoorden, refreshtokens of langlevende bearer-tokens in een repository.

## ChatGPT (OpenAI) verbinden

Volledige MCP-apps worden geconfigureerd in ChatGPT-ontwikkelaarsmodus. Beschikbaarheid en schrijftool-bediening variëren per abonnement.

1. Schakel in ChatGPT-web Ontwikkelaarsmodus in bij Instellingen &gt; Apps &gt; Geavanceerde instellingen, of open Werkruimte-instellingen &gt; Apps &gt; Maken.
2. Maak een app en stel de MCP-server-URL in op `https://embroideryfileconverter.com/mcp/embroidery`.
3. Kies OAuth, selecteer Scan tools en keur de `mcp:use`-scope goed in de browser.
4. Maak de concept-app, activeer deze en selecteer deze uit het tools-menu in een nieuw gesprek.

[Officiële ChatGPT MCP-documentatie](https://help.openai.com/en/articles/12584461-developer-mode-and-mcp-apps-in-chatgpt)

## Claude, Claude Desktop, Cowork of Claude Code verbinden

Open in Claude Aanpassen &gt; Connectors &gt; Aangepaste connector toevoegen, voer `https://embroideryfileconverter.com/mcp/embroidery` in, kies Verbinden en voltooi OAuth. Team- en Enterprise-eigenaren voegen de connector toe onder Organisatie-instellingen &gt; Connectors voordat leden individueel verbinden.

Claude Code-commando:

```bash
claude mcp add --transport http embroidery-file-converter https://embroideryfileconverter.com/mcp/embroidery
# Voer daarna /mcp uit in Claude Code en voltooi browserautorisatie.
```

[Officiële Claude externe MCP-documentatie](https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp)

## OpenAI Agents SDK verbinden

Je backend moet OAuth-autorisatiecode + PKCE voltooien voor de ingelogde gebruiker, tokens versleuteld op de server opslaan, ze indien nodig vernieuwen en het huidige toegangstoken doorgeven aan de gehoste MCP-tool. Stel dit token nooit bloot in browser-JavaScript.

```typescript
import { Agent, hostedMcpTool } from '@openai/agents';

const agent = new Agent({
  name: 'Embroidery assistant',
  tools: [
    hostedMcpTool({
      serverLabel: 'embroidery',
      serverUrl: 'https://embroideryfileconverter.com/mcp/embroidery',
      authorization: process.env.EFC_MCP_ACCESS_TOKEN,
      requireApproval: 'always',
    }),
  ],
});
```

[Officiële OpenAI Agents SDK MCP-documentatie](https://developers.openai.com/api/docs/guides/tools-connectors-mcp)

## Cursor verbinden

Voeg dit toe aan `.cursor/mcp.json`, start de server in Cursor-instellingen &gt; MCP en voltooi OAuth. Cursor Agent-gebruikers kunnen `cursor-agent mcp login embroidery-file-converter` uitvoeren.

```json
{
  "mcpServers": {
    "embroidery-file-converter": {
      "url": "https://embroideryfileconverter.com/mcp/embroidery"
    }
  }
}
```

[Officiële Cursor MCP-documentatie](https://docs.cursor.com/context/model-context-protocol)

## VS Code en GitHub Copilot verbinden

Voer `MCP: Add Server` uit en kies HTTP, of voeg dit toe aan `.vscode/mcp.json`. Start met `MCP: List Servers`, vertrouw de configuratie en voltooi browserautorisatie.

```json
{
  "servers": {
    "embroidery-file-converter": {
      "type": "http",
      "url": "https://embroideryfileconverter.com/mcp/embroidery"
    }
  }
}
```

[Officiële VS Code MCP-documentatie](https://code.visualstudio.com/docs/agent-customization/mcp-servers)

## OpenClaw verbinden

```bash
openclaw mcp add embroidery-file-converter \
  --url https://embroideryfileconverter.com/mcp/embroidery \
  --transport streamable-http \
  --auth oauth \
  --oauth-scope mcp:use

openclaw mcp login embroidery-file-converter
openclaw mcp doctor embroidery-file-converter --probe
```

[Officiële OpenClaw MCP-documentatie](https://docs.openclaw.ai/cli/mcp)

## Gemini CLI verbinden

Voeg de server toe aan `~/.gemini/settings.json` en voer daarna `/mcp auth embroidery-file-converter` uit in Gemini CLI.

```json
{
  "mcpServers": {
    "embroidery-file-converter": {
      "url": "https://embroideryfileconverter.com/mcp/embroidery"
    }
  }
}
```

[Officiële Gemini CLI MCP-documentatie](https://github.com/google-gemini/gemini-cli/blob/main/docs/tools/mcp-server.md)

## OpenCode verbinden

Voeg dit toe aan `opencode.json`, voer daarna `opencode mcp auth embroidery-file-converter` uit en verifieer met `opencode mcp list`.

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "embroidery-file-converter": {
      "type": "remote",
      "url": "https://embroideryfileconverter.com/mcp/embroidery"
    }
  }
}
```

[Officiële OpenCode MCP-documentatie](https://opencode.ai/docs/mcp-servers/)

## Windsurf Cascade verbinden

Open Windsurf-instellingen &gt; Cascade &gt; MCP-servers, of voeg dit toe aan `~/.codeium/windsurf/mcp_config.json`. Start de server, voltooi OAuth en schakel alleen de vereiste tools in.

```json
{
  "mcpServers": {
    "embroidery-file-converter": {
      "serverUrl": "https://embroideryfileconverter.com/mcp/embroidery"
    }
  }
}
```

[Officiële Windsurf MCP-documentatie](https://docs.windsurf.com/windsurf/cascade/mcp)

## Cline verbinden

Het OAuth-gedrag van Cline varieert per release en surface. Open MCP Servers &gt; Remote Servers, kies Streamable HTTP en gebruik deze configuratie met een lege goedkeuringslijst:

```json
{
  "mcpServers": {
    "embroidery-file-converter": {
      "type": "streamableHttp",
      "url": "https://embroideryfileconverter.com/mcp/embroidery",
      "disabled": false,
      "autoApprove": []
    }
  }
}
```

Als de geïnstalleerde Cline-release OAuth niet kan voltooien, gebruik dan een beoordeelde en versiegepinde OAuth-bridge of kies een client met native OAuth. Commit geen langlevende token aan `cline_mcp_settings.json`.

[Officiële Cline MCP-documentatie](https://github.com/cline/cline/blob/main/docs/mcp/mcp-overview.mdx)

## OAuth-discovery en PKCE

- Protected-resource-metadata: `https://embroideryfileconverter.com/.well-known/oauth-protected-resource/mcp/embroidery`
- Authorization-server-metadata: `https://embroideryfileconverter.com/.well-known/oauth-authorization-server`
- Dynamische clientregistratie: `https://embroideryfileconverter.com/oauth/register`
- Authorization-server-issuer: `https://embroideryfileconverter.com`
- Grant: authorization code
- PKCE-methode: S256
- Vereiste scope: `mcp:use`

Dynamische clientregistratie accepteert alleen callback-origins en native schemes die expliciet zijn toegestaan door de operator. Willekeurige callback-domeinen worden geweigerd. Het account moet een geverifieerd e-mailadres hebben voordat de MCP-endpoint kan worden gebruikt.

De standaard vertrouwde gehoste callbacks zijn beperkt tot officiële ChatGPT-, Claude- en VS Code-origins plus loopback-callbacks voor geïnstalleerde clients. Jokertekendomeinen voor redirects zijn niet ingeschakeld. Deployments die `MCP_REDIRECT_DOMAINS` overschrijven moeten alleen de clients behouden die ze bewust ondersteunen.

Voorbeeldregistratie voor een toegestane lokale callback:

```bash
curl -X POST https://embroideryfileconverter.com/oauth/register \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "client_name": "Your local agent",
    "redirect_uris": ["http://127.0.0.1:49831/callback"]
  }'
```

## Volledige toolreferentie

### `list-formats-tool`

Alleen-lezen. Accepteert geen argumenten. Retourneert `artwork_inputs[]` en `formats[]` met readable-, writable-, label- en warning-velden. Roep dit aan voordat je een workflow of doelformaat kiest.

### `get-account-usage-tool`

Alleen-lezen. Accepteert geen argumenten. Retourneert het huidige preview-tegoed, creditsaldo, workflowkosten, abonnementslimieten en resetdatums. Koopt of verbruikt nooit iets.

### `list-processing-jobs-tool`

Alleen-lezen. Toont recente taken van het gekoppelde account.

- `limit`: optioneel geheel getal van 1 tot 50; standaard 20

### `get-processing-job-tool`

Alleen-lezen. Retourneert één eigen taak met status, gebeurtenissen, meetwaarden, waarschuwingen, preview-bestanden en beschikbare OAuth-beveiligde bestands-URL’s.

- `workflow`: verplicht `conversion` of `digitising`
- `job_id`: verplicht 26-tekenige taak-ID

### `create-processing-job-tool`

Maakt opgeslagen data aan. Start één privé-previewtaak en kan preview-tegoed verbruiken, maar koopt nooit credits en ontgrendelt nooit een betaalde download.

- `workflow`: verplicht `conversion` of `digitising`
- `file_name`: verplicht oorspronkelijke bestandsnaam met extensie, 3 tot 255 tekens, zonder pad-scheidingstekens of stuurtekens
- `file_base64`: verplicht ruwe standaard-base64 zonder data-URL-voorvoegsel
- `format`: verplicht kleine letters, schrijfbare borduuruitvoer
- `width_mm`: getal van 10 tot 300, verplicht bij digitaliseren
- `colour_count`: geheel getal van 1 tot 24, verplicht bij digitaliseren

Het gestructureerde resultaat bevat `billing_authorized: false`. Bij conversie moet de gekozen uitvoer afwijken van het gedetecteerde bronformaat.

## JSON-RPC-toolvoorbeelden

Formaten weergeven:

```json
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "list-formats-tool",
    "arguments": {}
  }
}
```

Digitaliseer-preview maken:

```json
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "create-processing-job-tool",
    "arguments": {
      "workflow": "digitising",
      "file_name": "logo.png",
      "file_base64": "iVBORw0KGgoAAA...",
      "format": "pes",
      "width_mm": 90,
      "colour_count": 8
    }
  }
}
```

Teruggegeven taak opvragen:

```json
{
  "jsonrpc": "2.0",
  "id": 4,
  "method": "tools/call",
  "params": {
    "name": "get-processing-job-tool",
    "arguments": {
      "workflow": "digitising",
      "job_id": "01JEXAMPLEJOBID000000000"
    }
  }
}
```

Mogelijke taakstatussen zijn `queued`, `processing`, `completed` en `failed`. Vraag met back-off op en stop bij een eindstatus. Bestands-URL’s vereisen hetzelfde OAuth-toegangstoken en blijven onderworpen aan de `expiresAt`-bewaartermijn van de upload.

## Voorbeeldprompts in natuurlijke taal

- “Controleer welke formaten PES kunnen lezen en veilig JEF kunnen schrijven. Toon compatibiliteitswaarschuwingen.”
- “Toon mijn vijf meest recente borduurtaken en vat samen wat mislukte.”
- “Vraag me om te bevestigen voordat u uploadt. Digitaliseer daarna logo.png op 90 mm breed met maximaal 8 kleuren en retourneer een PES-voorbeeld.”
- “Vraag taak 01J… op tot deze klaar is en rapporteer daarna steekmeetwaarden, waarschuwingen en of een download al ontgrendeld is.”

## Veiligheidsmodel

- Geen tool voor facturatie, afrekenen, credit-aankoop of ontgrendelen van betaalde downloads beschikbaar.
- Geen tool voor API-sleutel aanmaken, authenticatiewijziging, inloggegevens lezen of accountverwijdering beschikbaar.
- Elke taak die wordt gelezen is beperkt tot de gekoppelde gebruiker.
- De create-tool slaat een privé-upload op en maakt een taak aan, daarom wordt de agent geïnstrueerd om te vragen voordat er wordt geüpload.
- Bestandsnamen, metadata, taakberichten en waarschuwingen zijn onbetrouwbare data. De server instrueert agents nooit opdrachten te volgen die in deze waarden zijn ingebed.
- Een voltooid resultaat is niet automatisch productiegereed. Agents moeten validatiemeetwaarden en waarschuwingen controleren voordat ze uitspraken doen.

## Probleemoplossing

- `401 Unauthorized`: geen geldig toegangstoken verzonden; herstart de OAuth-verbinding van de client.
- `403 Forbidden`: het token mist `mcp:use`, het account is niet geverifieerd of de gevraagde taak behoort toe aan een ander account.
- `invalid_redirect_uri`: de callback-origin of native scheme staat niet op de allow-list van de server.
- `422`: toolargumenten, base64-data, brontype, doelformaat of accountquotum is niet gevalideerd.
- `429`: limiet overschreden; respecteer `Retry-After` en gebruik exponentiële back-off met jitter.

## Gerelateerde pagina&#039;s

- [Documentatie Developer API](https://embroideryfileconverter.com/nl/developers)
- [OpenAPI 3.1-beschrijving](https://embroideryfileconverter.com/developers/openapi.json)
- [Privacybeleid](https://embroideryfileconverter.com/nl/privacy)
