Inth MCP

MCP tools

Inth MCP provides one tool per REST operation. Tools return the same resource shapes as the REST API. The client should ask for confirmation before it calls a tool that changes data; every tool carries annotations that say whether it is read-only or destructive.

Organization tools

list_organizations

Lists the Inth organizations that your signed-in account can access, including your role in each organization. The token must include organizations.read.

This tool has no arguments.

Example prompt:

List my Inth organizations and show my role in each one.

get_organization

Gets one organization. The token must include organizations.read.

ArgumentTypeRequiredDescription
organizationIdstringYesOrganization ID

Every other tool that takes an organizationId treats it as optional: without it the saved active organization of your account is used. If that choice is unavailable and you belong to multiple organizations, provide the ID explicitly. Tools that take a member, invitation, project, scan, or item ID find the organization from that ID.

create_organization

Creates an organization owned by your signed-in account and sets up its billing on the free plan. The token must include organizations.write. Without it the call returns a tool error whose code is INSUFFICIENT_SCOPE.

ArgumentTypeRequiredDescription
namestringYesOrganization name, 3 to 255 characters
slugstringYesURL slug, 3 to 20 characters: lowercase letters and numbers, with single hyphens between groups

Example prompt:

Create an Inth organization named Acme with the slug acme.

You can own up to 50 organizations. A slug that is already taken is refused.

Member tools

list_members

Lists the members of an organization with their roles. The token must include members.read. Any member can read the roster.

ArgumentTypeRequiredDescription
organizationIdstringNoOrganization ID; defaults to the active one

Example prompt:

Who is in my Acme organization, and what role does each person have?

update_member

Changes a member's role. The token must include members.write, and you must be an admin or owner. Only owners can grant or take the owner role, you cannot change your own role, and the last owner cannot be demoted.

ArgumentTypeRequiredDescription
memberIdstringYesMember ID
roleowner, admin, or memberYesNew role

remove_member

Removes a member from an organization. The token must include members.write, and you must be an admin or owner. Only owners can remove owners, you cannot remove yourself, and the last owner cannot be removed.

ArgumentTypeRequiredDescription
memberIdstringYesMember ID

list_invitations

Lists pending invitations. The token must include members.read, and you must be an admin or owner.

ArgumentTypeRequiredDescription
organizationIdstringNoOrganization ID; defaults to the active one

invite_member

Emails an invitation to join an organization. The invitation expires after 48 hours. The token must include members.write, and you must be an admin or owner; only owners can invite owners. An address that is already a member or already invited is refused.

ArgumentTypeRequiredDescription
organizationIdstringNoOrganization ID; defaults to the active one
emailstringYesAddress to invite
roleowner, admin, or memberYesRole granted on acceptance

Example prompt:

Invite kim@acme.example to my Acme organization as an admin.

cancel_invitation

Cancels a pending invitation. The token must include members.write, and you must be an admin or owner.

If acceptance or deletion wins a race with cancellation, the call returns CONFLICT. Refresh the member list before trying again.

ArgumentTypeRequiredDescription
invitationIdstringYesInvitation ID

Project tools

list_regions

Lists the regions available when creating a project. Use the returned region ID with create_project.

This tool has no arguments.

Example prompt:

Which regions can I use for a new Inth project?

list_projects

Lists projects with their consent settings. You can list every project you can access or limit the result to one organization. The token must include projects.read.

ArgumentTypeRequiredDescription
organizationIdstringNoOnly return projects from this organization

Example prompt:

List the projects in my Acme organization.

get_project

Gets one project with its consent settings. The token must include projects.read.

ArgumentTypeRequiredDescription
projectIdstringYesProject ID

create_project

Creates a project and its consent runtime. Admins and owners can use this tool when the organization has API access and the token includes projects.write.

ArgumentTypeRequiredDescription
organizationIdstringNoOrganization; defaults to the active one
namestringYesProject name
regionstringYesRegion ID returned by list_regions
consent.trustedOriginsstring arrayNoOrigins allowed to use the consent runtime
consent.brandinginth, c15t, or noneNoBranding shown on the consent banner

Example prompt:

Create an Inth project named Docs in the Frankfurt region for the Acme organization. Trust https://docs.example.com and show Inth branding.

Check the organization, region, project name, and trusted origins before you approve the call. To find the required IDs first, ask the client to run list_organizations and list_regions.

update_project

Renames a project, changes its description, or changes its consent settings. Arguments left out are unchanged. Renaming a project also changes its slug and dashboard URL. The token must include projects.write, and you must be an admin or owner. Removing branding needs a plan that includes it.

ArgumentTypeRequiredDescription
projectIdstringYesProject ID
namestringNoNew project name
descriptionstring or nullNoNew description, or null to clear it
consent.trustedOriginsstring arrayNoOrigins allowed to use the consent runtime
consent.brandinginth, c15t, or noneNoBranding shown on the consent banner

Example prompt:

Add https://staging.example.com to the trusted origins of the Docs project.

delete_project

Archives a project and its consent runtime. The token must include projects.write, and you must be an admin or owner. Confirm before approving.

ArgumentTypeRequiredDescription
projectIdstringYesProject ID

API key tools

list_api_keys

Lists the organization API keys. Secrets are never returned. The token must include api-keys.read, and you must be an admin or owner.

ArgumentTypeRequiredDescription
organizationIdstringNoOrganization ID; defaults to your active organization

create_api_key

Creates an organization API key with the rate limit of the current plan. The secret is returned once. The token must include api-keys.write, and you must be an admin or owner.

ArgumentTypeRequiredDescription
namestringYesKey name, shown in the key list
organizationIdstringNoOrganization ID; defaults to your active organization

Example prompt:

Create an API key named "CI deploy" for my Acme organization.

roll_api_key

Replaces the secret of a key. The old secret stops working immediately and the new one is returned once. The token must include api-keys.write, and you must be an admin or owner.

ArgumentTypeRequiredDescription
keyIdstringYesAPI key ID
organizationIdstringNoOrganization ID; defaults to your active organization

delete_api_key

Revokes a key. The token must include api-keys.write, and you must be an admin or owner.

ArgumentTypeRequiredDescription
keyIdstringYesAPI key ID
organizationIdstringNoOrganization ID; defaults to your active organization

Code Audit tools

List tools take an optional organizationId; without it the active organization of your account is used. Tools that take a scan, repository, or item ID find the organization from that ID.

list_code_audit_repositories

Lists the GitHub repositories the Inth App can reach, with the projects each is linked to, ordered by repository ID. The token must include code-audit.read.

ArgumentTypeRequiredDescription
organizationIdstringNoDefaults to the active organization
limitnumberNoPage size, 1 to 100; defaults to 50
cursorstringNonextCursor from the previous page

Returns items, nextCursor, and hasMore. Each request reads only the requested repository page and its project links.

list_code_audit_scans

Lists scans, newest first, with status, finding counts, and whether the report is a free preview, locked, or fully unlocked. The token must include code-audit.read.

ArgumentTypeRequiredDescription
repositoryIdstringNoOnly scans of this repository
limitnumberNoPage size, 1 to 100; defaults to 50
cursorstringNoCursor from the previous page of these filters
statusstringNoOnly scans in this status

Returns items, nextCursor, and hasMore. Pass nextCursor as cursor to read older scans.

get_code_audit_scan

Gets one scan with its progress. The token must include code-audit.read.

ArgumentTypeRequiredDescription
scanIdstringYesScan ID

start_code_audit_scan

Starts a scan of the production branch of a connected repository. The first scan of a repository is a free preview; the previous preview must be unlocked before another scan starts. The token must include code-audit.write, and you must be an admin or owner. Confirm before approving: a scan spends credits when its report is unlocked.

ArgumentTypeRequiredDescription
repositoryIdstringYesRepository ID from list_code_audit_repositories

Example prompt:

Scan the acme/website repository with Inth Code Audit and tell me what it found.

get_code_audit_scan_request

When start_code_audit_scan returns status: "starting", poll this tool with its preparationId and repositoryId until it returns the scan. Requires code-audit.read or code-audit.write.

ArgumentTypeRequiredDescription
preparationIdstringYesPreparation ID from the start result
repositoryIdstringYesRepository ID from the start result

get_code_audit_scan_issues

Reads the findings of a scan. A free preview returns the visible findings plus lockedCount and unlockCredits. The token must include code-audit.read.

ArgumentTypeRequiredDescription
scanIdstringYesScan ID

unlock_code_audit_scan

Spends credits to unlock the full report of a free preview. The token must include code-audit.write, and you must be an owner. Confirm the credit cost before approving; the call fails with INSUFFICIENT_CREDITS when the balance is too low.

ArgumentTypeRequiredDescription
scanIdstringYesScan ID

Inbox tools

list_inbox_items

Lists findings in the Inbox, most recently updated first. The token must include inbox.read.

ArgumentTypeRequiredDescription
organizationIdstringNoOrganization ID; defaults to the active organization
statusopen, accepted, dismissed, or resolvedNoOnly items in this status
limitnumberNoPage size, 1 to 100
cursorstringNoCursor from a previous page

Example prompt:

What open P0 and P1 findings are in my Acme Inbox?

get_inbox_item

Gets one finding with its code evidence. The token must include inbox.read.

ArgumentTypeRequiredDescription
itemIdstringYesInbox item ID

update_inbox_item

Sets the status of a finding. Pass the version from the item as last read; a stale version is refused so two people cannot overwrite each other. The token must include inbox.write, and you must be an admin or owner.

ArgumentTypeRequiredDescription
itemIdstringYesInbox item ID
statusopen, accepted, dismissed, or resolvedYesNew status
versionstringYesThe item's version as read

Example prompt:

I fixed the logging finding in the checkout handler. Mark it resolved.

create_inbox_github_issue

Opens a GitHub issue in the connected repository for a code finding. Returns the existing issue if one was already created. The token must include inbox.write, and you must be an admin or owner.

ArgumentTypeRequiredDescription
itemIdstringYesInbox item ID

Billing tools

get_billing

Reads the plan, tier, credit balance, and automatic top-up settings of an organization. Read only; purchases stay in the dashboard. The token must include billing.read.

ArgumentTypeRequiredDescription
organizationIdstringNoOrganization ID; defaults to the active organization

Example prompt:

How many Inth credits does Acme have left, and is auto top-up on?

An uncertain issue creation or failed persistence retains a reservation, so retries return CONFLICT until the result is reconciled. Repository and installation-token checks run before reservation, so preparation failures remain retryable. Refresh the item and contact support if the issue link does not appear.