@mcp-s/connectors 0.0.20261022190708 → 0.0.20261024071613
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/public/connectors/asana.json +1 -1
- package/dist/public/connectors/azure-devops.json +1 -1
- package/dist/public/connectors/bitbucket-datacenter.json +1 -1
- package/dist/public/connectors/bitbucket.json +1 -1
- package/dist/public/connectors/github.json +1 -1
- package/dist/public/connectors/gmail.json +1 -1
- package/dist/public/connectors/google-calendar.json +1 -1
- package/dist/public/connectors/google-workspace-admin.json +1 -1
- package/dist/public/connectors/google-workspace.json +1 -1
- package/dist/public/connectors/jira-server.json +1 -1
- package/dist/public/connectors/jira.json +1 -1
- package/dist/public/connectors/linear.json +1 -1
- package/dist/public/connectors/linkedin.json +1 -1
- package/dist/public/connectors/monday.json +1 -1
- package/dist/public/connectors/okta.json +1 -1
- package/dist/public/connectors/onedrive.json +1 -1
- package/dist/public/connectors/outlook-calendar.json +1 -1
- package/dist/public/connectors/outlook-mail.json +1 -1
- package/dist/public/connectors/salesforce.json +1 -1
- package/dist/public/connectors/sharepoint.json +1 -1
- package/dist/public/connectors/slack.json +1 -1
- package/dist/public/connectors/zendesk.json +1 -1
- package/dist/public/connectors/zoom.json +1 -1
- package/dist/public/index.json +24 -24
- package/dist/schema/auth.d.ts +27 -0
- package/dist/schema/auth.js +15 -0
- package/dist/schema/catalog.d.ts +12 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"zendesk","status":"active","internal_status":"tool-works","applications":["zendesk"],"definition":{"display":{"name":"Zendesk","description":"Zendesk is a customer service platform that provides ticketing, messaging, live chat, and help center solutions for customer support teams.","icon":"zendesk.svg","website":"https://www.zendesk.com","category":"customer-support-helpdesk","docs_url":"https://docs.withwillow.ai/docs/mcp-servers/built-in/zendesk"},"api":{"base_url":""},"configuration":{"type":"object","properties":{"subdomain":{"type":"string","title":"Zendesk Subdomain"}},"required":["subdomain"]},"auth":{"methods":{"oauth":{"authUrlMapping":"\"https://\" & subdomain & \".zendesk.com/oauth/authorizations/new\"","tokenUrlMapping":"\"https://\" & subdomain & \".zendesk.com/oauth/tokens\"","scopes":["read","write","tickets:read","tickets:write","users:read","users:write","organizations:read","organizations:write","hc:read","hc:write"],"defaultScopes":["read","write"],"pkce":true,"codeExchangeConfig":{"modelCredentialsMapping":"{\n \"access_token\": access_token,\n \"expires_at\": $fromMillis($millis() + expires_in * 1000),\n \"refresh_token\": refresh_token,\n \"scope\": scope,\n \"token_type\": token_type\n}","isForm":true}},"apiKey":{"headerName":"Authorization","authorizationMapping":"\"Basic \" & $base64encode(token)"}}},"tools":[{"name":"List Tickets","description":"Get a paginated list of all tickets in Zendesk. Returns tickets with their status, priority, subject, requester, assignee, and other core fields. Use cursor-based pagination for large result sets. Note: For incremental exports of all tickets, consider using the Incremental Export API instead.","slug":"list_tickets","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves a paginated list of tickets, providing read-only access to ticket data without modifying any resources.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"page_size":{"type":"integer","description":"Number of items per page (max 100, default: 100)","default":100},"page_after":{"type":"string","description":"Cursor for next page of results (from previous response)"},"sort_by":{"type":"string","description":"Sort tickets by field (e.g., 'created_at', 'updated_at')","enum":["created_at","updated_at","priority","status"]},"sort_order":{"type":"string","description":"Sort order","enum":["asc","desc"],"default":"desc"}},"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/tickets","method":"GET","mapping":{"params":"{ \"subdomain\": settings.subdomain }","query":"$sift({\n \"page[size]\": arguments.page_size ? $string(arguments.page_size) : \"100\",\n \"page[after]\": arguments.page_after,\n \"sort_by\": arguments.sort_by,\n \"sort_order\": arguments.sort_order\n }, function($v) { $v != null })"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"Search Tickets","description":"Search for tickets using Zendesk's powerful search query syntax. You can search by keywords, filter by status, priority, tags, dates, and more. Examples: 'printer' finds tickets with 'printer', 'status:open priority:high' finds open high-priority tickets, 'created>2024-01-01' finds recent tickets. Returns up to 1,000 results with pagination. Use this when you need to find specific tickets based on criteria.","slug":"search_tickets","ai_risk":{"level":"low","score":1,"reasoning":"This tool allows for searching tickets based on various criteria, providing read-only access to ticket information.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search query using Zendesk search syntax (e.g., 'status:open priority:high', 'tag:urgent', 'created>2024-01-01')"},"page_size":{"type":"integer","description":"Number of results per page (max 100, default: 100)","default":100},"page":{"type":"integer","description":"Page number for pagination (default: 1)","default":1}},"required":["query"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/search","method":"GET","mapping":{"params":"{ \"subdomain\": settings.subdomain }","query":"{\n \"query\": arguments.query & \" type:ticket\",\n \"per_page\": arguments.page_size ? $string(arguments.page_size) : \"100\",\n \"page\": arguments.page ? $string(arguments.page) : \"1\"\n }"}},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"Get Ticket","description":"Retrieve detailed information about a specific ticket by its ID. Returns complete ticket data including status, priority, subject, description, requester, assignee, collaborators, tags, custom fields, and timestamps. Use this when you need full details about a known ticket.","slug":"get_ticket","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves detailed information about a specific ticket, functioning in a read-only capacity.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"ticket_id":{"type":"integer","description":"The ID of the ticket to retrieve"}},"required":["ticket_id"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/tickets/{ticket_id}","method":"GET","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"ticket_id\": arguments.ticket_id\n }"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"Create Ticket","description":"Create a new support ticket in Zendesk. You must provide a subject and description (as a comment). Optionally specify priority (urgent, high, normal, low), status (new, open, pending, hold, solved, closed), type (problem, incident, question, task), tags, assignee, and custom fields. The requester is typically the customer requesting support. Use this to create new support requests programmatically.","slug":"create_ticket","ai_risk":{"level":"medium","score":5,"reasoning":"This tool creates new support tickets, which involves standard CRUD operations on business data, posing a medium risk.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"subject":{"type":"string","description":"The ticket subject/title"},"description":{"type":"string","description":"The ticket description (becomes the first comment/message)"},"requester_id":{"type":"integer","description":"ID of the user requesting support (if not provided, uses authenticated user)"},"priority":{"type":"string","description":"Ticket priority","enum":["urgent","high","normal","low"]},"status":{"type":"string","description":"Ticket status","enum":["new","open","pending","hold","solved","closed"]},"type":{"type":"string","description":"Ticket type","enum":["problem","incident","question","task"]},"tags":{"type":"array","description":"Array of tags to add to the ticket","items":{"type":"string"}},"assignee_id":{"type":"integer","description":"ID of the agent to assign the ticket to"},"group_id":{"type":"integer","description":"ID of the group to assign the ticket to"}},"required":["subject","description"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/tickets","method":"POST","mapping":{"params":"{ \"subdomain\": settings.subdomain }","body":"{\n \"ticket\": $sift({\n \"subject\": arguments.subject,\n \"comment\": { \"body\": arguments.description },\n \"requester_id\": arguments.requester_id,\n \"priority\": arguments.priority,\n \"status\": arguments.status,\n \"type\": arguments.type,\n \"tags\": arguments.tags,\n \"assignee_id\": arguments.assignee_id,\n \"group_id\": arguments.group_id\n }, function($v) { $v != null })\n }"}},"annotations":{"destructiveHint":true}},{"name":"Update Ticket","description":"Update an existing ticket's properties and optionally add a comment. You can modify status, priority, subject, assignee, tags, custom fields, and more. To add a comment to the ticket, include the comment_body parameter. Comments can be public (visible to end users) or private (agent-only). Use this to change ticket properties or add follow-up messages.","slug":"update_ticket","ai_risk":{"level":"medium","score":5,"reasoning":"This tool updates existing ticket properties, representing a standard CRUD operation that modifies business data.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"ticket_id":{"type":"integer","description":"The ID of the ticket to update"},"subject":{"type":"string","description":"Update the ticket subject"},"comment_body":{"type":"string","description":"Add a comment to the ticket"},"comment_public":{"type":"boolean","description":"Whether the comment is public (visible to requester) or private (agent-only). Default: true","default":true},"status":{"type":"string","description":"Update ticket status","enum":["new","open","pending","hold","solved","closed"]},"priority":{"type":"string","description":"Update ticket priority","enum":["urgent","high","normal","low"]},"assignee_id":{"type":"integer","description":"Assign to a different agent"},"group_id":{"type":"integer","description":"Assign to a different group"},"tags":{"type":"array","description":"Set tags (replaces existing tags)","items":{"type":"string"}}},"required":["ticket_id"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/tickets/{ticket_id}","method":"PUT","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"ticket_id\": arguments.ticket_id\n }","body":"{\n \"ticket\": $sift({\n \"subject\": arguments.subject,\n \"comment\": arguments.comment_body ? {\n \"body\": arguments.comment_body,\n \"public\": arguments.comment_public\n } : undefined,\n \"status\": arguments.status,\n \"priority\": arguments.priority,\n \"assignee_id\": arguments.assignee_id,\n \"group_id\": arguments.group_id,\n \"tags\": arguments.tags\n }, function($v) { $v != null })\n }"}},"annotations":{"destructiveHint":true,"idempotentHint":true}},{"name":"Delete Ticket","description":"Permanently delete a ticket from Zendesk. This action cannot be undone. Use with caution. Tickets are typically solved or closed rather than deleted. Only use this for test tickets or spam. Requires appropriate permissions.","slug":"delete_ticket","ai_risk":{"level":"high","score":8,"reasoning":"This tool permanently deletes tickets, an irreversible action that poses a high risk to data integrity.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":false,"inputSchema":{"type":"object","properties":{"ticket_id":{"type":"integer","description":"The ID of the ticket to delete"}},"required":["ticket_id"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/tickets/{ticket_id}","method":"DELETE","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"ticket_id\": arguments.ticket_id\n }"}},"annotations":{"destructiveHint":true}},{"name":"List Ticket Comments","description":"Retrieve all comments (conversation history) for a specific ticket. Comments include messages from the requester, agents, and collaborators. Each comment shows the author, timestamp, body text, and whether it's public or private. Comments are ordered chronologically. Use this to review the full conversation history of a ticket.","slug":"list_ticket_comments","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves all comments for a specific ticket, providing read-only access to conversation history.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"ticket_id":{"type":"integer","description":"The ID of the ticket"},"sort_order":{"type":"string","description":"Sort comments by creation time","enum":["asc","desc"],"default":"asc"}},"required":["ticket_id"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/tickets/{ticket_id}/comments","method":"GET","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"ticket_id\": arguments.ticket_id\n }","query":"{\n \"sort_order\": arguments.sort_order\n }"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"Add Ticket Comment","description":"Add a new comment to an existing ticket. This is an alternative to using Update Ticket for adding comments. You can specify whether the comment is public (visible to the requester) or private (agent-only internal note). Use this to respond to tickets or add internal notes.","slug":"add_ticket_comment","ai_risk":{"level":"medium","score":5,"reasoning":"This tool adds comments to existing tickets, representing a standard CRUD operation that modifies ticket data.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"ticket_id":{"type":"integer","description":"The ID of the ticket"},"body":{"type":"string","description":"The comment text/message"},"public":{"type":"boolean","description":"Whether the comment is public (visible to requester) or private (internal note). Default: true","default":true}},"required":["ticket_id","body"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/tickets/{ticket_id}","method":"PUT","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"ticket_id\": arguments.ticket_id\n }","body":"{\n \"ticket\": {\n \"comment\": {\n \"body\": arguments.body,\n \"public\": arguments.public\n }\n }\n }"}},"annotations":{"destructiveHint":true}},{"name":"List Users","description":"Get a paginated list of all users in Zendesk. Users can be end users (customers), agents, or administrators. Filter by role to get specific user types. Returns user details including name, email, role, organization, and activity status. Use cursor-based pagination for large user lists.","slug":"list_users","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves a paginated list of users, providing read-only access to user data.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"role":{"type":"string","description":"Filter by user role","enum":["end-user","agent","admin"]},"page_size":{"type":"integer","description":"Number of users per page (max 100, default: 100)","default":100},"page_after":{"type":"string","description":"Cursor for next page of results"}},"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/users","method":"GET","mapping":{"params":"{ \"subdomain\": settings.subdomain }","query":"$sift({\n \"role\": arguments.role,\n \"page[size]\": arguments.page_size ? $string(arguments.page_size) : \"100\",\n \"page[after]\": arguments.page_after\n }, function($v) { $v != null })"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"Search Users","description":"Search for users by query string. Searches across user name, email, phone, and other fields. Returns matching users with their details. Use this when you need to find specific users but don't have their ID. Example queries: email address, phone number, or partial name.","slug":"search_users","ai_risk":{"level":"low","score":1,"reasoning":"This tool allows for searching users based on various criteria, providing read-only access to user information.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search query (searches name, email, phone, external_id, tags, notes, and role)"},"page_size":{"type":"integer","description":"Number of results per page (max 100, default: 100)","default":100},"page":{"type":"integer","description":"Page number","default":1}},"required":["query"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/search","method":"GET","mapping":{"params":"{ \"subdomain\": settings.subdomain }","query":"{\n \"query\": arguments.query & \" type:user\",\n \"per_page\": arguments.page_size ? $string(arguments.page_size) : \"100\",\n \"page\": arguments.page ? $string(arguments.page) : \"1\"\n }"}},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"Get User","description":"Retrieve detailed information about a specific user by their ID. Returns complete user profile including name, email, phone, role, organization, time zone, locale, tags, custom fields, and more. Use this to get full details about a known user.","slug":"get_user","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves detailed information about a specific user, functioning in a read-only capacity.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"user_id":{"type":"integer","description":"The ID of the user to retrieve"}},"required":["user_id"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/users/{user_id}","method":"GET","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"user_id\": arguments.user_id\n }"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"Create User","description":"Create a new user in Zendesk. You must provide a name and email. Optionally specify role (end-user, agent, admin), phone, organization, time zone, and other properties. By default, creates an end user (customer). Use this to add new customers or team members to Zendesk.","slug":"create_user","ai_risk":{"level":"medium","score":5,"reasoning":"This tool creates new users in Zendesk, which involves standard CRUD operations on user data, posing a medium risk.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"User's full name"},"email":{"type":"string","description":"User's email address"},"role":{"type":"string","description":"User role (default: end-user)","enum":["end-user","agent","admin"],"default":"end-user"},"phone":{"type":"string","description":"User's phone number (E.164 format recommended)"},"organization_id":{"type":"integer","description":"ID of the organization to associate the user with"},"time_zone":{"type":"string","description":"User's time zone (e.g., 'Pacific Time (US & Canada)')"},"verified":{"type":"boolean","description":"Whether the user's email is verified (default: false)","default":false}},"required":["name","email"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/users","method":"POST","mapping":{"params":"{ \"subdomain\": settings.subdomain }","body":"{\n \"user\": $sift({\n \"name\": arguments.name,\n \"email\": arguments.email,\n \"role\": arguments.role,\n \"phone\": arguments.phone,\n \"organization_id\": arguments.organization_id,\n \"time_zone\": arguments.time_zone,\n \"verified\": arguments.verified\n }, function($v) { $v != null })\n }"}},"annotations":{"destructiveHint":true}},{"name":"Update User","description":"Update an existing user's properties. You can modify name, email, phone, role, organization, time zone, tags, and other fields. Use this to update user information or change user status (e.g., suspend a user).","slug":"update_user","ai_risk":{"level":"medium","score":5,"reasoning":"This tool updates existing user properties, representing a standard CRUD operation that modifies user data.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"user_id":{"type":"integer","description":"The ID of the user to update"},"name":{"type":"string","description":"Update user's name"},"phone":{"type":"string","description":"Update user's phone number"},"role":{"type":"string","description":"Update user's role","enum":["end-user","agent","admin"]},"organization_id":{"type":"integer","description":"Change user's organization"},"time_zone":{"type":"string","description":"Update user's time zone"},"suspended":{"type":"boolean","description":"Suspend or unsuspend the user (suspended users cannot create tickets)"}},"required":["user_id"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/users/{user_id}","method":"PUT","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"user_id\": arguments.user_id\n }","body":"{\n \"user\": $sift({\n \"name\": arguments.name,\n \"phone\": arguments.phone,\n \"role\": arguments.role,\n \"organization_id\": arguments.organization_id,\n \"time_zone\": arguments.time_zone,\n \"suspended\": arguments.suspended\n }, function($v) { $v != null })\n }"}},"annotations":{"destructiveHint":true,"idempotentHint":true}},{"name":"List Organizations","description":"Get a paginated list of all organizations in Zendesk. Organizations group end users together (e.g., by company or customer account). Returns organization details including name, domain names, notes, and custom fields. Use cursor-based pagination for large lists.","slug":"list_organizations","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves a paginated list of organizations, providing read-only access to organization data.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"page_size":{"type":"integer","description":"Number of organizations per page (max 100, default: 100)","default":100},"page_after":{"type":"string","description":"Cursor for next page of results"}},"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/organizations","method":"GET","mapping":{"params":"{ \"subdomain\": settings.subdomain }","query":"$sift({\n \"page[size]\": arguments.page_size ? $string(arguments.page_size) : \"100\",\n \"page[after]\": arguments.page_after\n }, function($v) { $v != null })"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"Get Organization","description":"Retrieve detailed information about a specific organization by its ID. Returns complete organization data including name, domain names, notes, tags, custom fields, and associated users. Use this to get full details about a known organization.","slug":"get_organization","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves detailed information about a specific organization, functioning in a read-only capacity.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"organization_id":{"type":"integer","description":"The ID of the organization to retrieve"}},"required":["organization_id"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/organizations/{organization_id}","method":"GET","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"organization_id\": arguments.organization_id\n }"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"Create Organization","description":"Create a new organization in Zendesk. You must provide a name. Optionally specify domain names (for auto-assignment of users), notes, tags, and custom fields. Organizations help group related users together. Use this to add new customer companies or departments.","slug":"create_organization","ai_risk":{"level":"medium","score":5,"reasoning":"This tool creates new organizations in Zendesk, which involves standard CRUD operations on organizational data, posing a medium risk.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Organization name"},"domain_names":{"type":"array","description":"Email domains associated with this organization (users with these domains will be auto-assigned)","items":{"type":"string"}},"notes":{"type":"string","description":"Internal notes about the organization"},"tags":{"type":"array","description":"Tags to organize the organization","items":{"type":"string"}}},"required":["name"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/organizations","method":"POST","mapping":{"params":"{ \"subdomain\": settings.subdomain }","body":"{\n \"organization\": $sift({\n \"name\": arguments.name,\n \"domain_names\": arguments.domain_names,\n \"notes\": arguments.notes,\n \"tags\": arguments.tags\n }, function($v) { $v != null })\n }"}},"annotations":{"destructiveHint":true}},{"name":"Update Organization","description":"Update an existing organization's properties. You can modify name, domain names, notes, tags, and custom fields. Use this to update organization information or change organizational structure.","slug":"update_organization","ai_risk":{"level":"medium","score":5,"reasoning":"This tool updates existing organization properties, representing a standard CRUD operation that modifies organizational data.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"organization_id":{"type":"integer","description":"The ID of the organization to update"},"name":{"type":"string","description":"Update organization name"},"domain_names":{"type":"array","description":"Update associated email domains","items":{"type":"string"}},"notes":{"type":"string","description":"Update internal notes"},"tags":{"type":"array","description":"Set tags (replaces existing tags)","items":{"type":"string"}}},"required":["organization_id"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/organizations/{organization_id}","method":"PUT","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"organization_id\": arguments.organization_id\n }","body":"{\n \"organization\": $sift({\n \"name\": arguments.name,\n \"domain_names\": arguments.domain_names,\n \"notes\": arguments.notes,\n \"tags\": arguments.tags\n }, function($v) { $v != null })\n }"}},"annotations":{"destructiveHint":true,"idempotentHint":true}},{"name":"List Macros","description":"Get a list of all macros available in Zendesk. Macros are pre-defined actions that agents can apply to tickets to quickly perform common tasks (e.g., responding to common questions, updating ticket properties). Returns macro titles, descriptions, and actions. Use this to discover available macros for automation.","slug":"list_macros","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves a list of all macros, providing read-only access to automation tools without modifying any resources.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"page_size":{"type":"integer","description":"Number of macros per page (max 100, default: 100)","default":100},"page_after":{"type":"string","description":"Cursor for next page of results"},"active":{"type":"boolean","description":"Filter by active status (true = active only)"}},"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/macros","method":"GET","mapping":{"params":"{ \"subdomain\": settings.subdomain }","query":"$sift({\n \"page[size]\": arguments.page_size ? $string(arguments.page_size) : \"100\",\n \"page[after]\": arguments.page_after,\n \"active\": arguments.active ? \"true\" : undefined\n }, function($v) { $v != null })"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"List Triggers","description":"Get a list of all triggers configured in Zendesk. Triggers are automatic actions that fire when tickets are created or updated, based on specified conditions (e.g., auto-assign tickets with certain tags, send notifications). Returns trigger titles, conditions, and actions. Use this to review automation rules.","slug":"list_triggers","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves a list of all triggers, providing read-only access to automation rules without modifying any resources.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"page_size":{"type":"integer","description":"Number of triggers per page (max 100, default: 100)","default":100},"page_after":{"type":"string","description":"Cursor for next page of results"},"active":{"type":"boolean","description":"Filter by active status (true = active only)"}},"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/triggers","method":"GET","mapping":{"params":"{ \"subdomain\": settings.subdomain }","query":"$sift({\n \"page[size]\": arguments.page_size ? $string(arguments.page_size) : \"100\",\n \"page[after]\": arguments.page_after,\n \"active\": arguments.active ? \"true\" : undefined\n }, function($v) { $v != null })"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"List Automations","description":"Get a list of all automations configured in Zendesk. Automations are time-based actions that run on tickets that meet certain conditions (e.g., close tickets after 7 days of being solved, escalate pending tickets after 24 hours). Returns automation titles, conditions, and actions. Use this to review time-based automation rules.","slug":"list_automations","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves a list of all automations, providing read-only access to time-based actions without modifying any resources.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"page_size":{"type":"integer","description":"Number of automations per page (max 100, default: 100)","default":100},"page_after":{"type":"string","description":"Cursor for next page of results"},"active":{"type":"boolean","description":"Filter by active status (true = active only)"}},"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/automations","method":"GET","mapping":{"params":"{ \"subdomain\": settings.subdomain }","query":"$sift({\n \"page[size]\": arguments.page_size ? $string(arguments.page_size) : \"100\",\n \"page[after]\": arguments.page_after,\n \"active\": arguments.active ? \"true\" : undefined\n }, function($v) { $v != null })"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"List Views","description":"Get a list of all ticket views configured in Zendesk. Views are saved filters that display tickets matching specific criteria (e.g., 'My open tickets', 'Urgent tickets', 'Pending tickets'). Returns view titles, conditions, and availability. Use this to discover available views for organizing tickets.","slug":"list_views","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves a list of all ticket views, providing read-only access to saved filters without modifying any resources.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"page_size":{"type":"integer","description":"Number of views per page (max 100, default: 100)","default":100},"page_after":{"type":"string","description":"Cursor for next page of results"},"active":{"type":"boolean","description":"Filter by active status (true = active only)"}},"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/views","method":"GET","mapping":{"params":"{ \"subdomain\": settings.subdomain }","query":"$sift({\n \"page[size]\": arguments.page_size ? $string(arguments.page_size) : \"100\",\n \"page[after]\": arguments.page_after,\n \"active\": arguments.active ? \"true\" : undefined\n }, function($v) { $v != null })"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"List Groups","description":"Get a list of all agent groups in Zendesk. Groups organize agents into teams (e.g., Sales Support, Technical Support, Billing). Tickets can be assigned to groups. Returns group names, descriptions, and member counts. Use this to discover available groups for ticket assignment.","slug":"list_groups","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves a list of all agent groups, providing read-only access to group data without modifying any resources.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"page_size":{"type":"integer","description":"Number of groups per page (max 100, default: 100)","default":100},"page_after":{"type":"string","description":"Cursor for next page of results"}},"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/groups","method":"GET","mapping":{"params":"{ \"subdomain\": settings.subdomain }","query":"$sift({\n \"page[size]\": arguments.page_size ? $string(arguments.page_size) : \"100\",\n \"page[after]\": arguments.page_after\n }, function($v) { $v != null })"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"Get Group","description":"Retrieve detailed information about a specific group by its ID. Returns complete group data including name, description, member agents, and settings. Use this to get full details about a known group.","slug":"get_group","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves detailed information about a specific group, functioning in a read-only capacity.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"group_id":{"type":"integer","description":"The ID of the group to retrieve"}},"required":["group_id"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/groups/{group_id}","method":"GET","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"group_id\": arguments.group_id\n }"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"Add Tags to Ticket","description":"Add one or more tags to a ticket. Tags are labels used to categorize and organize tickets (e.g., 'billing', 'bug', 'feature-request', 'urgent'). Tags can be used in triggers, automations, and views for filtering and routing. This operation adds tags without removing existing ones. Note: Cannot modify tags on closed tickets via this endpoint.","slug":"add_tags_to_ticket","ai_risk":{"level":"medium","score":5,"reasoning":"This tool adds tags to tickets, representing a standard CRUD operation that modifies ticket data.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"ticket_id":{"type":"integer","description":"The ID of the ticket"},"tags":{"type":"array","description":"Array of tags to add to the ticket","items":{"type":"string"}}},"required":["ticket_id","tags"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/tickets/{ticket_id}/tags","method":"PUT","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"ticket_id\": arguments.ticket_id\n }","body":"{\n \"tags\": arguments.tags\n }"}},"annotations":{"destructiveHint":true}},{"name":"Remove Tags from Ticket","description":"Remove one or more tags from a ticket. Specify the tags you want to remove; other tags remain unchanged. Use this to clean up or recategorize tickets. Note: Cannot modify tags on closed tickets via this endpoint.","slug":"remove_tags_from_ticket","ai_risk":{"level":"medium","score":5,"reasoning":"This tool removes tags from tickets, representing a standard CRUD operation that modifies ticket data.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"ticket_id":{"type":"integer","description":"The ID of the ticket"},"tags":{"type":"array","description":"Array of tags to remove from the ticket","items":{"type":"string"}}},"required":["ticket_id","tags"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/tickets/{ticket_id}/tags","method":"DELETE","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"ticket_id\": arguments.ticket_id\n }","body":"{\n \"tags\": arguments.tags\n }"}},"annotations":{"destructiveHint":true}},{"name":"Upload Attachment","description":"Upload a file to Zendesk for later attachment to a ticket comment. This is step 1 of a 2-step process: first upload the file to get a token, then use that token when creating or updating a ticket with a comment. Returns an upload token that expires after a period of time. Supports files up to 50 MB. Use this when you need to attach files to tickets.","slug":"upload_attachment","ai_risk":{"level":"medium","score":5,"reasoning":"This tool uploads files for later attachment to tickets, representing a standard CRUD operation that modifies ticket data.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"filename":{"type":"string","description":"Name of the file being uploaded"},"content_type":{"type":"string","description":"MIME type of the file (e.g., 'image/png', 'application/pdf')"},"content":{"type":"string","description":"Base64-encoded file content"}},"required":["filename","content"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/uploads","method":"POST","mapping":{"params":"{ \"subdomain\": settings.subdomain }","query":"{\n \"filename\": arguments.filename\n }","body":"arguments.content"}},"annotations":{"destructiveHint":true}},{"name":"List Ticket Attachments","description":"Get a list of all attachments associated with a specific ticket. Attachments are files that have been uploaded and attached to ticket comments. Returns attachment metadata including filename, size, content type, and download URL. Use this to discover what files have been shared in a ticket conversation.","slug":"list_ticket_attachments","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves a list of all attachments associated with a specific ticket, providing read-only access to attachment metadata.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"ticket_id":{"type":"integer","description":"The ID of the ticket"}},"required":["ticket_id"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/tickets/{ticket_id}/comments","method":"GET","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"ticket_id\": arguments.ticket_id\n }","query":"{\n \"include\": \"attachments\"\n }"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}}]}}
|
|
1
|
+
{"id":"zendesk","status":"active","internal_status":"tool-works","applications":["zendesk"],"definition":{"display":{"name":"Zendesk","description":"Zendesk is a customer service platform that provides ticketing, messaging, live chat, and help center solutions for customer support teams.","icon":"zendesk.svg","website":"https://www.zendesk.com","category":"customer-support-helpdesk","docs_url":"https://docs.withwillow.ai/docs/mcp-servers/built-in/zendesk"},"api":{"base_url":""},"configuration":{"type":"object","properties":{"subdomain":{"type":"string","title":"Zendesk Subdomain"}},"required":["subdomain"]},"auth":{"methods":{"oauth":{"authUrlMapping":"\"https://\" & subdomain & \".zendesk.com/oauth/authorizations/new\"","tokenUrlMapping":"\"https://\" & subdomain & \".zendesk.com/oauth/tokens\"","scopes":["read","write","tickets:read","tickets:write","users:read","users:write","organizations:read","organizations:write","hc:read","hc:write"],"defaultScopes":["read","write"],"scopeTemplates":[{"id":"read-only","name":"Read-only","description":"Read and search tickets, comments, users, organizations, groups, macros, views, triggers and automations. Can't change anything.","scopes":["read"]},{"id":"tickets","name":"Tickets only","description":"Create, update, tag and comment on tickets, and look up users and organizations. Macros, views, groups and admin settings stay off.","scopes":["tickets:read","tickets:write","users:read","organizations:read"]},{"id":"full-access","name":"Full access","description":"Read and write every Zendesk resource the user can access, including users and organizations.","scopes":["read","write"]}],"pkce":true,"codeExchangeConfig":{"modelCredentialsMapping":"{\n \"access_token\": access_token,\n \"expires_at\": $fromMillis($millis() + expires_in * 1000),\n \"refresh_token\": refresh_token,\n \"scope\": scope,\n \"token_type\": token_type\n}","isForm":true}},"apiKey":{"headerName":"Authorization","authorizationMapping":"\"Basic \" & $base64encode(token)"}}},"tools":[{"name":"List Tickets","description":"Get a paginated list of all tickets in Zendesk. Returns tickets with their status, priority, subject, requester, assignee, and other core fields. Use cursor-based pagination for large result sets. Note: For incremental exports of all tickets, consider using the Incremental Export API instead.","slug":"list_tickets","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves a paginated list of tickets, providing read-only access to ticket data without modifying any resources.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"page_size":{"type":"integer","description":"Number of items per page (max 100, default: 100)","default":100},"page_after":{"type":"string","description":"Cursor for next page of results (from previous response)"},"sort_by":{"type":"string","description":"Sort tickets by field (e.g., 'created_at', 'updated_at')","enum":["created_at","updated_at","priority","status"]},"sort_order":{"type":"string","description":"Sort order","enum":["asc","desc"],"default":"desc"}},"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/tickets","method":"GET","mapping":{"params":"{ \"subdomain\": settings.subdomain }","query":"$sift({\n \"page[size]\": arguments.page_size ? $string(arguments.page_size) : \"100\",\n \"page[after]\": arguments.page_after,\n \"sort_by\": arguments.sort_by,\n \"sort_order\": arguments.sort_order\n }, function($v) { $v != null })"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"Search Tickets","description":"Search for tickets using Zendesk's powerful search query syntax. You can search by keywords, filter by status, priority, tags, dates, and more. Examples: 'printer' finds tickets with 'printer', 'status:open priority:high' finds open high-priority tickets, 'created>2024-01-01' finds recent tickets. Returns up to 1,000 results with pagination. Use this when you need to find specific tickets based on criteria.","slug":"search_tickets","ai_risk":{"level":"low","score":1,"reasoning":"This tool allows for searching tickets based on various criteria, providing read-only access to ticket information.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search query using Zendesk search syntax (e.g., 'status:open priority:high', 'tag:urgent', 'created>2024-01-01')"},"page_size":{"type":"integer","description":"Number of results per page (max 100, default: 100)","default":100},"page":{"type":"integer","description":"Page number for pagination (default: 1)","default":1}},"required":["query"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/search","method":"GET","mapping":{"params":"{ \"subdomain\": settings.subdomain }","query":"{\n \"query\": arguments.query & \" type:ticket\",\n \"per_page\": arguments.page_size ? $string(arguments.page_size) : \"100\",\n \"page\": arguments.page ? $string(arguments.page) : \"1\"\n }"}},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"Get Ticket","description":"Retrieve detailed information about a specific ticket by its ID. Returns complete ticket data including status, priority, subject, description, requester, assignee, collaborators, tags, custom fields, and timestamps. Use this when you need full details about a known ticket.","slug":"get_ticket","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves detailed information about a specific ticket, functioning in a read-only capacity.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"ticket_id":{"type":"integer","description":"The ID of the ticket to retrieve"}},"required":["ticket_id"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/tickets/{ticket_id}","method":"GET","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"ticket_id\": arguments.ticket_id\n }"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"Create Ticket","description":"Create a new support ticket in Zendesk. You must provide a subject and description (as a comment). Optionally specify priority (urgent, high, normal, low), status (new, open, pending, hold, solved, closed), type (problem, incident, question, task), tags, assignee, and custom fields. The requester is typically the customer requesting support. Use this to create new support requests programmatically.","slug":"create_ticket","ai_risk":{"level":"medium","score":5,"reasoning":"This tool creates new support tickets, which involves standard CRUD operations on business data, posing a medium risk.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"subject":{"type":"string","description":"The ticket subject/title"},"description":{"type":"string","description":"The ticket description (becomes the first comment/message)"},"requester_id":{"type":"integer","description":"ID of the user requesting support (if not provided, uses authenticated user)"},"priority":{"type":"string","description":"Ticket priority","enum":["urgent","high","normal","low"]},"status":{"type":"string","description":"Ticket status","enum":["new","open","pending","hold","solved","closed"]},"type":{"type":"string","description":"Ticket type","enum":["problem","incident","question","task"]},"tags":{"type":"array","description":"Array of tags to add to the ticket","items":{"type":"string"}},"assignee_id":{"type":"integer","description":"ID of the agent to assign the ticket to"},"group_id":{"type":"integer","description":"ID of the group to assign the ticket to"}},"required":["subject","description"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/tickets","method":"POST","mapping":{"params":"{ \"subdomain\": settings.subdomain }","body":"{\n \"ticket\": $sift({\n \"subject\": arguments.subject,\n \"comment\": { \"body\": arguments.description },\n \"requester_id\": arguments.requester_id,\n \"priority\": arguments.priority,\n \"status\": arguments.status,\n \"type\": arguments.type,\n \"tags\": arguments.tags,\n \"assignee_id\": arguments.assignee_id,\n \"group_id\": arguments.group_id\n }, function($v) { $v != null })\n }"}},"annotations":{"destructiveHint":true}},{"name":"Update Ticket","description":"Update an existing ticket's properties and optionally add a comment. You can modify status, priority, subject, assignee, tags, custom fields, and more. To add a comment to the ticket, include the comment_body parameter. Comments can be public (visible to end users) or private (agent-only). Use this to change ticket properties or add follow-up messages.","slug":"update_ticket","ai_risk":{"level":"medium","score":5,"reasoning":"This tool updates existing ticket properties, representing a standard CRUD operation that modifies business data.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"ticket_id":{"type":"integer","description":"The ID of the ticket to update"},"subject":{"type":"string","description":"Update the ticket subject"},"comment_body":{"type":"string","description":"Add a comment to the ticket"},"comment_public":{"type":"boolean","description":"Whether the comment is public (visible to requester) or private (agent-only). Default: true","default":true},"status":{"type":"string","description":"Update ticket status","enum":["new","open","pending","hold","solved","closed"]},"priority":{"type":"string","description":"Update ticket priority","enum":["urgent","high","normal","low"]},"assignee_id":{"type":"integer","description":"Assign to a different agent"},"group_id":{"type":"integer","description":"Assign to a different group"},"tags":{"type":"array","description":"Set tags (replaces existing tags)","items":{"type":"string"}}},"required":["ticket_id"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/tickets/{ticket_id}","method":"PUT","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"ticket_id\": arguments.ticket_id\n }","body":"{\n \"ticket\": $sift({\n \"subject\": arguments.subject,\n \"comment\": arguments.comment_body ? {\n \"body\": arguments.comment_body,\n \"public\": arguments.comment_public\n } : undefined,\n \"status\": arguments.status,\n \"priority\": arguments.priority,\n \"assignee_id\": arguments.assignee_id,\n \"group_id\": arguments.group_id,\n \"tags\": arguments.tags\n }, function($v) { $v != null })\n }"}},"annotations":{"destructiveHint":true,"idempotentHint":true}},{"name":"Delete Ticket","description":"Permanently delete a ticket from Zendesk. This action cannot be undone. Use with caution. Tickets are typically solved or closed rather than deleted. Only use this for test tickets or spam. Requires appropriate permissions.","slug":"delete_ticket","ai_risk":{"level":"high","score":8,"reasoning":"This tool permanently deletes tickets, an irreversible action that poses a high risk to data integrity.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":false,"inputSchema":{"type":"object","properties":{"ticket_id":{"type":"integer","description":"The ID of the ticket to delete"}},"required":["ticket_id"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/tickets/{ticket_id}","method":"DELETE","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"ticket_id\": arguments.ticket_id\n }"}},"annotations":{"destructiveHint":true}},{"name":"List Ticket Comments","description":"Retrieve all comments (conversation history) for a specific ticket. Comments include messages from the requester, agents, and collaborators. Each comment shows the author, timestamp, body text, and whether it's public or private. Comments are ordered chronologically. Use this to review the full conversation history of a ticket.","slug":"list_ticket_comments","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves all comments for a specific ticket, providing read-only access to conversation history.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"ticket_id":{"type":"integer","description":"The ID of the ticket"},"sort_order":{"type":"string","description":"Sort comments by creation time","enum":["asc","desc"],"default":"asc"}},"required":["ticket_id"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/tickets/{ticket_id}/comments","method":"GET","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"ticket_id\": arguments.ticket_id\n }","query":"{\n \"sort_order\": arguments.sort_order\n }"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"Add Ticket Comment","description":"Add a new comment to an existing ticket. This is an alternative to using Update Ticket for adding comments. You can specify whether the comment is public (visible to the requester) or private (agent-only internal note). Use this to respond to tickets or add internal notes.","slug":"add_ticket_comment","ai_risk":{"level":"medium","score":5,"reasoning":"This tool adds comments to existing tickets, representing a standard CRUD operation that modifies ticket data.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"ticket_id":{"type":"integer","description":"The ID of the ticket"},"body":{"type":"string","description":"The comment text/message"},"public":{"type":"boolean","description":"Whether the comment is public (visible to requester) or private (internal note). Default: true","default":true}},"required":["ticket_id","body"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/tickets/{ticket_id}","method":"PUT","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"ticket_id\": arguments.ticket_id\n }","body":"{\n \"ticket\": {\n \"comment\": {\n \"body\": arguments.body,\n \"public\": arguments.public\n }\n }\n }"}},"annotations":{"destructiveHint":true}},{"name":"List Users","description":"Get a paginated list of all users in Zendesk. Users can be end users (customers), agents, or administrators. Filter by role to get specific user types. Returns user details including name, email, role, organization, and activity status. Use cursor-based pagination for large user lists.","slug":"list_users","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves a paginated list of users, providing read-only access to user data.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"role":{"type":"string","description":"Filter by user role","enum":["end-user","agent","admin"]},"page_size":{"type":"integer","description":"Number of users per page (max 100, default: 100)","default":100},"page_after":{"type":"string","description":"Cursor for next page of results"}},"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/users","method":"GET","mapping":{"params":"{ \"subdomain\": settings.subdomain }","query":"$sift({\n \"role\": arguments.role,\n \"page[size]\": arguments.page_size ? $string(arguments.page_size) : \"100\",\n \"page[after]\": arguments.page_after\n }, function($v) { $v != null })"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"Search Users","description":"Search for users by query string. Searches across user name, email, phone, and other fields. Returns matching users with their details. Use this when you need to find specific users but don't have their ID. Example queries: email address, phone number, or partial name.","slug":"search_users","ai_risk":{"level":"low","score":1,"reasoning":"This tool allows for searching users based on various criteria, providing read-only access to user information.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search query (searches name, email, phone, external_id, tags, notes, and role)"},"page_size":{"type":"integer","description":"Number of results per page (max 100, default: 100)","default":100},"page":{"type":"integer","description":"Page number","default":1}},"required":["query"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/search","method":"GET","mapping":{"params":"{ \"subdomain\": settings.subdomain }","query":"{\n \"query\": arguments.query & \" type:user\",\n \"per_page\": arguments.page_size ? $string(arguments.page_size) : \"100\",\n \"page\": arguments.page ? $string(arguments.page) : \"1\"\n }"}},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"Get User","description":"Retrieve detailed information about a specific user by their ID. Returns complete user profile including name, email, phone, role, organization, time zone, locale, tags, custom fields, and more. Use this to get full details about a known user.","slug":"get_user","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves detailed information about a specific user, functioning in a read-only capacity.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"user_id":{"type":"integer","description":"The ID of the user to retrieve"}},"required":["user_id"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/users/{user_id}","method":"GET","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"user_id\": arguments.user_id\n }"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"Create User","description":"Create a new user in Zendesk. You must provide a name and email. Optionally specify role (end-user, agent, admin), phone, organization, time zone, and other properties. By default, creates an end user (customer). Use this to add new customers or team members to Zendesk.","slug":"create_user","ai_risk":{"level":"medium","score":5,"reasoning":"This tool creates new users in Zendesk, which involves standard CRUD operations on user data, posing a medium risk.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"User's full name"},"email":{"type":"string","description":"User's email address"},"role":{"type":"string","description":"User role (default: end-user)","enum":["end-user","agent","admin"],"default":"end-user"},"phone":{"type":"string","description":"User's phone number (E.164 format recommended)"},"organization_id":{"type":"integer","description":"ID of the organization to associate the user with"},"time_zone":{"type":"string","description":"User's time zone (e.g., 'Pacific Time (US & Canada)')"},"verified":{"type":"boolean","description":"Whether the user's email is verified (default: false)","default":false}},"required":["name","email"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/users","method":"POST","mapping":{"params":"{ \"subdomain\": settings.subdomain }","body":"{\n \"user\": $sift({\n \"name\": arguments.name,\n \"email\": arguments.email,\n \"role\": arguments.role,\n \"phone\": arguments.phone,\n \"organization_id\": arguments.organization_id,\n \"time_zone\": arguments.time_zone,\n \"verified\": arguments.verified\n }, function($v) { $v != null })\n }"}},"annotations":{"destructiveHint":true}},{"name":"Update User","description":"Update an existing user's properties. You can modify name, email, phone, role, organization, time zone, tags, and other fields. Use this to update user information or change user status (e.g., suspend a user).","slug":"update_user","ai_risk":{"level":"medium","score":5,"reasoning":"This tool updates existing user properties, representing a standard CRUD operation that modifies user data.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"user_id":{"type":"integer","description":"The ID of the user to update"},"name":{"type":"string","description":"Update user's name"},"phone":{"type":"string","description":"Update user's phone number"},"role":{"type":"string","description":"Update user's role","enum":["end-user","agent","admin"]},"organization_id":{"type":"integer","description":"Change user's organization"},"time_zone":{"type":"string","description":"Update user's time zone"},"suspended":{"type":"boolean","description":"Suspend or unsuspend the user (suspended users cannot create tickets)"}},"required":["user_id"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/users/{user_id}","method":"PUT","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"user_id\": arguments.user_id\n }","body":"{\n \"user\": $sift({\n \"name\": arguments.name,\n \"phone\": arguments.phone,\n \"role\": arguments.role,\n \"organization_id\": arguments.organization_id,\n \"time_zone\": arguments.time_zone,\n \"suspended\": arguments.suspended\n }, function($v) { $v != null })\n }"}},"annotations":{"destructiveHint":true,"idempotentHint":true}},{"name":"List Organizations","description":"Get a paginated list of all organizations in Zendesk. Organizations group end users together (e.g., by company or customer account). Returns organization details including name, domain names, notes, and custom fields. Use cursor-based pagination for large lists.","slug":"list_organizations","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves a paginated list of organizations, providing read-only access to organization data.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"page_size":{"type":"integer","description":"Number of organizations per page (max 100, default: 100)","default":100},"page_after":{"type":"string","description":"Cursor for next page of results"}},"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/organizations","method":"GET","mapping":{"params":"{ \"subdomain\": settings.subdomain }","query":"$sift({\n \"page[size]\": arguments.page_size ? $string(arguments.page_size) : \"100\",\n \"page[after]\": arguments.page_after\n }, function($v) { $v != null })"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"Get Organization","description":"Retrieve detailed information about a specific organization by its ID. Returns complete organization data including name, domain names, notes, tags, custom fields, and associated users. Use this to get full details about a known organization.","slug":"get_organization","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves detailed information about a specific organization, functioning in a read-only capacity.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"organization_id":{"type":"integer","description":"The ID of the organization to retrieve"}},"required":["organization_id"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/organizations/{organization_id}","method":"GET","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"organization_id\": arguments.organization_id\n }"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"Create Organization","description":"Create a new organization in Zendesk. You must provide a name. Optionally specify domain names (for auto-assignment of users), notes, tags, and custom fields. Organizations help group related users together. Use this to add new customer companies or departments.","slug":"create_organization","ai_risk":{"level":"medium","score":5,"reasoning":"This tool creates new organizations in Zendesk, which involves standard CRUD operations on organizational data, posing a medium risk.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Organization name"},"domain_names":{"type":"array","description":"Email domains associated with this organization (users with these domains will be auto-assigned)","items":{"type":"string"}},"notes":{"type":"string","description":"Internal notes about the organization"},"tags":{"type":"array","description":"Tags to organize the organization","items":{"type":"string"}}},"required":["name"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/organizations","method":"POST","mapping":{"params":"{ \"subdomain\": settings.subdomain }","body":"{\n \"organization\": $sift({\n \"name\": arguments.name,\n \"domain_names\": arguments.domain_names,\n \"notes\": arguments.notes,\n \"tags\": arguments.tags\n }, function($v) { $v != null })\n }"}},"annotations":{"destructiveHint":true}},{"name":"Update Organization","description":"Update an existing organization's properties. You can modify name, domain names, notes, tags, and custom fields. Use this to update organization information or change organizational structure.","slug":"update_organization","ai_risk":{"level":"medium","score":5,"reasoning":"This tool updates existing organization properties, representing a standard CRUD operation that modifies organizational data.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"organization_id":{"type":"integer","description":"The ID of the organization to update"},"name":{"type":"string","description":"Update organization name"},"domain_names":{"type":"array","description":"Update associated email domains","items":{"type":"string"}},"notes":{"type":"string","description":"Update internal notes"},"tags":{"type":"array","description":"Set tags (replaces existing tags)","items":{"type":"string"}}},"required":["organization_id"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/organizations/{organization_id}","method":"PUT","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"organization_id\": arguments.organization_id\n }","body":"{\n \"organization\": $sift({\n \"name\": arguments.name,\n \"domain_names\": arguments.domain_names,\n \"notes\": arguments.notes,\n \"tags\": arguments.tags\n }, function($v) { $v != null })\n }"}},"annotations":{"destructiveHint":true,"idempotentHint":true}},{"name":"List Macros","description":"Get a list of all macros available in Zendesk. Macros are pre-defined actions that agents can apply to tickets to quickly perform common tasks (e.g., responding to common questions, updating ticket properties). Returns macro titles, descriptions, and actions. Use this to discover available macros for automation.","slug":"list_macros","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves a list of all macros, providing read-only access to automation tools without modifying any resources.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"page_size":{"type":"integer","description":"Number of macros per page (max 100, default: 100)","default":100},"page_after":{"type":"string","description":"Cursor for next page of results"},"active":{"type":"boolean","description":"Filter by active status (true = active only)"}},"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/macros","method":"GET","mapping":{"params":"{ \"subdomain\": settings.subdomain }","query":"$sift({\n \"page[size]\": arguments.page_size ? $string(arguments.page_size) : \"100\",\n \"page[after]\": arguments.page_after,\n \"active\": arguments.active ? \"true\" : undefined\n }, function($v) { $v != null })"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"List Triggers","description":"Get a list of all triggers configured in Zendesk. Triggers are automatic actions that fire when tickets are created or updated, based on specified conditions (e.g., auto-assign tickets with certain tags, send notifications). Returns trigger titles, conditions, and actions. Use this to review automation rules.","slug":"list_triggers","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves a list of all triggers, providing read-only access to automation rules without modifying any resources.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"page_size":{"type":"integer","description":"Number of triggers per page (max 100, default: 100)","default":100},"page_after":{"type":"string","description":"Cursor for next page of results"},"active":{"type":"boolean","description":"Filter by active status (true = active only)"}},"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/triggers","method":"GET","mapping":{"params":"{ \"subdomain\": settings.subdomain }","query":"$sift({\n \"page[size]\": arguments.page_size ? $string(arguments.page_size) : \"100\",\n \"page[after]\": arguments.page_after,\n \"active\": arguments.active ? \"true\" : undefined\n }, function($v) { $v != null })"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"List Automations","description":"Get a list of all automations configured in Zendesk. Automations are time-based actions that run on tickets that meet certain conditions (e.g., close tickets after 7 days of being solved, escalate pending tickets after 24 hours). Returns automation titles, conditions, and actions. Use this to review time-based automation rules.","slug":"list_automations","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves a list of all automations, providing read-only access to time-based actions without modifying any resources.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"page_size":{"type":"integer","description":"Number of automations per page (max 100, default: 100)","default":100},"page_after":{"type":"string","description":"Cursor for next page of results"},"active":{"type":"boolean","description":"Filter by active status (true = active only)"}},"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/automations","method":"GET","mapping":{"params":"{ \"subdomain\": settings.subdomain }","query":"$sift({\n \"page[size]\": arguments.page_size ? $string(arguments.page_size) : \"100\",\n \"page[after]\": arguments.page_after,\n \"active\": arguments.active ? \"true\" : undefined\n }, function($v) { $v != null })"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"List Views","description":"Get a list of all ticket views configured in Zendesk. Views are saved filters that display tickets matching specific criteria (e.g., 'My open tickets', 'Urgent tickets', 'Pending tickets'). Returns view titles, conditions, and availability. Use this to discover available views for organizing tickets.","slug":"list_views","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves a list of all ticket views, providing read-only access to saved filters without modifying any resources.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"page_size":{"type":"integer","description":"Number of views per page (max 100, default: 100)","default":100},"page_after":{"type":"string","description":"Cursor for next page of results"},"active":{"type":"boolean","description":"Filter by active status (true = active only)"}},"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/views","method":"GET","mapping":{"params":"{ \"subdomain\": settings.subdomain }","query":"$sift({\n \"page[size]\": arguments.page_size ? $string(arguments.page_size) : \"100\",\n \"page[after]\": arguments.page_after,\n \"active\": arguments.active ? \"true\" : undefined\n }, function($v) { $v != null })"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"List Groups","description":"Get a list of all agent groups in Zendesk. Groups organize agents into teams (e.g., Sales Support, Technical Support, Billing). Tickets can be assigned to groups. Returns group names, descriptions, and member counts. Use this to discover available groups for ticket assignment.","slug":"list_groups","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves a list of all agent groups, providing read-only access to group data without modifying any resources.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"page_size":{"type":"integer","description":"Number of groups per page (max 100, default: 100)","default":100},"page_after":{"type":"string","description":"Cursor for next page of results"}},"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/groups","method":"GET","mapping":{"params":"{ \"subdomain\": settings.subdomain }","query":"$sift({\n \"page[size]\": arguments.page_size ? $string(arguments.page_size) : \"100\",\n \"page[after]\": arguments.page_after\n }, function($v) { $v != null })"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"Get Group","description":"Retrieve detailed information about a specific group by its ID. Returns complete group data including name, description, member agents, and settings. Use this to get full details about a known group.","slug":"get_group","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves detailed information about a specific group, functioning in a read-only capacity.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"group_id":{"type":"integer","description":"The ID of the group to retrieve"}},"required":["group_id"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/groups/{group_id}","method":"GET","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"group_id\": arguments.group_id\n }"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"Add Tags to Ticket","description":"Add one or more tags to a ticket. Tags are labels used to categorize and organize tickets (e.g., 'billing', 'bug', 'feature-request', 'urgent'). Tags can be used in triggers, automations, and views for filtering and routing. This operation adds tags without removing existing ones. Note: Cannot modify tags on closed tickets via this endpoint.","slug":"add_tags_to_ticket","ai_risk":{"level":"medium","score":5,"reasoning":"This tool adds tags to tickets, representing a standard CRUD operation that modifies ticket data.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"ticket_id":{"type":"integer","description":"The ID of the ticket"},"tags":{"type":"array","description":"Array of tags to add to the ticket","items":{"type":"string"}}},"required":["ticket_id","tags"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/tickets/{ticket_id}/tags","method":"PUT","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"ticket_id\": arguments.ticket_id\n }","body":"{\n \"tags\": arguments.tags\n }"}},"annotations":{"destructiveHint":true}},{"name":"Remove Tags from Ticket","description":"Remove one or more tags from a ticket. Specify the tags you want to remove; other tags remain unchanged. Use this to clean up or recategorize tickets. Note: Cannot modify tags on closed tickets via this endpoint.","slug":"remove_tags_from_ticket","ai_risk":{"level":"medium","score":5,"reasoning":"This tool removes tags from tickets, representing a standard CRUD operation that modifies ticket data.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"ticket_id":{"type":"integer","description":"The ID of the ticket"},"tags":{"type":"array","description":"Array of tags to remove from the ticket","items":{"type":"string"}}},"required":["ticket_id","tags"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/tickets/{ticket_id}/tags","method":"DELETE","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"ticket_id\": arguments.ticket_id\n }","body":"{\n \"tags\": arguments.tags\n }"}},"annotations":{"destructiveHint":true}},{"name":"Upload Attachment","description":"Upload a file to Zendesk for later attachment to a ticket comment. This is step 1 of a 2-step process: first upload the file to get a token, then use that token when creating or updating a ticket with a comment. Returns an upload token that expires after a period of time. Supports files up to 50 MB. Use this when you need to attach files to tickets.","slug":"upload_attachment","ai_risk":{"level":"medium","score":5,"reasoning":"This tool uploads files for later attachment to tickets, representing a standard CRUD operation that modifies ticket data.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"filename":{"type":"string","description":"Name of the file being uploaded"},"content_type":{"type":"string","description":"MIME type of the file (e.g., 'image/png', 'application/pdf')"},"content":{"type":"string","description":"Base64-encoded file content"}},"required":["filename","content"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/uploads","method":"POST","mapping":{"params":"{ \"subdomain\": settings.subdomain }","query":"{\n \"filename\": arguments.filename\n }","body":"arguments.content"}},"annotations":{"destructiveHint":true}},{"name":"List Ticket Attachments","description":"Get a list of all attachments associated with a specific ticket. Attachments are files that have been uploaded and attached to ticket comments. Returns attachment metadata including filename, size, content type, and download URL. Use this to discover what files have been shared in a ticket conversation.","slug":"list_ticket_attachments","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves a list of all attachments associated with a specific ticket, providing read-only access to attachment metadata.","calculated_at":"2026-05-22T20:44:32.827Z"},"enabled":true,"inputSchema":{"type":"object","properties":{"ticket_id":{"type":"integer","description":"The ID of the ticket"}},"required":["ticket_id"],"additionalProperties":false},"action":{"path":"https://{subdomain}.zendesk.com/api/v2/tickets/{ticket_id}/comments","method":"GET","mapping":{"params":"{\n \"subdomain\": settings.subdomain,\n \"ticket_id\": arguments.ticket_id\n }","query":"{\n \"include\": \"attachments\"\n }"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}}]}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"zoom","status":"active","internal_status":"tool-works","applications":["zoom"],"definition":{"display":{"name":"Zoom","description":"Zoom is a video conferencing platform that enables teams to communicate and collaborate remotely.","icon":"zoom.svg","website":"https://www.zoom.com","category":"communication-messaging","docs_url":"https://docs.withwillow.ai/docs/mcp-servers/built-in/zoom"},"api":{"base_url":"https://api.zoom.us/v2"},"configuration":{"type":"object","properties":{"region":{"type":"string","title":"Zoom Region base sub-domain {region}.zoom.us"}},"required":["region"]},"auth":{"methods":{"oauth":{"authUrl":"https://zoom.us/oauth/authorize","tokenUrl":"https://zoom.us/oauth/token","scopes":["meeting:read:list_meetings","meeting:read:past_meeting","meeting:write:meeting","cloud_recording:read:list_user_recordings","user:read:list_users:admin","user:update:status:admin","user:update:user:admin"],"defaultScopes":["meeting:read:list_meetings","meeting:read:past_meeting","meeting:write:meeting","cloud_recording:read:list_user_recordings","user:read:list_users:admin","user:update:status:admin","user:update:user:admin"],"codeExchangeConfig":{"modelCredentialsMapping":"{\"access_token\": access_token, \"scope\": scope}","isForm":true}}}},"tools":[{"name":"Create Meeting","description":"Create a new Zoom meeting for me","slug":"create_meeting","ai_risk":{"level":"low","score":4,"reasoning":"This tool creates new meetings, which involves standard CRUD operations on business data, posing a medium risk.","calculated_at":"2026-05-22T20:44:37.257Z"},"inputSchema":{"type":"object","required":["topic"],"properties":{"topic":{"type":"string","description":"Meeting topic"},"start_time":{"type":"string","description":"ISO 8601 start time (e.g., 2025-11-30T10:00:00Z)"},"duration":{"type":"integer","description":"Duration in minutes","default":30},"agenda":{"type":"string","description":"Meeting agenda (optional)"},"timezone":{"type":"string","description":"IANA timezone name","default":"UTC"},"type":{"type":"integer","description":"1 = instant meeting, 2 = scheduled meeting","enum":[1,2],"default":2}}},"enabled":true,"action":{"path":"/users/me/meetings","method":"POST","mapping":{"body":"{\n \"topic\": arguments.topic,\n \"type\": arguments.type ? arguments.type : 2,\n \"start_time\": arguments.start_time,\n \"duration\": arguments.duration,\n \"timezone\": arguments.timezone,\n \"agenda\": arguments.agenda\n }"}},"annotations":{"destructiveHint":true,"idempotentHint":true}},{"name":"Get Past Meeting Details","description":"Get details for a past Zoom meeting by meeting ID or UUID","slug":"get_past_meeting_details","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves details of past meetings and is marked as read-only, making it low risk.","calculated_at":"2026-05-22T20:44:37.257Z"},"inputSchema":{"type":"object","required":["meetingId"],"properties":{"meetingId":{"type":"string","description":"Meeting ID or UUID of a past meeting"}}},"enabled":true,"action":{"path":"/past_meetings/{meetingId}","method":"GET","mapping":{"params":"{\n \"meetingId\": arguments.meetingId\n }"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"Get Recent Meetings Summaries And Recordings","description":"Get recent meetings' basic info and recordings for me (returns an array)","slug":"get_last_meeting_summary_and_recordings","ai_risk":{"level":"low","score":1,"reasoning":"This tool fetches summaries and recordings of recent meetings and is read-only, indicating low risk.","calculated_at":"2026-05-22T20:44:37.257Z"},"inputSchema":{"type":"object","properties":{"page_size":{"type":"integer","description":"How many recent meetings to fetch (array result)","default":1}}},"enabled":true,"action":{"path":"/users/me/recordings","method":"GET","mapping":{"query":"{\n \"page_size\": arguments.page_size ? arguments.page_size : 1\n }"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"Get Upcoming Meetings","description":"List upcoming Zoom meetings for me","slug":"get_upcoming_meetings","ai_risk":{"level":"low","score":1,"reasoning":"This tool lists upcoming meetings and is read-only, which categorizes it as low risk.","calculated_at":"2026-05-22T20:44:37.257Z"},"inputSchema":{"type":"object","properties":{"page_size":{"type":"integer","description":"How many meetings per page","default":30},"next_page_token":{"type":"string","description":"Pagination token from a previous call"}}},"enabled":true,"action":{"path":"/users/me/meetings","method":"GET","mapping":{"query":"{\n \"type\": \"upcoming\",\n \"page_size\": arguments.page_size ? arguments.page_size : 30,\n \"next_page_token\": arguments.next_page_token\n }"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"List Users","description":"List users on the Zoom account with email, status, and license type. Use when auditing seat usage or finding a user before deactivation.","slug":"list_users","enabled":true,"inputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["active","inactive","pending"],"description":"Filter by user status. Omit to return users in all statuses."},"page_size":{"type":"integer","description":"Number of users per page (max 300). Defaults to 30.","default":30},"page_number":{"type":"integer","description":"Page number to retrieve. Defaults to 1.","default":1},"next_page_token":{"type":"string","description":"Pagination token from a previous response. Expires after 15 minutes."}},"additionalProperties":false},"action":{"path":"/users","method":"GET","mapping":{"query":"$sift({\n \"status\": arguments.status,\n \"page_size\": arguments.page_size ? $string(arguments.page_size) : undefined,\n \"page_number\": arguments.page_number ? $string(arguments.page_number) : undefined,\n \"next_page_token\": arguments.next_page_token\n }, function($v) { $v != null })","response":"{\n \"total_records\": response.total_records,\n \"page_count\": response.page_count,\n \"page_number\": response.page_number,\n \"page_size\": response.page_size,\n \"next_page_token\": response.next_page_token,\n \"users\": response.users.{\n \"id\": id,\n \"email\": email,\n \"status\": status,\n \"type\": type,\n \"first_name\": first_name,\n \"last_name\": last_name,\n \"last_login_time\": last_login_time\n }\n }"}},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true},"requiredScopes":["user:read:list_users:admin"]},{"name":"Deactivate User","description":"Deactivate a Zoom user so they can no longer sign in. Pair with Downgrade User to free a paid license seat.","slug":"deactivate_user","enabled":true,"inputSchema":{"type":"object","required":["userId"],"properties":{"userId":{"type":"string","description":"The user's Zoom ID or email address."}},"additionalProperties":false},"action":{"path":"/users/{userId}/status","method":"PUT","mapping":{"params":"{ \"userId\": arguments.userId }","body":"{ \"action\": \"deactivate\" }"}},"annotations":{"destructiveHint":true,"idempotentHint":true},"requiredScopes":["user:update:status:admin"]},{"name":"Downgrade User to Basic","description":"Change a user's license type to Basic (type 1) to reclaim a paid seat after deactivation.","slug":"downgrade_user_to_basic","enabled":true,"inputSchema":{"type":"object","required":["userId"],"properties":{"userId":{"type":"string","description":"The user's Zoom ID or email address."}},"additionalProperties":false},"action":{"path":"/users/{userId}","method":"PATCH","mapping":{"params":"{ \"userId\": arguments.userId }","body":"{ \"type\": 1 }"}},"annotations":{"destructiveHint":true,"idempotentHint":true},"requiredScopes":["user:update:user:admin"]}]}}
|
|
1
|
+
{"id":"zoom","status":"active","internal_status":"tool-works","applications":["zoom"],"definition":{"display":{"name":"Zoom","description":"Zoom is a video conferencing platform that enables teams to communicate and collaborate remotely.","icon":"zoom.svg","website":"https://www.zoom.com","category":"communication-messaging","docs_url":"https://docs.withwillow.ai/docs/mcp-servers/built-in/zoom"},"api":{"base_url":"https://api.zoom.us/v2"},"configuration":{"type":"object","properties":{"region":{"type":"string","title":"Zoom Region base sub-domain {region}.zoom.us"}},"required":["region"]},"auth":{"methods":{"oauth":{"authUrl":"https://zoom.us/oauth/authorize","tokenUrl":"https://zoom.us/oauth/token","scopes":["meeting:read:list_meetings","meeting:read:past_meeting","meeting:write:meeting","cloud_recording:read:list_user_recordings","user:read:list_users:admin","user:update:status:admin","user:update:user:admin"],"defaultScopes":["meeting:read:list_meetings","meeting:read:past_meeting","meeting:write:meeting","cloud_recording:read:list_user_recordings","user:read:list_users:admin","user:update:status:admin","user:update:user:admin"],"scopeTemplates":[{"id":"read-only","name":"Read-only","description":"Read upcoming and past meetings, cloud recordings and the account's users. Can't schedule meetings or change users.","scopes":["meeting:read:list_meetings","meeting:read:past_meeting","cloud_recording:read:list_user_recordings","user:read:list_users:admin"]},{"id":"meetings","name":"Meetings only","description":"Schedule meetings and read the user's meetings and recordings. Account user administration stays off.","scopes":["meeting:read:list_meetings","meeting:read:past_meeting","meeting:write:meeting","cloud_recording:read:list_user_recordings"]},{"id":"full-access","name":"Full access","description":"Meetings and recordings, plus listing, deactivating and downgrading the account's users.","scopes":["meeting:read:list_meetings","meeting:read:past_meeting","meeting:write:meeting","cloud_recording:read:list_user_recordings","user:read:list_users:admin","user:update:status:admin","user:update:user:admin"]}],"codeExchangeConfig":{"modelCredentialsMapping":"{\"access_token\": access_token, \"scope\": scope}","isForm":true}}}},"tools":[{"name":"Create Meeting","description":"Create a new Zoom meeting for me","slug":"create_meeting","ai_risk":{"level":"low","score":4,"reasoning":"This tool creates new meetings, which involves standard CRUD operations on business data, posing a medium risk.","calculated_at":"2026-05-22T20:44:37.257Z"},"inputSchema":{"type":"object","required":["topic"],"properties":{"topic":{"type":"string","description":"Meeting topic"},"start_time":{"type":"string","description":"ISO 8601 start time (e.g., 2025-11-30T10:00:00Z)"},"duration":{"type":"integer","description":"Duration in minutes","default":30},"agenda":{"type":"string","description":"Meeting agenda (optional)"},"timezone":{"type":"string","description":"IANA timezone name","default":"UTC"},"type":{"type":"integer","description":"1 = instant meeting, 2 = scheduled meeting","enum":[1,2],"default":2}}},"enabled":true,"action":{"path":"/users/me/meetings","method":"POST","mapping":{"body":"{\n \"topic\": arguments.topic,\n \"type\": arguments.type ? arguments.type : 2,\n \"start_time\": arguments.start_time,\n \"duration\": arguments.duration,\n \"timezone\": arguments.timezone,\n \"agenda\": arguments.agenda\n }"}},"annotations":{"destructiveHint":true,"idempotentHint":true}},{"name":"Get Past Meeting Details","description":"Get details for a past Zoom meeting by meeting ID or UUID","slug":"get_past_meeting_details","ai_risk":{"level":"low","score":1,"reasoning":"This tool retrieves details of past meetings and is marked as read-only, making it low risk.","calculated_at":"2026-05-22T20:44:37.257Z"},"inputSchema":{"type":"object","required":["meetingId"],"properties":{"meetingId":{"type":"string","description":"Meeting ID or UUID of a past meeting"}}},"enabled":true,"action":{"path":"/past_meetings/{meetingId}","method":"GET","mapping":{"params":"{\n \"meetingId\": arguments.meetingId\n }"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"Get Recent Meetings Summaries And Recordings","description":"Get recent meetings' basic info and recordings for me (returns an array)","slug":"get_last_meeting_summary_and_recordings","ai_risk":{"level":"low","score":1,"reasoning":"This tool fetches summaries and recordings of recent meetings and is read-only, indicating low risk.","calculated_at":"2026-05-22T20:44:37.257Z"},"inputSchema":{"type":"object","properties":{"page_size":{"type":"integer","description":"How many recent meetings to fetch (array result)","default":1}}},"enabled":true,"action":{"path":"/users/me/recordings","method":"GET","mapping":{"query":"{\n \"page_size\": arguments.page_size ? arguments.page_size : 1\n }"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"Get Upcoming Meetings","description":"List upcoming Zoom meetings for me","slug":"get_upcoming_meetings","ai_risk":{"level":"low","score":1,"reasoning":"This tool lists upcoming meetings and is read-only, which categorizes it as low risk.","calculated_at":"2026-05-22T20:44:37.257Z"},"inputSchema":{"type":"object","properties":{"page_size":{"type":"integer","description":"How many meetings per page","default":30},"next_page_token":{"type":"string","description":"Pagination token from a previous call"}}},"enabled":true,"action":{"path":"/users/me/meetings","method":"GET","mapping":{"query":"{\n \"type\": \"upcoming\",\n \"page_size\": arguments.page_size ? arguments.page_size : 30,\n \"next_page_token\": arguments.next_page_token\n }"}},"annotations":{"readOnlyHint":true,"idempotentHint":true}},{"name":"List Users","description":"List users on the Zoom account with email, status, and license type. Use when auditing seat usage or finding a user before deactivation.","slug":"list_users","enabled":true,"inputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["active","inactive","pending"],"description":"Filter by user status. Omit to return users in all statuses."},"page_size":{"type":"integer","description":"Number of users per page (max 300). Defaults to 30.","default":30},"page_number":{"type":"integer","description":"Page number to retrieve. Defaults to 1.","default":1},"next_page_token":{"type":"string","description":"Pagination token from a previous response. Expires after 15 minutes."}},"additionalProperties":false},"action":{"path":"/users","method":"GET","mapping":{"query":"$sift({\n \"status\": arguments.status,\n \"page_size\": arguments.page_size ? $string(arguments.page_size) : undefined,\n \"page_number\": arguments.page_number ? $string(arguments.page_number) : undefined,\n \"next_page_token\": arguments.next_page_token\n }, function($v) { $v != null })","response":"{\n \"total_records\": response.total_records,\n \"page_count\": response.page_count,\n \"page_number\": response.page_number,\n \"page_size\": response.page_size,\n \"next_page_token\": response.next_page_token,\n \"users\": response.users.{\n \"id\": id,\n \"email\": email,\n \"status\": status,\n \"type\": type,\n \"first_name\": first_name,\n \"last_name\": last_name,\n \"last_login_time\": last_login_time\n }\n }"}},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true},"requiredScopes":["user:read:list_users:admin"]},{"name":"Deactivate User","description":"Deactivate a Zoom user so they can no longer sign in. Pair with Downgrade User to free a paid license seat.","slug":"deactivate_user","enabled":true,"inputSchema":{"type":"object","required":["userId"],"properties":{"userId":{"type":"string","description":"The user's Zoom ID or email address."}},"additionalProperties":false},"action":{"path":"/users/{userId}/status","method":"PUT","mapping":{"params":"{ \"userId\": arguments.userId }","body":"{ \"action\": \"deactivate\" }"}},"annotations":{"destructiveHint":true,"idempotentHint":true},"requiredScopes":["user:update:status:admin"]},{"name":"Downgrade User to Basic","description":"Change a user's license type to Basic (type 1) to reclaim a paid seat after deactivation.","slug":"downgrade_user_to_basic","enabled":true,"inputSchema":{"type":"object","required":["userId"],"properties":{"userId":{"type":"string","description":"The user's Zoom ID or email address."}},"additionalProperties":false},"action":{"path":"/users/{userId}","method":"PATCH","mapping":{"params":"{ \"userId\": arguments.userId }","body":"{ \"type\": 1 }"}},"annotations":{"destructiveHint":true,"idempotentHint":true},"requiredScopes":["user:update:user:admin"]}]}}
|
package/dist/public/index.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": 1,
|
|
3
|
-
"generated_at": "2026-10-
|
|
3
|
+
"generated_at": "2026-10-24T07:16:13.252Z",
|
|
4
4
|
"connectors": [
|
|
5
5
|
{
|
|
6
6
|
"id": "github",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"applications": [
|
|
14
14
|
"github"
|
|
15
15
|
],
|
|
16
|
-
"hash": "
|
|
16
|
+
"hash": "e7a3fc41e945b752a0cfd51409f5ae87a7e47c1a68f28ae0e01785696d79195d"
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
19
|
"id": "gmail",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"applications": [
|
|
27
27
|
"gmail"
|
|
28
28
|
],
|
|
29
|
-
"hash": "
|
|
29
|
+
"hash": "04e06243d6cac30ef1f4326fec1ca35ff8d4cecb851ee31d689b901707d6e4ec"
|
|
30
30
|
},
|
|
31
31
|
{
|
|
32
32
|
"id": "slack",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"applications": [
|
|
40
40
|
"slack"
|
|
41
41
|
],
|
|
42
|
-
"hash": "
|
|
42
|
+
"hash": "75808239c38880fea9f4b100d73eafe7d93ba66db427e218d23c9285cfc032fe"
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
45
|
"id": "google-workspace",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"applications": [
|
|
53
53
|
"google-workspace"
|
|
54
54
|
],
|
|
55
|
-
"hash": "
|
|
55
|
+
"hash": "93c73645cefec3c51c453538b0289b87578594785afa0a63c9ada81e8c6223b3"
|
|
56
56
|
},
|
|
57
57
|
{
|
|
58
58
|
"id": "google-workspace-admin",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"applications": [
|
|
66
66
|
"google-workspace"
|
|
67
67
|
],
|
|
68
|
-
"hash": "
|
|
68
|
+
"hash": "2111248434a551df218216cd54f27cc8eec4e0127e483850539f7339fa6ea7b3"
|
|
69
69
|
},
|
|
70
70
|
{
|
|
71
71
|
"id": "salesforce",
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"applications": [
|
|
79
79
|
"salesforce"
|
|
80
80
|
],
|
|
81
|
-
"hash": "
|
|
81
|
+
"hash": "a31092043df02af9db6c107ed2f262dd900c9dcce402e133bfd86dd6e1477724"
|
|
82
82
|
},
|
|
83
83
|
{
|
|
84
84
|
"id": "jira",
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
"applications": [
|
|
92
92
|
"jira"
|
|
93
93
|
],
|
|
94
|
-
"hash": "
|
|
94
|
+
"hash": "0d3521b012913a5533998b048578932f022d60c0d291bd5826d412c04166fb44"
|
|
95
95
|
},
|
|
96
96
|
{
|
|
97
97
|
"id": "jira-server",
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
"applications": [
|
|
105
105
|
"jira"
|
|
106
106
|
],
|
|
107
|
-
"hash": "
|
|
107
|
+
"hash": "a55a38d92976f56d2591a06aff37d3dda5de02d8634cb13d40fcb9f2132e29e4"
|
|
108
108
|
},
|
|
109
109
|
{
|
|
110
110
|
"id": "atlassian-official",
|
|
@@ -157,7 +157,7 @@
|
|
|
157
157
|
"applications": [
|
|
158
158
|
"monday"
|
|
159
159
|
],
|
|
160
|
-
"hash": "
|
|
160
|
+
"hash": "e9c4d949e2ad744ed264d314604f3ff9ca3f849955fe22506658a03238ff7984"
|
|
161
161
|
},
|
|
162
162
|
{
|
|
163
163
|
"id": "linear",
|
|
@@ -170,7 +170,7 @@
|
|
|
170
170
|
"applications": [
|
|
171
171
|
"linear"
|
|
172
172
|
],
|
|
173
|
-
"hash": "
|
|
173
|
+
"hash": "3c0002de595054d3af15c02a538273adadd69d0505ad1eaab3c3b131d0ab6537"
|
|
174
174
|
},
|
|
175
175
|
{
|
|
176
176
|
"id": "linkedin",
|
|
@@ -183,7 +183,7 @@
|
|
|
183
183
|
"applications": [
|
|
184
184
|
"linkedin"
|
|
185
185
|
],
|
|
186
|
-
"hash": "
|
|
186
|
+
"hash": "7982f719c932d47b4da202a5916dea78652f8f2b28dcd9a7af1c752878092601"
|
|
187
187
|
},
|
|
188
188
|
{
|
|
189
189
|
"id": "linear-official",
|
|
@@ -632,7 +632,7 @@
|
|
|
632
632
|
"applications": [
|
|
633
633
|
"google-calendar"
|
|
634
634
|
],
|
|
635
|
-
"hash": "
|
|
635
|
+
"hash": "29bfe075f15aaa069e0d6c88192e94cdcc3666c726704d622f7bbf73bea98800"
|
|
636
636
|
},
|
|
637
637
|
{
|
|
638
638
|
"id": "zoom",
|
|
@@ -645,7 +645,7 @@
|
|
|
645
645
|
"applications": [
|
|
646
646
|
"zoom"
|
|
647
647
|
],
|
|
648
|
-
"hash": "
|
|
648
|
+
"hash": "f74437fad39d1b25ca42e86382a67357182a30e2b2e026e7fcb9991e2117768e"
|
|
649
649
|
},
|
|
650
650
|
{
|
|
651
651
|
"id": "snowflake",
|
|
@@ -671,7 +671,7 @@
|
|
|
671
671
|
"applications": [
|
|
672
672
|
"outlook-mail"
|
|
673
673
|
],
|
|
674
|
-
"hash": "
|
|
674
|
+
"hash": "6c79d6b0734aa1ccb7255fb7c662902e99327ef667c6b8cd3905cbb001306230"
|
|
675
675
|
},
|
|
676
676
|
{
|
|
677
677
|
"id": "sharepoint",
|
|
@@ -684,7 +684,7 @@
|
|
|
684
684
|
"applications": [
|
|
685
685
|
"sharepoint"
|
|
686
686
|
],
|
|
687
|
-
"hash": "
|
|
687
|
+
"hash": "aa5dd59e9138b731a3bdadbca688cbcff5f0e03d3c6d587018a56c94f99e8666"
|
|
688
688
|
},
|
|
689
689
|
{
|
|
690
690
|
"id": "outlook-calendar",
|
|
@@ -697,7 +697,7 @@
|
|
|
697
697
|
"applications": [
|
|
698
698
|
"outlook-calendar"
|
|
699
699
|
],
|
|
700
|
-
"hash": "
|
|
700
|
+
"hash": "f2e318049881f730cb7dec2cbfc6c6b7e070634dfa67ac8a5a0481d2a9fb1500"
|
|
701
701
|
},
|
|
702
702
|
{
|
|
703
703
|
"id": "zendesk",
|
|
@@ -710,7 +710,7 @@
|
|
|
710
710
|
"applications": [
|
|
711
711
|
"zendesk"
|
|
712
712
|
],
|
|
713
|
-
"hash": "
|
|
713
|
+
"hash": "6990373b35fb602c0a57173e048bef0aeafbe807e73d46605561a5d761506cee"
|
|
714
714
|
},
|
|
715
715
|
{
|
|
716
716
|
"id": "kubernetes",
|
|
@@ -736,7 +736,7 @@
|
|
|
736
736
|
"applications": [
|
|
737
737
|
"onedrive"
|
|
738
738
|
],
|
|
739
|
-
"hash": "
|
|
739
|
+
"hash": "f1a8852275537c39fb6a64b0d036392a403e37afc3338ae6d7f95a7ca61bb34e"
|
|
740
740
|
},
|
|
741
741
|
{
|
|
742
742
|
"id": "okta",
|
|
@@ -749,7 +749,7 @@
|
|
|
749
749
|
"applications": [
|
|
750
750
|
"okta"
|
|
751
751
|
],
|
|
752
|
-
"hash": "
|
|
752
|
+
"hash": "5088b69aef9e451c3b67737b5ebc6459020f5815a2648a21a16ca155c71ac691"
|
|
753
753
|
},
|
|
754
754
|
{
|
|
755
755
|
"id": "aws-knowledge-official",
|
|
@@ -4700,7 +4700,7 @@
|
|
|
4700
4700
|
"applications": [
|
|
4701
4701
|
"asana"
|
|
4702
4702
|
],
|
|
4703
|
-
"hash": "
|
|
4703
|
+
"hash": "f5715ef1bb149b853f68de53e6ad84b519a5557740cccc585c86b6077f9ac827"
|
|
4704
4704
|
},
|
|
4705
4705
|
{
|
|
4706
4706
|
"id": "atlassian",
|
|
@@ -4752,7 +4752,7 @@
|
|
|
4752
4752
|
"applications": [
|
|
4753
4753
|
"azure-devops"
|
|
4754
4754
|
],
|
|
4755
|
-
"hash": "
|
|
4755
|
+
"hash": "32601912e6bb5f2d500d9460c19a35770bf1bcf89ef9b9b66fdae6f8eafcadc9"
|
|
4756
4756
|
},
|
|
4757
4757
|
{
|
|
4758
4758
|
"id": "bamboohr",
|
|
@@ -4778,7 +4778,7 @@
|
|
|
4778
4778
|
"applications": [
|
|
4779
4779
|
"bitbucket"
|
|
4780
4780
|
],
|
|
4781
|
-
"hash": "
|
|
4781
|
+
"hash": "92743d4490f7f8536c4b4ccc127fc9813b8562bd0b700c04b07438e54e5063cb"
|
|
4782
4782
|
},
|
|
4783
4783
|
{
|
|
4784
4784
|
"id": "bitbucket-datacenter",
|
|
@@ -4791,7 +4791,7 @@
|
|
|
4791
4791
|
"applications": [
|
|
4792
4792
|
"bitbucket"
|
|
4793
4793
|
],
|
|
4794
|
-
"hash": "
|
|
4794
|
+
"hash": "b87d058f1eedf3b67d6703fab259722629816aaac29ea8c7ede3c8fd81f18a60"
|
|
4795
4795
|
},
|
|
4796
4796
|
{
|
|
4797
4797
|
"id": "braze",
|
package/dist/schema/auth.d.ts
CHANGED
|
@@ -4,6 +4,20 @@ import { z } from "zod";
|
|
|
4
4
|
* provider returns the standard token fields.
|
|
5
5
|
*/
|
|
6
6
|
export declare const DEFAULT_MODEL_CREDENTIALS_MAPPING = "{\n \"access_token\": access_token,\n \"expires_at\": $fromMillis($millis() + expires_in * 1000),\n \"refresh_token\": refresh_token,\n \"scope\": scope,\n \"token_type\": token_type\n}";
|
|
7
|
+
/**
|
|
8
|
+
* A named set of scopes the setup page offers as one choice, so an admin can
|
|
9
|
+
* pick "Read-only" instead of ticking scopes one by one. Two ids mean the same
|
|
10
|
+
* thing on every connector: "read-only" grants no writes, and "full-access" is
|
|
11
|
+
* the broadest set the vendor accepts in one request, which is not always all
|
|
12
|
+
* of `scopes` (some can't be combined, or need a vendor-approved app). Every
|
|
13
|
+
* scope must be declared in `scopes` or `defaultScopes`.
|
|
14
|
+
*/
|
|
15
|
+
export declare const oauthScopeTemplate: z.ZodObject<{
|
|
16
|
+
id: z.ZodString;
|
|
17
|
+
name: z.ZodString;
|
|
18
|
+
description: z.ZodString;
|
|
19
|
+
scopes: z.ZodArray<z.ZodString>;
|
|
20
|
+
}, z.core.$loose>;
|
|
7
21
|
declare const oauth: z.ZodObject<{
|
|
8
22
|
authUrl: z.ZodOptional<z.ZodString>;
|
|
9
23
|
authUrlMapping: z.ZodOptional<z.ZodString>;
|
|
@@ -12,6 +26,12 @@ declare const oauth: z.ZodObject<{
|
|
|
12
26
|
refreshTokenUrl: z.ZodOptional<z.ZodString>;
|
|
13
27
|
scopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
14
28
|
defaultScopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
29
|
+
scopeTemplates: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
30
|
+
id: z.ZodString;
|
|
31
|
+
name: z.ZodString;
|
|
32
|
+
description: z.ZodString;
|
|
33
|
+
scopes: z.ZodArray<z.ZodString>;
|
|
34
|
+
}, z.core.$loose>>>;
|
|
15
35
|
pkce: z.ZodOptional<z.ZodBoolean>;
|
|
16
36
|
codeExchangeConfig: z.ZodOptional<z.ZodObject<{
|
|
17
37
|
modelCredentialsMapping: z.ZodOptional<z.ZodString>;
|
|
@@ -43,6 +63,12 @@ export declare const authSettings: z.ZodObject<{
|
|
|
43
63
|
refreshTokenUrl: z.ZodOptional<z.ZodString>;
|
|
44
64
|
scopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
45
65
|
defaultScopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
66
|
+
scopeTemplates: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
67
|
+
id: z.ZodString;
|
|
68
|
+
name: z.ZodString;
|
|
69
|
+
description: z.ZodString;
|
|
70
|
+
scopes: z.ZodArray<z.ZodString>;
|
|
71
|
+
}, z.core.$loose>>>;
|
|
46
72
|
pkce: z.ZodOptional<z.ZodBoolean>;
|
|
47
73
|
codeExchangeConfig: z.ZodOptional<z.ZodObject<{
|
|
48
74
|
modelCredentialsMapping: z.ZodOptional<z.ZodString>;
|
|
@@ -139,4 +165,5 @@ export declare const authSettings: z.ZodObject<{
|
|
|
139
165
|
}, z.core.$loose>;
|
|
140
166
|
export type ConnectorAuthSettings = z.infer<typeof authSettings>;
|
|
141
167
|
export type ConnectorAuthOAuth = z.infer<typeof oauth>;
|
|
168
|
+
export type OAuthScopeTemplate = z.infer<typeof oauthScopeTemplate>;
|
|
142
169
|
export {};
|
package/dist/schema/auth.js
CHANGED
|
@@ -18,6 +18,20 @@ export const DEFAULT_MODEL_CREDENTIALS_MAPPING = `{
|
|
|
18
18
|
"scope": scope,
|
|
19
19
|
"token_type": token_type
|
|
20
20
|
}`;
|
|
21
|
+
/**
|
|
22
|
+
* A named set of scopes the setup page offers as one choice, so an admin can
|
|
23
|
+
* pick "Read-only" instead of ticking scopes one by one. Two ids mean the same
|
|
24
|
+
* thing on every connector: "read-only" grants no writes, and "full-access" is
|
|
25
|
+
* the broadest set the vendor accepts in one request, which is not always all
|
|
26
|
+
* of `scopes` (some can't be combined, or need a vendor-approved app). Every
|
|
27
|
+
* scope must be declared in `scopes` or `defaultScopes`.
|
|
28
|
+
*/
|
|
29
|
+
export const oauthScopeTemplate = obj({
|
|
30
|
+
id: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
|
|
31
|
+
name: z.string(),
|
|
32
|
+
description: z.string(),
|
|
33
|
+
scopes: z.array(z.string()).min(1),
|
|
34
|
+
});
|
|
21
35
|
const oauth = obj({
|
|
22
36
|
authUrl: z.string().optional(),
|
|
23
37
|
authUrlMapping: jsonata.optional(),
|
|
@@ -26,6 +40,7 @@ const oauth = obj({
|
|
|
26
40
|
refreshTokenUrl: z.string().optional(),
|
|
27
41
|
scopes: z.array(z.string()).optional(),
|
|
28
42
|
defaultScopes: z.array(z.string()).optional(),
|
|
43
|
+
scopeTemplates: z.array(oauthScopeTemplate).optional(),
|
|
29
44
|
pkce: z.boolean().optional(),
|
|
30
45
|
codeExchangeConfig: obj({
|
|
31
46
|
modelCredentialsMapping: jsonata.optional(),
|