Pylon MCP connector
OAuth 2.1/DCRCustomer SupportProject ManagementConnect to Pylon MCP. Manage customer issues, accounts, projects, milestones, and tasks from your AI workflows.
Pylon MCP connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set your credentials”Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret> -
Authorize and make your first call
Section titled “Authorize and make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'pylonmcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Pylon MCP:', link)process.stdout.write('Press Enter after authorizing...')await new Promise(r => process.stdin.once('data', r))// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'pylonmcp_get_me',toolInput: {},})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "pylonmcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Pylon MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="pylonmcp_get_me",connection_name=connection_name,identifier=identifier,)print(result)
What you can do
Section titled “What you can do”Connect this agent connector to let your agent:
- Files upload account — Upload one or more files to an account
- Update task, project, milestone — Update a task title, status, assignee, due date, or other fields by its ID
- Search tasks, projects, issues — Search tasks by text, project, account, assignee, and status
- Get user, tasks, task — Retrieve a single user by their ID or email
- Delete task — Permanently delete a task by its ID
- Create task, project from template, project — Create a new task with a title
Tool list
Section titled “Tool list”Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.
pylonmcp_create_issue#Create a new issue in Pylon with a title, body, and account. Optionally assign a requester, priority, team, and tags.8 params
Create a new issue in Pylon with a title, body, and account. Optionally assign a requester, priority, team, and tags.
account_idstringrequiredID of the account to associate with this resource.body_htmlstringrequiredThe HTML content of the body of the issue. Required.titlestringrequiredThe title of the issue. Required.assignee_idstringoptionalID of the user to assign this resource to.prioritystringoptionalThe priority of the issue.requester_idstringoptionalThe ID of the requester (contact) that this issue is on behalf of.tagsarrayoptionalAn array of tags to set on the issue.team_idstringoptionalThe ID of the team to assign the issue to.pylonmcp_create_milestone#Create a milestone within a project. Optionally set a due date and account.4 params
Create a milestone within a project. Optionally set a due date and account.
namestringrequiredMilestone name.project_idstringrequiredProject ID for this milestone.account_idstringoptionalID of the account to associate with this resource.due_datestringoptionalDue date in RFC3339 format.pylonmcp_create_project#Create a project for an account. Provide a name or a project_template_id to scaffold milestones and tasks from a template.10 params
Create a project for an account. Provide a name or a project_template_id to scaffold milestones and tasks from a template.
account_idstringrequiredID of the account to associate with this resource.customer_portal_visiblebooleanoptionalWhether this project is visible in the customer portal.description_htmlstringoptionalProject description as HTML.end_datestringoptionalEnd date in RFC3339 format.namestringoptionalProject name. Required unless project_template_id is provided.owner_idstringoptionalID of the user who owns this resource.owner_typestringoptionalOwner type. Defaults to user when owner_id is provided.project_template_idstringoptionalProject template ID to scaffold tasks, milestones, and subtasks from.start_datestringoptionalStart date in RFC3339 format.statusstringoptionalProject status.pylonmcp_create_project_from_template#Create a project from a template, copying its milestones, tasks, and subtasks. Optionally override name, dates, owner, and status.9 params
Create a project from a template, copying its milestones, tasks, and subtasks. Optionally override name, dates, owner, and status.
account_idstringrequiredID of the account to associate with this resource.project_template_idstringrequiredProject template ID to use.customer_portal_visiblebooleanoptionalOptional customer portal visibility override.description_htmlstringoptionalOptional project description override as HTML.end_datestringoptionalOptional end date override in RFC3339 format.namestringoptionalOptional project name override.owner_idstringoptionalID of the user who owns this resource.start_datestringoptionalOptional start date override in RFC3339 format.statusstringoptionalOptional project status override.pylonmcp_create_task#Create a new task with a title. Optionally link it to an account, project, milestone, or parent task.10 params
Create a new task with a title. Optionally link it to an account, project, milestone, or parent task.
titlestringrequiredThe title of the task. Required.account_idstringoptionalID of the account to associate with this resource.assignee_idstringoptionalID of the user to assign this resource to.body_htmlstringoptionalThe body HTML content of the task.customer_portal_visiblebooleanoptionalWhether the task is visible in the customer portal.due_datestringoptionalThe due date for the task in RFC3339 format.milestone_idstringoptionalThe ID of the milestone that this task belongs to.parent_task_idstringoptionalThe ID of the parent task, to create this as a subtask.project_idstringoptionalThe ID of the project that this task belongs to.statusstringoptionalThe status of the task.pylonmcp_delete_task#Permanently delete a task by its ID.1 param
Permanently delete a task by its ID.
task_idstringrequiredThe ID of the task to delete. Required.pylonmcp_get_account#Retrieve a single account by its ID or external ID.1 param
Retrieve a single account by its ID or external ID.
accountstringrequiredThe account ID (UUID) or external ID.pylonmcp_get_contact#Retrieve a single contact by their ID or external ID.1 param
Retrieve a single contact by their ID or external ID.
contactstringrequiredThe contact ID (UUID).pylonmcp_get_issue#Retrieve a single issue by its ID.1 param
Retrieve a single issue by its ID.
issuestringrequiredThe issue ID (UUID) or issue number.pylonmcp_get_issue_messages#Retrieve all messages and replies for a specific issue.1 param
Retrieve all messages and replies for a specific issue.
issuestringrequiredThe issue ID (UUID) or issue number.pylonmcp_get_me#Retrieve the profile of the currently authenticated user.0 params
Retrieve the profile of the currently authenticated user.
pylonmcp_get_milestone#Retrieve a single milestone by its ID.1 param
Retrieve a single milestone by its ID.
milestone_idstringrequiredThe milestone ID to get details for.pylonmcp_get_milestones#List milestones, optionally filtered by project or account.3 params
List milestones, optionally filtered by project or account.
account_idstringoptionalID of the account to associate with this resource.limitintegeroptionalMaximum number of items to return.project_idstringoptionalProject ID to filter milestones by.pylonmcp_get_project#Retrieve a single project by its ID.1 param
Retrieve a single project by its ID.
project_idstringrequiredThe project ID to get details for. Required.pylonmcp_get_project_templates#List available project templates, optionally filtered by name.2 params
List available project templates, optionally filtered by name.
limitintegeroptionalMaximum number of items to return.namestringoptionalOptional case-insensitive template name filter.pylonmcp_get_projects#List projects, optionally filtered by account and archived status.3 params
List projects, optionally filtered by account and archived status.
account_idstringoptionalID of the account to associate with this resource.include_archivedbooleanoptionalWhether to include archived projects. Defaults to false.limitintegeroptionalMaximum number of items to return.pylonmcp_get_task#Retrieve a single task by its ID.1 param
Retrieve a single task by its ID.
task_idstringrequiredThe task ID to get details for. Required.pylonmcp_get_tasks#List tasks, optionally filtered by project, account, and status.4 params
List tasks, optionally filtered by project, account, and status.
account_idstringoptionalID of the account to associate with this resource.limitintegeroptionalMaximum number of items to return.project_idstringoptionalThe project ID to filter tasks by.statusesarrayoptionalFilter by task statuses.pylonmcp_get_user#Retrieve a single user by their ID or email.1 param
Retrieve a single user by their ID or email.
userstringrequiredThe user ID (UUID).pylonmcp_search_accounts#Search accounts by name, domain, owner, tags, or custom field filters.8 params
Search accounts by name, domain, owner, tags, or custom field filters.
cursorstringoptionalPagination cursor from the previous response to fetch the next page.custom_field_filtersarrayoptionalFilter by custom fields. Each filter specifies a custom field slug, operator, and value(s). For user-type fields, pass a Pylon user name or ID as the value - names will be resolved to Pylon user IDs automatically.domainstringoptionalFilter by domain (accounts containing this domain).external_idstringoptionalFilter by external ID.limitintegeroptionalMaximum number of items to return.namestringoptionalFilter by account name (partial match).ownerstringoptionalFilter by account owner. Accepts a user ID or name (partial match).tagsarrayoptionalFilter by tags. Returns accounts containing any of the specified tags.pylonmcp_search_issues#Search issues by account, assignee, state, tags, type, and date range.14 params
Search issues by account, assignee, state, tags, type, and date range.
accountstringoptionalFilter by account. Accepts either an account ID or a name (partial match).assigneestringoptionalFilter by assignee. Accepts either a user ID or a name (partial match).created_afterstringoptionalFilter for issues created after this time (RFC3339 format).created_beforestringoptionalFilter for issues created before this time (RFC3339 format).cursorstringoptionalPagination cursor from the previous response to fetch the next page.custom_field_filtersarrayoptionalFilter by custom fields. Each filter specifies a custom field slug, operator, and value(s). For user-type fields, pass a Pylon user name or ID as the value - names will be resolved to Pylon user IDs automatically.is_issue_groupbooleanoptionalFilter by whether the issue is an issue group. Pass true to get only issue groups, false to exclude them.limitintegeroptionalMaximum number of items to return.requesterstringoptionalFilter by requester. Accepts either a contact ID or a name (partial match).statesarrayoptionalFilter by issue states (inclusion). Accepts built-in slugs (new, waiting_on_you, waiting_on_customer, on_hold, closed) and custom state slugs.states_not_inarrayoptionalExclude issues in these states. Accepts built-in slugs (new, waiting_on_you, waiting_on_customer, on_hold, closed) and custom state slugs.tagsarrayoptionalFilter by tags. Returns issues containing any of the specified tags.team_idstringoptionalFilter by team ID. Returns issues assigned to the specified team.typestringoptionalFilter by issue type.pylonmcp_search_projects#Search projects by text, account, owner, status, and archived state.6 params
Search projects by text, account, owner, status, and archived state.
account_idstringoptionalID of the account to associate with this resource.include_archivedbooleanoptionalWhether to include archived projects. Defaults to false.limitintegeroptionalMaximum number of items to return.owner_idstringoptionalID of the user who owns this resource.search_textstringoptionalSearch text for project names.statusesarrayoptionalFilter by project statuses.pylonmcp_search_tasks#Search tasks by text, project, account, assignee, and status.6 params
Search tasks by text, project, account, assignee, and status.
account_idstringoptionalID of the account to associate with this resource.assignee_idstringoptionalID of the user to assign this resource to.limitintegeroptionalMaximum number of items to return.project_idstringoptionalThe project ID to filter tasks by.search_textstringoptionalSearch text for full-text search across task titles.statusesarrayoptionalFilter by task statuses.pylonmcp_update_account#Update an account name, owner, tags, or custom fields by its ID.5 params
Update an account name, owner, tags, or custom fields by its ID.
account_idstringrequiredID of the account to associate with this resource.custom_fieldsobjectoptionalCustom field values to set. Keys are custom field slugs (use get_custom_fields with object_type 'account' to discover available slugs), values are the field values to set. For multi-select fields, use comma-separated values.namestringoptionalThe new name for the account.owner_idstringoptionalID of the user who owns this resource.tagsarrayoptionalAn array of tags to set on the account. This replaces all existing tags.pylonmcp_update_issue#Update an issue state, assignee, team, or tags by its ID.5 params
Update an issue state, assignee, team, or tags by its ID.
issue_idstringrequiredThe ID or number of the issue to update. Required.assignee_idstringoptionalID of the user to assign this resource to.statestringoptionalThe state to set the issue to. Standard values: new, waiting_on_you, waiting_on_customer, on_hold, closed. Custom status slugs are also accepted.tagsarrayoptionalAn array of tags to set on the issue. This replaces all existing tags.team_idstringoptionalThe ID of the team to assign the issue to. Pass empty string to remove team assignment.pylonmcp_update_milestone#Update a milestone name or due date by its ID.3 params
Update a milestone name or due date by its ID.
milestone_idstringrequiredThe milestone ID to update.due_datestringoptionalDue date in RFC3339 format. Pass empty string to clear.namestringoptionalMilestone name.pylonmcp_update_project#Update project details such as name, status, dates, owner, and visibility by its ID.9 params
Update project details such as name, status, dates, owner, and visibility by its ID.
project_idstringrequiredThe project ID to update.customer_portal_visiblebooleanoptionalWhether this project is visible in the customer portal.description_htmlstringoptionalProject description as HTML.end_datestringoptionalEnd date in RFC3339 format. Pass empty string to clear.is_archivedbooleanoptionalWhether this project is archived.namestringoptionalProject name.owner_idstringoptionalID of the user who owns this resource.start_datestringoptionalStart date in RFC3339 format. Pass empty string to clear.statusstringoptionalProject status.pylonmcp_update_task#Update a task title, status, assignee, due date, or other fields by its ID.10 params
Update a task title, status, assignee, due date, or other fields by its ID.
task_idstringrequiredThe ID of the task to update. Required.account_idstringoptionalID of the account to associate with this resource.assignee_idstringoptionalID of the user to assign this resource to.body_htmlstringoptionalThe body HTML content of the task.customer_portal_visiblebooleanoptionalWhether the task is visible in the customer portal.due_datestringoptionalThe due date for the task in RFC3339 format. Pass empty string to clear.milestone_idstringoptionalThe ID of the milestone. Pass empty string to clear.project_idstringoptionalThe ID of the project. Pass empty string to clear.statusstringoptionalThe status of the task.titlestringoptionalThe title of the task.pylonmcp_upload_account_files#Upload one or more files to an account. Each file requires a filename and base64-encoded content.2 params
Upload one or more files to an account. Each file requires a filename and base64-encoded content.
account_idstringrequiredID of the account to associate with this resource.filesarrayrequiredFiles to upload. 1 to 5 files per call.