MCP
Siit's MCP Server exposes your workspace to AI tools that support the Model Context Protocol: Claude, Codex, Mistral, Cursor and more.
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.
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.
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.

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
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
create_request_tag
Write
Create a request tag, available in every team inbox
update_request_tag
Write
Rename a request tag; every request carrying it shows the new name
delete_request_tag
Write
Delete a request tag and remove it from every request carrying it, archived ones included
unarchive_request
Write
Restore an archived request
fetch_attachment
Read
Fetch an attachment on a request (file metadata and content)
Note :
get_requestandlist_requestsalso returnsatisfaction_survey_ratingas part of the standard Request payload, so no extra call is needed to pull CSAT data into your AI client.
Note:
get_requestandlist_requestsnow carry arequests_group_uidfield (null when the request isn't grouped), andlist_requestsacceptsmode=groupedto list groups instead of individual requests.
Grouped Requests
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
send_message_to_requests_in_group
Write
Send one public message to every request in the group, delivered to each requester in their own channel
add_note_to_requests_in_group
Write
Add one internal note to every request in the group, visible to admins only
set_status_of_requests_in_group
Write
Set the status of every request in the group
set_priority_of_requests_in_group
Write
Set the priority of every request in the group
set_assignee_of_requests_in_group
Write
Assign every request in the group to an admin, or unassign them all
add_tags_to_requests_in_group
Write
Add tags to every request in the group, keeping the tags each one already carries
archive_requests_in_group
Write
Archive every request in the group
snooze_requests_in_group
Write
Snooze every request in the group until a chosen date
Note: Bulk tools act only on the requests the authenticated user can already see, and they are not atomic, so an individual request can be skipped. Each one returns the number of requests it processed, which is a count of records handled rather than a delivery receipt. The group timeline records one bulk event per call, which is what you read back with
get_request_group_events.
People
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)
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
Note: an app's
app_ownerandapp_owner_backupcan each be a person, a team or a team inbox, andcreate_applicationandupdate_applicationaccept any of the three. Teams and team inboxes share a uid prefix, so expanding the field is what tells them apart — and expanding it needs the matching read consent. Without it, the default response returns the owner's uid instead, and an explicitexpandon the owner is refused.
Services
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
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
Note:
get_workflow_execution_logsreports a branch the run didn't take as one skipped step rather than listing every action inside it, which keeps the log readable on a workflow with many branches. Passinclude_skipped=truewhen you need each skipped action spelled out.
App Access
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
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
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
Teams, departments, office locations and legal entities are your people groups. Each one can now be created, renamed and deleted, and people can be added to it or taken out of it.
list_teams
Read
List all teams
get_team
Read
Fetch a single team
create_team / update_team / delete_team
Write
Create, rename or delete a team
add_users_to_team / remove_users_from_team
Write
Change who belongs to a team
list_departments
Read
List all departments
get_department
Read
Fetch a single department
create_department / update_department / delete_department
Write
Create, rename or delete a department
add_users_to_department / remove_users_from_department
Write
Change who belongs to a department
list_office_locations
Read
List all office locations
get_office_location
Read
Fetch a single office location
create_office_location / update_office_location / delete_office_location
Write
Create, rename or delete an office location
add_users_to_office_location / remove_users_from_office_location
Write
Change who is based in an office location
list_legal_entities
Read
List all legal entities
get_legal_entity
Read
Fetch a single legal entity
create_legal_entity / update_legal_entity / delete_legal_entity
Write
Create, rename or delete a legal entity
add_users_to_legal_entity / remove_users_from_legal_entity
Write
Change who belongs to a legal entity
list_team_inboxes
Read
List all inboxes
get_team_inbox
Read
Fetch a single inbox
Note:
list_peoplereads a group's members directly — passteam_uid,department_uid,office_location_uidorlegal_entity_uid. Passnoneinstead of a uid to find the people who have no team, department, office location or legal entity.
Custom integrations
A custom integration connects Siit to a third-party API that has no pre-built connector: a name, the credential to call it with, and the way that credential travels on every request. Each one carries custom actions, the individual operations Siit can run against it, described by a URL, an HTTP method (GET, POST, PUT, PATCH or DELETE, defaulting to POST), and the inputs and outputs it expects. You can also set all of this up in the admin console — see Custom integrations.
Enabling an action is required but not enough on its own; where it is offered also depends on how it is configured:
Run from a request or a person — the action needs a manual run mode (
interactive_modeother thandisabled) and a request or person context.Workflow step — the action needs a workflow input definition (
workflow_input_definition), even an empty one, and a context that matches the workflow's trigger.App access role provisioning and deprovisioning — the action needs a workflow input definition and the app access request context.
Custom integrations are enabled per workspace; these tools return an error while your workspace doesn't have them.
list_custom_integrations
Read
List your custom integrations
get_custom_integration
Read
Fetch a single custom integration
create_custom_integration
Write
Create a custom integration with its credential, authentication method, and headers
update_custom_integration
Write
Update a custom integration
delete_custom_integration
Write
Delete a custom integration, with its actions and their history
list_custom_actions
Read
List the actions of a custom integration
get_custom_action
Read
Fetch a single custom action
create_custom_action
Write
Declare a custom action: where it posts, what it asks for, and what it answers with
update_custom_action
Write
Update a custom action, including enabling or disabling it
delete_custom_action
Write
Remove a custom action, keeping its execution history
Notes:
The credential of a custom integration is write-only. It is never returned by any tool, and leaving it out of an update keeps the current one. A new custom action is created disabled, so nothing can run it until you enable it deliberately.
Disabling a custom action only stops it from being offered for new uses. Workflow steps and app access roles that already use it keep running it. To stop those runs, remove the action from them first; deleting the action instead makes those steps fail when they run.
These tools ask for the Read Custom Integrations and Write Custom Integrations consents the first time your client uses them. As everywhere else, they act with your own permissions.
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.
Last updated

