Skip to main content

MCP Server

Wayd provides an MCP (Model Context Protocol) server that lets AI assistants like Claude interact directly with your Wayd instance. The MCP server exposes Wayd's API as structured tools that AI agents can call to read and manage your delivery data.

Package: @wayd/mcp

What Can It Do?​

The MCP server exposes more than 250 tools across Wayd's core modules:

ModuleCapabilities
PPMList/view portfolios, programs, projects, stages, tasks. Create and update portfolios, programs, projects, and tasks. Change status (approve, activate, complete, cancel, close, archive). View project plan tree, summary metrics, status history, and activity history. Manage task dependencies. Review and log project health checks. Review project scores and portfolio ranking.
Strategic InitiativesList/view initiatives, their statuses, activity history, and the projects delivering them. Review KPIs, checkpoints, and the checkpoint plan with health and trend. Record and remove KPI measurements. Change initiative status.
PlanningList/view planning intervals, iterations, objectives, risks, and the activity history of intervals and objectives. Get PI predictability and health reports. Review and log objective health checks. View calendars.
RoadmapsList/view roadmaps and their items (activities, milestones, timeboxes).
Story MapsList story maps and read a full map — goals, steps, tasks (with checklists, personas, and work item links), swim lanes, and personas. Create and manage maps: build out goals/steps/tasks, reorder and move cards, manage swim lanes, personas, checklists, and work item links.
OrganizationsList/view teams, teams of teams, and users. Review a team's activity history. Grade a team's backlog health. Read team sprint metrics, cadence velocity, and work distribution reports.
Product CatalogList/view products and their status and activity history. Create, retype, reparent, tag, and delete products. Record and end dependencies between products. Manage product types and tag categories.
Product DeliveryPlan, cut, release, and withdraw versions, releases, and release packages. Record deployments and how they ended. Manage deployment environments. Read the rollout, delivery metrics, and delivery overview.
Delivery ForecastingForecast when a work item, PI objective, or project will be done, and how many backlog work items a team finishes by a date.
ImportsCheck a CSV file before importing it, then import the rows it checked. Follow import runs and their row outcomes, and stop, resume, or retry a run.

Prerequisites​

There are two ways to connect: the hosted endpoint, which the Wayd API serves itself, and the npm package, which runs on your machine.

  • Hosted endpoint: a Wayd instance with the MCP Server feature flag on, and an assistant that connects to remote MCP servers over HTTP. You can sign in with your Wayd account, so no token is needed, or use a Personal Access Token.
  • npm package: a running Wayd instance, a Personal Access Token (PAT) created from your profile page, and Node.js 22+ installed on your machine.

Hosted Endpoint (Preview)​

The Wayd API also serves MCP itself, at /mcp on the API's address, using Streamable HTTP. It offers the same tools under the same names as the npm package, so skills and prompts written for one work with the other, and it needs no Node.js on your machine. It also offers a few tools the package lacks: partial updates that change only the fields you name, and single-call evidence reads for health checks. Each of the agent skills is served there without installing it, two ways: as an MCP prompt named after the skill (wayd-ppm, wayd-pi, …) that you can pick in a client that lists prompts, and through a skills tool, which the assistant calls on its own. Every tool's description names the skill for its area, so an assistant connected to the hosted endpoint is pointed to that guidance whichever toolsets you chose; whether it reads it is up to the assistant. The npm package will be retired a few weeks after the hosted endpoint is generally available.

An administrator turns it on with the MCP Server feature flag (Settings > System > Feature Flags); while the flag is off, /mcp answers 404. Connect in one of two ways:

  • Sign in with your Wayd account and approve the assistant. Nothing to create, copy or store, and you can disconnect it from your profile at any time. Use this whenever your assistant supports it.
  • A Personal Access Token in the x-api-key header, for an assistant that cannot sign in or a script that runs unattended.

Connecting with Sign-In​

Give your assistant the /mcp address and nothing else: no token and no headers. On its first call Wayd answers that you need to sign in, and the assistant opens Wayd in your browser.

Claude Code — add the server, then authenticate from a session:

claude mcp add --transport http wayd https://your-wayd-api.com/mcp

In Claude Code, run /mcp, choose wayd, and choose Authenticate. Or put it in .mcp.json without a headers block:

{
"mcpServers": {
"wayd": {
"type": "http",
"url": "https://your-wayd-api.com/mcp"
}
}
}

VS Code (.vscode/mcp.json):

{
"servers": {
"wayd": {
"type": "http",
"url": "https://your-wayd-api.com/mcp"
}
}
}

claude.ai, ChatGPT and other hosted assistants: add a custom connector and give it the /mcp address. They cannot send a personal access token, so signing in is the only way they connect.

When Wayd opens:

  1. Sign in, if you are not already. You come back to the request afterwards.
  2. Read the connection request. It names the site the application belongs to — that is what identifies it — and the name the application gives itself, which is only its own claim. It also says where you will be sent afterwards, and warns you if that is a different site from the application's.
  3. Choose Approve to let the application use Wayd as you, or Deny to refuse. Either way you are sent back to the application.

An approved application can do anything your account can, with all of your permissions. It appears as a connected application on the Sessions tab of your profile, where you can disconnect it at any time. A request you leave unanswered expires after ten minutes; start again from the application.

A change an application makes through Wayd's tools is recorded as yours, and the Activity of the record it changed names the application it was made through.

The assistant keeps you signed in and renews its access by itself. If it stops working, sign in again from the assistant (in Claude Code, /mcp again).

An assistant can sign in only if it identifies itself the way current MCP clients do, with a Client ID Metadata Document: a public web address describing the assistant. Wayd does not support the older dynamic client registration. If an assistant cannot complete sign-in, connect it with a personal access token instead.

Connecting with a Personal Access Token​

Send a Personal Access Token in the x-api-key header. The assistant then skips sign-in and acts with the token's access until you revoke it.

Claude Code (.mcp.json):

{
"mcpServers": {
"wayd": {
"type": "http",
"url": "https://your-wayd-api.com/mcp",
"headers": {
"x-api-key": "your-personal-access-token"
}
}
}
}

VS Code / Cursor (.vscode/mcp.json):

{
"inputs": [
{
"id": "waydApiKey",
"description": "Wayd API key (Personal Access Token)",
"type": "promptString",
"password": true
}
],
"servers": {
"wayd": {
"type": "http",
"url": "https://your-wayd-api.com/mcp",
"headers": {
"x-api-key": "${input:waydApiKey}"
}
}
}
}

Choosing Tools​

Every tool's description is loaded into the conversation before any work starts, and all of them together run to about 45,000 tokens. Ask for only the tools your work needs by naming toolsets, and add read-only mode for an assistant that should look but never change anything.

ToolsetTools
ppmPortfolios, programs, projects, tasks, strategic initiatives
planningPlanning intervals, roadmaps, story maps
productsProducts, product types, tag categories
deliveryVersions, releases, release packages, deployments, environments, metrics
teamsTeams, teams of teams, users
workWork item forecasts for workspaces
importsChecking, applying and following CSV imports

Choose them on the URL, or in headers if your client sends them:

Query parameterHeaderEffect
toolsets=ppm,planningX-MCP-Toolsets: ppm,planningOnly those toolsets. Leave it out, or name all, for every toolset.
readonly=trueX-MCP-Readonly: trueOnly tools that read; every create, update and delete is left out.

The query parameter wins when both are sent. An unknown toolset name is refused with 400 rather than ignored, so a typo does not quietly leave you without tools. A tool outside the selection cannot be called either, so read-only mode holds even against an assistant that knows a write tool's name.

{
"mcpServers": {
"wayd-planning": {
"type": "http",
"url": "https://your-wayd-api.com/mcp?toolsets=planning,teams&readonly=true"
}
}
}

Hosted assistants that sign in cannot send headers, so give them the selection on the URL. With a personal access token, add its headers block as usual.

Read-only mode limits which tools are offered, not what your account may do. For a guarantee, also connect as an account that has view permissions only.

The skills tool, Skills_Get, and the skill prompts are offered on every connection, whatever toolsets or read-only mode you chose.

Large Results​

A tool's answer is capped at about 20,000 tokens, so one call over a large project cannot fill the conversation. A list longer than that keeps its first items and says which ones it is showing, such as items 1–74 of 843. Tools whose answer is a list take an offset argument, and the note gives the value that continues it, so the assistant can read the rest a part at a time. A tool whose answer is one record holding a list, such as a summary with its work items, takes no offset; the assistant narrows it with the tool's filters (a status, a portfolio, a team) instead.

Hosted-Only Tools​

Besides every tool in the tables below, the hosted endpoint offers these:

ToolToolsetDescription
Skills_Get(every connection)Read one of the agent skills, or one of its reference files
Projects_GetHealthCheckEvidenceppmEverything needed to recommend a project health check, in one read: the plan summary, overdue tasks, stages past their end, the forecast, the latest check, and activity since it
PlanningIntervals_GetObjectiveHealthCheckEvidenceplanningEverything needed to recommend a PI objective health check, in one read: schedule, work items and metrics, the forecast, past checks, activity since the last one, and the team's risks
Portfolios_Patch / Programs_Patch / Projects_PatchppmChange some of a record's details, roles or strategic themes, leaving the rest as they are
Projects_PatchStage / Tasks_PatchProjectTaskppmChange some of a project stage's or task's fields
Roadmaps_PatchItemplanningChange some of a roadmap item's fields
StoryMaps_PatchGoalPersonas / StoryMaps_PatchStepPersonas / StoryMaps_PatchTaskPersonasplanningTag or untag personas on a goal, step or task, keeping the tags it does not name
Releases_PatchContentsdeliveryAdd or remove packages and directly carried versions on a release, leaving the rest of its contents
ReleasePackages_PatchManifestdeliveryAdd, change or drop lines in a package's manifest, keeping every line it does not name

The patch tools take a JSON Patch (RFC 6902) and leave alone anything it does not name, so they avoid the whole-record overwrite of the matching update tools.

Setup​

Claude Desktop​

Add the following to your Claude Desktop configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"wayd": {
"command": "npx",
"args": ["-y", "@wayd/mcp"],
"env": {
"WAYD_API_BASE_URL": "https://your-wayd-instance.com",
"WAYD_API_KEY": "your-personal-access-token"
}
}
}
}

Claude Code​

Add a .mcp.json file to your project root:

{
"mcpServers": {
"wayd": {
"command": "npx",
"args": ["-y", "@wayd/mcp"],
"env": {
"WAYD_API_BASE_URL": "https://your-wayd-instance.com",
"WAYD_API_KEY": "your-personal-access-token"
}
}
}
}

Or set environment variables in your shell and omit the env block:

export WAYD_API_BASE_URL="https://your-wayd-instance.com"
export WAYD_API_KEY="your-personal-access-token"

VS Code / Cursor​

Add to your .vscode/mcp.json or workspace settings:

{
"inputs": [
{
"id": "waydBaseUrl",
"description": "Wayd API base URL",
"type": "promptString"
},
{
"id": "waydApiKey",
"description": "Wayd API key (Personal Access Token)",
"type": "promptString",
"password": true
}
],
"servers": {
"wayd": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@wayd/mcp",
"--base-url",
"${input:waydBaseUrl}",
"--api-key",
"${input:waydApiKey}"
]
}
}
}

Configuration​

The MCP server accepts configuration via environment variables or CLI arguments:

Environment VariableCLI ArgumentDescription
WAYD_API_BASE_URL--base-urlThe base URL of your Wayd API instance
WAYD_API_KEY--api-keyYour Personal Access Token

CLI arguments take precedence over environment variables.

Agent Skills​

For Claude Code users, nine pre-built skills provide guided workflows:

  • /wayd-ppm — Portfolio, program, project, and strategic initiative operations, including scoring, health checks, status changes, and tasks
  • /wayd-pi — Planning intervals, iterations, objectives, and risks
  • /wayd-products — The product catalog, plus the product types and tag axes it is built from
  • /wayd-delivery — Releases, versions, release packages, deployments, environments, and delivery metrics
  • /wayd-roadmaps — Roadmap exploration with activities and milestones
  • /wayd-story-maps — Story map analysis and management with goals, steps, tasks, swim lanes, and personas
  • /wayd-teams — Team lookup and resolving team names to IDs, backlog health, delivery forecasts, and team work distribution reports
  • /wayd-users — User lookup and resolving names to UUIDs for assignees and project roles
  • /wayd-imports — Loading CSV data: writing a file, checking it with a preflight, importing it, and following import runs

Install the skills:

npx skills add destacey/wayd

Available Tools​

Most records expose an activity history: every recorded change, newest first, with who made it and what the value was before and after. A record that existed before Wayd began tracking its changes starts with a baseline entry showing what it looked like at that point. Some changes are listed on more than one record: moving a product under a new parent also appears in the history of both parents, marked as related and naming the product it was made on.

Project Portfolio Management​

ToolDescription
Portfolios_GetPortfoliosList portfolios with optional status filter
Portfolios_GetPortfolioGet portfolio details by ID or key
Portfolios_GetPortfolioProgramsList programs in a portfolio
Portfolios_GetPortfolioProjectsList projects in a portfolio
Programs_GetProgramsList programs with status/portfolio filters
Programs_GetProgramGet program details
Programs_GetProgramProjectsList projects in a program
Projects_GetProjectsList projects with status/portfolio/role filters, for you or another employee
Projects_GetProjectGet project details
Projects_GetProjectTeamGet team members with roles
Projects_GetProjectStagesGet all project stages
Projects_GetProjectStageGet one project stage
Projects_GetProjectPlanTreeGet full plan as a hierarchical tree (WBS)
Projects_GetProjectPlanSummaryGet plan metrics (overdue, due this week, totals)
Projects_GetStatusHistoryGet a project's status change history
Portfolios_GetActivities / Programs_GetActivities / Projects_GetActivitiesEvery recorded change to a portfolio, program, or project, newest first
Projects_GetMyProjectsSummaryYour own project involvement, counted by role
Projects_GetMyProjectsTaskMetricsYour open task counts (overdue, due this week, upcoming)
Projects_GetTaskMetricsOpen task counts for you or, with employeeId, for a colleague
Projects_GetProjectsPlanSummariesPlan metrics for many projects in one call
Projects_GetProjectHealthChecksGet the health check history for a project
Projects_GetProjectHealthCheckGet a specific project health check by ID
Projects_CreateProjectHealthCheckLog a new health check (Healthy / AtRisk / Unhealthy) on a project
Projects_UpdateProjectHealthCheck / Projects_DeleteProjectHealthCheckCorrect or remove a recorded health check
Projects_GetScoringContext / Projects_GetScores / Projects_GetScoreReview a project's scoring model and score history
Portfolios_GetRankingScoreboardScore breakdown behind a portfolio's ranking board
Portfolios_Create / Portfolios_UpdateCreate and update portfolios
Programs_Create / Programs_UpdateCreate and update programs
Projects_Create / Projects_UpdateCreate and update projects
Projects_ChangeProgram / Projects_ChangeKeyMove a project between programs, or change its key
Portfolios_Activate / Portfolios_Close / Portfolios_ArchiveChange portfolio status
Programs_Activate / Programs_Complete / Programs_CancelChange program status
Projects_Approve / Projects_Activate / Projects_Complete / Projects_CancelChange project status
Projects_RevertStatusMove a project backwards to an earlier status — reopening a completed one, or returning an active one to approved
Projects_GetWorkItemsGet the work items linked to a project
Projects_GetForecastForecast when a project's work items will be done, and the chance of finishing by its planned end
ProjectLifecycles_GetProjectLifecyclesList lifecycles with state filter
ProjectLifecycles_GetProjectLifecycleGet lifecycle details
ExpenditureCategories_GetOptionsResolve the expenditure category needed to create a project
Portfolios_GetPortfolioOptionsLightweight portfolio list (id and name) for lookups
Portfolios_GetPortfolioStatuses / Programs_GetProgramStatuses / Projects_GetStatusesResolve the status values each record accepts

Strategic Initiatives​

ToolDescription
StrategicInitiatives_GetStrategicInitiativesList initiatives with status/portfolio filters
StrategicInitiatives_GetStrategicInitiativeGet initiative details
StrategicInitiatives_GetStatusesResolve initiative status values
StrategicInitiatives_GetActivitiesEvery recorded change to an initiative, including its KPIs and measurements
StrategicInitiatives_GetProjectsProjects delivering an initiative
Portfolios_GetPortfolioStrategicInitiativesInitiatives in a portfolio
StrategicInitiatives_GetKpis / StrategicInitiatives_GetKpiReview an initiative's KPIs
StrategicInitiatives_GetKpiCheckpointsA KPI's dated targets
StrategicInitiatives_GetKpiCheckpointPlanCheckpoints with measurements, health, and trend
StrategicInitiatives_GetKpiMeasurementsA KPI's measurement history
StrategicInitiatives_AddKpiMeasurement / StrategicInitiatives_RemoveKpiMeasurementRecord or remove a KPI measurement
StrategicInitiatives_Approve / StrategicInitiatives_Activate / StrategicInitiatives_Complete / StrategicInitiatives_CancelChange initiative status

Tasks​

ToolDescription
Tasks_GetProjectTasksList tasks with status/parent filters
Tasks_GetProjectTaskGet task details
Tasks_GetCriticalPathGet critical path task IDs. Not implemented yet: it always returns an empty list
Tasks_CreateProjectTaskCreate a new task or milestone
Tasks_UpdateProjectTaskUpdate task fields
Tasks_DeleteProjectTaskDelete a task
Tasks_AddTaskDependencyAdd finish-to-start dependency
Tasks_RemoveTaskDependencyRemove a dependency
Tasks_GetTaskTypes / Tasks_GetTaskStatuses / Tasks_GetTaskPrioritiesResolve the type, status, and priority values a task accepts

Planning​

ToolDescription
PlanningIntervals_GetListList all planning intervals
PlanningIntervals_GetPlanningIntervalGet PI details
PlanningIntervals_GetActivities / PlanningIntervals_GetObjectiveActivitiesEvery recorded change to a PI, or to one of its objectives
PlanningIntervals_GetCalendarGet PI calendar
PlanningIntervals_GetPredictabilityGet predictability scores
PlanningIntervals_GetTeamsGet teams in a PI
PlanningIntervals_GetIterationsGet iterations
PlanningIntervals_GetIterationGet one iteration
PlanningIntervals_GetObjectivesGet team objectives
PlanningIntervals_GetObjectiveGet one objective
PlanningIntervals_GetRisksGet risks
PlanningIntervals_GetObjectivesHealthReportGet health report for all objectives in a PI
PlanningIntervals_GetObjectiveHealthChecksGet the health check history for a PI objective
PlanningIntervals_GetObjectiveHealthCheckGet a specific PI objective health check by ID
PlanningIntervals_CreateObjectiveHealthCheckLog a new health check (1=Healthy, 2=AtRisk, 3=Unhealthy) on a PI objective
PlanningIntervals_GetTeamPredictabilityPredictability for one team in a PI
PlanningIntervals_GetIterationCategoriesResolve iteration category values
PlanningIntervals_GetIterationSprintsSprints within an iteration
PlanningIntervals_GetIterationMetricsIteration metrics
PlanningIntervals_GetIterationBacklogAn iteration's backlog
PlanningIntervals_GetObjectiveStatusesResolve objective status values
PlanningIntervals_GetObjectiveWorkItems / PlanningIntervals_GetObjectiveWorkItemMetricsWork items behind an objective, and their metrics
PlanningIntervals_GetObjectiveForecastForecast when an objective's work items will be done, and the chance of finishing by its target date
Roadmaps_GetRoadmapsList all roadmaps
Roadmaps_GetRoadmapGet roadmap details
Roadmaps_GetItemsGet all roadmap items
Roadmaps_GetItemGet roadmap item details
Roadmaps_GetActivitiesList a roadmap's activities (the timed items on it, not its change history)
Roadmaps_GetVisibilityOptionsResolve roadmap visibility values

Story Maps​

ToolDescription
StoryMaps_GetStoryMapsList story maps (optionally including archived)
StoryMaps_GetStoryMapGet a full story map — goals, steps, tasks, swim lanes, personas
StoryMaps_CreateStoryMapCreate a story map
StoryMaps_UpdateStoryMapUpdate a map's name and description
StoryMaps_ChangeStoryMapOwnerChange the map's owner
StoryMaps_ArchiveStoryMapArchive a story map
StoryMaps_DeleteStoryMapPermanently delete a story map
StoryMaps_AddGoalAdd a goal (created with one step)
StoryMaps_RenameGoal / StoryMaps_ReorderGoal / StoryMaps_DeleteGoalManage goals
StoryMaps_AddStepAdd a step to a goal
StoryMaps_RenameStep / StoryMaps_ReorderStep / StoryMaps_MoveStep / StoryMaps_DeleteStepManage steps
StoryMaps_AddTaskAdd a task to a step (defaults to the default swim lane)
StoryMaps_UpdateTask / StoryMaps_MoveTask / StoryMaps_DeleteTaskManage tasks
StoryMaps_AddChecklistItem / StoryMaps_RenameChecklistItem / StoryMaps_SetChecklistItemChecked / StoryMaps_RemoveChecklistItemManage a task's checklist
StoryMaps_PromoteChecklistItemPromote a checklist item into a task
StoryMaps_LinkWorkItem / StoryMaps_UnlinkWorkItemLink/unlink a task to a work item
StoryMaps_AddSwimLane / StoryMaps_RenameSwimLane / StoryMaps_SetSwimLaneDates / StoryMaps_ReorderSwimLane / StoryMaps_RemoveSwimLaneManage swim lanes
StoryMaps_AddPersona / StoryMaps_UpdatePersona / StoryMaps_ReorderPersona / StoryMaps_DeletePersonaManage personas
StoryMaps_SetGoalPersonas / StoryMaps_SetStepPersonas / StoryMaps_SetTaskPersonasSet persona tags on a node

Product Catalog​

The catalog is one typed tree of what your organization owns — products, platforms, services, and tools. A product's type carries the flag that decides whether versions can be cut against it, which is why a product line usually holds no versions of its own.

ToolDescription
Products_GetProductsList products, filtered by parent, type, status category, or tags
Products_GetProductGet product details
Products_GetStatusHistoryA product's status change history
Products_GetActivitiesEvery recorded change to a product
Products_GetStatusOptionsResolve the status values a product accepts
Products_Create / Products_UpdateCreate a product, or change its name and description
Products_RetypeChange a product's type
Products_ReparentMove a product beneath a different parent
Products_ChangeStatusChange a product's status
Products_LinkExternallyLink a product to an external system
Products_Tag / Products_UntagApply or remove a tag
Products_GetDependenciesWhat a product depends on and what depends on it, rolled up across everything beneath it
Products_AddDependency / Products_UpdateDependencyRecord that a product depends on another, or reword what it is for
Products_ChangeDependencyTermsChange a dependency's strength or interaction styles — ends it and opens a new one
Products_EndDependency / Products_RemoveDependencyRecord that a dependency stopped (kept), or delete one recorded by mistake
Products_DeletePermanently delete a product
ProductTypes_GetProductTypesList the types a product can be, and whether each allows versions
ProductTypes_Create / ProductTypes_Update / ProductTypes_DeleteManage product types
ProductTypes_SetActiveTake a type out of use, or put it back
ProductTagCategories_GetProductTagCategoriesList the tag axes and their tags
ProductTagCategories_Create / ProductTagCategories_Update / ProductTagCategories_DeleteManage tag axes
ProductTagCategories_SetActiveTake an axis out of use, or put it back
ProductTagCategories_ReorderReorder the axes — the list must name every one exactly once
ProductTagCategories_AddTag / ProductTagCategories_RenameTagManage the tags on an axis
ProductTagCategories_SetTagActiveTake a single tag out of use, or put it back
ProductTagCategories_DeleteTagPermanently delete a tag no product carries

Dependencies are rolled up: a product line's list includes its services' links to anything outside it. Strength has no default — hard if the product stops working without the other, soft if it only degrades — and a dependency that stopped should be ended, not removed, so the record of when it held survives.

Three behaviours worth knowing. Tagging an axis that only allows one value silently replaces the existing tag rather than refusing. Deleting a product is a hard delete, refused while anything depends on it. And seeded system types and axes cannot be edited or deleted, but can be deactivated — so an organization can hide a type it doesn't use. Individual tags inside a seeded axis are the exception: they can't be deactivated either, so retire the whole axis instead.

Product Delivery​

Where the catalog records what exists, delivery records what shipped. The word "release" means three different things in most organizations, and Wayd keeps them apart: a release is what was announced to customers (Wayd 2026.07), a version is one artifact that was built (Wayd API 4.12.0), a package is what moved through environments together (WAYD-2026.07), and a deployment is one of those reaching one environment.

ToolDescription
Releases_GetReleases / Releases_GetReleaseList releases, or get one
Releases_GetStatusHistoryA release's status change history
Releases_GetActivitiesEvery recorded change to a release
Releases_Plan / Releases_UpdatePlan a release, or update its details
Releases_SetContentsSet what the release announces — its versions and packages together
Releases_MarkReleasedAnnounce a release
Releases_Withdraw / Releases_RevertWithdraw a release, or revert it to an earlier state
Releases_DeletePermanently delete a release; the versions and packages it listed are kept
Releases_CorrectDates / Releases_MoveTargetDateCorrect recorded dates, or move the target
Versions_GetVersions / Versions_GetVersionList versions, or get one
Versions_GetStatusHistoryA version's status change history
Versions_GetActivitiesEvery recorded change to a version
Versions_Plan / Versions_UpdatePlan a version, or update its details
Versions_CutCut the version — the artifact now exists
Versions_MarkReleasedMark a version released
Versions_Withdraw / Versions_RevertWithdraw a version, or revert it
Versions_DeletePermanently delete a version and every deployment of it
Versions_CorrectDates / Versions_MoveTargetDateCorrect the target date or the cut/released moments, or move the target
ReleasePackages_GetReleasePackages / ReleasePackages_GetReleasePackageList packages, or get one
ReleasePackages_GetStatusHistoryA package's status change history
ReleasePackages_GetActivitiesEvery recorded change to a package
ReleasePackages_AssembleAssemble a package
ReleasePackages_SetManifestReplace what the package contains
ReleasePackages_MarkReleased / ReleasePackages_WithdrawMark a package released, or withdraw it
ReleasePackages_CorrectDatesCorrect a package's recorded target date or released moment
ReleasePackages_DeletePermanently delete a package, its manifest and every deployment of it
Deployments_GetDeployments / Deployments_GetDeploymentList deployments, or get one
Deployments_GetStatusHistoryA deployment's status change history
Deployments_GetActivitiesWhen a deployment started and how it ended
Deployments_StartRecord a deployment starting — of a version or a package, never both
Deployments_Succeed / Deployments_Fail / Deployments_RollBackRecord how a deployment ended
Deployments_DeletePermanently delete a deployment and its status history
DeploymentEnvironments_GetDeploymentEnvironmentsList environments, by active state or category
DeploymentEnvironments_Create / DeploymentEnvironments_UpdateDefine or edit an environment
DeploymentEnvironments_SetActiveRetire an environment, or reinstate it
DeploymentEnvironments_DeletePermanently delete an environment and every deployment into it
DeploymentEnvironments_GetRolloutWhat is running in each environment now, in rollout order
DeliveryMetrics_GetDeliveryMetricsDeployment frequency and change failure rate over a window
DeliveryOverview_GetDeliveryOverviewVersion activity over a window — release frequency and cut-to-released time, for a product and everything beneath it
DeliveryOverview_GetRecentDeliveryEventsWhat has happened to versions and packages lately

Contents and manifests replace as a set. Releases_SetContents and ReleasePackages_SetManifest overwrite what was there, so send the full list including anything that should stay.

Environments are retired rather than deleted, because historical deployments still point at them — deleting one takes every deployment into it along. Every production-scoped measure counts on an environment's category, not its name — pipeline names vary too much (prod, prd, live) to reason about. Reclassifying an environment changes where future deployments count and leaves past ones alone.

DeliveryMetrics_GetDeliveryMetrics returns an unavailable list naming what it couldn't compute and why; read it rather than treating a missing measure as zero. Change failure rate is a proxy — a pipeline run that failed before production is a failure that was prevented, while a real change failure succeeded and then broke something, which the pipeline can't know.

DeploymentEnvironments_GetRollout reports the latest deployment of each product that succeeded and wasn't rolled back, so a failed attempt leaves its predecessor listed as running — and flags that a later attempt failed. DeliveryOverview_GetDeliveryOverview measures versions rather than deployments, so it answers how often you ship even where pipelines aren't recorded in Wayd. Pass an IANA timeZone (default UTC) so the window and its per-day buckets are the caller's own days; cut-to-released is the elapsed time between the two moments, in fractional days.

Organization​

ToolDescription
Teams_GetTeamsList teams with optional inactive filter
Teams_GetTeamGet team details
Teams_GetActivitiesEvery recorded change to a team
Teams_GetBacklogHealthGrade a team's backlog and list the work items each check flagged, with optional what-if thresholds
Teams_GetThroughputForecastForecast how many backlog work items a team finishes by a date, and which work item that reaches
Teams_GetSprintMetricsTeam sprint metrics: average velocity, predictability and say/do over a team's last sprints, with each sprint's values
Teams_GetCadenceMetricsCadence velocity: a Kanban team's completed work in each period of its reporting cadence, with the average and spread
Teams_GetTeamWorkDistributionWork Distribution report showing where a team's completed work went over a date range
TeamsOfTeams_GetListList teams of teams with optional inactive filter
TeamsOfTeams_GetWorkDistributionWork Distribution report rolling up completed work across a team of teams hierarchy
Workspaces_GetWorkItemForecastForecast when a work item will be done, from its team's throughput, backlog position and predecessors
Users_GetUsersList all users
Users_GetUserGet user details

Imports​

Every CSV file submitted to Wayd becomes a run with an outcome for each row — whether it was submitted from Settings → System → Imports or straight to the API — so these tools can follow and control either. You see the kinds of import you are allowed to submit.

ToolDescription
Imports_GetDefinitionsThe kinds of import you may see, with their row limits and whether you may submit them
Imports_GetFileFormatThe columns a kind of import's CSV files must carry, and the values each accepts
Imports_PreflightCheck a CSV file against your data without importing anything
Imports_GetListImport runs, newest first, filtered by status, kind, submitter, or submission group
Imports_GetByIdOne run's status and counts
Imports_GetRowsA run's row outcomes, with the reason each rejected row was refused
Imports_CancelStop a run that is still going — rows already applied stay applied
Imports_Resume / Imports_RetryFailedQueue a finished run again for the rows it never reached, or for its rejected rows too
Imports_ApplyImport the rows a preflight checked

Your assistant can't import a file in one step. It first runs a preflight, which checks every row the way a real import would and creates nothing, then shows you what would be imported and what would be refused. Only then can it import those rows with Imports_Apply, which asks for confirmation. A preflight reports what would have happened when it ran; each row is checked again when it is imported.

Changes That Ask First​

Most tools only read data. The ones that change something a colleague relies on — changing a record's status, updating a portfolio, program, or project, deleting anything, or importing, stopping, or re-running an import — are flagged so your AI assistant asks for confirmation before running them.

Whether you actually see a prompt depends on the assistant you're using: the flag is a signal, and clients decide how to honour it. Your permissions are always enforced by Wayd itself regardless of what any client does.

Two behaviours worth knowing before you approve one:

  • Updates replace the whole record. Anything not included in an update is cleared rather than left alone. This matters most for people: sponsors, owners, managers, and members are replaced as a set, so an update must carry the full team to keep it. Your assistant is instructed to read a record before updating it and pass back everything that should stay the same.
  • Activating a portfolio sets its start date to today, and closing it sets its end date to today. Neither can be backdated, so avoid using them to tidy up a portfolio that really started or ended earlier.

Deleting a portfolio, program, project, or strategic initiative isn't available through the MCP server at all.

Security​

Whichever way you connect, the assistant acts as you, with your permissions — it can only access what you can access.

  • Signed in: nothing is stored in your configuration. Disconnect an assistant from the Sessions tab of your profile and it loses access at once.
  • Personal access token: store it securely, never commit it to version control, and prefer environment variables or a client's password prompt over hardcoding it in config files. Revoke it from your profile page if it is exposed.

Changing a portfolio, program, or project additionally requires delivery leadership — being an Owner or Manager on the record or on one above it. Having permission to view or edit is not enough on its own, and sponsors and project members are excluded. If a change is refused even though you have the right permission, this is usually why. See Permissions for details.