AI & MCP
Your AI agent works in IT4S – with your permissions.
IT4S has a built-in MCP server. Claude, Cursor or any other MCP client searches, creates, plans and updates your issues, releases, time and docs – as you, with your permissions, and every change shows in the history as “via Claude”.
What the MCP server does
- Your permissions, nothing more. The assistant acts as the signed-in user. Each app asks for consent and gets only the scopes you grant (read, write, admin). Revoke it any time under Connected Apps.
- Every change is traceable and can be undone. History reads “Chris via Claude changed Status from To Do to In Progress”. Deletes through MCP go to the trash and come back with one call.
- Made for language models. Tools take issue keys like WEB-42 and people by name or email, never internal IDs. Results come back as short Markdown plus structured JSON, paged, so answers stay fast and cheap in tokens.
- Bulk work in one step. Turn a spec into an epic with 30 stories, or close every reviewed bug in a release: up to 50 issues per call, with a result for each one.
- Agents with their own role. Give each coding agent and script its own persona with a name and permissions. Your customers see the person responsible, not the AI.
Built-in AI features such as summaries, project briefings and release scope suggestions are optional, off by default, and run with your workspace’s own Anthropic key.
Connect your agent
One address, nothing to configure: you sign in once (OAuth), then the agent works in your workspace. For scripts, a personal access token works too.
In claude.ai or Claude Desktop, add IT4S in the settings under connectors as a custom connector with this address. You sign in once and confirm the scopes.
One command in your terminal. Claude Code opens the browser for sign-in.
One entry in ~/.cursor/mcp.json, then click Connect in Cursor. Cursor opens the browser for sign-in.
Coding agents in your IDE and other MCP clients connect over Streamable HTTP with OAuth 2.1 (discovery, PKCE, dynamic client registration), or with a personal access token for scripts and CI.
No account: connect your agent to the public demo workspace (read-only, example data). Demo without an account →
Every agent with a name and permissions
Under Connected Apps admins see every connection: which app, which agent, who owns it, what it may do and when it last worked. One click revokes access. Your customers see the person responsible, not the AI.
For developers
One command. No account. Your agent.
Connect your own agent to our public demo workspace and ask whatever you like. In 30 seconds you know whether IT4S fits your workflow.
- Read-only – your agent cannot break anything
- No sign-up, no email address
- Example data of a made-up company, reset every hour
Run it in your terminal, then just ask in Claude Code.
Add it to ~/.cursor/mcp.json, then ask in the agent chat.
The same data through the REST API – with OpenAPI docs at /api/docs.
All 63 tools
What your agent can do in IT4S, by area. Everyone can read; only people with the right role can change things, and viewers and customers only get the tools that fit their role.
Issues 13
| Tool | What it does |
|---|---|
search_issues | Main entry point to find issues. |
get_issue | The full issue as Markdown: fields, description, technical plan and prompt, and optionally comments, sub-tasks (or the children of an epic), links, designs (patterns, mockups, artifacts), worklogs (time logged), attachments, the activity history and the documentation pages that mention the issue (docs). |
create_issue | Create one issue. |
create_issues | Create up to 50 issues in order, e.g. |
update_issue | Change fields of one issue; only the given fields change. |
bulk_update_issues | Apply the same field changes to up to 50 issues. |
transition_issue | Move an issue to another status, optionally with a comment explaining why. |
link_issues | Link two issues: `source` blocks / relates_to / duplicates `target`. |
unlink_issues | Remove the link of this type between two issues (either direction). |
check_item | Tick or clear one item of the task list (`- [ ]`, e.g. |
watch_issue | Watch an issue as the signed-in user: watchers get an email for every new comment. |
delete_issue | Move an issue (and its sub-tasks) to the trash. |
restore_issue | Bring back a deleted issue together with the sub-tasks that were deleted with it. |
Board & releases 10
| Tool | What it does |
|---|---|
my_work | Open issues assigned to the signed-in user (sub-tasks included), highest priority first, then by rank. |
my_dashboard | The signed-in user's My Work dashboard: counts (open, due in 7 days, in review, new mentions), what's new since their last visit, their open issues by urgency with a reason, and issues opened vs. |
get_board | The board: one column per status (To Do, In Progress, In Review, Done incl. |
move_issue | Change the rank of an issue in its project (board column and backlog order): `after` = the issue that should come directly before it, `before` = the one directly after. |
list_releases | Releases (versions) with progress. |
create_release | Create a release in a project (project admins only). |
update_release | Rename, re-date, change the status or write the release notes of a release (project admins only). |
set_release_issues | Move issues into or out of an unreleased release (project admins). |
release_candidates | Open stories, tasks and bugs that could go into a release: without release (default), only the backlog, or in other unreleased releases (`source: "other"`). |
suggest_release_scope | AI proposal for an unreleased release (project admins; workspace AI must be on): the open candidates that should go into it, best first, each with a one-line reason, fitting the capacity when given. |
Projects & people 18
| Tool | What it does |
|---|---|
whoami | The signed-in user, the scopes of this connection and the projects the user belongs to (with role). |
list_projects | Projects the user can read, with open/total issue counts and the user\u2019s role. |
get_project | One project: members with roles, open releases and the number of issues per status. |
create_project | Create a project (workspace admins with the `admin` scope; an app connection gets it only when ticked on the consent screen). |
update_project | Change project settings (project admins only): name, description, lead, active (inactive projects are read-only and hidden from lists), |
list_users | Find people to assign or mention, by part of the name or email; `project` limits the list to its members (and workspace admins). |
set_project_member | Add a user to a project or change their role (project admins only). |
remove_project_member | Remove a user from a project (project admins only). |
list_components | Components of a project: parts that ship separately (API, web app, mobile app) with a short code. |
list_project_groups | Project groups: named sets of related projects (like FLEET), with the member projects you can read. |
list_tags | Existing tags with their issue counts. |
get_settings_status | What is set up in the workspace (workspace admins with the `admin` scope): which mail server sends, AI on/off and model, Jira and Confluence connections, Google sign-in, GitHub webhook. |
list_webhooks | The outgoing webhooks of the workspace with their events, filters and last delivery (workspace admins with the `admin` scope). |
create_webhook | Add an outgoing webhook (workspace admins with the `admin` scope). |
update_webhook | Change a webhook (workspace admins with the `admin` scope); only the given fields change. |
delete_webhook | Delete a webhook and its delivery log for good (workspace admins with the `admin` scope). |
list_webhook_deliveries | The delivery log of a webhook, newest first: event, status, response code and error (workspace admins with the `admin` scope). |
test_webhook | Queue a `ping` delivery to the webhook to check the receiver (workspace admins with the `admin` scope). |
Docs 7
| Tool | What it does |
|---|---|
list_docs | The documentation pages of a project as a tree (refs like WEB-DOC-3). |
get_doc | A documentation page with its Markdown content, where it sits (path, subpages), the issues it mentions and its files. |
search_docs | Full-text search over the titles and content of documentation pages (every word as a prefix). |
create_doc | Create a page in a project (members). |
update_doc | Change the title, content or visibility, move the page (`parent`: another page or null for the top level; `position`: 0 = first among its siblings) or set the release of a top page. |
delete_doc | Move a page and its subpages to the trash; restore_doc brings them back. |
restore_doc | Bring a page back from the trash, with the subpages deleted together with it. |
Comments, files & code 11
| Tool | What it does |
|---|---|
add_comment | Comment on an issue. |
list_comments | Comments of an issue, oldest first unless `sort` is newest. |
update_comment | Edit one of your own comments: new body and/or visibility (internal or public; customers always write public). |
delete_comment | Delete one of your own comments (admins: any comment). |
create_upload_link | Upload a local file (PDF, PNG, logs …) to an issue or a documentation page: returns a one-time URL, valid 15 minutes, and a curl command. |
upload_attachment | Attach a small file (max 10 MB) to an issue or a documentation page, from base64 content or a public http(s) URL. |
get_attachment | Read an attachment by id or `attachment://<id>`: images come back as image content, text files as text, other files as a download link valid for 15 minutes. |
add_design | Add a design reference to an issue (Designs tab): `pattern` = a rule or pattern of docs/mgmt-design-pattern (`reference`, like LIST-13), |
remove_design | Remove a design reference from an issue by its title (as listed by get_issue with include designs). |
link_code | Link a pull request, branch or commit to an issue (internal; customers do not see it). |
unlink_code | Remove a code link (pull request, branch, commit) from an issue by its URL. |
Time & reports 4
| Tool | What it does |
|---|---|
log_work | Log time the signed-in user spent on an issue. |
get_time_report | Logged time in a period (days inclusive, in the time zone of the workspace), summed per issue and user and grouped by user, issue or project. |
get_estimate_report | How much work a scope is estimated at (IT4S-253, like Time › Estimate Report): original and remaining estimates, story points and logged time, |
activity_feed | What happened since a time across your projects, newest first: new issues, comments and status changes, with who and via which app. |
Ready-made flows – one sentence is enough
Plan WEB-80 from this spec.
The agent breaks the epic into stories and sub-tasks with estimates and creates them in one go once you agree.
Triage the new bugs in WEB.
The agent lists bugs without priority or assignee, proposes values for each, and updates them after you confirm.
Implement WEB-87.
The agent reads the issue, its plan and comments, works in the code and reports progress on the issue.
Log my day.
The agent puts together what you worked on today and logs the time on the right issues.
What happened since yesterday?
A short stand-up summary: done, in progress, blocked.
Write the release notes for 2.6.
Release notes from the release’s issues, for you to check and save.