ERPIO One MCP
Optional – without it the examples show {customerId}.

ERPIO One MCP – documentation

The server https://clientmcp.erpio.one exposes selected ERPIO One client API methods as tools for AI assistants – Claude, ChatGPT, Open WebUI and other clients that support MCP or OpenAPI. The assistant can then, for example, look up a job or log a new activity directly in ERPIO One.

What you need

  • Your customer ID in ERPIO One (e.g. 1459).
  • An e1key access key from ERPIO One – generate it in ERPIO One or ask your administrator. The AI will have the same permissions as the user who owns the key.
  • The administrator must have configured methods for your customer ID (see the administrator section).
UseURLSign-in
Claude, ChatGPT (MCP with OAuth)https://clientmcp.erpio.one/{customerId}sign-in page – you enter the e1key
Open WebUI, Claude Code, Cursor, VS Code, OpenAI API…https://clientmcp.erpio.one/{customerId}/mcpAuthorization: Bearer {e1key}
REST / OpenAPI (ChatGPT Actions, n8n, Make…)https://clientmcp.erpio.one/{customerId}/openapi.jsonAuthorization: Bearer {e1key}

Protect your e1key like a password. Anyone who has it works in ERPIO One with your permissions. Never share it or paste it into a conversation with the AI.

Claude (claude.ai, desktop, mobile)

Custom connectors are available on the Pro, Max, Team and Enterprise plans.

  1. Open Settings → Connectors and click Add custom connector (on Team/Enterprise plans an owner first adds it in Admin settings → Connectors; members then just connect).
  2. Name: e.g. ERPIO. URL: https://clientmcp.erpio.one/{customerId}. Leave Advanced settings (OAuth Client ID/Secret) empty.
  3. Click Add, then Connect. The ERPIO One sign-in page opens – enter your e1key and click Allow access.
  4. In a conversation, enable the connector via + → Connectors → ERPIO.

Try for example: “Find the sales job for A2B and add a task for tomorrow – send a price quote.” For tools that change data, Claude asks for confirmation first.

Claude Code (command line): claude mcp add --transport http erpio https://clientmcp.erpio.one/{customerId}/mcp --header "Authorization: Bearer YOUR_E1KEY"

ChatGPT

Option 1: MCP app (developer mode)

Full support including write actions is available on Business, Enterprise and Edu plans (Pro: read-only). Developer mode is enabled by a workspace admin.

  1. Settings → Apps → Advanced settings – turn on Developer mode.
  2. Apps → Create: enter a name and the MCP URL https://clientmcp.erpio.one/{customerId}, authentication OAuth.
  3. Click Scan Tools and sign in with your e1key on the ERPIO One sign-in page.

Option 2: Custom GPT with Actions (OpenAPI)

  1. In the GPT editor open Configure → Actions → Create new action.
  2. Import from URL does not work without a key – download the specification in the administration (download specification) and paste it into Schema.
  3. Authentication → API Key, type Bearer, value = your e1key.

Actions that change data are marked x-openai-isConsequential in the specification – ChatGPT asks before running them. After changing methods in the administration, replace the specification in the GPT.

Open WebUI

  1. As an admin open Admin Settings → External Tools (or Integrations) and click + Add Connection.
  2. Type: MCP (Streamable HTTP) – not OpenAPI.
  3. URL: https://clientmcp.erpio.one/{customerId}/mcp
  4. Auth: Bearer, Key: your e1key. Save.
  5. Use Access Control to choose which users or groups may use the tools, and enable them on the model or in the chat.

In Open WebUI the admin configures the connection for everyone – all users with access work under one e1key. If everyone needs their own permissions, create separate connections and restrict them with Access Control.

Alternative: Type OpenAPI, URL https://clientmcp.erpio.one, path /{customerId}/openapi.json, Auth Bearer = e1key.

Other MCP clients (Cursor, VS Code, Windsurf, custom apps…)

The server supports the Streamable HTTP transport (stateless, no SSE). Most clients accept a configuration like:

{
  "mcpServers": {
    "erpio": {
      "url": "https://clientmcp.erpio.one/{customerId}/mcp",
      "headers": { "Authorization": "Bearer YOUR_E1KEY" }
    }
  }
}
  • Instead of Bearer you can also send Authorization: e1key YOUR_E1KEY.
  • Clients that support OAuth 2.1 (dynamic registration, PKCE) can use the URL without a key and sign in via the sign-in page.
  • An invalid key returns HTTP 401 right at connection time.

OpenAI API (Responses API)

An OpenAI model can call ERPIO tools directly via the built-in mcp tool. The key is sent in the authorization field:

curl https://api.openai.com/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "<model>",
    "tools": [{
      "type": "mcp",
      "server_label": "erpio",
      "server_url": "https://clientmcp.erpio.one/{customerId}/mcp",
      "authorization": "YOUR_E1KEY",
      "require_approval": "always"
    }],
    "input": "Find sales jobs for A2B"
  }'

require_approval: "always" requires approval for every call – recommended for write tools. Use allowed_tools to allow only selected tools. Other OpenAI-compatible APIs with MCP support work the same way.

REST / OpenAPI (n8n, Make, Power Automate, custom integrations)

  • Specification: GET https://clientmcp.erpio.one/{customerId}/openapi.json (with header Authorization: Bearer {e1key}).
  • Call a tool: POST https://clientmcp.erpio.one/{customerId}/tools/{tool_name}, body = JSON with the arguments.
curl -X POST https://clientmcp.erpio.one/{customerId}/tools/obchodne_zakazky_api \
  -H "Authorization: Bearer YOUR_E1KEY" \
  -H "Content-Type: application/json" \
  -d '{ "search": "A2B", "rows_count": 20 }'

Response: { "data": …, "hasMore": true, "nextRowsOffset": 20 }. Errors: { "error": { "code", "message", "correlationId" } } with status 400 (arguments), 401 (key), 403 (permission), 404 (tool), 429 (rate limit), 502 (ERPIO).

Common arguments of read methods: search, rows_offset and rows_count (paging, max 1000).

Troubleshooting

The AI doesn't see a new tool
Clients cache the tool list. Disconnect and reconnect the connector (in Claude: Settings → Connectors), re-save the connection in Open WebUI, or reload the specification for OpenAPI. Also check that the method is enabled in the administration and, for write methods, that writes are allowed.
401 / “Invalid e1key”
The key is invalid, revoked, or does not belong to this customer ID.
“Rate limit exceeded”
ERPIO One limits calls per minute. Wait a moment; for large lists use search instead of downloading all rows.
The AI refuses to write
Write tools are only published when the administrator has enabled Allow write methods. The client asks for confirmation before writing.

For method administrators

Signing in to the administration

Open https://clientmcp.erpio.one/{customerId}/admin and sign in with your e1key. Settings apply to the whole customer ID – for everyone who connects.

The home page shows the connector URLs for each client, the method list, adding a new method, and settings (Allow write methods, Additional instructions for the AI).

Adding a method

  1. Paste the client API method URL into Add method, e.g. https://client.erpio.one/api/v1/{customerId}/apiobchodnezakazky, or just the action alias or ID.
  2. The server loads the action metadata from ERPIO One and creates a tool with parameters (types, defaults, lookups, hidden system parameters).
  3. The method editor opens – add descriptions and set whether the method is read-only.

For safety, a new method is marked as write until you mark it Read-only.

Editing methods and parameters

Tool nameTool name for the AI (a–z, 0–9, _ and -). Renaming may require clients to reconnect.
Display titleHuman-readable name in the client.
Description for the AIThe most important field – the AI picks tools based on it. See Writing good descriptions.
Action alias / ID, HTTP methodWhich ERPIO One action is called and whether via GET or POST.
Read-onlyThe method does not change data – it gets the search, rows_offset and rows_count parameters.
Allow searchOffers the AI a search parameter (sent in the URL). Turn off if the action doesn't support it.
Default row countHow many rows are returned unless the AI asks otherwise (max 1000). Fewer = faster and cheaper.

Parameters

  • Description and value type – the type is pre-filled from metadata (text, number, date, date-time, yes/no, file…).
  • Required – the AI must fill it in.
  • Default value – sent when the AI omits the parameter.
  • Fixed value – always sent; the AI doesn't see the parameter (e.g. always a specific cost centre).
  • Hidden from AI – system parameters (e.g. the signed-in user) are filled in by ERPIO.
  • Allowed values – a comma-separated list.
  • Lookup – action (alias/ID), value column and text column. Small lookups are given to the AI directly as a list; for large ones it uses the erpio_lookup_values tool. Filled parameters (e.g. @TypPopis=Popis) are filled by the server from the selected lookup row.
  • Refresh from metadata – loads changes of the action definition from ERPIO One and keeps your descriptions.

Writing good descriptions

The AI can't see what an action does in ERPIO – it only knows what you write. A good description says what the method does, when to use it, and where parameter values come from.

weak

Nová aktivita - API

good

Creates a new activity (call, meeting, task…) for a sales job. Use it when the user wants to record contact with a customer or schedule a task. Get the job number with the obchodne_zakazky_api tool.

  • For dates, say what they mean (due date, creation date…).
  • Mention how methods relate (“take the job number from …”).
  • Put rules that apply to all methods into Additional instructions for the AI (e.g. “always log activities with a description”).

AI description suggestions

If enabled on the server, the method page has a ✦ Suggest descriptions (AI) button. First fill in What you use the method for with one sentence – it greatly improves the result.

  • The AI fills in the method description, parameter descriptions and estimates of required parameters and “read-only”. Fields are highlighted.
  • Nothing is saved automatically – review, edit and click Save (or reload the page to discard).
  • Only the action structure (names, captions and parameter types) and your note are sent to the AI – no values or ERPIO data. Don't put specific customer data into the note.

Write methods

  • Methods not marked Read-only are only offered to the AI once Allow write methods is enabled.
  • Clients receive them marked as “changes data” and ask the user for confirmation before running them.
  • Every write call is recorded in an audit log on the server (time, tool, parameters, result).

Test and preview

  • Test call – enter values as the AI would send them and see the result from ERPIO One. Testing a write method really writes data – you must confirm it with the checkbox.
  • How the AI sees the tool – the exact definition the client receives (name, description, parameter schema).
  • After changes, tell users to reconnect the connector if they don't see a new tool.