The connector is served by the Kodexa platform itself over HTTP — there is nothing to install on your machine. Every call is authenticated and every result is scoped to what the calling user is permitted to see, exactly like the REST API.
What The Connector Exposes
The MCP server registers askodexa-workflow and presents 19 tools:
- Discovery — resolve who you are and the organizations, projects, teams, and members you can act on.
- Workflow queries — list and read activities, tasks, task-groups, and task statuses (read-only).
- Workflow actions — assign and unassign tasks and task-groups, move tasks between statuses, and add or remove tasks from a group.
Workflow-model caveats the tools enforce:
- Activities are read-only over MCP. You can list and inspect them, but not mutate them.
- A grouped task’s assignee is managed via its group.
assign_task/unassign_tasktargeting the user (assignee) fail on a task that belongs to a task-group — assign the group withassign_task_groupinstead, and the assignment cascades to every member task. (A team-only assignment throughassign_taskis not blocked for grouped tasks, since a group owns the assignee, not the team.) - Access is FGAC-scoped to the calling user. Claude sees and changes only what you could see and change yourself.
Enabling The Connector
The connector is off by default. A platform administrator enables it in the platform configuration:
For the claude.ai OAuth flow,
api.security.auth0.domain must also be set. On startup the platform builds an Auth0 token validator bound to mcp.publicUrl as the audience.
The connector is mounted at <basePath>/mcp over the Streamable HTTP transport (stateless — each request is a self-contained, independently authenticated JSON-RPC message).
Adding It To claude.ai
Add the MCP endpoint (https://<your-mcp-publicUrl>/mcp) as a remote connector in claude.ai. The OAuth handshake is automatic:
- claude.ai calls the endpoint with no token and receives an RFC 9728
401with aWWW-Authenticate: Bearer resource_metadata="…"header. - It fetches
/.well-known/oauth-protected-resourcefrom the endpoint’s origin, which points at your Auth0 authorization server. - It performs Dynamic Client Registration (DCR) and an OAuth authorization-code + PKCE flow against Auth0, obtaining an access token whose audience matches
mcp.publicUrl. - Every subsequent MCP call carries that bearer token, which the platform validates against Auth0’s JWKS (signature, issuer, expiry, audience) before landing an authenticated user in context.
openid, profile, email, and offline_access scopes.
Programmatic And Local Clients
Clients that cannot run the OAuth flow can authenticate with an API key by sending it in theX-API-Key header instead of a bearer token. This is the fallback path used for local development and programmatic access.
Tool Reference
All list tools share a common set of optional parameters:filter (an advanced SpringFilter expression, ANDed with the other filters), query (free-text search), sort (e.g. created_on:desc), page (1-indexed, default 1), and pageSize (default 20, max 1000).
Discovery
Workflow Queries (read-only)
Workflow Actions (write)
Optimistic Concurrency
Tasks carry achangeSequence. The write tools that accept a changeSequence argument (assign_task, assign_task_group, update_task_status) use it for optimistic-concurrency safety: pass the sequence you last read, and the write fails cleanly if the task changed underneath you. It is optional — omit it to skip the check.
A Typical Session
A natural place to start is discovery, then narrow to the work you care about, then act:whoami and list_projects, then list_tasks with projectId, unassigned: true, and statusType: OPEN, then resolves your user id via list_organization_members and calls assign_task. Because everything runs through the platform’s normal access-control path, it can only ever do what you are permitted to do.