Mach-1 MCP: conversation processing and results
Use the deployedhttps://build.aioncx.com/api/mcp endpoint with a personal atlas_ingest_ scoped key from Build Developers. A submit-and-read key can send an audio URL or transcript and read results. A read-only key can inspect authorized data. Organization ingest keys with more than one workspace grant must select a workspace. Native Zoom reads also require the issuing person’s current recording authority. The key is checked against current grants on each call.
The conversation tools include mach1_get_transport, mach1_list_analysis_definitions, mach1_list_interactions, mach1_submit_audio_url, mach1_submit_transcript, mach1_get_status, mach1_get_transcript, mach1_get_results, and mach1_get_recording. Discover the actual visible inventory with tools/list. Use mach1_get_transport to discover the direct receiver for audio bytes and large transcripts. MCP JSON requests have a 64 KiB limit. Submission is asynchronous and analysis is charged per configured transcript minute for each selected Definition; omitted Definition IDs request no analysis. Use stable idempotency keys for uncertain retries and follow next_actions for polling or pages.
The runnable Mastra example and evaluation commands are in examples/mach1-mastra. It calls these same tools with schema validation. An agent must receive real text/turns or an admitted interaction ID; a local filename alone gives it no file access.
Mach-1 MCP: forecasting
Forecasting uses the same application endpoint with explicitly grantedforecast:read and forecast:submit. The tools are mach1_list_forecast_sources, mach1_submit_forecast, and mach1_get_forecast.
Use the forecasting request schema for numerical history or a discovered metric. Submission takes request and a stable idempotency_key; reads take run_id, optional pagination, and the retained quantile selection. A native Atlas connection uses separately granted atlas_list_forecast_sources, atlas_submit_forecast, and atlas_get_forecast tools.
See the agent quickstart and forecasting pricing.
Documentation MCP: public search
The public Build on AionCX documentation exposes a separate Documentation MCP endpoint. It searches published Markdown content and does not submit or bill processing. Mintlify also generatesllms.txt and llms-full.txt. Keep the documentation-search endpoint and the Mach-1 processing endpoint distinct in agent configuration.
Native Atlas MCP: workforce and scheduling
After this release is deployed, open Settings → External agents → Manage MCP connections (/atlas/settings/mcp). You must have manage_schedules authority. Each tool also checks the same capability as its Atlas screen: directory/email discovery requires manage_authorization, employment and group-member reads require view_workforce_context, and group membership changes require manage_workforce_roster. A token never grants these capabilities by itself.
Select the workspaces and whether to allow draft writes. Create a connection,
then copy its token directly into your client’s secret configuration. Never paste
it into a conversation, source file, or a URL.
The endpoint is https://atlas.endeavorcx.com/api/mcp. It uses stateless Streamable
HTTP with JSON responses and protocol version 2025-06-18. Authenticate with
Authorization: Bearer <connection-token>. OAuth login is not offered by this
release; use the explicit bearer-token connection.
For Codex, make the token available to the client process as ATLAS_MCP_TOKEN,
and configure:
atlas_list_workspaces. For this native-tool
branch, do not use browser cookies, service-role keys, direct database connections,
or Mach-1 ingest credentials.
Custom connections expire in seven days; the explicit Superadmin profile stays
valid until revoked while its issuer remains an active superadmin. Only a hash
is stored. Revoke a connection from the same Settings page. Each domain intersects
its workspace grants with the issuing person’s current business authority.
Removing that authority, disabling the person, revoking the token or expiry
removes access. Custom connections keep fixed workspace selections. The explicit
Superadmin profile follows active, organization-bound workspaces, including new
ones, while retaining its separately selected action permissions.
Roster and schedule workflow
-
atlas_list_workspacesdiscovers the authorized workspaces and durable IDs. -
atlas_list_peoplepages through each workspace’s directory. For an existing account absent from every workspace roster, an organization administrator can useatlas_find_organization_personwith an exact email and one granted workspace. It can find org-only people, returns Atlasperson_id, Auth-link status and association evidence, and marks the connection owner separately. A global person with no association to that organization is not exposed. Multiple matches remain ambiguous. Readassociation_sources,status, andworkspace_access: agent assignment and employment do not themselves confer login access. Never guess or silently create duplicate people. -
atlas_get_scheduling_contextsupplies scoped employment assignments. Respect effective dates and employment status. In enforcement mode, missing assignment context is a constraint, not permission to fall back to a person-only roster. -
atlas_list_schedule_groupsandatlas_get_schedule_groupshow existing groups, membership, operating hours and timezones. With write scope, useatlas_create_schedule_groupandatlas_add_schedule_group_memberas needed. -
atlas_list_scheduleschecks existing periods and display names beforeatlas_create_schedulecreates a draft. Supply an optional, clearname(for example, “Support team schedule — 2026-09-28”), local calendar dates for the period, and explicit UTC/offset timestamps foratlas_add_schedule_shift.atlas_get_schedulereads the saved display name back. Interpret the roster in its confirmed timezone and account for daylight-saving transitions. Existing schedules cannot overlap for the same group, even when named differently. -
atlas_list_activity_typesdiscovers break/meal activity slugs.atlas_add_schedule_activityplaces explicitly timed activities. A meal duration without a placement does not authorize inventing a break time. -
atlas_get_schedulereads back the result andatlas_validate_scheduleruns the existing work-rule validator. -
With the separate Schedule publication permission, use
atlas_publish_scheduleafter reviewing the draft and validation results. Pass the exactupdatedAtreturned byatlas_get_scheduleasbase_updated_at, a stable UUIDrequest_id, and only acknowledge warnings that were reviewed. The existing Action command applies current authorization, work rules and approval policies. Apending_approvalresult is not published: retain the request and resume with the same arguments after human approval. Retry uncertain outcomes with the same request ID and viewed revision.
Workspace access roles
Useatlas_get_workspace_access to read the existing person’s role, status and
authorization_revision in each granted workspace. With the separate
Workspace access roles permission, call atlas_set_workspace_access_role
with the observed revision, desired role and a stable UUID operation_key.
Only use a null expected revision when the membership is absent. Confirm the
person’s identity before writing; these tools do not create users or invitations.
Roles use the existing Atlas definitions: member grants full product access;
skyway_agent and desktop_agent are restricted agent access. The connection
owner must currently be an organization administrator for the workspace (or a
root administrator). Self changes, restricting root users, stale revisions and
foreign-organization targets are refused by the existing atomic access command.
Pending invitations stay pending. The audit event records the owner and token.
Read back each workspace after a change; retry lost responses with exactly the
same operation key and arguments. Never assume granted workspaces are every
workspace in the organization.
Both new permissions can be enabled or revoked on an existing connection without
rotating its token or changing its expiry or workspace grants. Scheduling and
routing permissions remain separate.
Writes use the existing scheduling services and their workspace, assignment,
period, state, and work-rule checks. They are not automatically retried: after a
lost response, read the target group or schedule to determine whether the write
committed before submitting again. Group and schedule lists use existing service
limits; a large roster that cannot be read completely must be reported as a
constraint rather than treated as a complete employee inventory.
The older semantic, inbox and mail MCP-shaped routes remain separate authenticated
application surfaces. They are not included in these workforce connection grants.
Onboard new Skyway people
After the onboarding migration and application are deployed, enable Create people with workspace access, Send login invitations, and Provision Skyway voice for people under the existing connection’s permissions. These are independent opt-ins: existing connections, including Superadmin profiles, retain their current grants. Updating them does not rotate the bearer token. Refresh the client’s tool inventory afterward. Person creation needsmcp:people:create plus mcp:access:write in a granted
workforce workspace. Invitations need mcp:people:invite. Both require current
organization People & Access administration (or Organization Administrator /
active superadmin). Voice provisioning needs mcp:routing:voice:write plus
routing-read/write in a granted routing workspace and current
manage_ccaas_configuration. Scheduling and AI-agent grants alone do not
enable voice provisioning.
- Find the authorized workspace and check
atlas_find_organization_personusing each confirmed human’s exact email. For an existing person, use their confirmedperson_idand the workspace-access tools. An ambiguous match needs an explicit identity choice. For a confirmed new human, callatlas_create_personwithworkspace_id, a stable UUIDoperation_key,name,email, and the explicitaccess_role(normallyskyway_agent). Creation and restricted access commit together. The response includes the durableperson_idand current access; it does not send email. - Read
skyway_get_person_voice_access, then useskyway_enable_person_voicewith the workspace and person IDs. Atlas uses the same person-first provisioning service as Voice Access. If multiple operational identities exist, the error returns candidates; supply only the confirmedagent_object_record_idas the recovery choice. The response includesagent_object_record_idfor queue assignment and binding status. Credentials, passwords and provider secrets are never returned. - Inspect existing queues through
skyway_get_queueand add the returned agent ID withskyway_set_queue_agent. Outbound-only people belong to their outbound queue; blended people also join the inbound service queue. Read each queue back. Membership affects future work immediately and does not make a phone registered or an agent ready. - Once the access role is final, explicitly call
atlas_invite_personwith a separate stable UUIDoperation_key,person_id, andworkspace_id. The database reads and validates the selected person’s saved email; the tool has no recipient override. Correct an incorrect email in the person record first. This sends email and grants no additional access. Inspectatlas_list_person_invitationsfor delivery, expiration, revocation and acceptance. A delivered invitation can still be pending; it is not proof of active login access.
Connected agents missing from People
Provider agent records are operational slots, not automatically scheduling people. An organization administrator can useatlas_list_provider_agents in a granted
workspace to discover their source email, existing person link, state and
enrollment_key. Discovery returns only the requested workspace’s assignments.
It fails explicitly if an underlying inventory may be truncated.
To enroll a confirmed human, enable Agent enrollment on an existing connection
under Your connections, or create a connection with Allow enrolling connected
agents as people for scheduling enabled. Updating a connection preserves its
token, expiry, workspace grants and scheduling permission. This adds the separate
mcp:people:enroll scope; existing scheduling-write tokens do not gain it.
Enrollment rechecks the owner’s active organization-admin (or superadmin)
authority on every call, as does discovery. Schedule-writing permission remains
independent. Refresh client tool discovery after enabling enrollment. The existing bearer token
continues to work; it does not need to be copied or replaced.
Pass the source provider_resource_id, the unchanged enrollment_key, and either
a confirmed new person’s name or an existing, active workspace person_id.
Do not infer that two people are the same from email or name alone. When multiple
provider resources represent the same confirmed person, enroll the first, read
back the person through atlas_list_people, and explicitly use that person ID
for the other resource. Never create a new person for every matching source row.
The existing atomic atlas_enroll_provider_person authority checks source
assignment, conflicts and lifecycle generation and records an enrollment receipt
with the human issuer. Retry a lost response with exactly the same arguments and
key; do not replace the key on retry. Enrollment creates/links the scheduling
identity only: no login membership, invitation, employment or schedule publication.
Read atlas_list_people afterward before continuing with schedule groups.
Verify time-off approval routing
atlas_get_timeoff_approval_setup reads the published time-off practice,
WFM Manager routing policy, and currently effective WFM Manager role holders
in a granted workspace. It requires the issuing person’s current
manage_time_off_context capability. Use it to verify the existing routing
before asking an agent to submit a request; it never installs a practice,
adds a reviewer, or approves a request. A published schedule and time-off
approval routing are separate setup checks.
Grant boundaries
QA Forms and LOB Lists
After the Quality MCP application and command migration are deployed, enable Quality access on the existing connection in Settings → MCP Connections. Select the workspaces and grant reading, draft editing and release publication separately. Existing tokens retain their other access and do not gain Quality permissions automatically. Each call checks current evaluation-program authority; AI evaluator generation and release also require AI configuration authority. Useatlas_list_quality_forms and atlas_get_quality_form to read the existing
Form, then atlas_list_quality_scope_lists and atlas_get_quality_scope_list to
discover the existing shared LOB Lists of queues. Question scope uses a List ID;
voice is the supported first release and has no channel selector. Outside the
selected List, a question becomes N/A without changing the agent’s score.
atlas_save_quality_form_draft creates or edits a successor on the same Form.
Preview supplied answers on canonical calls with atlas_preview_quality_evaluation,
then inspect and generate the native evaluator with
atlas_preview_quality_prompt and atlas_create_quality_prompt_draft. Review
atlas_preview_quality_release before using atlas_publish_quality_release.
The release commits the Form, evaluator and replacement steps in existing
pipelines together, preserving target assignments and other steps. Stale plans
are refused; use the same request UUID and exact input to recover a lost response.
See the Quality MCP workflow
for the Nevada critical-failure and outside-LOB N/A setup. QA checks do not send
surveys or implement a survey activation gate.
Bind an inbound phone number
Routing publication does not grant phone-number activation. Enable Bind inbound numbers under an existing connection’s access settings, or explicitly select it when creating a custom connection. This addsmcp:routing:numbers:write, requires
routing-write access and current call-configuration authority in every granted
routing workspace, and preserves the token and its unrelated permissions.
Existing connections and the superadmin creation preset do not gain it implicitly.
Discover the number ID with skyway_queue_options or skyway_get_queue, then
use skyway_get_number_binding to read its E.164, status, current route and
inbound_config_revision, plus the last binding’s reviewed version, actor and
timestamp. Read and review the exact current published version through
skyway_get_route. After the operator approves that cutover, call
skyway_bind_number with workspace_id, phoneNumberId, expectedRevision,
flowId, expectedPublishedVersionId and approveRoutingChange: true.
Binding uses the existing activation service and atomic number/publication
revision checks. It preserves outbound caller ID, recording override and number
status. New inbound calls on an active number use the route immediately; existing
calls keep their pinned version. An inactive number remains inactive. This does
not publish a route, place a test call, grant audio-deletion authority or bypass
recording/provider readiness checks.
Read the binding back after success or a lost response. If the number revision or
published route changed, inspect and review the new state rather than automatically
retrying with a new revision. Live caller and agent testing is still required.
Workspace access
atlas_list_workspaces is the connection’s scheduling-workspace grant list,
intersected with its owner’s current authority. It is not the list of every
workspace in Atlas or even every workspace in the organization. Workspace role
changes require explicit grants for each target workspace. An org admin can
look up an org-only person from any granted workspace, but that lookup does not
expand the connection’s workspace grants or grant the person login access.
If the desired workspace is absent, create a new connection selecting that
workspace; existing connection workspace grants cannot be widened in place.
Do this before attempting the write;
never substitute a service-role query or browser action.