Svit.One Docs

MCP

Connect an MCP client to Svit.One and use the available project tools.

Svit.One provides a remote Model Context Protocol (MCP) server. Compatible AI assistants and applications can use it to list your projects, work with tasks, people, and opportunities, read or create comments, list sites, and list or trigger site deployments.

Connect an MCP client

Add the following remote MCP server URL to your client:

https://api-external.svit.one/mcp

Select Streamable HTTP as the transport if your client asks for one. Configuration field names vary by client, but a typical remote-server entry looks like this:

{
    "mcpServers": {
        "svit": {
            "url": "https://api-external.svit.one/mcp"
        }
    }
}

When prompted, sign in to Svit.One and approve access. The client can access only projects you belong to.

How to use the tools

Start with list_projects, then use its projectId with the other tools. Useful discovery flows include:

  • Call list_folders before filtering tasks by folder or creating or updating a task in a folder.
  • Call list_project_users before filtering tasks by assignee, assigning a task, or setting an opportunity or person owner.
  • Call find_person to look up a contact by email, phone, or id. Use get_person when you already have a person id and a missing contact should fail.
  • Call list_tasks before reading or creating comments on a task.
  • Call list_sites before list_deployments or trigger_deployment.
  • Call list_opportunities or find_opportunity before reading or updating an opportunity.

Project tools

list_projects

Lists every Svit.One project the authenticated user belongs to.

Inputs: None.

Output: A projects array whose entries contain:

FieldTypeDescription
idnumberProject ID used by the other tools.
namestringProject name.

list_tasks

Lists tasks in a project, with pagination, search, filtering, and sorting.

InputTypeRequiredDefaultDescription
projectIdnumberYes—Project ID from list_projects.
pageinteger ≥ 1No1Page number.
limitinteger, 1–100No20Number of tasks per page.
searchstringNo—Case-insensitive task-name search.
statusstring or string[]No—One or more task statuses. See task values.
prioritystringNo—Task priority. See task values.
folderUUIDNo—Folder ID from list_folders.
assigneeIdintegerNo—User ID from list_project_users.
sortBystringNocreated_atcreated_at, updated_at, name, priority, status, dueDate, startDate, or order.
sortOrderstringNodescasc or desc.

Output: A tasks array of task objects and a pagination object containing total, page, limit, and totalPages numbers.

create_task

Creates a task in a project.

InputTypeRequiredDefaultDescription
projectIdintegerYes—Project ID from list_projects.
namestringYes—Non-empty task name, up to 255 characters.
descriptionstring or nullNonullTask description.
statusstringNotodoTask status. See task values.
prioritystringNononeTask priority. See task values.
folderUUID or nullNonullFolder ID from list_folders, or null for no folder.
parentTaskUUID or nullNonullParent task ID, if this is a subtask.
startDateISO 8601 datetime or nullNonullTask start date.
dueDateISO 8601 datetime or nullNonullTask due date.
assigneeIdsinteger[]No[]User IDs from list_project_users.

Output: The created task object.

update_task

Updates an existing task. Only provided fields change. Pass null to clear a nullable field or an empty assigneeIds array to remove all assignees. At least one field to update is required. The connected user needs tasks:edit access in the project.

InputTypeRequiredDescription
projectIdintegerYesProject ID from list_projects.
taskIdUUIDYesTask ID from list_tasks.
namestringNoNon-empty task name, up to 255 characters.
descriptionstring or nullNoTask description, or null to clear it.
statusstringNoTask status. See task values.
prioritystringNoTask priority. See task values.
folderUUID or nullNoFolder ID from list_folders, or null for no folder.
parentTaskUUID or nullNoParent task ID, or null to make the task a top-level task.
startDateISO 8601 datetime or nullNoTask start date, or null to clear it.
dueDateISO 8601 datetime or nullNoTask due date, or null to clear it.
assigneeIdsinteger[]NoProject-member IDs, or an empty array to remove all task assignees.

Output: The updated task object.

list_folders

Lists task folders in a project.

InputTypeRequiredDescription
projectIdintegerYesProject ID from list_projects.

Output: A folders array whose entries contain:

FieldTypeDescription
idstringFolder ID.
namestringFolder name.
parentFolderstring or nullParent folder ID, if any.

list_project_users

Lists the active members of a project.

InputTypeRequiredDescription
projectIdintegerYesProject ID from list_projects.

Output: A users array of user objects.

Site tools

list_sites

Lists sites in a project. Use a site's id with list_deployments or trigger_deployment. Those tools only work when deploymentVersion is 3.

InputTypeRequiredDescription
projectIdintegerYesProject ID from list_projects.

Output: A sites array whose entries contain:

FieldTypeDescription
idintegerSite ID used by list_deployments and trigger_deployment.
namestringSite name.
deploymentVersioninteger3 for sites that support list_deployments and trigger_deployment.

list_deployments

Lists deployments for a site. The site must belong to the project and use deployment version 3. Legacy sites are rejected.

InputTypeRequiredDescription
projectIdintegerYesProject ID from list_projects.
siteIdintegerYesSite ID from list_sites.

Output: A deployments array of deployment objects.

trigger_deployment

Schedules a deployment for a v3 site (deploymentVersion 3) from the site's latest artifacts. This is the MCP equivalent of Publish in the site editor: it duplicates current artifacts, creates a deployment with status SCHEDULED, and enqueues it for the worker. It does not use the legacy immediate-publish path. Sites that are not on deployment version 3 are rejected.

InputTypeRequiredDefaultDescription
projectIdintegerYes—Project ID from list_projects.
siteIdintegerYes—Site ID from list_sites.

Output: The scheduled deployment object. Status is SCHEDULED.

Opportunity tools

list_opportunities

Lists opportunities in a project, with pagination, name search, and filters. Results follow the authenticated user's CRM opportunity and pipeline view permissions.

InputTypeRequiredDefaultDescription
projectIdintegerYes—Project ID from list_projects.
pageinteger ≥ 1No1Page number.
limitinteger, 1–100No20Number of opportunities per page.
searchstringNo—Case-insensitive opportunity-name search.
pipelinestringNo—Filter by pipeline ID.
pipelineStagestringNo—Filter by pipeline stage ID.
ownerUserIdintegerNo—Filter by owner user ID from list_project_users.
personIdstringNo—Filter to opportunities whose contacts include this person ID.
openOnlybooleanNo—When true, exclude ClosedWon and ClosedLost opportunities.

Output: An opportunities array of opportunity objects and a pagination object containing total, page, limit, and totalPages numbers.

find_opportunity

Looks up one opportunity without erroring when nothing matches. Provide at least one of opportunityId, personId, or name. Name matching is exact and case-insensitive. This is a soft lookup: a miss returns found: false and opportunity: null instead of an error. read_opportunity still throws when the ID is missing or inaccessible.

InputTypeRequiredDescription
projectIdintegerYesProject ID from list_projects.
opportunityIdstringNoOpportunity ID.
personIdstringNoContact person ID.
namestringNoExact opportunity name (case-insensitive).
pipelinestringNoRestrict the lookup to this pipeline ID.
pipelineStagestringNoRestrict the lookup to this pipeline stage ID.

Output: { found, opportunity } where opportunity is an opportunity object or null.

read_opportunity

Reads an opportunity by ID. The authenticated user must have access to both CRM opportunities and the opportunity's pipeline.

InputTypeRequiredDescription
projectIdintegerYesProject ID from list_projects.
opportunityIdstringYesOpportunity ID.

Output: An opportunity object.

create_opportunity

Creates an opportunity in a project's default pipeline and initial stage.

InputTypeRequiredDefaultDescription
projectIdintegerYes—Project ID from list_projects.
namestringYes—Non-empty opportunity name.
descriptionstring or nullNonullOpportunity description.
ownerUserIdinteger or nullNonullOwner ID from list_project_users.

Output: The created opportunity object.

update_opportunity

Updates an existing opportunity. Only provided fields change. Pass null to clear the description or owner. At least one field to update is required. The connected user needs edit access to the opportunity's pipeline.

InputTypeRequiredDescription
projectIdintegerYesProject ID from list_projects.
opportunityIdstringYesOpportunity ID.
namestringNoNon-empty opportunity name.
descriptionstring or nullNoOpportunity description, or null to clear it.
ownerUserIdinteger or nullNoOwner ID from list_project_users, or null to clear it.

Output: The updated opportunity object.

Person tools

Start with list_projects, then call these tools with that projectId. Use list_project_users to resolve ownerUserId values. find_person is a soft lookup: a miss returns { found: false, person: null }. get_person fails when the person does not exist.

find_person

Looks up a person by id, email, or phone. At least one of personId, email, or phone is required. A miss is not an error.

InputTypeRequiredDescription
projectIdintegerYesProject ID from list_projects.
personIdstringNoPerson ID from create_person or a prior lookup.
emailstringNoEmail address to match.
phonestringNoPhone number to match.

Output:

FieldTypeDescription
foundbooleanWhether a matching person was found.
personperson object or nullThe person when found is true, otherwise null.

get_person

Loads a person by ID. A missing person is an error. Use find_person when a miss should not fail.

InputTypeRequiredDescription
projectIdintegerYesProject ID from list_projects.
personIdstringYesPerson ID.

Output: A person object.

update_person

Updates an existing person. Only provided fields change. Pass null to clear nullable description, organizationId, ownerUserId, or position. At least one field to update is required. The connected user needs contacts:edit access in the project.

InputTypeRequiredDescription
projectIdintegerYesProject ID from list_projects.
personIdstringYesPerson ID from find_person or create_person.
namestringNoNon-empty person name.
descriptionstring or nullNoPerson description, or null to clear it.
emailsstring[]NoReplacement email list.
organizationIdstring or nullNoOrganization ID, or null to clear it.
ownerUserIdinteger or nullNoOwner ID from list_project_users, or null to clear it.
phonesstring[]NoReplacement phone list.
positionstring or nullNoJob title or position, or null to clear it.
tagsstring[]NoReplacement list of existing People tag IDs.

Output: The updated person object.

create_person

Creates a person in a project. The connected user needs contacts:create access.

InputTypeRequiredDescription
projectIdintegerYesProject ID from list_projects.
namestringYesNon-empty person name.
descriptionstring or nullNoPerson description.
emailsstring[]NoEmail addresses.
organizationIdstring or nullNoOrganization ID.
ownerUserIdinteger or nullNoOwner ID from list_project_users.
phonesstring[]NoPhone numbers.
positionstring or nullNoJob title or position.
tagsstring[]NoExisting People tag IDs. Does not create tags.

Output: The created person object.

Comment tools

Comments are polymorphic: they can be attached to different kinds of Svit.One objects. For task comments, use task as the objectType and a task ID as the objectId.

Supported objectType values are dataset, site, project, task, and conversation.

list_comments

Lists comments attached to an object in a project.

InputTypeRequiredDefaultDescription
projectIdintegerYes—Project ID from list_projects.
objectTypestringYes—One of the supported object types above.
objectIdstringYes—ID of the object, such as an ID from list_tasks.
limitinteger, 1–100No50Maximum number of comments to return.

Output: A comments array of comment objects.

create_comment

Adds a comment to an object in a project.

InputTypeRequiredDefaultDescription
projectIdintegerYes—Project ID from list_projects.
objectTypestringYes—One of the supported object types above.
objectIdstringYes—ID of the object to comment on.
textstringYes—Non-empty comment text.
objectParentIdstring or nullNonullParent object ID when required, such as a dataset ID for a CRM entity.

Output: The created comment object.

Shared result objects

Opportunity object

FieldTypeDescription
idstringOpportunity ID.
namestringOpportunity name.
descriptionstring or nullOpportunity description, if any.
contactPeoplestring[]Contact person IDs.
organizationIdstring or nullOrganization ID, if any.
ownerUserIdinteger or nullOwner user ID, if any.
pipelinestringPipeline ID.
pipelineStagestring or nullPipeline stage ID, if any.
isOpenbooleanWhether the opportunity is open.
createdAtstring or nullCreation time in ISO 8601 format, if available.
updatedAtstring or nullLast update time in ISO 8601 format, if available.

Person object

FieldTypeDescription
idstringPerson ID.
namestringPerson name.
descriptionstring or nullPerson description, if any.
emailsstring[]Email addresses.
organizationIdstring or nullOrganization ID, if any.
ownerUserIdinteger or nullOwner user ID, if any.
phonesstring[]Phone numbers.
positionstring or nullJob title or position, if any.
tagsstring[]Tag IDs.
createdAtstring or nullCreation time in ISO 8601 format, if available.
updatedAtstring or nullLast update time in ISO 8601 format, if available.

Task object

FieldTypeDescription
idstringTask ID.
namestringTask name.
statusstringTask status.
prioritystringTask priority.
descriptionstring or nullTask description.
folderstring or nullFolder ID, if any.
parentTaskstring or nullParent task ID, if any.
assigneeIdsinteger[]IDs of users assigned to the task.
dueDatestring or nullDue date in ISO 8601 format, if any.
startDatestring or nullStart date in ISO 8601 format, if any.
createdAtstring or nullCreation time in ISO 8601 format, if available.
updatedAtstring or nullLast update time in ISO 8601 format, if available.

User object

FieldTypeDescription
idintegerUser ID.
namestring or nullUser's first name.
surnamestring or nullUser's last name.
emailstringUser's email address.
imagestring or nullAvatar URL, if any.

Comment object

FieldTypeDescription
idstringComment ID.
projectIdintegerProject ID.
textstringComment text.
userIdintegerAuthor's user ID.
objectIdstringID of the object the comment is attached to.
objectTypestringType of the attached object.
objectParentIdstring or nullParent object ID, if any.
createdAtstring or nullCreation time in ISO 8601 format, if available.
updatedAtstring or nullLast update time in ISO 8601 format, if available.
userobjectComment author as a user object.

Deployment object

FieldTypeDescription
idintegerDeployment ID.
siteIdintegerSite ID.
statusstringSCHEDULED, DEPLOYING, DEPLOYED, or FAILED.
isActivebooleanWhether this deployment is currently serving the site.
isPrivatebooleanWhether the deployment is private.
subdomainstringPreview subdomain for the deployment.
createdAtstring or nullCreation time in ISO 8601 format, if available.
updatedAtstring or nullLast update time in ISO 8601 format, if available.

Task values

Task statuses are todo, in-progress, review, and done.

Task priorities are high, medium, low, and none.

On this page