Base URL
The MCP server is available at:Authentication
The MCP server uses OAuth 2.1. Your MCP client handles authentication automatically — you provide the server URL, the client discovers OAuth endpoints, opens your browser for approval, and manages tokens. No credentials to copy or rotate.- Configure your MCP client with the server URL:
https://public.api.serval.com/mcp/ - When the client connects, it will open your browser to approve access to your Serval workspace.
- After approval, the client receives tokens and refreshes them automatically.
Client Configuration
- Cursor
- Claude Desktop
- Other Clients
Add the following to your When you first connect, Cursor will open your browser to approve access.
.cursor/mcp.json file:Available Tools
Every endpoint in the Serval public API is available as an MCP tool. Tool names, descriptions, and input schemas are derived directly from the API specification. Tools follow a consistentsnake_case naming convention matching the API operation name.
The tools most commonly used by employees connecting through an AI assistant:
Tickets
Access requests
Workflows
Identity
How It Works
The MCP server translates each tool call into a REST API request:- Your AI agent calls an MCP tool (e.g.,
list_tickets) with the required arguments - The server maps the tool call to the corresponding REST endpoint (
GET /v2/tickets) - Path parameters, query parameters, and request bodies are constructed from the tool arguments
- The response is returned as the tool result
Example Usage
Here is an example of an AI agent using the Serval MCP server to list open tickets:Running Workflows
AI agents can run Serval workflows directly through MCP. Workflow runs are asynchronous: starting a run returns immediately, and the agent waits for (or polls) the result.- Find the workflow with
list_workflows(orget_workflowif the ID is known). - Start the run with
start_workflow_run, passing theworkflow_idand any workflow arguments inargumentsas a JSON object encoded into a string — not a raw JSON object (see the example below). The run starts on the workflow’s currently-published version; passworkflow_version_idto pin a specific version. The response returns the run immediately with apendingorrunningstatus. - Wait for the result with
await_workflow_run_result, which blocks until the run reaches a terminal status orwait_timeout_secondselapses (default 30s, capped at 60s). If the response hastimed_out: true, call it again to keep waiting — or useget_workflow_runto poll.
run_published_workflow permission (team contributor role or above), so users without it won’t see the workflow-run tools in their tool list. Running an unpublished draft version instead requires create_workflow_run (team builder role or higher). Workflows with approval requirements still go through their normal approval process. The run stays in progress until approvers act, so long-running runs are expected.
Pagination
List endpoints return paginated results. Use thepage_token parameter to retrieve subsequent pages:
- Call the list tool without
page_tokento get the first page - If the response includes a
next_page_token, pass it aspage_tokenin the next call - Repeat until no
next_page_tokenis returned

