Skip to main content
Glama
CRACKISH

mcp-creatio

by CRACKISH

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CREATIO_LOGINNoUsername for legacy auth
READONLY_MODENoSet 'true' to disable create/update/delete operations
CREATIO_BASE_URLYesYour Creatio instance URL
CREATIO_PASSWORDNoPassword for legacy auth
CREATIO_CLIENT_IDNoOAuth2 client credentials ID
CREATIO_CODE_SCOPENoOAuth2 scope (e.g. offline_access ApplicationAccess_yourappguid)
CREATIO_ID_BASE_URLNoIdentity Service URL (if separate from main Creatio instance)
CREATIO_CLIENT_SECRETNoOAuth2 client credentials secret
MCP_CREATIO_LOG_LEVELNoLog verbosity: silent (default), error, warn, info
CREATIO_CODE_CLIENT_IDNoOAuth2 authorization code client ID
CREATIO_CODE_REDIRECT_URINoOAuth2 redirect URI (e.g. http://localhost:3000/oauth/callback)
CREATIO_CODE_CLIENT_SECRETNoOAuth2 authorization code client secret

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get-current-user-infoA

⚠️⚠️⚠️ 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

list-entitiesA

Return all available Creatio OData entity sets. Start here, then use "describe-entity" to inspect fields and keys before performing CRUD.

describe-entityA

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.

readA

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.

query-sys-settingsA

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).

createA

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' }

updateA

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).

deleteA

Delete a single record by Id.

⚠️ ALWAYS confirm with user before deleting!

  1. Show what will be deleted (entity, ID, identifying info)

  2. Ask: "Are you sure you want to delete this record?"

  3. 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 }

execute-processA

Execute a Creatio CRM business process with optional parameters. This tool runs server-side business processes in Creatio platform.

WORKFLOW FOR LLM:

  1. 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

  2. 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.

set-sys-settings-valueB

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.

create-sys-settingA

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.

update-sys-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.

refresh-feature-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.

upsert-admin-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.

delete-admin-operationA

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.

set-admin-operation-granteeA

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.

delete-admin-operation-granteeA

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.

call-configuration-serviceA

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.

Prompts

Interactive templates invoked by user choice

NameDescription
create-activity-guideComplete step-by-step guide for creating Activities (tasks/meetings/calls) in Creatio
datetime-guideHow to ask users for timezone and convert to UTC for Creatio
contactid-guideCRITICAL: Always use SysAdminUnit.ContactId (not .Id!) for all CRM fields across all entities
tagging-guideGuide for adding tags to records using Tag/TagInRecord or legacy <Entity>Tag / <Entity>InTag tables
sys-settings-guideValue type options and lookup reference instructions for create-sys-setting / set-sys-settings-value workflows
feature-toggle-guideHow to read, create, update and delete feature toggles via the AppFeature / AppFeatureState OData entities, and when to call refresh-feature-cache
admin-operation-guideHow to manage SysAdminOperation and SysAdminOperationGrantee via the dedicated RightsService tools (upsert/delete operation, set/delete grantee), with reads still routed through the standard OData read tool

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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