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

# MCP server

> Connect ChatGPT, Claude, Cursor or any MCP app to your Join Markt store. Sign in with OAuth. No API key needed.

Run your store by talking to your AI app. Check today's sales, change a price, create a coupon or answer a ticket, in plain words.

> [card] Connect in a minute
>
> Paste one URL. Sign in. Done.

> [card] Your whole store
>
> Products, orders, customers, themes and more.

> [card] Safe by default
>
> You pick the stores and the access.

## Server URL

```txt Server URL theme={null}
https://dash.joinmarkt.com/api/mcp
```

> [!TIP]
>
> You can also copy it from the dashboard: **Developers → MCP**. Your connected apps show there too.

## Works with

> [card] ChatGPT

> [card] Claude

> [card] Cursor

> [card] VS Code Copilot

> [card] Gemini CLI

> [card] Windsurf

## Connect an app

> [tab] ChatGPT
>
> **1. Turn on Developer mode**
>
> Open **Settings → Apps & Connectors → Advanced** and turn on **Developer mode**.
>
> **2. Create the connector**
>
> In **Apps & Connectors**, press **Create**. Name: `Join Markt`. URL: `https://dash.joinmarkt.com/api/mcp`. Authentication: `OAuth`.
>
> **3. Allow access**
>
> Sign in to Join Markt, pick your stores and access, then press **Allow access**.
>
> **4. Use it**
>
> In a new chat, press **+ → Developer mode** and pick **Join Markt**.
>
> > [!NOTE]
> >
> > ChatGPT renames these menus often. Look for "connectors" or "custom MCP server".

> [tab] Claude
>
> **1. Add a connector**
>
> Open **Settings → Connectors** and press **Add custom connector**.
>
> **2. Enter the details**
>
> Name: `Join Markt`. URL: `https://dash.joinmarkt.com/api/mcp`.
>
> **3. Connect**
>
> Press **Add**, then **Connect**, and allow access on Join Markt.

> [tab] Cursor
>
> **1. Add the server**
>
> Add this to `~/.cursor/mcp.json`:
>
> ```json ~/.cursor/mcp.json theme={null}
> {
>   "mcpServers": {
>     "join-markt": { "url": "https://dash.joinmarkt.com/api/mcp" }
>   }
> }
> ```
>
> **2. Connect**
>
> Press **Connect** next to `join-markt` and allow access.
>
> > [!TIP]
> >
> > The dashboard MCP page has a one-click **Add to Cursor** button.

> [tab] VS Code
>
> **1. Add the server**
>
> ```json .vscode/mcp.json theme={null}
> {
>   "servers": {
>     "join-markt": { "type": "http", "url": "https://dash.joinmarkt.com/api/mcp" }
>   }
> }
> ```
>
> **2. Start**
>
> Press **Start** above the server and sign in.

> [tab] Terminal apps
>
> ```bash Claude Code theme={null}
> claude mcp add --transport http join-markt https://dash.joinmarkt.com/api/mcp
> ```
>
> ```bash Codex theme={null}
> codex mcp add join-markt --url https://dash.joinmarkt.com/api/mcp
> ```
>
> In Claude Code, type `/mcp`, pick `join-markt` and sign in.

> [tab] Other apps
>
> Add a remote MCP server with the URL above. Use Streamable HTTP and OAuth. Apps that follow the MCP spec find the rest on their own.

## Try it

> [card] Today's sales
>
> "How much did I sell today, and what was my best product?"

> [card] Low stock
>
> "Which products have less than 5 in stock?"

> [card] Discount code
>
> "Create a 20% coupon called SUMMER that ends next Sunday."

> [card] Edit my theme
>
> "Make the header buttons rounded, then show me a preview."

## What the app can do

The server has the same actions as the [Merchant API](https://docs.joinmarkt.com/developers/api-keys.md).

> [accordion] Store tools
>
> Products and stock, categories and groups, coupons, orders and invoices, customers, reviews, tickets, store settings, domains, payments, balance and payouts, blacklist and anti-fraud, notifications, Discord, imports and webhooks.
>
> Start with `whoami` (who is signed in) and `list_stores` (pass the `storeId` to every other tool).

> [accordion] Theme code tools
>
> | Tool | Use |
> | - | - |
> | `list_theme_projects` | Live storefront and saved drafts |
> | `list_theme_files` | Every file, its size, the `revision` and errors |
> | `read_theme_file` | One file. Big files return `nextOffset` |
> | `write_theme_files` | Create, edit or delete: `{ baseRevision, changed, removed }` |
> | `preview_theme` | Builds the draft and returns a private link |
> | `publish_theme` | Makes the draft live |
>
> Edits go to the draft only. If the builder saved in the meantime, the older save gets `409` and the app reads the files again.

> [!WARNING]
>
> `publish_theme`, deletes, money and checkout changes are marked **Asks first** (`destructiveHint`). Your AI app asks you before it runs them.

## Access and permissions

When the app opens Join Markt, you choose the **stores** and the **access**: read only, full, or custom per section. These are the same scopes as [API keys](https://docs.joinmarkt.com/developers/api-keys.md).

> [card] Your role is the limit
>
> An app never gets more than your team role.

> [card] Hidden if not allowed
>
> Tools without access are hidden. Calls return `403`.

> [card] Rate limit
>
> 120 requests per 60 seconds.

## Tokens and disconnecting

| Item | Lifetime |
| - | - |
| Authorization code | 10 minutes, one use |
| Access token | 1 hour |
| Refresh token | 30 days, new one on every use |

Tokens are stored only as hashes. If an old refresh token is reused, all tokens of that app stop.

To disconnect, open **Developers → MCP** or **Profile → Authorized apps** and press **Disconnect**. Access stops at once.

## For client developers

> [accordion] OAuth endpoints
>
> | Endpoint | Path |
> | - | - |
> | Protected resource metadata | `/.well-known/oauth-protected-resource` |
> | Authorization server metadata | `/.well-known/oauth-authorization-server` |
> | Authorize | `/oauth/authorize` |
> | Token | `/api/mcp/oauth/token` |
> | Register | `/api/mcp/oauth/register` |
> | Revoke | `/api/mcp/oauth/revoke` |
>
> Clients are public (`token_endpoint_auth_method: none`) and must use PKCE `S256`. A request without a token returns `401` with a `WWW-Authenticate` header.

> [!NOTE]


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