Atimeüs
Connects your AI assistant to your Atimeüs ERP instance: search records, run indicators, manage timesheets, and create, update or delete records with your own…
What it can do
- Get Entity By Id: Retrieves a single record of the given entity type with all its fields, by unique identifier. Call get_entity_definition first if you are unsure which fields come back. Details: get_
- Get Entity Definition: Returns the field definitions of one entity type: field, searchField, name, fieldType, editable, isReference, dataSourceEntityType, isMandatory and values. Always call it before
- Get Current User: Returns the authenticated caller's profile under user - display name, email, company, division - and their permission matrix under perms. Call it first to resolve 'me' into the emplo
What data it sees
Do you need an account
No: the server works without sign-in
Connects your AI assistant to your Atimeüs ERP instance: search records, run indicators, manage timesheets, and create, update or delete records with your own permissions.
How to connect
How to connect Atimeüs to Claude
The server address to paste into Claude settings:
https://atimeus--atimeus.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect Atimeüs to ChatGPT
The server address to paste into ChatGPT settings:
https://atimeus--atimeus.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect Atimeüs to Cursor
The server address to paste into Cursor settings:
https://atimeus--atimeus.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (19)
Raw names from tools/list. Only developers need these.
| get_entity_by_id | Retrieves a single record of the given entity type with all its fields, by unique identifier. Call get_entity_definition first if you are unsure which fields come back. Details: get_documentation('entity_model'). |
| get_entity_definition | Returns the field definitions of one entity type: field, searchField, name, fieldType, editable, isReference, dataSourceEntityType, isMandatory and values. Always call it before search_entity, create_entity or update_entity on an entity type you have not used yet. Read get_documentation('entity_model') for what each attribute means. |
| get_current_user | Returns the authenticated caller's profile under user - display name, email, company, division - and their permission matrix under perms. Call it first to resolve 'me' into the employeeId the other tools take. Details: get_documentation('permissions_and_access'). |
| search_entity | Searches records of one entity type with a structured query expression (SQE), for instance 'isActive eq true and startDate ge 2024-01-01'. Call get_entity_definition first for this entityType: SQE uses searchField for text (ct/sw/ew) and field for everything else. Returns up to 10 results in a { data, pagination } envelope. Read get_documentation('search_expressions') before your first query: it carries the operators, the value formats and how to page. |
| get_documentation | Returns the full content of one documentation subject as markdown: the how-to the tool descriptions leave out - search grammar, entity model, timesheet rules, status workflows, writes and their validation errors. Pass the id a tool description named, or call list_documentation_topics to discover them. Read the subject before acting on it, not after a call fails. |
| send_mcp_feedback | Sends feedback on this MCP server to the Atimeüs team as a support ticket: documentation that is missing or ambiguous, an unclear instruction or error, or a feature the user asked for. This is a real, destructive write that cannot be recalled, sent under the user's name and email: show the user what you will send and get their agreement first. Never include the tenant's business data. Details: get_documentation('getting_started'). |
| delete_entity | Permanently deletes a record of the given entity type by id. This performs a real, destructive write - use deliberately, and confirm the record with the user first. Only entity types that support delete appear in the entityType parameter's allowed values. Read get_documentation('writes_and_validation'). |
| search_indicator_by_name | Searches for indicators by name or keyword. Returns up to 10 results in a { data, pagination } envelope; pass pagination.nextCursor as afterId until hasMore is false. Details: get_documentation('indicators'). |
| update_timesheet_status | Moves the monthly timesheet of an employee through its status workflow: Complete, Validate, Close or Unlock. This performs a real, destructive write - use deliberately, and never assume the month. Each transition is allowed from one status only, so read the current status with get_timesheet first. Read get_documentation('timesheet_status_workflow') before calling: it carries the transitions, the error codes and the rules on comments and feedback levels. |
| declare_time | Declares worked time on a project task or an activity for the given days. This performs a real write - use deliberately. taskId comes from list_timesheet_tasks - call it first. On regular tasks and activities a day never holds more than 1 day of work, so a quantity can be silently reduced: always report the quantities the response says were recorded. Exceptional tasks are exempt - uncapped, and not counted towards the day. Read get_documentation('timesheets') for the caps and the refusals. |
| get_current_month | Returns the tenant's current closing month - the period get_timesheet, list_timesheet_tasks and declare_time use when year and month are omitted. It lags behind today's calendar month by the tenant's closing cycle, so call it before reporting any period you did not pass yourself. Read get_documentation('timesheets'). |
| list_timesheet_tasks | Lists what an employee may declare time on for a given month: the project tasks they are assigned to and the non project activities such as leave, absence or training. Every taskId is what declare_time expects. Listing a task is not permission to declare on it: get_timesheet's rights.canEdit says whether the period still accepts one. An affectation range can cover only part of the month. Read get_documentation('timesheets') before declaring. |
| search_entity_by_name | Quick search of one entity type by name or description. Only active records are returned; reach a deactivated one with search_entity. Returns up to 10 lightweight results in a { data, pagination } envelope; pass pagination.nextCursor as afterId until hasMore is false. Use search_entity for field-level filtering. Details: get_documentation('pagination'). |
| get_timesheet | Returns the monthly timesheet of an employee: its status, the rights the caller has on it, and the day by day time already declared. Call it before declaring or submitting. openDays lists the period's working days, days only the ones already declared. Read get_documentation('timesheets') for how to read the two together. |
| create_entity | Creates a new record of the given entity type. This performs a real write - use deliberately. Call get_entity_definition first, then pass values as a flat field-name to value map. Returns the created record. Read get_documentation('writes_and_validation') before your first write. |
| delete_time | Permanently deletes time entries by the workId values get_timesheet reports for the period. This performs a real, destructive write - use deliberately. All the entries must belong to the same employee. The response lists what was deleted, what was not, and the identifiers that did not match any entry. Details: get_documentation('timesheets'). |
| list_documentation_topics | Lists the documentation subjects available for this Atimeus MCP server, such as how to build search expressions, what the entity model looks like, or how writes and their validation errors work. Returns each subject's id, title, summary, tags and last update in a { data, pagination } envelope; pass pagination.nextCursor as afterTopic until hasMore is false. Pass the ids to get_documentation to read them. An empty list means nothing matched, or nothing has been published yet. |
| update_entity | Updates one or more fields of an existing record of the given entity type. This performs a real, destructive write - use deliberately: it overwrites the previous values. Only the fields provided in 'fields' are changed. Call get_entity_definition first. Returns the updated record. Read get_documentation('writes_and_validation') before your first write. |
| query_indicator | Runs a pre-configured analytical indicator and returns its computed results. Call search_indicator_by_name first to get an indicator id. The result shape depends on the indicator type (KPI, series, grouped series, table) and dates are ISO 8601 (yyyy-MM-dd). Read get_documentation('indicators') for the result shapes and the filters. |