Runn integration
Runn is resource and capacity planning software for project teams. Manage people and placeholders, their contracts, skills, tags and time off, projects with phases, milestones, budget roles, rates, notes and workstreams, clients, assignments (scheduled work) and actuals (timesheet hours), and read hours, totals and overview reports and the account's activity log. Custom field definitions, user administration (changing or removing users) and saved views, invitations, the v0 legacy-id converter, deprecated team routes, person notes and the definition writes for skills, people and project tags, teams, roles, workstreams and rate cards are left out; email addresses, contract cost rates, per-person cost figures and leave notes are not returned. Authentication is an account API token (Settings, API) sent as a Bearer token to the account's regional host; the API allows 120 requests per minute.
Say what should happen.
The workflow builds itself.
What you can do with Runn
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Project, 13 operations
create_person_projectCreate person projectPOSTAdds a person or placeholder to a project (as a member with a role) on the live account.create_projectCreate projectPOSTCreates a project on the live account (name, client, team, budget, pricing model, rate card, tags, managers, or from a template). pricingModel is tm when left out.create_project_tag_projectCreate project tag projectPOSTAdds an existing project tag to a project on the live account.delete_projectDelete projectDELETEPermanently deletes a project from the live account; refused when it has any actuals or assignments.delete_project_tag_projectDelete project tag projectDELETERemoves a project tag from a project on the live account.get_projectGet projectGETGets one project by id: pricing model, rate type, budget, client, rate card, tags, managers and custom fields.get_project_hours_reportGet project hours reportGETGets a project's by-day entries combining scheduled assignments and logged actuals over a date range.get_project_reportGet project reportGETGets Project Overview Report metrics for a project, tentative ones included (beta: Advanced Plan only, closed beta).get_project_totals_reportGet project totals reportGETGets the totals of scheduled assignments and logged actuals for one project.list_client_projectsList client projectsGETLists the projects of one client (archived ones only with includeArchived=true). Paged: pass nextCursor back as cursor until it is null.list_person_projectsList person projectsGETLists the projects a person or placeholder is a member of. Paged: pass nextCursor back as cursor until it is null.list_projectsList projectsGETLists projects, filterable by name, externalId and modifiedAfter (archived ones only with includeArchived=true). For one person use list_person_projects. Paged: pass nextCursor back as cursor until it is null.list_project_totals_reportsList project totals reportsGETLists per-project totals of scheduled assignments and logged actuals. Paged: pass nextCursor back as cursor until it is null.
Person, 10 operations
create_personCreate personPOSTCreates a person on the live account together with their first contract (role, dates, hours per day).create_skill_personCreate skill personPOSTGives an existing skill to several people at once on the live account.delete_personDelete personDELETEPermanently deletes a person or placeholder from the live Runn account. With force=false it fails when they have assignments or actuals; force=true deletes regardless.get_personGet personGETGets one person or placeholder by id, with tags, skills, references, managers, team and custom fields.get_person_hours_reportGet person hours reportGETGets a person's by-day entries combining scheduled assignments and logged actuals over a date range.get_person_reportGet person reportGETGets People Overview Report metrics for a person over a period: revenue, effort hours, utilization, capacity, overtime, time off (beta, Advanced Plan only). Cost figures are left out: they reveal the person's cost rate.list_peopleList peopleGETLists people (placeholders too when includePlaceholders=true), filterable by first or last name, email substring, externalId and modifiedAfter. Email addresses are not returned. Paged: pass nextCursor back as cursor until it is null.list_project_peopleList project peopleGETLists the people and placeholders assigned to a project. Paged: pass nextCursor back as cursor until it is null.list_skill_peopleList skill peopleGETLists the people who have a given skill. Paged: pass nextCursor back as cursor until it is null.list_team_peopleList team peopleGETLists the people in a team. Paged: pass nextCursor back as cursor until it is null.
Skill, 8 operations
create_person_skillCreate person skillPOSTGives a person or placeholder a skill at a level (1 to 4) on the live account.create_placeholder_skillCreate placeholder skillPOSTAdds a skill to a placeholder on the live account.delete_person_skillDelete person skillDELETERemoves a skill from a person or placeholder on the live account.delete_placeholder_skillDelete placeholder skillDELETERemoves a skill from a placeholder on the live account.get_skillGet skillGETGets one skill by id.list_people_skillsList people skillsGETLists the skills held by people across the account, with their level. Paged: pass nextCursor back as cursor until it is null.list_person_skillsList person skillsGETLists the skills of one person or placeholder, with their level. Paged: pass nextCursor back as cursor until it is null.list_skillsList skillsGETLists skills defined in the account. Paged: pass nextCursor back as cursor until it is null.
Actual, 5 operations
create_actualCreate actualPOSTCreates or OVERWRITES an actual on the live account: matched on date, projectId, personId, roleId and workstreamId, its minutes replace the day's previous total. To add minutes instead, use create_actual_time_entry.delete_actualDelete actualDELETEPermanently deletes an actual (logged hours) from the live account.list_actualsList actualsGETLists actuals (hours logged per person, project, role and day), filterable by date range, person, project and modifiedAfter. Paged: pass nextCursor back as cursor until it is null.list_person_actualsList person actualsGETLists the actuals (logged hours) of one person. Paged: pass nextCursor back as cursor until it is null.list_project_actualsList project actualsGETLists the actuals (logged hours) of one project. Paged: pass nextCursor back as cursor until it is null.
Assignment, 5 operations
create_assignmentCreate assignmentPOSTSchedules a person or placeholder on a project on the live account: one assignment covering every working day from startDate to endDate at minutesPerDay (0-1440 for people). Returns it in an array.delete_assignmentDelete assignmentDELETEPermanently deletes an assignment from the live account.list_assignmentsList assignmentsGETLists assignments (scheduled work of people and placeholders on projects), filterable by person, project, role and dates. Paged: pass nextCursor back as cursor until it is null.list_person_assignmentsList person assignmentsGETLists the assignments of one person or placeholder. Paged: pass nextCursor back as cursor until it is null.list_project_assignmentsList project assignmentsGETLists the assignments of one project. Paged: pass nextCursor back as cursor until it is null.
Budget role, 5 operations
create_project_budget_roleCreate project budget rolePOSTAdds a role budget to a project on the live account. Using estimatedBudget needs a project rate for that role (it derives estimatedMinutes).delete_project_budget_roleDelete project budget roleDELETEDeletes a role's budget from a project on the live account; refused for one created implicitly by a project membership.get_project_budget_roleGet project budget roleGETGets the budget (estimated minutes and budget) of one role on a project.list_budget_rolesList budget rolesGETLists the budget roles of all projects. Paged: pass nextCursor back as cursor until it is null.list_project_budget_rolesList project budget rolesGETLists the budget roles (estimated minutes and budget per role) of one project. Paged: pass nextCursor back as cursor until it is null.
Leave, 5 operations
create_leaveCreate leavePOSTCreates leave for a person on the live account. Overlapping leave is merged; it may return an existing time off. With minutesPerDay, an overlap with a different minutesPerDay fails.delete_leaveDelete leaveDELETEPermanently deletes a leave time off from the live account.get_leaveGet leaveGETGets one leave time off by id.list_leaveList leaveGETLists leave time offs across the account (notes are not returned). Paged: pass nextCursor back as cursor until it is null.list_person_leaveList person leaveGETLists the leave time offs of one person (dates and minutes per day; notes are not returned). Paged: pass nextCursor back as cursor until it is null.
Phase, 5 operations
create_project_phaseCreate project phasePOSTAdds a phase (named, coloured date range) to a project on the live account.delete_project_phaseDelete project phaseDELETEPermanently deletes a phase from a project on the live account.get_project_phaseGet project phaseGETGets one phase of a project.list_phasesList phasesGETLists project phases across all projects. Paged: pass nextCursor back as cursor until it is null.list_project_phasesList project phasesGETLists the phases of one project. Paged: pass nextCursor back as cursor until it is null.
Project workstream, 5 operations
create_project_workstreamCreate project workstreamPOSTAdds an existing workstream to a project on the live account.delete_project_workstreamDelete project workstreamDELETERemoves a workstream from a project on the live account.get_project_workstreamGet project workstreamGETGets one workstream assignment of a project.get_project_workstreamsGet project workstreamsGETLists the workstreams assigned to one project. Paged: pass nextCursor back as cursor until it is null.list_project_workstreamsList project workstreamsGETLists which workstreams are assigned to which projects. Paged: pass nextCursor back as cursor until it is null.
Bulk, 4 operations
create_actuals_bulkCreate actuals bulkPOSTCreates or OVERWRITES up to 100 actuals in one call on the live account; each is matched on date, project, person, role and workstream and replaces that day's minutes.create_clients_bulkCreate clients bulkPOSTCreates up to 100 clients in one call on the live account.create_leave_bulkCreate leave bulkPOSTCreates several leave time offs in one call on the live account; overlapping leave is merged and existing time offs may be returned.delete_leave_bulkDelete leave bulkDELETEPermanently deletes several leave time offs (timeOffIds) from the live account in one call.
Contract, 4 operations
create_person_contractCreate person contractPOSTAdds a contract (new role, job title, hours or employment type from a start date) to a person on the live account.delete_person_contractDelete person contractDELETEPermanently deletes one of a person's contracts on the live account.list_contractsList contractsGETLists contracts across all people (role, job title, employment type, hours per day, dates). For one person use list_person_contracts. Paged: pass nextCursor back as cursor until it is null.list_person_contractsList person contractsGETLists all contracts of one person. Paged: pass nextCursor back as cursor until it is null.
Milestone, 4 operations
create_project_milestoneCreate project milestonePOSTAdds a dated milestone to a project on the live account.delete_project_milestoneDelete project milestoneDELETEPermanently deletes a milestone from a project on the live account.list_milestonesList milestonesGETLists milestones across all projects. Paged: pass nextCursor back as cursor until it is null.list_project_milestonesList project milestonesGETLists the milestones of one project. Paged: pass nextCursor back as cursor until it is null.
Person request, 4 operations
create_project_person_requestCreate project person requestPOSTCreates a person request on a project on the live account: asks for a placeholder role to be filled by someone in the account, or for a hire.get_project_person_requestGet project person requestGETGets one person request of a project.list_person_requestsList person requestsGETLists person requests (asks to fill a placeholder with a person or to hire) across all projects. Paged: pass nextCursor back as cursor until it is null.list_project_person_requestsList project person requestsGETLists the person requests (fill a placeholder or hire) of one project. Paged: pass nextCursor back as cursor until it is null.
Client, 3 operations
create_clientCreate clientPOSTCreates a client on the live account; set name and optional website and references.get_clientGet clientGETGets one client by id.list_clientsList clientsGETLists clients. Paged: pass nextCursor back as cursor until it is null.
Holiday, 3 operations
list_holiday_group_holidaysList holiday group holidaysGETLists the holidays of one holiday group. Paged: pass nextCursor back as cursor until it is null.list_holidaysList holidaysGETLists public holiday time offs across the account. Paged: pass nextCursor back as cursor until it is null.list_person_holidaysList person holidaysGETLists the public holidays that apply to one person. Paged: pass nextCursor back as cursor until it is null.
Other expense, 3 operations
create_project_other_expenseCreate project other expensePOSTAdds an other (non-labour) expense to a project on the live account.list_other_expensesList other expensesGETLists other (non-labour) expenses across all projects. Paged: pass nextCursor back as cursor until it is null.list_project_other_expensesList project other expensesGETLists the other (non-labour) expenses of one project. Paged: pass nextCursor back as cursor until it is null.
Rostered off, 3 operations
delete_rostered_offDelete rostered offDELETEPermanently deletes a rostered day off from the live account.list_person_rostered_offList person rostered offGETLists the rostered days off of one person. Paged: pass nextCursor back as cursor until it is null.list_rostered_offList rostered offGETLists rostered days off across the account. Paged: pass nextCursor back as cursor until it is null.
Team, 3 operations
create_placeholder_teamCreate placeholder teamPOSTPuts a placeholder in a team on the live account.delete_placeholder_teamDelete placeholder teamDELETERemoves a placeholder from a team on the live account.get_teamGet teamGETGets one team by id.
Current, 2 operations
get_person_current_contractGet person current contractGETGets the current contract of one person.list_people_current_contractsList people current contractsGETLists the current contract of every person. Paged: pass nextCursor back as cursor until it is null.
Custom field, 2 operations
list_people_custom_fieldsList people custom fieldsGETLists custom field values across all people. Paged: pass nextCursor back as cursor until it is null.list_project_custom_fieldsList project custom fieldsGETLists custom field values across all projects. Paged: pass nextCursor back as cursor until it is null.
Holiday group, 2 operations
get_holiday_groupGet holiday groupGETGets one holiday group by id.list_holiday_groupsList holiday groupsGETLists holiday groups (sets of public holidays assigned to people). Paged: pass nextCursor back as cursor until it is null.
Note, 2 operations
create_project_noteCreate project notePOSTAdds a note to a project on the live account; the author shows as the API user.get_project_notesGet project notesGETLists the notes of one project. Paged: pass nextCursor back as cursor until it is null.
People tag, 2 operations
get_people_tagGet people tagGETGets one people tag by id.list_people_tagsList people tagsGETLists people tags. Paged: pass nextCursor back as cursor until it is null.
Placeholder, 2 operations
create_placeholderCreate placeholderPOSTCreates a placeholder on the live account, with a contract at the role cost. A placeholder not assigned to a project is deleted within 24 hours.list_placeholdersList placeholdersGETLists placeholders (unnamed roles to be filled on projects). list_people with includePlaceholders=true also returns them. Paged: pass nextCursor back as cursor until it is null.
Project rate, 2 operations
get_project_ratesGet project ratesGETLists the charge-out rates per role of one project. Paged: pass nextCursor back as cursor until it is null.list_project_ratesList project ratesGETLists the charge-out rates per role across all projects. Paged: pass nextCursor back as cursor until it is null.
Project tag, 2 operations
get_project_tagGet project tagGETGets one project tag by id.list_project_tagsList project tagsGETLists project tags. Paged: pass nextCursor back as cursor until it is null.
Rate card, 2 operations
get_rate_cardGet rate cardGETGets one rate card by id.list_rate_cardsList rate cardsGETLists rate cards (charge-out rates per role). Paged: pass nextCursor back as cursor until it is null.
Role, 2 operations
get_roleGet roleGETGets one role by id.list_rolesList rolesGETLists roles with their default hourly cost and charge-out rate. Paged: pass nextCursor back as cursor until it is null.
Activity log, 1 operation
list_activity_logList activity logGETLists deletion events (a project, person, contract, actual, time off or assignment deleted) with who did it and when. Paged: pass nextCursor back as cursor until it is null. Not on test accounts.
Me, 1 operation
get_meGet meGETGets the name of the account user the API token authenticates as; use it to check the token works.
Project member, 1 operation
list_project_membersList project membersGETLists project memberships (which person or placeholder is on which project with which role). Removals from a project are not included. Paged: pass nextCursor back as cursor until it is null.
Project note, 1 operation
list_project_notesList project notesGETLists project notes across all projects. Paged: pass nextCursor back as cursor until it is null.
Time entry, 1 operation
create_actual_time_entryCreate actual time entryPOSTAdds minutes to the matching actual (same date, project, person, role and workstream) on the live account, or creates it when none matches.
Timesheet lock, 1 operation
get_project_timesheet_lockGet project timesheet lockGETGets a project's timesheet lock (locked until which date). Beta, available only to selected customers.
User, 1 operation
get_userGet userGETGets one Runn user by id.
Workstream, 1 operation
get_workstreamGet workstreamGETGets one workstream by id.
Showing the first 120 of 145 endpoints. The rest are in the product, searchable from the workflow builder and from chat.
Use Runn from Claude Code, Cursor or Codex
Connect Runn in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Runn operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect Runn
- Create your workspace
Sign up free. Nothing to install.
- Connect Runn once
Add your Runn connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
Runn integration FAQ
What can you do with the Runn integration?
LiveContext exposes 145 operations on Runn, covering project, person, skill and actual.
