ERPIO Workspace Control – documentation
The ERPIO Workspace Control connector exposes ERPIO One workspace administration as tools for AI assistants – Claude and other clients that support MCP. Following your instructions, the assistant creates a data source with SQL over Helios, builds a set on top of it, adds actions with parameters and puts tiles on a dashboard. It works under your ERPIO account and in your workspace.
https://mcp.erpio.one/mcpFor users
What it can do
The assistant calls the tools on its own, based on what you ask for. You don't need to know their names, but they help when troubleshooting.
read only reads, the client runs it without asking · write changes the workspace or account settings, the client may ask
Data sources
SQL queries over the gateway database. Synchronisation loads the columns from the query result.
Columns
Captions, types and properties of data source columns: Key (the single unique row identifier) and Hidden (a system value, such as an ID from a code list, that is not shown in the list or the detail but actions can use it).
Sets
Views (grids) over a data source that users open in ERPIO, including column settings (Hideable, compact view, Aggregate summary row, stacked header, detail tab). The assistant sets the default sort order of a set (e.g. Datum DESC) when creating or updating it.
Actions
Navigation between sets, edit actions with SQL (INSERT, UPDATE, DELETE), form parameters including field layout and Extended tab settings (field width, text length, tab) and picking a value from a set, checks before a form opens (OnBeforeEditor), follow-up actions, default values computed by SQL (getters), navigation to a record card, action metadata (floating button, Excel export, predefined list filters…) and a custom look for the record detail and list (HTML for the web, XAML for the mobile ERPIO App, action alias). Deleting makes sure it does not break other actions or tiles. The order of form fields can be changed without recreating the action (default values and pickers are kept). Special actions: navigation to an address on a map (LocationOnMap with parameters @BName and @BData), opening or sharing a file or PDF, sending an e-mail (@to, @subject, @body); the assistant tells you which parameters the action needs and asks which columns to take them from. Call, SMS and e-mail actions hold only the number or address (or @Parameter) in the action field, without tel: or mailto:. The action timeout is in seconds.
Automations and schedules
Actions the server runs on its own: automation steps (for example SQL actions or sending notifications) and when they run – every day at a given hour, or by a schedule (every N minutes within a time window). A schedule cannot be deleted while automations are attached to it.
Global parameters
A value stored per user (shared across their devices), for example the selected cost centre or the record shown on a record card. Parameter definitions, an overview of which actions write it and which sources and actions read it, and warnings about a missing definition or a typo in the name.
Dashboards and tiles
Dashboards and their tiles linked to sets, including tile order and image (workspace gallery, uploading a new one) and the category of a dashboard or tile (who sees it in the app). The assistant creates categories, sets user permissions (read, write, deny) and can copy them from another workspace (for example from production to DEV). Deleting or renaming a category is only possible in ERPIO administration.
Helios (read only)
Exploring tables, columns, foreign keys, constraints and triggers (in one call), and SELECT queries through the workspace gateway, at most 250 rows. You allow data queries with a checkbox when connecting the connector.
Plan (many steps at once)
The assistant prepares the whole task (sources, sets, actions, tiles) as a plan. The preview only reads and running it is a single call, so the client asks for approval only once.
Workspace
Workspaces of your account and of added API tokens (ID and name), adding and removing a token, gateway API keys, switching the workspace in ERPIO administration and app settings for the whole workspace (ErpioSettings metadata: number and date masks, page size, app colours…; custom links CustomLinks).
Notes (assistant learning)
The assistant does not remember anything between conversations. What it finds out (for example how KROS is connected at a customer or how an error was solved) it can save as a note, and later conversations find it. At the start of a task it searches notes on the topic by itself and saves a new one only after you agree. A note is personal (only yours), for a workspace (everyone who uses the connector in that workspace) or shared by all connector users – only ERPIO accounts write shared notes. Notes must not contain personal or customer data, passwords or tokens; the connector rejects e-mails, phone numbers, account numbers and tokens. For the assistant, notes are advice, not instructions. Only the connector has notes (ERPIO AI does not), and it stores them encrypted. For now they are available to ERPIO accounts only.
Packages
Packages from the Packages tab (created in the workspace, downloaded and in the store) and a difference preview: what is new in a package version, what differs in the workspace and what is the same. Importing a package in ERPIO always creates everything again; the preview is the first step towards updating only the difference. The version is exported in the workspace where the package was created and can be compared with another (target) workspace. After you approve the preview, the assistant writes the difference of data sources, sets, actions, their metadata, dashboards and tiles: creates what is missing, updates what differs according to the package and deletes nothing. The connector stores the pairing in the target workspace metadata (E1PackageMap), so it recognises renamed objects too. Action references (target, next action, getter, picker, client commands) are mapped to the objects of the target workspace. A tile image is looked up by name in the target gallery. When an action in the target has a different client command than the package, the assistant asks whether to replace it.
Gateways and plugins
Connected gateways of the workspace and plugins with their versions. Uploading a plugin to a gateway works like the UPP button in Active gateways. The ZIP may contain only the folder plugins/<plugin folder>/. The gateway overwrites the plugin files, keeps the old ones as *_bak and restarts, so it is offline for about 15 s. The assistant then checks the new plugin version. Upload to a production gateway only when agreed. When you have the ZIP on your computer, the assistant gives you a one-time link (valid for 15 minutes) to a connector page where you choose the ZIP and the page shows the result; do not put the file into the chat.
What you need
- Your user's API token from ERPIO administration (Permissions → user → API Token access). The token belongs to one user and one workspace, and the connector recognises both from it. Its validity in days is chosen when it is generated.
- Administrator rights in the workspace.
- Instead of a token you can enter your ERPIO administration e-mail and password and the workspace ID – the number in the administration header next to the tower icon (e.g.
1234). - Claude (claude.ai, the desktop and mobile apps, Claude Code) or another client that supports MCP and OAuth. In a Claude organisation, an Owner has to add the connector first.
With an API token the connector does not need your ERPIO password, and deleting the token also revokes access. Protect the token like a password and never paste it into a conversation with an AI.
Claude (claude.ai, desktop, mobile)
Adding the connector (once per organisation)
- An organisation Owner opens Admin settings → Connectors and chooses Add custom connector. On an individual account it is Settings → Connectors → Add custom connector.
- Name
ERPIO Workspace Control, URLhttps://mcp.erpio.one/mcp. Leave the advanced OAuth settings (Client ID, Client Secret) empty; Claude registers itself. - Save with Add.
Connecting as a user
- In Claude, open Settings → Connectors and click Connect next to ERPIO Workspace Control.
- The connector's sign-in page opens (in Czech). Fill in Název společnosti (company name; it identifies the connection in the conversation), paste your API token and confirm with Přihlásit a povolit (Sign in and allow). The page has the same fields as the page for adding another token. Under Přihlásit e-mailem a heslem (sign in with e-mail and password) you can enter your ERPIO e-mail, password and workspace ID instead.
- The connector checks the token (or password), your workspace membership and administrator rights, and takes you back to Claude.
- In a conversation, turn the connector on in the tools menu. At the start the assistant tells you which workspace it works in. If your account has several workspaces, it shows them (ID and name) and asks which one to write to. The choice stays until you change it (“switch to workspace 8097”).
The URL https://mcp.erpio.one/mcp is meant for applications. In a browser it returns invalid_token and Authentication required, which is expected.
Several workspaces at once
One connector https://mcp.erpio.one/mcp covers all workspaces. At the start of a conversation tell the assistant which workspaces you work with; every call then carries the workspace ID, so another conversation can work with other workspaces at the same time. An API token only works for the workspace it was generated for; allow the other workspaces of the same account with the checkbox „Povolit i ostatní workspace účtu“ (allow other workspaces of the account; when connecting the connector and when adding a token, unchecked by default). Add more workspaces with more API tokens: ask the assistant to “add an API token” and you get a one-time link (valid 10 minutes) to the connector page, where you fill in the company name and paste the token. Never paste a token into the chat. An added token works in all conversations until you remove it or it expires in ERPIO. Removing: “which tokens do I have” lists the added tokens with their names (list_login_keys), “remove token <name>” removes the token and its workspaces (remove_login_key). The workspace of the connector login is removed only by disconnecting the connector in Claude. The older option with the workspace ID in the URL (https://mcp.erpio.one/<workspace ID>/mcp) still works but is no longer needed.
- Such a connector works only in that workspace. The sign-in page shows it and checks that you have administrator rights there. Switching to another workspace in the conversation is not possible.
- An API token of another workspace of your account is accepted only with the checkbox “Povolit i ostatní workspace účtu” (allow other workspaces of the account); without it the token must be generated for the workspace in the URL. Each connector has its own sign-in and its own consent to read database data.
- In a conversation, turn on only the connector of the workspace you want to work in, so the assistant does not write somewhere you do not expect.
Gemini
Gemini asks for approval on every write and keeps the connector active only in a message that mentions it via @ERPIO Workspace control. So give a larger task in one message that mentions the connector. The assistant prepares a plan (preview_plan, no approval needed), shows it to you and runs it in a single run_plan call, so you approve only once. Approve with the Allow button in the dialog, not by typing “Allow”. When you continue in another message, start it with @ERPIO Workspace control.
Claude Code
claude mcp add --transport http erpio-workspace https://mcp.erpio.one/mcp
Then run /mcp in Claude Code, select erpio-workspace and sign in in the browser as above.
ERPIO AI (Open WebUI)
In ERPIO AI (brain.erpio.one) the same tools are available as the ERPIO Admin tool. An ERPIO AI administrator assigns it to you. Then, in the chat, you fill in your own tool settings (UserValves):
| Setting | Value |
|---|---|
ERPIO_API_TOKEN | API token (recommended). The workspace is taken from the token; leave e-mail and password empty. |
ERPIO_API_TOKENS | Additional API tokens (more workspaces, also of other accounts): label=token, separate several with a semicolon. The assistant offers the workspaces of all tokens; remove a token by deleting it from the field. |
ERPIO_ADMIN_USER, ERPIO_ADMIN_PASS | ERPIO e-mail and password, only when you don't use a token |
ERPIO_ID_CUSTOMER | workspace ID; optional with a token (if filled in, it must match the token), required with e-mail and password unless ERPIO_ALL_WORKSPACES is on |
ERPIO_ALL_WORKSPACES | Allow the other workspaces of the account. Off (default) = each API token only the workspace it was generated for, e-mail and password only ERPIO_ID_CUSTOMER; on = all workspaces of the account with administrator rights. |
ERPIO_HELIOS_GATEWAY | optional: name or API key of the gateway for Helios SQL (empty = the workspace's only active gateway) |
ERPIO_HELIOS_DATA | on = the assistant may read data from the workspace database (Helios or another; SELECT queries, helios_run_query); off by default, the assistant then only sees the table structure. A workspace administrator can decide for everyone (Workspace metadata, MCPConfig). |
ERPIO AI works in the workspace from ERPIO_ID_CUSTOMER, or in the workspace you choose in the conversation (only allowed ones, see ERPIO_ALL_WORKSPACES; the assistant shows IDs and names and calls select_workspace; it lasts until ERPIO AI restarts, set it permanently in ERPIO_ID_CUSTOMER). Without a setting, the only available workspace is selected automatically and “Workspace” is not offered. Writing to another workspace for a single call always needs your confirmation in a dialog.
Other MCP clients
The connector works with any client that supports:
- MCP over Streamable HTTP at
https://mcp.erpio.one/mcp, - OAuth 2.1 with PKCE and dynamic client registration (DCR); everything it needs is in
https://mcp.erpio.one/.well-known/oauth-authorization-server, - renewing access with a refresh token.
Clients that only support a fixed API key in a header cannot connect.
The tools carry MCP annotations: read tools are marked readOnlyHint, so clients such as Claude or Gemini run them without asking. Creating objects is a non-destructive write; changing and deleting existing objects is marked destructive (destructiveHint), so the client asks first. After the connector is updated, reconnect it in the client so that it loads the new tool definitions.
Example prompts
- “List the data sources in the workspace and show which ones have no API key set.”
- “Find the Helios tables with organisations and show me the columns of TabCisOrg.”
- “Create a data source Organisations – overview with a SELECT from TabCisOrg (Cislo, Nazev, ICO), a set on top of it and a tile on the Sales dashboard.”
- “Add a required parameter @DatumOd of type date with the caption Date from to action 12345.”
- “Link parameter @Stredisko of action 12345 to a pick from the Cost centres set, code Cislo and description Nazev.”
- “Add a row action Edit to the Orders set that updates the order note with an UPDATE.”
- “Remember for this workspace how we solved the invoice import, so you know it next time.”
Before writing SQL over Helios, the assistant first explores the table structure. Always check the result in ERPIO.
Sign-in and security
- The connector works under your ERPIO account and with your rights. It sees and changes only what you can in ERPIO administration.
- Your API token (or password) is stored encrypted on the connector server so that it can sign in to ERPIO again when the session expires. The connector's own access tokens are stored only as a hash.
- When you delete or regenerate the API token in ERPIO, or it expires, the connector stops using it within an hour at the latest.
- The access token is valid for one hour and Claude renews it automatically. If you don't use the connector for 30 days, you connect again.
- After 5 failed sign-in attempts within 15 minutes, sign-in is blocked for 15 minutes.
- Every tool call is written to an audit log on the server (user, workspace, tool, result, duration).
- The
helios_run_querytool only runs a single read query (SELECT or WITH). It rejects further statements and write keywords (INSERT, UPDATE, DELETE, EXEC, SELECT … INTO). - Queries on the workspace database (Helios or another,
helios_run_query) read customer data, so they only work with your consent: when connecting the connector (and for every added token), tick Povolit asistentovi číst data z databáze (allow the assistant to read database data; off by default, change it by disconnecting and connecting again, for an added token by saving it again under the same name). The assistant cannot turn it on itself. Table structure (no data) always works. A workspace administrator can decide for everyone in ERPIO: Workspace metadata → New, EntityIDentLTWCustomer, Prop. NameMCPConfig, Value{"helios_run_query": false}(ortrue). - You revoke access by disconnecting the connector in Claude (Disconnect), or by deleting the token in ERPIO.
Writes go straight to ERPIO and cannot be undone. Try new things in a test workspace first, and keep approval turned on in Claude for tools that write. Before deleting a set or a data source, have the assistant list what depends on it.
Troubleshooting
Sign-in page messages are in Czech; tool errors are in Czech without diacritics.
- “Neplatný API token (zrušený, vypršel nebo neúplný).” (invalid API token)
- Paste the whole token without spaces. If it was deleted or has expired, generate a new one in ERPIO.
- “API token patří k workspace …” (the token belongs to another workspace)
- The token is from a different workspace than the one you entered (in ERPIO AI in
ERPIO_ID_CUSTOMER). Use a token from that workspace, or fix the ID. - “Nesprávný e-mail nebo heslo do ERPIO.” (wrong e-mail or password)
- Use the same credentials as for ERPIO administration.
- “Účet nemá přístup do workspace …” (no access to the workspace)
- The account is not a member of the workspace with this ID. Check the number in the ERPIO administration header.
- “Účet nemá administrátorská práva ve workspace …” (no administrator rights)
- The connector needs administrator rights. Ask the workspace administrator for them.
- “Příliš mnoho neúspěšných pokusů.” (too many failed attempts)
- Wait 15 minutes and sign in again.
- “Přihlášení vypršelo nebo je neplatné.” (sign-in expired or invalid)
- The sign-in page is valid for 15 minutes. Click Connect in Claude again.
Ulozene prihlaseni do ERPIO uz neplati- The stored ERPIO sign-in no longer works: the API token was revoked or expired, or the password changed. Disconnect the connector in Claude and connect again with a new token or password.
Prihlaseni ke konektoru uz neplati- Your connector sign-in is no longer valid. Disconnect the connector in Claude and connect again.
MW session uctu je ve workspace …- The ERPIO session was in a different workspace. The connector sets its own on the next call, so repeat the operation; or tell the assistant “call sync_mw_workspace”. See Workspace and MW session.
Nelze vybrat gateway pro SQL- The workspace has several active gateways (or none) and it is unclear which one to use. In ERPIO AI fill in
ERPIO_HELIOS_GATEWAY; for the Claude connector, contact the connector administrator. SQL chyba: …- An error in the query, for example a column that doesn't exist. The assistant sees it and fixes the query.
- A set doesn't appear in the set overview or loads no data
- The data source or the set has no gateway API key. Ask the assistant to check the keys and fill them in.
- The connector URL shows
invalid_tokenin a browser - That's expected. The URL is meant for applications, not for a browser.
- A plugin did not upload, the gateway did not restart
- The gateway downloads the ZIP itself and supports only TLS 1.0, which newer Windows versions disable. On the gateway computer set
SchUseStrongCryptoandSystemDefaultTlsVersionsto 1 in the registry (keyHKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319and the same key underWOW6432Node), restart only the service of that gateway and upload the plugin again. The entryCANCELED#timeout1in the gateway EventLog appears even after a successful upload; it is not an error.
For administrators and implementers
Workspace and MW session
The connector works in the workspace the assistant passes in the workspace parameter of each call. The choice belongs to the conversation; the server cannot tell conversations apart, so it does not store it. If the connection has a single available workspace, it is used automatically; with more workspaces a tool called without the parameter does nothing and returns the list. Available are the workspaces of the login and of every added token (add_login_key), each through its own token and its own ERPIO session. Each login may only use its own workspace (an API token the workspace it was generated for, a password the workspace entered); with the checkbox „Povolit i ostatní workspace účtu“ all workspaces of the account. This is a connector rule; ERPIO itself does not restrict a token to its workspace. Workspaces named “Workspace” are not offered, only those where you have administrator rights.
Most tools call the ERPIO REST API with the workspace ID. The administration editors (actions, sets, tiles), column synchronisation and Helios SQL, however, run in the workspace selected in your ERPIO account (the number in the administration header). When the two differ, the connector refuses the operation before anything could be saved elsewhere:
MW session uctu je ve workspace 1234, nastroj pracuje ve workspace 5678 - ...
Zavolej sync_mw_workspace() (prepne vybrany workspace uctu) a zkus to znovu.
The connector (Claude, Gemini) and ERPIO AI set the workspace in their ERPIO session themselves every time they sign in to ERPIO, so you can keep a different workspace open in ERPIO administration in your browser. ERPIO stores the choice with your account, though: the next time you sign in to administration, it opens the workspace the connector used last. If the message still appears, repeat the operation, or tell the assistant “call sync_mw_workspace”.
What the tools take care of
The tools follow ERPIO conventions, so the result works the same as if someone had built it by hand in administration:
- A set automatically gets a hidden navigation action pointing to itself. It is used by tiles and links.
- A data source with SQL is created as the “any SQL” type with a limit of 1,000 rows. The SQL must be a single SELECT without ORDER BY, because ERPIO wraps the query in a subquery. Put more complex logic into an inline table-valued function; the default sort order is set on the set.
- Both the data source and the set need a gateway API key, otherwise the set is not visible and loads no data. Pick the gateway by name.
- A tile is of type Text unless you say otherwise, and opens its set through the set's hidden navigation action.
- An edit action (INSERT, UPDATE or DELETE of a single record) is of type Edit. Data repeater only for bulk updates of many rows.
- Action parameters: adding or changing a parameter keeps the others. A required parameter is set with the Required flag. The value source (ValName) must be a system value, a set column or a data source parameter.
- Picking from a set (cSET) is set up by
bind_param_picker. The picker action is always hidden and the form gets both the code and the description. - Deleting a set also deletes the actions that lead to it, including hidden picker actions on other sets. List the actions first (
list_actions). - Single-line SQL (data source, SQL action, parameter default value – getter) is saved with line breaks so it is readable in the administration. SQL you formatted yourself stays as it is. The action list shows the stored getter SQL.
- Icons of actions and tiles only from Font Awesome Free up to version 5.15.4 (e.g.
fa-plus, brandsfab fa-android). The assistant will not set a Pro or version 6 icon and suggests a replacement, because ERPIO App would show an empty button instead. - Row grouping in the app's table and list is turned on by a column whose name starts exactly with
Group_(e.g.Group_Stredisko). AGroup… name without the underscore does not group – the tool warns about it, and also about a set that lacks such a column of its source. - Lists in the administration (global parameters, schedules, plugins) are read in full, even when they have several pages.
- Workspace metadata changes app settings for all users of the workspace. The assistant writes only
ErpioSettingsandCustomLinksand changes only the values you give. It never writesMCPConfig(permission to read data) and never shows or writes the API token of custom links (E1Key) – an administrator sets it in ERPIO. - On one set a column (AtColumn – clicking the value opens the action) may open only one action, and only one action may be the floating button (FloatingActionButton). The tool rejects a taken column or button and names the action that has it.
- Before writing SQL over Helios, the assistant first explores the schema (
helios_list_tables,helios_get_table_schema).
Compared with ERPIO One MCP
| ERPIO Workspace Control | ERPIO One MCP | |
|---|---|---|
| URL | https://mcp.erpio.one | clientmcp.erpio.one |
| Purpose | workspace administration: data sources, sets, actions, dashboards, Helios queries | selected client API methods (e.g. orders, activities) |
| Sign-in | user API token, or ERPIO e-mail, password and workspace ID | e1key |
| For | ERPIO implementers and administrators | ERPIO One users |
Operations
- Server status:
https://mcp.erpio.one/health - OAuth metadata:
https://mcp.erpio.one/.well-known/oauth-protected-resource/mcpandhttps://mcp.erpio.one/.well-known/oauth-authorization-server - This page:
https://mcp.erpio.one/docs; choose the language with?lang=cs,skoren. - Long operations (SQL through the gateway, column synchronisation) can take tens of seconds.