mcp-creatio
Enables GitHub Copilot to access and manipulate Creatio data via MCP tools, including reading, creating, updating, deleting records, and managing business processes and system operations.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-creatiocreate a new contact named John Doe"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Creatio Server
Model Context Protocol (MCP) server for Creatio — connect Claude Desktop, ChatGPT, GitHub Copilot, and other AI tools to your Creatio data, schema, and processes.
Also discoverable as: Creatio MCP server · MCP server for Creatio CRM · Model Context Protocol for Creatio.
Contents
Related MCP server: Microsoft Business Central MCP Server
What it does
CRUD + schema — read, create, update, delete records; list entity sets; inspect schemas.
Business processes — run Creatio workflows with parameters.
System settings — read, write, and manage system-setting metadata.
Feature toggles — manage
Feature/AdminUnitFeatureStateand refresh the feature cache. ⚠️ Only DB-backed features are reachable (those defined solely inweb.configare invisible).System operations — manage
SysAdminOperationand per-user/role grants (OData blocks these tables, so dedicated tools are provided).Custom services — invoke any configuration-package REST service (
/0/rest/<service>/<method>) when no dedicated tool fits.Selectable data backend — Creatio DataService (default) or OData v4 (
CREATIO_MCP_CRUD_BACKEND).Optional semantic layers — DataForge and Global Search tools auto-register when the instance supports them.
Works with Claude Desktop, ChatGPT Connectors, GitHub Copilot, and any MCP-compatible client.
Quick start
The server runs in one of two transports. Pick by how your client connects, then pick an authentication method.
stdio (single-user, local)
For clients that launch a command directly (VS Code MCP, Claude Desktop). Single Creatio identity per process; authenticate with client credentials or legacy login.
npx -y mcp-creatio@latest \
--base-url https://your-creatio.com \
--login your_login --password your_password// VS Code / Claude Desktop (command-based)
{
"creatio": {
"command": "npx",
"args": [
"-y",
"mcp-creatio@latest",
"--base-url",
"https://your-creatio.com",
"--login",
"your_login",
"--password",
"your_password",
],
},
}stdio logs are silent by default — enable with
--log-level infoorCREATIO_MCP_LOG_LEVEL.
HTTP (multi-user, hosted)
For clients that connect by URL, and for multi-user / hosted deployments. This transport serves the
broker, delegated, and gateway auth modes (see Authentication).
npm start # serves http://localhost:3000/mcp{ "creatio": { "type": "http", "url": "http://localhost:3000/mcp" } }Authentication
One unified selector — CREATIO_MCP_AUTH_MODE — picks how a request proves its Creatio identity.
When unset it is inferred from the credentials you provide. The HTTP modes are multi-user; stdio is
single-user.
Mode | Transport | How identity is established | When to use |
| HTTP | The MCP is its own OAuth server: it walks the user through Creatio login and holds their tokens | Standalone direct clients (Claude Desktop / ChatGPT) — connect → authorize → work as you |
| HTTP | The client brings a Creatio token; the MCP validates expiry and passes it through | Clients that obtain a Creatio token themselves / behind an external AS |
| HTTP | A trusted Control-Plane injects the token per request | Behind the Creatio.ai Control-Plane (multi-tenant) |
| stdio / HTTP | One service account ( | M2M / single service identity |
| stdio / HTTP | One user (login / password) | Local / legacy instances |
The MCP issues Creatio tokens of its own only in
brokermode (where it must, to drive the login).delegated/gatewaypass tokens through;client_credentials/legacyuse a single server-side identity.
Trust model.
delegatedandgatewayare fully-trusted-environment modes: the MCP does NOT cryptographically verify the incoming Bearer — Creatio remains the authority and rejects bad tokens on the API call — so the request'suserKeyis an unverified, logging-only identity. Run them only where the caller is trusted (gateway: behind the Creatio.ai Control-Plane;delegated: a trusted client on a trusted network / your own proxy). For an untrusted direct external client that needs the MCP itself to verify identity, usebroker— there the MCP issues and verifies its own audience-bound (aud/iss) tokens.
broker — the "connect & authorize" UX for direct clients
The MCP acts as an OAuth 2.1 authorization server for its clients (dynamic registration, authorize, token) and brokers the actual login to Creatio via authorization_code with PKCE. The client only ever talks to the MCP, so this works even though Creatio offers no dynamic client registration — and the client never needs to reach Creatio's TLS endpoint directly.
The tokens the MCP issues to clients are audience-bound (aud = this deployment's /mcp
resource, iss = its origin), so a token minted by one deployment is rejected by another even when
they share a secret. The MCP also supports the refresh_token grant (rotating), so a client
gets a fresh access token without re-running the browser flow every hour — for as long as the MCP
still holds that user's Creatio tokens.
CREATIO_MCP_AUTH_MODE=broker
CREATIO_CLIENT_ID=your_creatio_oauth_app_client_id # the Creatio "On behalf of a user" app
CREATIO_MCP_JWT_SECRET=a-long-random-secret-min-32 # signs the tokens the MCP issues to clients
# CREATIO_CLIENT_SECRET=... # only for a confidential Creatio app (omit for public/PKCE)
CREATIO_MCP_JWT_SECRETmust be at least 32 characters (HS256 security rests entirely on its entropy — a shorter value is rejected at startup). In production (NODE_ENV=production) it is required (the server fails closed if unset). Outside production an unset secret yields a random one so a local run needs no setup — but the tokens the MCP issues are then invalidated on every restart and are not valid across multiple instances, so set a stable secret for production or any horizontally-scaled deployment.
Persistence / horizontal scaling (broker holds users' Creatio tokens). By default those tokens live in-process — fine for a single instance, but lost on restart and not shared across replicas. For production set a Redis token store: tokens are encrypted at rest (AES-256-GCM) and survive restarts, so the broker becomes stateless and horizontally scalable.
CREATIO_MCP_TOKEN_STORE=redis
CREATIO_MCP_REDIS_URL=redis://your-redis:6379
# CREATIO_MCP_TOKEN_ENC_KEY=... # optional; encryption key, else derived from CREATIO_MCP_JWT_SECRETLogout / revocation. The broker exposes an RFC 7009 POST /revoke endpoint (advertised as
revocation_endpoint in the AS metadata): presenting an issued token revokes the user's Creatio
token upstream (/connect/revocation, best-effort) and purges the server-side Creatio tokens and
issued refresh tokens. It always answers 200 (no token-validity oracle).
Register the Creatio app in System Designer → OAuth 2.0 applications → On behalf of a user, and
add the MCP callback (http://localhost:3000/oauth/callback for a local run) to its redirect URIs.
delegated (default when nothing else is set)
Pure resource server: each /mcp request must carry a Creatio access token; the MCP advertises the
authorization server (Creatio Identity) via RFC 9728 and challenges unauthenticated requests, so
the client logs in directly against Creatio. Needs no server-side credentials. The token is passed
through unverified (Creatio is the authority) — a trusted-environment mode (see the trust note
above).
What the client sends. The MCP client attaches the Creatio access token as a Bearer header
on every /mcp request. In a client that supports static headers:
{
"creatio": {
"type": "http",
"url": "http://localhost:3000/mcp",
"headers": { "Authorization": "Bearer <CREATIO_ACCESS_TOKEN>" },
},
}Server side, just select the mode (no credentials needed):
CREATIO_MCP_AUTH_MODE=delegated
CREATIO_BASE_URL=https://your-creatio.comA request with no Authorization header gets 401 with a WWW-Authenticate challenge pointing
at Creatio Identity (RFC 9728), so a compliant client knows where to log in.
Forwarding a Creatio session cookie instead of a Bearer. A client that authenticated to Creatio the classic way holds a Forms-auth session (cookie +
BPMCSRF), not an OAuth token. It can forward that session instead of a Bearer by sending the cookie inX-Creatio-Cookie(and, optionally, the anti-forgery token inX-Creatio-Bpmcsrf— otherwise it is read from the cookie). The MCP attachesCookie+BPMCSRF+ForceUseSessionstatelessly and lets Creatio validate it.Authorization: Bearertakes precedence when both are present.
gateway
A trusted fronting service (Creatio.ai Control-Plane) injects the credential; the MCP trusts and uses
it. The optional X-Creatio-Base-Url header routes a request to a specific Creatio instance
(multi-tenant) — honored only in this mode. Because that override decides where the request's
credential is sent, it is validated: set CREATIO_MCP_ALLOWED_BASE_URLS (comma-separated origins)
to restrict it to your tenants. When unset, any http(s) host is accepted (trusting the gateway)
except the cloud-metadata link-local address, which is always blocked (SSRF guard).
Who sends what. Unlike delegated, the end client talks to the gateway, not to the MCP — so
the gateway is what injects the per-request headers. On each forwarded /mcp call it sends a
Creatio credential — either a Bearer token, or a forwarded Forms-auth session:
POST /mcp HTTP/1.1
Authorization: Bearer <CREATIO_ACCESS_TOKEN> # a Bearer token …
X-Creatio-Cookie: BPMCSRF=<csrf>; .ASPXAUTH=<s> # … OR forward a Forms-auth session instead
X-Creatio-Base-Url: https://tenant-a.creatio.com # optional — pick the tenant's instance (multi-tenant)Server side:
CREATIO_MCP_AUTH_MODE=gateway
CREATIO_BASE_URL=https://default-creatio.com # fallback when no X-Creatio-Base-Url
CREATIO_MCP_ALLOWED_BASE_URLS=https://tenant-a.creatio.com,https://tenant-b.creatio.com # SSRF allowlistSmoke-test it directly with curl (mint a token out-of-band first):
curl -sS http://localhost:3000/mcp \
-H "Authorization: Bearer $CREATIO_ACCESS_TOKEN" \
-H "X-Creatio-Base-Url: https://tenant-a.creatio.com" \
-H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get-current-user-info","arguments":{}}}'Bearer or session cookie — nothing else. The gateway injects either a Creatio OAuth Bearer token or a forwarded Forms-auth session (
X-Creatio-Cookie+BPMCSRF); the MCP forwards it statelessly (no cookie jar, no per-credential pool) and Creatio validates it. The gateway owns auth — it should hold a ready Creatio credential of one of those two shapes. Other shapes (Basic, API key) are intentionally out of scope.
Per-tenant tool isolation. A single MCP deployment serving many instances keeps each tenant's tool surface separate, keyed by the effective base URL (
X-Creatio-Base-Url, elseCREATIO_BASE_URL). Optional capabilities are probed per tenant and the tools they expose (DataForge, Global Search, and any dynamically discovered per-instance tools) are registered only for the tenant they were discovered on. Tenant A's tools or DataForge verdict never leak into tenant B's session, even though both share one process. The per-tenant state is pooled with idle-TTL + LRU eviction, so memory stays bounded as the number of distinct instances grows. Single-tenant modes (everything exceptgatewaywith an override) all map to one bucket, so their behavior is unchanged.
client_credentials / legacy
CREATIO_CLIENT_ID=your_client_id # client_credentials
CREATIO_CLIENT_SECRET=your_client_secret
CREATIO_LOGIN=YourLogin # legacy
CREATIO_PASSWORD=YourPasswordPrecedence: an explicit
CREATIO_MCP_AUTH_MODEalways wins. When unset, the mode is inferred: legacy (login+password) → client_credentials (id+secret) → delegated.broker,delegatedandgatewayrequire HTTP transport (stdio has no incoming web request to authenticate).
Configuration
Grouped from essential to optional. CREATIO_BASE_URL is the only always-required value —
nothing works without it; the rest depend on the auth method and the features you enable.
Connection (required)
Variable | Description |
| Required. Creatio instance URL (e.g. |
Authentication (pick one method — see Authentication)
Variable | Mode | Description |
| any |
|
| broker / M2M | Creatio OAuth app client id (the brokered app, or the M2M account) |
| broker? / M2M | Required for client_credentials; optional for a confidential broker app (omit for public/PKCE) |
| broker | Secret signing the tokens the MCP issues to clients. Min 32 chars; required in production. Random if unset outside prod (set a stable value for prod / multi-instance) |
| gateway | Optional — comma-separated allowlist of Creatio origins the |
| legacy | Username / password |
| any | Optional — Identity Service URL; defaults to deriving from |
Data & behavior (optional)
Variable | Description |
| CRUD data API: |
|
|
|
|
|
|
Transport & runtime (optional)
Variable | Description |
| Docker only: |
| HTTP listen port (default |
| Log verbosity: |
| Optional — proactive session keep-alive interval (seconds) for |
| Optional — the deployment's public origin (e.g. |
Disabling optional capabilities. DataForge and Global Search are auto-detected at startup and registered only when supported. Set
CREATIO_MCP_DISABLE_DATAFORGE=true/CREATIO_MCP_DISABLE_GLOBAL_SEARCH=trueto skip the probe and the tools — useful to keep the tool surface small even when the capability exists.
CRUD backend
CRUD tools (read, create, update, delete, list-entities, describe-entity) run on a
selectable data API, chosen once per deployment via CREATIO_MCP_CRUD_BACKEND:
dataservice(default) — Creatio's native DataService.odata— Creatio OData v4. Also enables the OData-onlyreadextras (raw$filter,expand).
Either way you query through the same tool surface: prefer the structured filters parameter — it
works unchanged on both backends.
Tools
Tool | Description |
| Fetch the Creatio contact details for the authenticated MCP user |
| List all available entity sets |
| Get schema for an entity (fields, types, keys). Routes through DataForge for richer column details when it is enabled, otherwise exact OData |
| Query records: filters, select, expand, ordering, pagination (skip/top) and total count |
| Create a new record |
| Update an existing record |
| Delete a record |
| Run a Creatio business process |
| Read current values and metadata for one or more system settings |
| Update one or more system setting values |
| Create a new system setting (with optional initial value) |
| Modify system setting metadata (name, value type, cache flags, lookup reference) |
| Invalidate the in-memory feature-toggle cache. Call after editing |
| Create or update a |
| Delete one or more |
| Grant or revoke a system operation for users/roles. Repeated calls update the existing row instead of duplicating |
| Remove specific grant rows by Id. Prefer |
| Escape hatch: invoke any configuration-package REST service method by name. Use only when no dedicated tool covers the operation |
Querying data with read
Ask for exactly the data you need — the AI doesn't have to know OData:
Filter any way — equals / not-equals, ranges, text match (
contains,starts/ends with),AND/ORgroups, and "in this list".Filter by related records naturally — by name (
Contact/Name = "Andrew Baker") or by id.Sort, paginate (page size + offset), and count matches in one call.
Pull in related data in a single request (e.g. an order with its account and contact).
DataForge tools (registered only when DataForge is enabled)
DataForge is Creatio's AI-oriented semantic layer over the data model. These tools are probed once
and registered only when the environment has DataForge configured (a non-empty
DataForgeServiceUrl system setting). When DataForge is absent the tools are not exposed, and
describe-entity silently uses OData metadata.
Tool | Description |
| Semantic search: map a natural-language query to the Creatio tables that best match its meaning |
| Like |
| Find the relationship path(s) between two tables (how they join) — useful before |
| Fuzzy/semantic search for lookup values (resolve a phrase to the right lookup record Id) |
| Report whether DataForge is online and whether the data model / lookups are synced |
Discovery → confirm → act: use dataforge-similar-tables to find the right entity, then
describe-entity for the authoritative field list, then read/create.
Enabling DataForge (Creatio side): the DataForgeServiceUrl system setting plus IdentityServer
settings (IdentityServerUrl, IdentityServerClientId/Secret), the DataForge* feature toggles,
and the CanReadDataStructureColumnDetails operation granted to the MCP user. Restart the app pool
(or run DataStructureTransferFromCreatio / LookupsTransferFromCreatio) to sync the model.
Global Search tool (registered only when Global Search is enabled)
Global Search is Creatio's cross-entity, Elasticsearch-backed record search — the engine behind the
UI search box. Probed once, registered only when GlobalSearchUrl is configured.
Tool | Description |
| Full-text search across all indexed entities. Input: |
Differs from read: read needs an exact entity + filter; global-search is fuzzy and
cross-entity — use it to locate a record when you don't know the entity.
Enabling Global Search requires the GlobalSearchUrl (+ GlobalSearchConfigServiceUrl,
GlobalSearchIndexingApiUrl) system settings and the GlobalSearch / GlobalSearch_V2 feature
toggles, with the section index built (Elasticsearch reachable).
Docker
The image supports both transports, selected by CREATIO_MCP_TRANSPORT (default http).
HTTP (remote / hosted / multi-client — defaults to delegated Bearer auth):
docker run --rm -p 3000:3000 \
-e CREATIO_BASE_URL="https://your-creatio.com" \
-e CREATIO_MCP_AUTH_MODE=delegated \
crackish/mcp-creatiostdio (local client that spawns the process — note -i; use client-credentials or legacy auth):
docker run -i --rm \
-e CREATIO_MCP_TRANSPORT=stdio \
-e CREATIO_BASE_URL="https://your-creatio.com" \
-e CREATIO_LOGIN="YourLogin" -e CREATIO_PASSWORD="YourPassword" \
crackish/mcp-creatioAvailable Tools
18 toolscall-configuration-serviceCall a Creatio configuration REST service methodA
Escape hatch for invoking any configuration-package REST service exposed at /0/rest//. Use this when no dedicated MCP tool covers the operation. Always prefer the specific tools (upsert-admin-operation, refresh-feature-cache, sys-settings tools, etc.) when they exist — they validate inputs, handle wrapped responses, and document side effects. Returns {status, contentType, body}; JSON responses are auto-parsed.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Request body sent as JSON for POST/PATCH/PUT. Ignored for GET/DELETE. Pass the service parameters as a flat object (e.g., {"recordId":"<guid>","name":"..."}). Creatio configuration services use [WebInvoke BodyStyle=Wrapped], so each parameter becomes a top-level key. | |
| query | No | Optional query-string parameters appended to the URL. | |
| method | Yes | Service method name (UriTemplate) to invoke (e.g., "UpsertAdminOperation"). | |
| service | Yes | Configuration service name as registered in Creatio (e.g., "RightsService"). The full URL is /0/rest/<service>/<method>. | |
| httpMethod | No | HTTP method. Most Creatio configuration services use POST. | POST |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It states the return format and auto-parsing behavior, and implies that this tool lacks input validation and response handling compared to dedicated tools. However, it does not mention potential side effects, destructive actions, or rate limits, which would enhance transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences that are perfectly front-loaded with purpose, each earning its place. No redundant phrases or unnecessary detail. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description fully covers return values (`{status, contentType, body}`) and auto-parsing. All five parameters are described adequately, and the escape-hatch nature is fully contextualized with sibling tool references.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds significant meaning beyond the schema: explains that `body` is ignored for GET/DELETE, describes the wrapped request format, details URL construction, and clarifies defaults. This provides agents with practical usage context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it is an 'escape hatch for invoking any configuration-package REST service' and gives the URL pattern. It distinguishes itself by listing dedicated tools to prefer, making the purpose specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use ('when no dedicated MCP tool covers the operation') and when not to ('Always prefer the specific tools'). Provides concrete examples of sibling tools, offering clear guidance on alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createCreate record in CreatioA
Create a single Creatio record. Use 'describe-entity' first to confirm required fields & types. Provide entity and data map. Only include fields you need. ALL DATE/TIME FIELDS: For ANY date/time field (StartDate, DueDate, RemindToOwnerDate, CreatedOn overrides, custom date columns) ALWAYS use /datetime-guide for UTC conversion & formatting. ALL CONTACT / USER LOOKUP FIELDS: For ANY field pointing to a user/contact (OwnerId, AuthorId, CreatedById, ModifiedById, ResponsibleId, ManagerId, SupervisorId, and similar *Id fields referencing sys users) use /contactid-guide to resolve correct ContactId. Avoid guessing IDs. 🎯 DEFAULT OWNER/AUTHOR: Activities and tasks are ALWAYS created for the CURRENT USER by default! Set OwnerId and AuthorId to current user's ContactId (from get-current-user-info or SysAdminUnit.ContactId) unless user EXPLICITLY says "for [another person]". Don't ask "for whom?" - default to current user! Activities (Task/Meeting/Call/Email): HARD RULE → Always set TypeId to Task (fbe0acdc-cfc0-df11-b00f-001d60e938c6) and vary only ActivityCategoryId for meeting/call/email intent unless user explicitly says phrases like: "real meeting type", "true call type", "not a task", "use Visit type". Do NOT look up ActivityType for ordinary meeting/call/email requests. To intentionally allow a non-Task type, caller must add meta flag __allowNonTaskType=true. See /create-activity-guide prompt. Tagging: use /tagging-guide prompt. Examples: Account → data={ Name:'Acme Corp', Phone:'+1-234-567' }; Contact → data={ Name:'John Doe', Email:'john@example.com' }
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Field map for new record. DATA TYPES: - Strings: "John Doe", "john@example.com" - Numbers: 1000, 25.99 - Booleans: true, false - Dates: ISO 8601 format with Z for UTC: "2025-10-08T19:00:00Z" - GUIDs (lookups): "8ecab4a1-0ca3-4515-9399-efe0a19390bd" (no quotes in value!) LOOKUP FIELDS: - Use field name ending with Id: AccountId, ContactId, TypeId, etc. - Value must be valid GUID from related entity - Example: AccountId: "8ecab4a1-0ca3-4515-9399-efe0a19390bd" ⏰ DATES & TIME: - Always use UTC time with Z suffix - Convert local time to UTC: subtract timezone offset - Format: "YYYY-MM-DDTHH:mm:ssZ" - Example: "2025-10-08T19:00:00Z" for 22:00 local (UTC+3) 💡 TIP: Call 'describe-entity' first to see required fields and their types! | |
| entity | Yes | Entity set to create a record in (e.g., Contact, Account). Tip: use "describe-entity" to find required fields and types before creating. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It discloses important behaviors: activities default to current user, activity type hard rule, and that tagging requires a separate guide. No contradictions with annotations (none exist).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-organized with bullet points and bold emphasis. Every sentence adds value, though some redundancy could be trimmed. Still, it's structured effectively for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, it does not describe return values, but input is thoroughly covered. References to external guides enhance completeness. For a creation tool, this is adequate, though missing response details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds substantial value beyond schema fields: detailed data types, lookup field format, date/time conversion, and real examples. This compensates for any lack of schema detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it creates a single Creatio record, and is clearly distinguishable from sibling tools like delete, update, read, and list-entities. It specifies the operation and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: 'Use describe-entity first to confirm required fields & types.' Also includes hard rules for activities (always set TypeId to Task unless meta flag) and default owner/author behavior. References external guides for complex cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-sys-settingCreate a new system setting in CreatioA
Creates a brand-new system setting (metadata record) using InsertSysSettingRequest and optionally assigns an initial value via PostSysSettingsValues. For full guidance on supported valueTypeName strings and lookup reference resolution, see the /sys-settings-guide prompt.
| Name | Required | Description | Default |
|---|---|---|---|
| definition | Yes | ||
| initialValue | No | Optional initial value to write immediately after creating the system setting. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It reveals the underlying request classes (InsertSysSettingRequest, PostSysSettingsValues), which adds transparency beyond a simple 'creates' statement. However, it does not disclose behavioral traits like required permissions, error behavior, rate limits, or idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at two sentences, with the first sentence capturing the core action and the second providing a reference for further details. It is efficiently structured with no wasted words, though the guide reference could be integrated into the first sentence for better flow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (nested objects, many parameters, no output schema, no annotations), the description is incomplete. It does not describe return values, error handling, or success criteria. The reference to a guide partially mitigates but does not fully compensate for the lack of output schema and behavioral details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high (many parameters have descriptions in the schema itself). The description adds no new parameter semantics beyond what the schema already provides; it only points to an external guide for valueTypeName. Baseline of 3 is appropriate as description does not need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a brand-new system setting and names the specific request class (InsertSysSettingRequest) and optional value-setting service (PostSysSettingsValues). It distinguishes itself from sibling tools like 'set-sys-settings-value' (which updates existing settings) by specifying 'brand-new' and the request type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for creating new system settings but does not explicitly state when to use this tool vs alternatives like 'update-sys-setting-definition' or 'set-sys-settings-value'. It references a guide for valueTypeName details but provides no exclusion criteria or prerequisite conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deleteDelete record in CreatioA
Delete a single record by Id.
⚠️ ALWAYS confirm with user before deleting!
Show what will be deleted (entity, ID, identifying info)
Ask: "Are you sure you want to delete this record?"
Wait for explicit confirmation
💡 SAFER ALTERNATIVE - Soft Delete: Instead of permanent deletion, update status: IsActive=false, IsDeleted=true Example: Use 'update' tool with data={ IsActive: false }
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Primary key of the record to delete. GUIDs can be passed as-is; non-GUID strings will be quoted automatically. | |
| entity | Yes | Entity set to delete from (e.g., Contact, Account). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It warns that deletion is permanent and requires confirmation, and offers a soft-delete alternative. However, it could explicitly state that the operation is irreversible and does not mention whether cascading deletes occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-line summary, followed by a numbered list of safety steps, and a clear alternative. Every sentence serves a purpose without unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of a delete operation, the description covers all necessary aspects: what it does, how to use it safely, and an alternative. The schema covers parameters, and no output schema is needed for a void operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes both parameters (id, entity) with 100% coverage. The description does not add further semantic detail about the parameters beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool deletes a single record by ID, and the title 'Delete record in Creatio' reinforces this. It distinguishes from sibling tools like 'delete-admin-operation' which are for different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit step-by-step instructions for safe usage: always confirm with user, show what will be deleted, ask for explicit confirmation. Also suggests a safer alternative (soft delete) using the update tool, offering clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete-admin-operationDelete Creatio system operationsA
Delete one or more SysAdminOperation rows by Id. Related grantee rows are cleaned up automatically. Use this instead of the generic delete tool — OData modifications on SysAdminOperation are blocked at the platform level.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | List of SysAdminOperation Ids to delete (RightsService deletes them and their related grantee rows). Use the standard `read` tool on `SysAdminOperation` to look up Ids by Code first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that related grantee rows are cleaned up automatically, but lacks details on failure modes, permissions, or side effects. No annotations are provided, so the description carries the full burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose and behavior, second provides usage guidance. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations or output schema, the description covers key aspects: what it does, how it works, and why to use it. Lacks return/confirmation info but is adequate for a deletion tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by suggesting using the 'read' tool to look up IDs, which aids parameter preparation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Delete', resource 'SysAdminOperation rows', and scope 'by Id' with automatic cleanup of related grantee rows. Distinguishes from siblings by specifying it is the correct tool for this entity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use this over the generic 'delete' tool because OData modifications are blocked, providing a precise when-to-use and when-not-to-use directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete-admin-operation-granteeRemove specific system operation grant rowsA
Delete individual grant rows by Id when you want to remove a grant entry entirely. To flip allow ↔ deny instead, prefer set-admin-operation-grantee.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | List of SysAdminOperationGrantee row Ids to delete. Look them up via `read` on `SysAdminOperationGrantee` filtered by `SysAdminOperationId` and/or `SysAdminUnitId`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Describes deletion as removing entries entirely, implying irreversibility. However, lacks details on permissions, side effects, or return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both essential: first defines action, second contrasts with sibling. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple ID-based delete tool, coverage is high. Parameter described, usage contrasted. Lacks return value description (no output schema), but not critical for delete operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single parameter 'ids' with 100% schema description coverage. The schema already explains UUID format, minItems, and lookup method; description adds no extra meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Delete individual grant rows by Id' to remove a grant entry entirely. Distinguishes from sibling tool `set-admin-operation-grantee` for flipping allow/deny.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (remove entirely) and when not to (flip allow/deny, use alternative). Provides lookup method in parameter description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe-entityGet entity description from CreatioA
Inspect schema for the given entity set: entity type, primary key(s), and properties with types/nullable. Use this before CRUD to avoid invalid fields. When DataForge is enabled on the environment, this tool transparently returns the richer DataForge column details (source:"dataforge"); otherwise it falls back to exact OData $metadata (source:"odata"). Behaviour and inputs are identical either way.
| Name | Required | Description | Default |
|---|---|---|---|
| entitySet | Yes | Entity set name to describe (e.g., Contact, Account). Returns entity type, key fields, and properties with types/nullable. Use this to plan subsequent read/create/update/delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description openly discloses the tool's conditional behavior: it returns DataForge details when enabled, otherwise falls back to OData metadata. It states behaviour and inputs are identical either way, which adds transparency. It does not cover error scenarios or response format details, but the core behavior is well explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The first sentence states the action and output, the second covers behavioral nuance. It is front-loaded and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one simple parameter and no output schema, the description sufficiently covers what the tool returns (entity type, keys, properties with types/nullable) and the two source scenarios. It could mention the response format (e.g., JSON object) but the current detail is adequate for agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description adds usage context ('Use this before CRUD') but does not provide additional semantic detail beyond what the schema already states about the entitySet parameter. It's adequate but not outstanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool inspects schema for an entity set, listing what it returns (entity type, primary keys, properties with types/nullable). It explicitly positions the tool as a pre-CRUD step, distinguishing it from the CRUD and admin sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using the tool before CRUD operations to avoid invalid fields. It explains the two operational modes (DataForge vs OData fallback). While it doesn't list when not to use or name specific alternatives, the context is clear and helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute-processExecute Creatio Business ProcessA
Execute a Creatio CRM business process with optional parameters. This tool runs server-side business processes in Creatio platform.
WORKFLOW FOR LLM:
If user provides display name/caption (e.g., "Lead Qualification Process"):
First use "read" tool on VwProcessLib entity
Filter: contains(Caption,'user_provided_name')
Select: ["Name", "Caption"]
Use the "Name" field value as processName parameter
If user provides schema name directly (e.g., "UsrLeadQualificationProcess"):
Use it directly as processName parameter
Process Identification:
This tool accepts ONLY schema names (e.g., "RunActualizeProcess")
Schema names are technical identifiers stored in VwProcessLib.Name column
Display names/captions are user-friendly names in VwProcessLib.Caption column
Parameters:
Passed as object with key-value pairs
Parameter names typically start with uppercase letter
Supports all JSON types: strings, numbers, booleans, GUIDs
Common Parameter Patterns:
Entity IDs: ContactId, AccountId, OpportunityId, LeadId, CaseId
Amounts: Amount, Price, Sum, Cost
Text fields: Description, Notes, Text, Comment, Title
Flags: IsActive, IsCompleted, SendEmail, CreateActivity
Dates: StartDate, EndDate, DueDate (ISO format)
GUID & Date Helpers: /datetime-guide prompt applies to EVERY date/time parameter (convert to UTC). /contactid-guide prompt applies to EVERY user/contact participant parameter (OwnerId, AuthorId, AssigneeId, ResponsibleId, CreatedById overrides, etc).
Example: { "processName": "Lead Management Process", "parameters": { "ContactId": "2ad0270b-dc4c-4fbf-9219-df32ce4c34fc", "Amount": 15000, "Description": "High priority lead", "SendNotification": true } }
Uses Creatio ProcessEngineService.svc/Execute endpoint for execution.
| Name | Required | Description | Default |
|---|---|---|---|
| parameters | No | Parameters to pass to the business process as key-value pairs. Parameter names typically start with uppercase letter. Examples: - ContactId: "2ad0270b-dc4c-4fbf-9219-df32ce4c34fc" (GUID values) - Amount: 1000 (numeric values) - Text: "SomeText" (string values) - BoolParam: true (boolean values) Common parameter patterns: ContactId, AccountId, OpportunityId, Amount, Description, etc. | |
| processName | Yes | REQUIRED: Schema name of the Creatio business process (e.g., "RunActualizeProcess"). IMPORTANT: This parameter accepts ONLY schema names, NOT display names/captions. If user provides a display name/caption (e.g., "Actualize Process"), you MUST first use the "read" tool to find the corresponding schema name in VwProcessLib table: - Use filter: contains(Caption,'user_provided_name') - Select fields: ["Name", "Caption"] - Use the "Name" field value as processName parameter. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool runs server-side business processes via a specific endpoint (ProcessEngineService.svc/Execute). It also explains the process identification steps. However, it does not mention return values, side effects, permissions, or error handling, leaving gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (WORKFLOW FOR LLM, Process Identification, Parameters, etc.). Each sentence adds value. However, it is somewhat lengthy, and the example contains a contradictory use of a display name as processName, which undermines conciseness and clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description should explain the return value but does not. More critically, the example uses a display name ('Lead Management Process') as the processName, directly contradicting the explicit rule that only schema names are accepted. This internal contradiction severely reduces completeness and could mislead an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for both parameters. The description adds significant meaning beyond the schema: it explains the workflow for processName (display name to schema name mapping), provides common parameter patterns, GUID/date helpers, and an example. This greatly aids correct parameter construction.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool executes a Creatio CRM business process with optional parameters. It distinguishes from sibling CRUD and configuration tools by focusing on server-side process execution. The verb 'execute' and resource 'business process' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a detailed workflow for LLM on how to handle display names vs schema names, including a step to use the 'read' tool. While it doesn't explicitly state when not to use this tool, it gives strong procedural context. However, it lacks explicit exclusion criteria or comparison to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-current-user-info🔑 Get Current User Info - CALL THIS FIRST!A
⚠️⚠️⚠️ MANDATORY FIRST STEP ⚠️⚠️⚠️
🚨 YOU MUST CALL THIS TOOL FIRST before creating ANY Activity, Lead, Opportunity, Case, or other CRM record!
WHY CALL FIRST:
Returns the ContactId needed for OwnerId and AuthorId fields
Without this, you CANNOT create activities or CRM records correctly
Activities MUST have valid OwnerId and AuthorId (both = ContactId)
By default, ALL activities/leads/tasks are created FOR THE CURRENT USER
📋 REQUIRED WORKFLOW: Step 1: Call get-current-user-info (no parameters) ← DO THIS NOW! Step 2: Extract contactId from response Step 3: Store contactId in memory for this conversation Step 4: Use contactId as OwnerId and AuthorId in ALL create operations
Returns: { "userId": "410006e1-ca4e-4502-a9ec-e54d922d2c00", "contactId": "76929f8c-7e15-4c64-bdb0-adc62d383727", // ← SAVE THIS! "userName": "Current User", "cultureName": "en-US" }
USE CASES (when to call): ✅ User asks to create activity/meeting/task/call → CALL THIS FIRST! ✅ User asks to create lead/opportunity/case → CALL THIS FIRST! ✅ User asks who they are → CALL THIS! ✅ Beginning of ANY CRM workflow → CALL THIS FIRST! ❌ Simple queries (read/search) → Not required
CRITICAL RULES:
ContactId (NOT userId) goes into OwnerId/AuthorId fields
Cache the ContactId - don't call repeatedly
Default assumption: create records FOR current user
Only change owner if user explicitly says "for [someone else]"
Example usage: User: "Create a meeting for tomorrow" YOU: 1) Call get-current-user-info 2) Use contactId for OwnerId and AuthorId 3) Create activity with those IDs
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description fully handles transparency. Clearly explains return fields and that ContactId is used for OwnerId/AuthorId, but could explicitly state the tool is read-only and has no side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Though verbose, the structure is well-organized with warnings, workflow steps, use cases, and examples. Every sentence serves a purpose to enforce the mandatory first-step behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description includes the full return format and field explanations. Covers all necessary context for a tool that provides essential user identification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has zero parameters, so description carries full burden. Adds extensive meaning by explaining the purpose, output format, and how to use the returned values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool returns current user info including ContactId, and emphasizes it as a mandatory first step for create operations, distinguishing it from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists when to call (create activities, leads, etc.) and when not (simple queries), plus provides a step-by-step workflow and critical rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-entitiesGet entities from CreatioA
Return all available Creatio OData entity sets. Start here, then use "describe-entity" to inspect fields and keys before performing CRUD.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It implies a read-only listing operation ('Return all...') but does not explicitly state behavioral traits such as read-only guarantee, idempotency, or any side effects. This is minimally adequate but leaves some uncertainty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary action. No filler words. Every sentence adds value: first defines the tool's purpose, second provides critical usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with no parameters and no output schema, the description is reasonably complete. It explains what is returned (OData entity sets) and how to proceed. Lacking perhaps mention of the nature of the returned items (names/IDs), but sufficient for agent action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the description does not need to explain parameters. Baseline for 0 params is 4, and the description adds no additional parameter semantics (none are needed).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns all available Creatio OData entity sets, using the specific verb 'Return' and resource 'entity sets'. It distinguishes from siblings by positioning itself as the starting point before using 'describe-entity'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit workflow guidance: 'Start here, then use describe-entity to inspect fields and keys before performing CRUD.' This gives clear context on when to use this tool relative to siblings, though it does not explicitly state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query-sys-settingsQuery system settings in CreatioA
Retrieve the current values and metadata for one or more Creatio system settings using the QuerySysSettings endpoint. Returns the raw response including success flag, values map, and notFoundSettings array (if any).
| Name | Required | Description | Default |
|---|---|---|---|
| sysSettingCodes | Yes | List of system setting codes to query. Provide at least one Creatio sys setting code (e.g., "EmailDefSendName", "SupportEmail"). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It mentions the raw response structure (success flag, values map, notFoundSettings) and implies a query operation, but does not explicitly confirm read-only nature or disclose any potential side effects, auth needs, or rate limits. Good but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the action and resource, no unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description adequately explains the return format (success flag, values map, notFoundSettings). For a simple tool with one required parameter, this is sufficient and complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage for the single parameter is 100%. The description adds value by providing examples of valid system setting codes (e.g., 'EmailDefSendName', 'SupportEmail'), which aids the agent in understanding expected input beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Retrieve' and the resource 'Creatio system settings', and specifies it can return values and metadata for one or more settings. It distinguishes from siblings like 'create-sys-setting' and 'set-sys-settings-value' which are write operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. While context from sibling tool names implies it is for reading, no direct guidance on exclusions or prerequisites is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
readRead records in CreatioA
Query Creatio records. Workflow: 1) list-entities 2) describe-entity 3) read with select, filters, orderBy, top. Key params: select (fields to return), filters (conditions — recommended), orderBy (sorting), top (limit), skip (pagination offset), count (return total). Always include fields used in filters in select when select is provided. Filter related records via navigation (Contact/Name, Contact/Id) — a scalar lookup XxxId with a GUID is handled for you. Paginate with skip+top (+ a stable orderBy). To COUNT, set count:true (response becomes { total, value }); for count-only use count:true + top:0. For date/time filtering see /datetime-guide prompt. For Contact/Owner filtering see /contactid-guide prompt. Examples: entity:'Order', select:['Id','Number','Amount'], filters:{ all:[{ field:'ContactId', op:'eq', value:'' }] }, orderBy:'Amount desc', top:25, skip:0. count-only: entity:'Opportunity', filters:{ all:[{ field:'ContactId', op:'eq', value:'' }] }, count:true, top:0.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Max rows to return ($top). Defaults to 50 when omitted (so results are never unbounded); raise it or paginate with skip for more. Use top:0 with count:true for a count-only query. Suggest 25–200. | |
| skip | No | Offset pagination ($skip): skip this many matching rows before returning. Combine with top to page, e.g. page 3 of 25 → skip:50, top:25. Pair with a stable orderBy so pages do not overlap. | |
| count | No | When true, also return the TOTAL number of matching records ($count=true), ignoring top/skip. The response shape becomes { total, value } instead of a bare array. 💡 For a COUNT-ONLY question ("how many opportunities does X have"), set count:true AND top:0 — you get { total: N, value: [] } in one request instead of fetching rows. Filter the same way as a normal read (e.g. lookups via ContactId → auto Contact/Id). | |
| entity | Yes | Creatio OData entity set to query (e.g., Contact, Account, Activity). Tip: call "list-entities" first, then "describe-entity" to confirm fields before reading. | |
| select | No | Fields to return from the main entity. Strongly recommended for performance. ⚠️ IMPORTANT: $select works ONLY for direct properties of the entity! - ✅ CORRECT: select=['Id','Name','AccountId','Email'] - ❌ WRONG: select=['Account/Name'] - navigation paths NOT supported ⚠️ CRITICAL: When using $filter with $select: - ALWAYS include filtered fields in $select array - Example: filter by AccountId → select=['Id','AccountId',...] - Creatio returns error "Column by path X not found" if field filtered but not selected - This does NOT apply to expanded entities - those are separate 💡 TO GET RELATED DATA: Use expand parameter (RECOMMENDED)! - expand=['Account'] loads full Account object automatically - No need to include expanded fields in select - Much better than making separate requests Use 'describe-entity' to discover available field names. | |
| filters | No | Structured filters (alternative to raw $filter). Handles OData syntax, GUID formatting, and lookup navigation automatically. 🔗 FILTERING BY A LOOKUP (related record) — use NAVIGATION, not the scalar FK: - By name (best): Contact/Name eq 'Andrew Baker', Type/Name eq 'Employee' - By id: Contact/Id eq <guid> (GUID, no quotes) - ❌ Do NOT filter the scalar `ContactId`/`OwnerId`/`AccountId` directly — Creatio OData 500s with "Column by path XxxId not found in schema". - The primary key `Id eq <guid>` DOES work as-is (it is a real column, not a lookup). (With this structured parameter you can pass either form — a `XxxId` field with a GUID value is auto-rewritten to `Xxx/Id`.) Examples: - Lookup by name: { all:[{ field:'Contact/Name', op:'eq', value:'Andrew Baker' }] } (RECOMMENDED) - Lookup by id: { all:[{ field:'ContactId', op:'eq', value:'60733efc-f36b-1410-a883-16d83cab0980' }] } // becomes Contact/Id eq <guid> - Multiple AND: { all:[{ field:'IsActive', op:'eq', value:true }, { field:'Name', op:'contains', value:'John' }] } - Multiple OR: { any:[{ field:'Stage/Name', op:'eq', value:'Presentation' }, { field:'Stage/Name', op:'eq', value:'Negotiation' }] } | |
| orderBy | No | OData $orderby clause for sorting results. Syntax: "FieldName asc" or "FieldName desc" Multiple fields: "Field1 asc, Field2 desc" ✅ EXAMPLES: - orderBy: "Name asc" - sort by name ascending - orderBy: "CreatedOn desc" - newest first - orderBy: "Amount desc" - highest amount first - orderBy: "Name asc, Amount desc" - sort by multiple fields ⚠️ NOTE: You can only sort by direct properties of the entity. Sorting by navigation properties (like Account/Name) is NOT supported in Creatio OData. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It explains read behavior, pagination, auto-lookup rewriting, response shape for count, and performance considerations. Does not explicitly state read-only nature, but it's implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with bullet points, examples, and warnings. Front-loads purpose and workflow. Slightly verbose but all content is useful. Could be more concise, but structure helps readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all essential aspects: pagination, filtering, selecting, ordering, count-only, auto-rewriting, and related records. No output schema, but describes response shapes. Complete for a read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds significant value: examples for filters, warnings about select/filter interaction, guidance on navigation paths, and explanation of count-only mode. Exceeds baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Purpose is clearly stated as querying Creatio records with a specific workflow involving list-entities and describe-entity first. It distinguishes from siblings like list-entities and describe-entity by focusing on reading actual records with filters, pagination, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear workflow (list-entities -> describe-entity -> read) and detailed guidance on when to use count-only, pagination, and how to filter. Lacks explicit when-not-to-use, but context is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refresh-feature-cacheRefresh Creatio feature toggle cacheA
Invalidates the in-memory feature-toggle cache for all users. Call this after changing rows in Feature or AdminUnitFeatureState via the standard create/update/delete tools so the new state becomes visible. Pass featureCode to scope to a single feature; omit to refresh all. See /feature-toggle-guide for the full workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| featureCode | No | Optional feature code (e.g., "FreedomUIComposableApp"). When provided, only that feature's cache is invalidated for all users. Omit to clear the cache for every feature. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility. It discloses that the tool invalidates the cache globally for all users and makes changes visible. It does not mention any destructive side effects or performance implications, but the core behavior is well explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only three sentences, with the main action in the first sentence, usage context in the second, and parameter guidance in the third. Every sentence adds value; no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, no output schema), the description is complete. It covers what the tool does, when to call it, how to parameterize it, and where to find more information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the only parameter, featureCode, but the description adds meaningful guidance on when to pass it vs. omit it. This goes beyond the schema's description, which only states the parameter is optional and gives an example.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool invalidates the in-memory feature-toggle cache for all users, which is a specific verb-resource combination. It distinguishes from sibling tools by focusing on cache invalidation after data changes, not on directly modifying data like the other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to call this after changing rows in Feature or AdminUnitFeatureState via standard create/update/delete tools, providing clear usage context. It also explains how to use the optional featureCode parameter to scope the invalidation, and points to a guide for full workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set-admin-operation-granteeGrant or revoke a system operation for users/rolesA
Grant (canExecute=true) or revoke (canExecute=false) a system operation for one or more SysAdminUnit ids (users or roles). Repeated calls for the same (operation, unit) pair update the existing grant row instead of duplicating. Use this instead of the generic create/update tools — OData modifications on SysAdminOperationGrantee are blocked.
| Name | Required | Description | Default |
|---|---|---|---|
| canExecute | Yes | `true` grants the operation (allow) to every listed admin unit; `false` revokes it (deny). | |
| adminUnitIds | Yes | SysAdminUnit Ids (users or roles) that should receive the same grant/revoke state. Resolve via `read` on `SysAdminUnit` filtered by Name. Use SysAdminUnit.Id (NOT ContactId). | |
| adminOperationId | Yes | Id of the SysAdminOperation being granted or revoked. Look up via `read` on `SysAdminOperation` filtered by Code. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral transparency burden. It discloses the grant/revoke effect, update-on-repeat behavior, and blocked OData modifications. It does not detail side effects or confirm reversibility, but covers key behavioral traits adequately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that front-load the core action and add critical behavioral and usage hints. Every sentence earns its place without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the three required parameters with thorough schema descriptions and no output schema, the description covers functionality, idempotence, and alternative tool prohibition. It could mention the expected return (e.g., success status) but is otherwise complete for agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. The description adds value by explaining the boolean's role as grant/revoke and the update behavior for repeat calls, which goes beyond the schema descriptions. This extra context justifies a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool grants or revokes a system operation for users/roles using specific verbs and resource identifiers. It explicitly distinguishes itself from generic create/update tools by noting that OData modifications on SysAdminOperationGrantee are blocked, which helps the agent select the correct tool among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: for granting or revoking system operations, and not to use generic create/update tools. It also mentions idempotent behavior for repeated calls. However, it does not explicitly state when to use the sibling delete-admin-operation-grantee for deletion, leaving a small gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set-sys-settings-valueSet system settings values in CreatioB
Update one or more system settings in Creatio in a single request.
Parameters:
sysSettingsValues: A map/object of system setting codes to their new values. Supports any JSON-compatible types (string, number, boolean, object, array).
USAGE:
Update single setting: { "SettingCode": "value" }
Update multiple settings at once: { "SettingCode1": "value1", "SettingCode2": 123, "SettingCode3": true }
Mixed data types: { "EmailEnabled": true, "MaxRetries": 5, "ApiKey": "secret" }
Returns the result from the system settings update endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| sysSettingsValues | Yes | Map of system setting codes to their new values. Accepts any JSON-compatible types (string, number, boolean, object, array). Examples: - Single setting: { 'SettingCode': 'value' } - Multiple settings: { 'SettingCode1': 'value1', 'SettingCode2': 123, 'SettingCode3': true } - Mixed types: { 'EmailEnabled': true, 'MaxRetries': 5, 'ApiKey': 'secret' } |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears full responsibility. It states that the tool returns a result but does not disclose whether the operation is destructive, what authentication is needed, or any side effects. The description is too vague for an update operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably short but includes redundant repetition of schema examples under 'USAGE'. The front-loading is acceptable (clear verb first), but some sentences could be combined or removed to be more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single nested parameter and no output schema, the description adequately explains the parameter structure with examples. However, it lacks details on return values, error handling, and behavioral aspects (e.g., idempotency), leaving gaps for a complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; the input schema already includes a detailed description and examples. The description adds the same usage examples, providing minimal additional meaning. It reinforces the structure but does not significantly enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (update), resource (system settings), and scope (one or more in a single request). The verb 'update' and mention of 'system settings values' distinguish it from sibling tools like 'update-sys-setting-definition' and 'create-sys-setting', though explicit differentiation is absent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage examples are provided for single, multiple, and mixed types, giving clear context. However, there is no guidance on when to use this tool versus alternatives (e.g., 'create-sys-setting' for new settings) or when not to use it. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateUpdate record in CreatioA
Update a record by Id (PATCH). Supply entity, id, and partial data containing only changed fields. Examples: Account → data={ Name:'Updated Name' }; Contact → data={ Email:'new@example.com' }. DATE/TIME: For ANY date/time modifications (reschedule StartDate, set DueDate, reminders, custom date columns, CreatedOn override when allowed) consult /datetime-guide prompt (always send UTC). CONTACT/USER FIELDS: When changing OwnerId, AuthorId, ModifiedById (rare), ResponsibleId, ManagerId, etc use /contactid-guide prompt to resolve valid ContactId. Do NOT invent or reuse unrelated IDs. Activities: /create-activity-guide prompt (overall), /datetime-guide prompt (time changes), /contactid-guide prompt (participants/Owner).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Primary key of the record. Pass GUIDs as-is (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). Non-GUID strings will be quoted automatically. | |
| data | Yes | Partial fields to change. Only include properties that should be updated. DATA TYPES: - Strings: "John Doe", "john@example.com" - Numbers: 1000, 25.99 - Booleans: true, false - Dates: ISO 8601 format with Z for UTC: "2025-10-08T19:00:00Z" - GUIDs (lookups): "8ecab4a1-0ca3-4515-9399-efe0a19390bd" (no quotes in value!) (same as create) ⏰ DATES & TIME: - Always use UTC time with Z suffix - Convert local time to UTC: subtract timezone offset - Format: "YYYY-MM-DDTHH:mm:ssZ" - Example: "2025-10-08T19:00:00Z" for 22:00 local (UTC+3) COMMON UPDATE SCENARIOS: - Change Activity time: { StartDate: "2025-10-09T14:00:00Z" } - Update status: { StatusId: "<GUID from ActivityStatus>" } - Reschedule with reminder: { StartDate: "...", RemindToOwnerDate: "..." } - Change account: { AccountId: "guid..." } 💡 For Activities: Query lookup tables (ActivityStatus, ActivityPriority) to get new IDs dynamically! | |
| entity | Yes | Entity set to update (e.g., Contact, Account). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It states the tool is a PATCH update and gives details on partial data, but does not disclose side effects, rate limits, or what happens to omitted fields or errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but structured with sections for general use, examples, and special cases. It front-loads the main purpose but contains repetition and could be more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description thoroughly covers input parameters but lacks information about the output (e.g., returned object, status code) and does not mention synchronicity or error behavior. Given no output schema, this is a gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, yet the description adds substantial value by explaining data types, date formatting, common scenarios, and cross-referencing specialized guides. This goes well beyond the schema's descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates a record by ID using PATCH, with specific verb, resource, and method. It provides examples for Account and Contact, and distinguishes itself from create/delete siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context with examples and directs to specialized prompts for dates and contact IDs. However, it does not explicitly list conditions when not to use this tool versus alternatives like create or delete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update-sys-setting-definitionUpdate existing system setting definitionA
Calls the UpdateSysSettingRequest endpoint to modify metadata such as name, description, valueTypeName, cache flags, personalization flags, and lookup reference schema. IMPORTANT: Creatio validates that Code, Name, and valueTypeName are present on every update, even if they are unchanged—copy the current values when needed. See the /sys-settings-guide prompt for allowed value types and lookup resolution tips.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Existing SysSetting Id (Guid) to update. | |
| definition | Yes | Creatio requires Code, Name, and valueTypeName on every UpdateSysSettingRequest. Always include those fields (existing values are OK) plus any other properties that need updating. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description must disclose all behavioral traits. It mentions validation requirements and endpoint behavior but does not cover authorization, idempotency, destructive potential, or rate limits. Adequate but not complete for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise, single paragraph with front-loaded purpose and key caveats. Could be slightly more structured (e.g., separate lines for important note), but every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given complexity (nested object, 2 params, many sub-properties) and no output schema, description adequately covers functionality and field semantics. Lacks details on return values, error scenarios, or how updates affect existing setting instances; minimal for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for all properties. Description adds value by explaining the required fields constraint on update and conditional requirement for referenceSchemaUId only when valueTypeName='Lookup', surpassing schema details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates system setting definition metadata, listing specific fields (name, description, valueTypeName, cache flags, etc.). It distinguishes from siblings like 'create-sys-setting' and 'set-sys-settings-value' by focusing on definition modification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides important usage guidance: Creatio always requires Code, Name, and valueTypeName on update, even if unchanged. References /sys-settings-guide for value types and lookup tips. Does not explicitly mention when not to use or alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upsert-admin-operationCreate or update Creatio system operationA
Create a new SysAdminOperation (omit id) or update an existing one (supply id). Use this instead of the generic create/update tools — OData modifications on SysAdminOperation are blocked at the platform level. Reads still go through the standard read tool. Response contains the operation Id. See /admin-operation-guide for the full workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Existing SysAdminOperation Id. Omit to create a new record (a new GUID is generated server-side and returned in the response). | |
| code | Yes | Code of the system operation (e.g., "CanManageAdministration"). Required and must be unique. Conventionally PascalCase with no spaces. | |
| name | Yes | Display name of the system operation (e.g., "Can manage administration"). Required for both create and update. | |
| description | No | Optional human-readable description of what the operation gates. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the upsert behavior, that modifications are blocked via generic tools, and that response contains the operation Id. It does not cover permissions or rate limits, but for this tool's nature it is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: one sentence for the main action, one for sibling distinction, one for response and reference. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, no output schema, and moderate complexity, the description covers the essential context: response contains operation Id, references a guide, and explains blocking of generic tools. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all 4 parameters with 100% coverage, including the id parameter's role. The description adds value by framing the create/update logic (omit vs. supply id), reinforcing the schema's guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates or updates a SysAdminOperation, with explicit conditions: omit id for create, supply id for update. It specifies the resource and distinguishes from generic create/update tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use this tool instead of generic create/update tools because OData modifications are blocked. It also notes reads go through the standard read tool, providing clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
18 tool updates
v0.6.5- First observed
call-configuration-service - First observed
create - First observed
create-sys-setting - First observed
delete - First observed
delete-admin-operation - First observed
delete-admin-operation-grantee - First observed
describe-entity - First observed
execute-process - First observed
get-current-user-info - First observed
list-entities - First observed
query-sys-settings - First observed
read - First observed
refresh-feature-cache - First observed
set-admin-operation-grantee - First observed
set-sys-settings-value - First observed
update - First observed
update-sys-setting-definition - First observed
upsert-admin-operation
TDQS
Each tool has a clearly distinct purpose: CRUD for generic entities, specialized admin operations (upsert/delete/set grants), system settings management, process execution, and user info retrieval. Detailed guidance prevents confusion.
All tool names follow a consistent verb_noun pattern with hyphens (e.g., list-entities, create-sys-setting, refresh-feature-cache). No mixing of conventions or vague verbs.
18 tools is well-scoped for a CRM integration server. It provides comprehensive coverage without being overwhelming, covering CRUD, admin operations, system settings, processes, and user context.
The tool surface is fully complete for its domain: generic CRUD, schema introspection, admin operations lifecycle, system settings management, process execution, and user info. No obvious gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
MCP server enabling AI agents to manage Bitrix24 features via standardized protocol
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
Cloud-hosted MCP server for secure AI access to enterprise data sources via CData Connect AI.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that provides AI assistants with direct access to FileMaker databases via OData v4 API, enabling CRUD operations, script execution, and schema introspection.196MIT
- AlicenseAqualityCmaintenanceMCP server for Microsoft Dynamics 365 Business Central that enables AI assistants to query and manage Business Central data via full CRUD operations.630MIT
- FlicenseAqualityCmaintenanceMCP server that provides an AI assistant with access to Odoo business data, enabling read operations and human-approved record creation.3-
- AlicenseBqualityCmaintenanceMCP server for Microsoft Dynamics 365 Business Central, enabling AI assistants to perform CRUD operations, query data, and retrieve schemas via Business Central API v2.0.630MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/CRACKISH/mcp-creatio'
If you have feedback or need assistance with the MCP directory API, please join our Discord server