> For the complete documentation index, see [llms.txt](https://docs.siit.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.siit.io/integrations/mcp.md).

# MCP

Siit's MCP Server exposes your workspace to AI tools that support the Model Context Protocol: Claude, Codex, Mistral, Cursor and more.

{% embed url="<https://screen.studio/share/ClTjiL6U>" %}

The Siit Model Context Protocol (MCP) app allows your third-party AI assistant to access your Siit data and account, so they can read and analyze your requests, and audit and update your service desk.<br>

### Setup Instructions

The Siit MCP connector is approved and published in Claude's connector directory. On Claude, browse to Siit in the directory and add it in a few clicks, no server URL to paste or configuration to wire up by hand. Every other MCP-compatible client (Codex, Mistral, Cursor, and more) still connects by adding a custom connector.

Tools authenticate with your Siit account via OAuth and can read and act on requests, people, and catalog resources within the data you can access in the Siit admin dashboard.

**Server URL:** `https://mcp.siit.io/mcp`\
**Auth:** OAuth 2.1 with dynamic client registration. Actions are performed on behalf of the authenticated user; access is scoped to the same data as in the Siit admin dashboard. **Transport:** Streamable HTTP.

For step-by-step connection instructions for each client, see the [Help Center setup guide.](https://help.siit.io/mcp-server-setup-guide)

> **Note:** On ChatGPT, the connector requires Dynamic Client Registration, which ChatGPT does not enable by default. See the Help Center setup guide for the exact steps.

<figure><img src="https://451675063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fz9xmM8V3atukfr2XaElR%2Fuploads%2F9mUix9jajaAS5V206if8%2Fimage.png?alt=media&amp;token=f1dc3c6d-40e4-49f5-8b47-507457d6d821" alt=""><figcaption></figcaption></figure>

***

### What you can do with MCP today

Access follows the same scoping as the Siit admin dashboard, **the MCP cannot return data that the authenticated user cannot already see**, or perform writes that the authenticated user cannot already perform in the UI.

**Requests**

| Tool                     | Read / Write | Description                                                                                    |
| ------------------------ | ------------ | ---------------------------------------------------------------------------------------------- |
| `list_requests`          | Read         | List open requests with full context: requester, status, linked apps, equipment, SLA           |
| `get_request`            | Read         | Fetch a single request by ID with all nested details                                           |
| `get_request_events`     | Read         | List the full timeline of events on a request                                                  |
| `get_request_agent_logs` | Read         | Retrieve the AI agent's execution timeline: messages, tool calls, decisions                    |
| `update_request`         | Write        | Update any field on a request: status, assignee, priority, tags, linked apps, linked equipment |
| `send_request_message`   | Write        | Send a message in a request thread                                                             |
| `add_request_note`       | Write        | Add an internal note on a request                                                              |
| `list_request_tags`      | Read         | List all request tags                                                                          |
| `get_request_tag`        | Read         | Fetch a single request tag                                                                     |
| `unarchive_request`      | Write        | Restore an archived request                                                                    |
| `fetch_attachment`       | Read         | Fetch an attachment on a request (file metadata and content)                                   |

> **Note** : `get_request` and `list_requests` also return `satisfaction_survey_rating` as part of the standard Request payload, so no extra call is needed to pull CSAT data into your AI client.

> **Note:** `get_request` and `list_requests` now carry a `requests_group_uid` field (null when the request isn't grouped), and `list_requests` accepts `mode=grouped` to list groups instead of individual requests.

**Grouped Requests**

| Tool                         | Read / Write | Description                                                                                                  |
| ---------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------ |
| `get_request_group`          | Read         | Fetch a group's aggregate payload: request count, status/priority breakdown, requesters, assignees, and more |
| `get_request_group_events`   | Read         | List the group's own timeline: creation and membership changes                                               |
| `group_requests`             | Write        | Create a new group from a set of requests                                                                    |
| `add_requests_to_group`      | Write        | Add requests to an existing group                                                                            |
| `remove_requests_from_group` | Write        | Remove requests from a group                                                                                 |
| `rename_request_group`       | Write        | Rename a group                                                                                               |
| `disband_request_group`      | Write        | Disband a group, returning its requests to standalone                                                        |

**People**

| Tool               | Read / Write | Description                                                                        |
| ------------------ | ------------ | ---------------------------------------------------------------------------------- |
| `list_people`      | Read         | List users in your workspace                                                       |
| `get_person`       | Read         | Fetch a user with full profile: department, office location, Okta groups, and more |
| `create_person`    | Write        | Create a new user                                                                  |
| `update_person`    | Write        | Update a user's profile                                                            |
| `archive_person`   | Write        | Archive a user                                                                     |
| `unarchive_person` | Write        | Restore an archived user                                                           |
| `merge_person`     | Write        | Merge two users into one                                                           |
| `whoami`           | Read         | Return the currently authenticated user                                            |

**CMDB (Apps & Equipments)**

| Tool                        | Read / Write | Description                                |
| --------------------------- | ------------ | ------------------------------------------ |
| `list_applications`         | Read         | List all apps in your catalog              |
| `get_application`           | Read         | Fetch a single app with full details       |
| `create_application`        | Write        | Add an app to your catalog                 |
| `update_application`        | Write        | Update an app                              |
| `list_equipments`           | Read         | List all equipment in your inventory       |
| `get_equipment`             | Read         | Fetch a single equipment with full details |
| `create_equipment`          | Write        | Add equipment to your inventory            |
| `update_equipment`          | Write        | Update an equipment                        |
| `list_equipment_categories` | Read         | List all equipment categories              |

**Services**

| Tool                               | Read / Write | Description                                   |
| ---------------------------------- | ------------ | --------------------------------------------- |
| `list_services`                    | Read         | List all services available in your catalog   |
| `get_services`                     | Read         | Fetch a single service with its configuration |
| `create_service`                   | Write        | Create a new service                          |
| `update_service`                   | Write        | Update a service                              |
| `create_service_custom_form_input` | Write        | Add a custom form field to a service          |
| `get_service_custom_form_input`    | Read         | Fetch a single custom form field              |
| `update_service_custom_form_input` | Write        | Update a custom form field                    |
| `delete_service_custom_form_input` | Write        | Permanently delete a custom form field        |

**Workflow**

| Tool                           | Read / Write | Description                                                                                                                                                               |
| ------------------------------ | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `list_workflows`               | Read         | List all workflows                                                                                                                                                        |
| `get_workflow`                 | Read         | Fetch a single workflow with its configuration                                                                                                                            |
| `create_workflow`              | Write        | Create a new workflow                                                                                                                                                     |
| `get_workflow_manifest_schema` | Read         | Return the workflow manifest schema (valid triggers, conditions and actions)                                                                                              |
| `get_workflow_execution_logs`  | Read         | Fetch a workflow run's execution log: trigger event and timestamp, ordered steps with status, inputs and outputs, and the failure reason on any step that didn't complete |

**App Access**

| Tool                                              | Read / Write | Description                                                 |
| ------------------------------------------------- | ------------ | ----------------------------------------------------------- |
| `list_app_access_roles`                           | Read         | List all app access roles                                   |
| `get_app_access_role`                             | Read         | Fetch a single app access role                              |
| `create_app_access_role`                          | Write        | Create an app access role                                   |
| `update_app_access_role`                          | Write        | Update an app access role                                   |
| `delete_app_access_role`                          | Write        | Delete an app access role                                   |
| `get_app_access_role_provisioning_actions_schema` | Read         | Return the provisioning actions schema for app access roles |

**App Access Requests**

| Tool                         | Read / Write | Description                                                                     |
| ---------------------------- | ------------ | ------------------------------------------------------------------------------- |
| `get_app_access_request`     | Read         | Fetch a single app access request: the app, current status, and full timeline   |
| `approve_app_access_request` | Write        | Approve a pending app access request awaiting the authenticated user's decision |
| `reject_app_access_request`  | Write        | Reject a pending app access request awaiting the authenticated user's decision  |
|                              |              |                                                                                 |

> **Note:** Approve/reject tools only act on requests where the authenticated user's decision is pending, matching the same rule stated at the top of this page: the MCP can't do anything the user couldn't already do in the admin console.

**Knowledge base**

| Tool                      | Read / Write | Description                              |
| ------------------------- | ------------ | ---------------------------------------- |
| `list_articles`           | Read         | List knowledge base articles             |
| `get_article`             | Read         | Fetch a single article                   |
| `create_article`          | Write        | Create a new article                     |
| `update_article`          | Write        | Update an article                        |
| `publish_article`         | Write        | Publish an article to the knowledge base |
| `unpublish_article`       | Write        | Revert an article to draft               |
| `archive_article`         | Write        | Archive an article                       |
| `unarchive_article`       | Write        | Restore an archived article              |
| `list_article_categories` | Read         | List knowledge base categories           |

**Organization**

| Tool                    | Read / Write | Description                    |
| ----------------------- | ------------ | ------------------------------ |
| `list_teams`            | Read         | List all teams                 |
| `get_team`              | Read         | Fetch a single team            |
| `list_team_inboxes`     | Read         | List all inboxes               |
| `get_team_inbox`        | Read         | Fetch a single inbox           |
| `list_departments`      | Read         | List all departments           |
| `get_department`        | Read         | Fetch a single department      |
| `list_office_locations` | Read         | List all office locations      |
| `get_office_location`   | Read         | Fetch a single office location |
| `list_legal_entities`   | Read         | List all legal entities        |
| `get_legal_entity`      | Read         | Fetch a single legal entity    |

***

### Use case examples

* **Triage your inbox without opening Siit** : Ask Claude "What are the open P1 requests assigned to no one?" and get a prioritized list with full context — requester department, linked apps, SLA status — then instruct it to assign and update them directly.
* **Investigate a request end to end :** Paste a Siit request link into Claude Code and ask it to investigate: who raised it, what app or equipment is involved, what their Okta group is, and whether there are similar open requests. Get a full diagnosis in seconds.
* **Run ad hoc analysis across your IT data :** Ask questions like "How many open requests are linked to Slack?" or "Show me all requests from the Engineering team this week" — combining Siit data with other connected tools like Notion or Linear for richer context.
* **Draft and send a reply from your AI client** : Ask Claude to draft a response to a specific request based on its context, then send it as a message in the thread — without ever switching tabs.
* **Bulk triage after a tool outage** : Ask "List all requests created in the last 2 hours linked to Okta, assign them to the IT team inbox, and tag them as incident." Done in one prompt.
* **Debug a workflow run**: Ask Claude why last night's onboarding Workflow skipped the equipment step, and it pulls the run's execution log, points at the step that broke, and reads back the error.

***
