DEX_MCP
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | HTTP port when TRANSPORT=http. Defaults to 3000. | 3000 |
| TRANSPORT | No | Transport mode: 'stdio' or 'http'. Defaults to 'stdio'. | stdio |
| CORS_ORIGIN | No | Allowed CORS origin for HTTP mode. Defaults to '*'. | * |
| ONE_E_API_KEY | No | API key for authentication, sent as X-API-Key. | |
| MCP_AUTH_TOKEN | No | Bearer token required for /mcp requests when TRANSPORT=http. Optional if ONE_E_CLIENT_SUPPLIED_KEY=true. | |
| ONE_E_BASE_URL | Yes | Base URL of the 1E Platform Consumer API, e.g. https://your-tenant.1e.com/consumer. Required. | |
| ONE_E_CERTIFICATE | No | Certificate (PEM) used for OAuth/JWT client assertion. Alternative to ONE_E_CERTIFICATE_FILE. | |
| ONE_E_PRIVATE_KEY | No | Private key (PEM) used for OAuth/JWT client assertion. Alternative to ONE_E_PRIVATE_KEY_FILE. | |
| ONE_E_BEARER_TOKEN | No | Static bearer token for authentication (manual rotation). | |
| ONE_E_CONSUMER_NAME | No | Tachyon consumer name required for OAuth/JWT client assertion mode. | |
| ONE_E_APPLICATION_ID | No | Azure AD application ID required for OAuth/JWT client assertion mode. | |
| ONE_E_TOOL_ALLOWLIST | No | Comma-separated list of tool names to restrict the available tool catalog. Defaults to all tools. | |
| ONE_E_CERTIFICATE_FILE | No | Path to the certificate file used for OAuth/JWT client assertion. Alternative to ONE_E_CERTIFICATE. | |
| ONE_E_PRIVATE_KEY_FILE | No | Path to the private key file used for OAuth/JWT client assertion. Alternative to ONE_E_PRIVATE_KEY. | |
| ONE_E_CLIENT_SUPPLIED_KEY | No | Set to 'true' to enable per-client credential mode, where each MCP client supplies its own 1E API key via X-API-Key header or query parameter. | false |
| ONE_E_CLIENT_SUPPLIED_TENANT | No | Set to 'true' to allow per-session tenant selection via X-1E-Base-URL header or query parameter. Requires ONE_E_CLIENT_SUPPLIED_KEY=true. | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| applicable_operations_get_by_type_idA | Returns all operations applicable to a securable type (by numeric ID). Requires 'Read' on 'Security'. |
| applicable_operations_get_by_type_nameA | Returns all operations applicable to a securable type (by name). Requires 'Read' on 'Security'. |
| applicable_operations_addA | Add a new Applicable Operation. Provide securableTypeId OR securableTypeName (not both). Names must be unique per type. Requires 'Security' permission on 'Security'. |
| applicable_operations_deleteA | Delete an Applicable Operation by ID. Fails if it has permissions attached. Requires 'Write' on 'Security'. |
| approvals_approve_instructionB | Approve or reject an Instruction. Users cannot approve their own instructions. Requires 'Approve' on the Instruction Definition. |
| approvals_approve_scheduled_instructionB | Approve or reject a Scheduled Instruction. Requires 'Approve' on the Instruction Definition. |
| approvals_approve_persistent_instructionB | Approve or reject a Persistent Instruction (API v26.2+). Requires 'Approve' on the Instruction Definition. |
| approvals_can_approve_instructionB | Check whether the calling user can approve the given Instruction. |
| approvals_can_approve_scheduled_instructionA | Check whether the calling user can approve the given Scheduled Instruction. |
| approvals_can_approve_persistent_instructionA | Check whether the calling user can approve the given Persistent Instruction (API v26.2+). |
| approvals_get_pending_instructionsB | Returns all Instructions pending approval that the calling user can approve. |
| approvals_get_pending_scheduled_instructionsA | Returns all Scheduled Instructions pending approval that the calling user can approve. |
| approvals_get_pending_persistent_instructionsA | Returns all Persistent Instructions pending approval that the calling user can approve (API v26.2+). |
| approvals_get_all_pendingA | Returns all pending approval requests (Instructions, Scheduled Instructions, Device Authorizations) the calling user can action. |
| audit_logs_searchA | Search audit logs. Filterable/sortable by: Component, Comment, CreatedTime, Message, UserName, DetailMessage. Requires 'Read' on 'Security'. |
| audit_logs_addB | Add one or more audit log entries (API v24.9+). |
| authentication_authenticate_instructionA | Submit a one-time token for Instruction Two-Factor Authentication. Only the instruction creator can call this. |
| authentication_authenticate_scheduled_instructionA | Submit a one-time token for Scheduled Instruction Two-Factor Authentication. Only the creator can call this. |
| cached_user_group_memberships_getA | Get the membership record for a specific user+group pair. Requires 'Read' on 'Security'. |
| cached_user_group_memberships_addB | Create a new user–group membership. Requires 'Write' on 'Security'. |
| cached_user_group_memberships_deleteA | Remove the membership between a user and a group. Requires 'Delete' on 'Security'. |
| cached_user_group_memberships_get_groups_for_userB | Get all group IDs a user belongs to. Requires 'Read' on 'Security'. |
| cached_user_group_memberships_add_groups_for_userA | Batch-add a user to multiple groups (skips existing memberships). Requires 'Write' on 'Security'. |
| cached_user_group_memberships_remove_groups_for_userA | Batch-remove a user from multiple groups (skips non-existent memberships). Requires 'Delete' on 'Security'. |
| cached_user_group_memberships_get_users_in_groupA | Get all user IDs that are members of a specific group. Requires 'Read' on 'Security'. |
| cached_users_listA | List all cached users with optional skip/take pagination. |
| cached_users_get_by_idA | Get a cached user by their integer ID. |
| cached_users_addC | Create a new cached user. |
| cached_users_updateC | Update a cached user. The body must include the user's ID. |
| cached_users_deleteB | Delete a cached user by their integer ID. |
| certificates_list_idpA | List all available IdP certificates. Requires 'Read' on 'Infrastructure'. |
| certificates_download_idpA | Download a PEM-formatted IdP certificate by its thumbprint. Requires 'Read' on 'Infrastructure'. |
| certificates_set_active_idpB | Set the active IdP certificate by thumbprint. Requires 'Write' on 'Infrastructure'. |
| certificates_verify_idpA | Verify whether a certificate (by thumbprint) can be used for IdP communication. Requires 'Write' on 'Infrastructure'. |
| consumers_listA | Return all Consumers. Requires 'Read' on 'Consumer'. |
| consumers_get_by_idA | Return a single Consumer by integer ID. Requires 'Read' on 'Consumer'. |
| consumers_get_by_nameA | Return a single Consumer by name (Base64-encoded automatically). Requires 'Read' on 'Consumer'. |
| consumers_searchA | Search Consumers. Filterable/sortable by: Name, Enabled, MaximumSimultaneousInstructions, OffloadTargetUrl, SystemConsumer. Requires 'Read' on 'Consumer'. |
| consumers_addA | Create a Consumer. Name must be alphanumeric+underscore only, unique. System consumers cannot be created. Requires 'Write' on 'Consumer'. |
| consumers_updateB | Update an existing Consumer. System consumers cannot be renamed or disabled. Requires 'Write' on 'Consumer'. |
| consumers_deleteA | Delete a Consumer by ID. System consumers and those used by scheduled instructions cannot be deleted. Requires 'Write' on 'Consumer'. |
| consumers_delete_manyA | Delete multiple Consumers by their IDs in one request. Requires 'Write' on 'Consumer'. |
| consumers_refresh_cacheB | Force a refresh of the internal Consumers cache. |
| custom_properties_get_by_type_idC | Return all Custom Properties for a given type ID. |
| custom_properties_get_by_type_nameA | Return all Custom Properties for a given type name. |
| custom_properties_get_by_idA | Return a single Custom Property by its ID. |
| custom_properties_searchA | Search Custom Properties. Filterable/sortable by: Name, TypeName. |
| custom_properties_addA | Create a Custom Property with optional values. Provide typeId OR typeName. Name: unique, ≤16 chars, no spaces. Values: unique, ≤32 chars each. Requires 'Write' on 'CustomProperty'. |
| custom_properties_updateA | Update a Custom Property. values=null → unchanged; values=[] → removes all values. Requires 'Write' on 'CustomProperty'. |
| custom_properties_deleteA | Delete a single Custom Property by ID. Requires 'Write' on 'CustomProperty'. |
| custom_properties_delete_manyB | Delete multiple Custom Properties by their IDs. Requires 'Write' on 'CustomProperty'. |
| custom_property_types_listA | Return all available Custom Property Types. |
| custom_property_types_addA | Create a new Custom Property Type. Name: unique, ≤32 chars. System types cannot be created. Requires 'Write' on 'CustomProperty'. |
| devices_listA | List all registered devices/agents known to the 1E platform. |
| devices_searchB | Search devices with filter/sort/pagination. Body is a SearchPostModel: start (integer offset), pageSize, sort array. includeInherited=true includes devices from child management groups. |
| devices_get_by_fqdnA | Get a single device by its fully-qualified domain name (FQDN), e.g. 'hostname.domain.com'. |
| devices_get_by_tachyon_guidA | Get a single device by its Tachyon GUID (the unique identifier assigned by the 1E agent). |
| devices_get_management_groups_by_fqdnA | Get the Management Groups that a device (identified by FQDN) belongs to. |
| devices_summaryC | Get a summary count/status of devices matching an optional filter. |
| management_groups_listA | List all Management Groups (device groups). These are used to scope instructions to sets of devices. |
| management_groups_get_by_idA | Get a Management Group by integer ID. |
| management_groups_get_by_nameC | Get a Management Group by name. |
| management_groups_searchC | Search Management Groups with filter/sort/pagination. |
| management_groups_get_contentsB | Get the devices that are members of a Management Group by its integer ID. |
| management_groups_get_all_devicesA | Get all devices across all Management Groups. |
| instruction_definitions_listB | List all available Instruction Definitions (the templates that describe what instructions can be sent to devices). |
| instruction_definitions_get_by_idA | Get a single Instruction Definition by its integer ID. Returns full schema including parameters needed. |
| instruction_definitions_get_by_nameA | Get an Instruction Definition by its exact name. Use this to find the definitionId and parameter schema before sending an instruction. |
| instruction_definitions_searchC | Search Instruction Definitions with filter/sort/pagination. |
| instructions_sendB | Send an instruction to devices. Use definitionId or definitionName to identify the instruction template. Target devices via 'devices' (array of FQDNs like ['host.domain.com']) OR via 'scope' (management group expression). Parameters are passed as [{name, value}] pairs matching the definition's schema. |
| instructions_send_to_deviceA | Send an instruction directly to a single device identified by its Tachyon GUID. Simpler than instructions_send when you already know the device GUID. |
| instructions_get_by_idA | Get an Instruction by its integer ID. Returns status, target info, parameters, and approval state. |
| instructions_searchC | Search Instructions with filter/sort/pagination. |
| instructions_get_statisticsA | Get execution statistics for an instruction: total devices targeted, how many responded, pending, errors. |
| instructions_get_statistics_detailB | Get detailed per-state statistics for an instruction. |
| instructions_get_responsesA | Get the actual responses/results from devices for an instruction. local=true returns data stored locally. Supports pagination via start/pageSize. |
| instructions_get_responses_aggregateA | Get aggregated (grouped/counted) responses for an instruction — useful for survey-style instructions that return the same values from many devices. |
| instructions_get_responding_devicesB | Get the list of unique device FQDNs that have responded to an instruction. |
| instructions_get_target_listB | Get the list of devices that were targeted by an instruction. |
| instructions_cancelA | Cancel a running instruction. keepData=true retains any responses already collected; keepData=false deletes them. |
| instructions_rerunA | Re-run a previously completed instruction with the same parameters and scope. |
| scheduled_instructions_createC | Schedule an instruction to run on a recurring schedule. Uses SQL Server Agent-style schedule fields: scheduleFreqType (1=once,4=daily,8=weekly,16=monthly), scheduleFreqInterval, scheduleActiveStartDate, scheduleActiveStartTime (HHMMSS as integer, e.g. 90000 = 09:00:00). |
| scheduled_instructions_get_by_idA | Get a Scheduled Instruction by integer ID. |
| scheduled_instructions_searchC | Search Scheduled Instructions with filter/sort/pagination. |
| scheduled_instructions_updateC | Update an existing Scheduled Instruction by ID. |
| scheduled_instructions_cancelB | Cancel a Scheduled Instruction by integer ID. |
| scheduled_instructions_deleteB | Delete a Scheduled Instruction by integer ID. |
| persistent_instructions_createC | Create a Persistent Instruction that continuously applies to all current and future devices matching a scope. |
| persistent_instructions_get_by_idA | Get a Persistent Instruction by integer ID. |
| persistent_instructions_searchC | Search Persistent Instructions with filter/sort/pagination. |
| persistent_instructions_cancelB | Cancel a Persistent Instruction by integer ID. |
| persistent_instructions_deleteB | Delete a Persistent Instruction by integer ID. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 92 tools
Tools are grouped under clear resource prefixes and mostly target distinct actions, so an agent can usually tell them apart. A few near-duplicates exist (list vs search, send vs send_to_device, get_by_id vs get_by_name) that could cause minor selection confusion, especially at this scale.
All tool names use the same lowercase snake_case resource_prefix + action pattern, such as consumers_add, scheduled_instructions_cancel, and management_groups_get_contents. The convention is highly predictable across all 92 tools.
92 tools is an extreme count for a single MCP server and will overwhelm an agent's tool-selection context, even though the underlying platform is broad. This falls squarely in the 50+ extreme mismatch range.
The surface covers core workflows well: send and retrieve instructions, schedule/persistent instructions, approvals, consumers, users, devices, management groups, custom properties, and audit logs. Minor gaps exist, such as no update for persistent instructions or custom property types and read-only management group operations, but agents can generally work around them.