ai.shipeasy/mcp
NPM · @SHIPEASY/MCP · 2 COMPONENTS
Feature flags, A/B experiments, kill switches, dynamic config & i18n — Shipeasy MCP server.
Available components
Last scanned (14 hours ago)
Scores higher than 97% of npm servers
Category Developer Tools
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 30 of 95 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to shipeasy-ai/shipeasy). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 0 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability75
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 41944 tokens (~233/item across 180 items; 180 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- Stability check failed: the tool surface changed between 2.8.0 and 2.16.0: 0 tool removals, 1 breaking changes, 65 additions. See how to fix → Fail
Tool Coverage98
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 95% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 17 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 180 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 0
- Schema quality: 32639 → 41944 ▼ functional
- Package version: 2.15.0 → 2.16.0 functional
- 3 Nov 26 0
- Package version: 2.14.0 → 2.15.0 functional
- 1 Nov 26 +25
- Malware scan: unverified → pass ▲ security
- Known CVEs: unverified → pass ▲ security
- Dependency health: unverified → 0.86 ▲ functional
- Package version: 2.13.0 → 2.14.0 functional
- 31 Oct 26 −25
- Known CVEs: pass → unverified ▼ security
- Malware scan: pass → unverified ▼ security
- Schema quality: 28716 → 31766 ▼ functional
- Dependency health: 0.86 → unverified ▼ functional
- Package version: 2.10.0 → 2.13.0 functional
- Package version: 2.10.0 → 2.12.1 functional
- Package version: 2.10.0 → 2.12.0 functional
- 29 Oct 26 0
- Package version: 2.9.0 → 2.10.0 functional
- 27 Oct 26 +15
- Malware scan: unverified → pass ▲ security
- 26 Oct 26 −16
- Malware scan: pass → unverified ▼ security
- Stability: pass → fail ▼ security
- Schema quality: 194 → 219 ▼ functional
- Package version: 2.8.0 → 2.9.0 functional
- 21 Oct 26 +1
- Stability: 0.97 → pass security
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed npm/@shipeasy/mcp@2.16.0
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | npm |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | shipeasy-ai/shipeasy |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/shipeasy-ai/shipeasy/.github/workflows/publish-mcp.yml@refs/heads/main |
| Rekor log index | 3692077079 |
| Predicate type | SLSA build provenance https://slsa.dev/provenance/v1 |
| Subject digest | sha512:c36cf6859854f870be363435a95b68c6d35240e2de58a1b8a5964cb153e7cc7a120d77001328ef46020b4d8be7035fa1b0d36c81b493fe0d0112b13e0 |
Background: How many MCP packages publish verified provenance →
Dependencies 95 packages
| Packages resolved | 95 |
|---|---|
| Stale | 30 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
trails_attribute ~186
Attribute an item to a trail. Record that an error, alert or bug was caused by the trail after it merged. Errors carry no release or commit SHA, so attribution is a judgement: compare the stack frames and the error's subject against each candidate trail's changed files (`trails get --files`) and resources,…
| Name | Type | Req | Description |
|---|---|---|---|
| confidence | string | yes | How sure an attribution is. `high` and `medium` attach the item to the trail; `low` records a suspect for a person to confirm or reject. |
| evidence | string | yes | Concrete evidence: a stack frame in a changed file, the failing call touching a resource of the trail, or a guard metric of the trail. |
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| item | string | yes | The error, alert or bug to attribute (number or id). |
No output schema declared.
No examples provided.
trails_close ~122
Close a trail. Close a trail by hand — abandoned, superseded, or shipped with discovered items still open. A trail also closes on its own once it is `shipped` with no discovered item open at `high` priority or above. Closing never merges or closes pull requests. A trail closed with nothing m…
| Name | Type | Req | Description |
|---|---|---|---|
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| reason | string | – | Why the trail is being closed, e.g. `abandoned` or `superseded by T-14`. |
No output schema declared.
No examples provided.
trails_confirm_suspect ~136
Confirm a suspected regression. Confirm a suspect: the item goes onto the trail with source `post_merge` and the suspect's evidence is kept. A person's call — the restricted ops key cannot confirm.
| Name | Type | Req | Description |
|---|---|---|---|
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| suspectId | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
No output schema declared.
No examples provided.
trails_create ~540
Create a trail. Creates a trail in `planning`. A trail is created on purpose — nothing makes one implicitly. Create one from scratch with a `title` and a `body` (the outcome and the acceptance criteria), or press **Ship this** on a queue item with `originItem`: the item's description seeds th…
| Name | Type | Req | Description |
|---|---|---|---|
| autopilot | object | – | Turn a trail's autopilot on or off, and set the limits it acts inside. Turning it ON needs the `autopilot` capability (admins have it) and a person's identity — a dashboard session or a signed-in CLI… |
| body | string | – | The intent in markdown — the outcome and the acceptance criteria. |
| goal | – | – | The metric the trail is meant to move, or `null` for none. |
| health | – | – | A health a person sets, or `null` (the default) to have it derived. |
| intake | object | – | What the creation dialog already decided — each field is a plan question answered in advance. The plan run asks only what is left out. Omitted entirely, the plan asks everything ("let the plan ask me… |
| listToken | string | – | REQUIRED. The `listToken` returned by the most recent `trails_list` call. It proves you listed existing trails and confirmed this one doesn't already exist before creating it. Call `trails_list` firs… |
| originItem | string | – | Ship this: a queue item (number or id) to create the trail from. Its description seeds `body` when that is omitted, and it becomes the trail's first item with source `origin`. |
| ownerConnectorId | – | – | The agent connector to own the trail, or `null`. |
| ownerId | – | – | The `users.id` of the person to own the trail, or `null`. |
| priority | – | – | Initial triage priority, or `null`. |
| repos | array | – | Repos (`owner/repo`) the trail may open changes in. |
| startDate | – | – | The calendar day work starts (`YYYY-MM-DD`), or `null`. |
| targetDate | – | – | The calendar day the trail is meant to ship by (`YYYY-MM-DD`), or `null`. |
| title | string | yes | One-line statement of the intent. |
| type | string | – | What a trail is shipping. A `feature` trail is held to the rollback and measured release gates. |
No output schema declared.
No examples provided.
trails_get ~125
Show a trail. A trail followed from intent to release: its phase, every change (each a pull request) with its latest push, merge gates, CI checks, each review agent's eval next to its last five, every finding (open first, worst first, `stale` when raised on an earlier push), approvals and p…
| Name | Type | Req | Description |
|---|---|---|---|
| files | boolean | – | Include each merged change's full `changedFiles` list. Omitted, `changedFiles` is `null`. |
| handle | string | yes | The trail's handle (`T-12`) or its id. |
No output schema declared.
No examples provided.
trails_items_add ~161
Put an existing item on a trail. Attach an existing queue item to the trail, recorded with source `attached`, optionally into a milestone (`milestoneId`). An item is on at most one trail; one already on another trail is refused with `409`. To file a *new* item on a trail, use `ops bug --trail` or `ops feature…
| Name | Type | Req | Description |
|---|---|---|---|
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| item | string | yes | The queue item to put on the trail (number or id). An item is on at most one trail. |
| milestoneId | string | – | The milestone to put the item in (`TrailMilestone.id`). Omitted, the item is in no milestone. |
No output schema declared.
No examples provided.
trails_items_move ~161
Move an item to a milestone. Move an item on the trail into a milestone, or out of every milestone with `milestoneId: null`. The item stays on the trail and keeps its discovery record; only the milestone it counts toward changes. An item that is not on the trail is `404`, and so is a milestone of another …
| Name | Type | Req | Description |
|---|---|---|---|
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| itemHandle | string | yes | A queue item's per-project number (e.g. `12`, `#12` also accepted) or its full id. |
| milestoneId | – | yes | The milestone to move the item into (`TrailMilestone.id`), or `null` to take it out of every milestone. |
No output schema declared.
No examples provided.
trails_items_remove ~104
Take an item off a trail. Detach a queue item from the trail. The item stays in the queue; only its link to the trail and its discovery record go. The trail's origin item cannot be detached.
| Name | Type | Req | Description |
|---|---|---|---|
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| itemHandle | string | yes | A queue item's per-project number (e.g. `12`, `#12` also accepted) or its full id. |
No output schema declared.
No examples provided.
trails_link_pr ~146
Link a pull request to a trail. Link a pull request to the trail as one of its *changes*. From then on the GitHub webhook records its pushes, the project's review agents score each push, and the merge gates read it. Linking a pull request the trail already has is a no-op; a pull request that belongs to a dif…
| Name | Type | Req | Description |
|---|---|---|---|
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| item | string | – | The queue item whose run opened the PR (number or id), when there is one. Omitted, the change belongs to the trail itself. |
| prUrl | string | yes | The pull request's URL. |
No output schema declared.
No examples provided.
trails_list ~913
List the project's trails — the unit of shipping (an outcome with its items, milestones, pull requests and release tools; each row carries its lead, start and target dates, health and progress). LIST BEFORE YOU CREATE: check no trail already ships this. PAGING: `limit` (1–200) is REQUIRED; pass the previous `next_cursor` as `cursor` for the next page. FILTERS (optional, ANDed, applied in SQL): `scope` = mine | reviewing | ready | releasing | shipped | closed | all (default all); `phase` = planning | building | reviewing | ready | releasing | shipped | closed; `type` = feature | bug | task; `health` = on_track | at_risk | off_track; `owner` = a person or agent (the lead); `q` = substring of title or body. SORT (optional): `sort` = number | title | phase | priority | owner | health | progress | target | changes | findings | items | released | updated | created, `-` prefixed for descending (default `-updated`). ATTRIBUTION: `mergedSince` (ISO-8601) with `touches` (a file path or a resource key) lists the trails that merged in a window and changed a path or link a resource — the candidates for an error or alert that started after a release.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | Opaque cursor returned in the previous page's `next_cursor`. Omit for the first page. |
| f | string | – | The table's filter conditions: a JSON array of `{ "f", "o", "v" }` objects, ANDed. See the operation description for the fields. |
| health | string | – | A trail's effective health — the one a person set, or else the derived one. Derived, first match wins: `off_track` when the target date has passed and the trail has not shipped, or a rollout is `fixi… |
| limit | integer | yes | Page size (1–200). A page shorter than `limit` is the last one. |
| mergedSince | string | – | ISO-8601 timestamp. Narrow to trails with a change merged at or after it. |
| owner | string | – | Narrow to trails owned by one person OR one agent — a `users.id`, email or display name, or a connector id, display name or handle. Case-insensitive exact match. |
| phase | string | – | Where a trail is, derived from its changes and its release resources — `planning` (no change and no open run), `building` (no change yet, a run is working), `reviewing` (a change is open and not ever… |
| q | string | – | Case-insensitive substring filter across the trail's title and body. |
| scope | string | – | A dashboard tab: `mine` (owned by the caller), `reviewing`, `ready`, `releasing`, `shipped`, `closed`, or `all` (the default, no narrowing). |
| sort | string | – | A column id, `-` prefixed for descending (`-updated`). An unknown column is a `400`. |
| touches | string | – | A file path (or path prefix) a merged change changed, or a resource key the trail links. Narrow to trails that touch it. |
| type | string | – | What a trail is shipping. A `feature` trail is held to the rollback and measured release gates. |
| view | string | – | `table` answers the dashboard table read (`f`, `sort`, `cursor`, `limit`, `section_counts`, `grouped`). Omitted, `f` and `sort` are still honoured and the envelope is `{ data, next_cursor }`. |
No output schema declared.
No examples provided.
trails_milestones_add ~182
Add a milestone to a trail. Add a named stage to the trail, with an optional description and target date. Milestones are ordered: omit `position` to add it last, or pass one to insert it there and move the rest down. Progress is counted per milestone, and the build works the trail milestone by milestone …
| Name | Type | Req | Description |
|---|---|---|---|
| description | – | – | What the milestone delivers, or `null`. |
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| name | string | yes | The milestone's name. |
| position | integer | – | Where to put it in the trail's order, from `0`; the milestones at and after it move down one. Omitted, it goes last. |
| targetDate | – | – | The calendar day it is meant to be done by (`YYYY-MM-DD`), or `null`. |
No output schema declared.
No examples provided.
trails_milestones_remove ~85
Remove a milestone from a trail. Remove a milestone. Its items stay on the trail, in no milestone; the milestones after it move up one. Nothing else on the trail changes.
| Name | Type | Req | Description |
|---|---|---|---|
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| milestoneId | string | yes | The milestone's id (`TrailMilestone.id`). |
No output schema declared.
No examples provided.
trails_milestones_update ~178
Change a milestone. Rename a milestone, change its description or target date, or move it in the trail's order with `position` (the others shift to make room). Pass at least one field; the rest are left as they are.
| Name | Type | Req | Description |
|---|---|---|---|
| description | – | – | What the milestone delivers; `null` clears it. |
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| milestoneId | string | yes | The milestone's id (`TrailMilestone.id`). |
| name | string | – | The milestone's name. |
| position | integer | – | Move it to this place in the trail's order, from `0`; the others shift to make room. |
| targetDate | – | – | The calendar day it is meant to be done by (`YYYY-MM-DD`); `null` clears it. |
No output schema declared.
No examples provided.
trails_pause_autopilot ~113
Pause a trail's autopilot. Stop autopilot on a trail: it answers no more plan questions, approves no plan and merges nothing until a person resumes it. Whatever it already merged or ramped stays; the release controller keeps its own breach policy. Safe to call at any time, and for anyone who can write t…
| Name | Type | Req | Description |
|---|---|---|---|
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| reason | string | – | Why — shown on the timeline and to the owner. |
No output schema declared.
No examples provided.
trails_pause_rollout ~144
Pause a trail's rollout. Pause the release controller on a trail: it stops stepping the flag and watching the guards until the rollout is resumed. The flag stays wherever it is. A trail that ships behind several flags has a rollout per flag; pass `resource` (the flag's trail-resource id or its key) to…
| Name | Type | Req | Description |
|---|---|---|---|
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| reason | string | – | Why — shown on the release timeline. |
| resource | string | – | The flag to pause — its trail-resource id (`TrailResource.id`) or its key. Omitted, every flag on the trail is paused. |
No output schema declared.
No examples provided.
trails_plan_revisions ~99
List a trail's plan revisions. Every approved revision of the trail's plan, newest first: the plan as it was approved, who approved it and when, and what changed since the revision before. A plan is revised by a `replan` run, which re-reads the goal metric, the items' outcomes and project memory and drafts …
| Name | Type | Req | Description |
|---|---|---|---|
| handle | string | yes | The trail's handle (`T-12`) or its id. |
No output schema declared.
No examples provided.
trails_promote_finding ~228
Promote a finding to a queue item. Move a finding that is real but out of scope onto the queue. It creates a bug (or a feature request, with `type`) whose description quotes the finding, its path and line, and its push. The new item lands on the trail with source `finding`, and the finding is dismissed as `move…
| Name | Type | Req | Description |
|---|---|---|---|
| findingId | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| reason | string | yes | Why the finding is out of scope for this trail. Recorded on the finding. |
| title | string | – | A title for the new item. Defaults to the finding's title. |
| type | string | – | What to file the finding as. Defaults to `bug`. |
No output schema declared.
No examples provided.
trails_reject_suspect ~139
Reject a suspected regression. Reject a suspect: the item stays where it is, off the trail, and the suspect leaves the trail's suspected regressions. A person's call — the restricted ops key cannot reject.
| Name | Type | Req | Description |
|---|---|---|---|
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| suspectId | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
No output schema declared.
No examples provided.
trails_release_facts ~131
Read a trail's release facts. What the numbers say about how the trail can ship, before anyone picks an approach: the traffic reaching the surface (distinct units a day over the last 28 days), its tier, whether a 50/50 experiment would reach significance within 28 days at the lift the goal asks for (or 5%)…
| Name | Type | Req | Description |
|---|---|---|---|
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| proxy | string | – | What to read the traffic from — `metric:<key>`, `event:<name>` or `flag:<key>`. |
No output schema declared.
No examples provided.
trails_reopen ~59
Reopen a trail. Reopen a closed trail so its changes can be reviewed and merged again. Its phase is recomputed from its changes and resources.
| Name | Type | Req | Description |
|---|---|---|---|
| handle | string | yes | The trail's handle (`T-12`) or its id. |
No output schema declared.
No examples provided.
trails_resources_add ~265
Link a resource to a trail. Link a product entity to the trail with a *role* — what it is for: `ships_behind` (the flag the code ships behind), `rollback` (the kill switch that undoes it), `measures` (the experiment or metric that judges it), `guards` (an alert rule that watches it), `copy` (an i18n key)…
| Name | Type | Req | Description |
|---|---|---|---|
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| kind | string | yes | The product entities a trail can ship or depend on. `gate` is a feature flag. |
| resourceKey | string | yes | The entity's key (a gate or metric name, an experiment name, an i18n key). It must exist. |
| role | string | – | What a resource is for on the trail — `ships_behind` (the flag the code ships behind), `rollback` (the kill switch that undoes it), `measures` (the experiment or metric that judges it), `guards` (an… |
No output schema declared.
No examples provided.
trails_resources_list ~99
List a trail's resources. The flags, configs, kill switches, experiments, metrics, alert rules, events and i18n keys the trail ships or depends on, each with its role and its live state (a flag's prod rollout, an experiment's status and decision, a kill switch's position, an alert's firing state, wheth…
| Name | Type | Req | Description |
|---|---|---|---|
| handle | string | yes | The trail's handle (`T-12`) or its id. |
No output schema declared.
No examples provided.
trails_resources_remove ~131
Unlink a resource from a trail. Remove a resource from the trail. The entity itself is untouched; only the trail's link to it goes, and the release gates stop counting it.
| Name | Type | Req | Description |
|---|---|---|---|
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
No output schema declared.
No examples provided.
trails_review ~132
Run the review agents. Launch the project's review agents on a change's latest push now, instead of waiting for the next push. Each agent's eval reads `pending` until its run submits. Agents sharing a coding-agent trigger are reviewed in one run. Review runs spend your own agent quota, not Shipeasy …
| Name | Type | Req | Description |
|---|---|---|---|
| agentKeys | array | – | Which review agents to run. Omitted, every enabled one. |
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| prUrl | string | – | The change to review. Omitted, the trail's primary change. |
No output schema declared.
No examples provided.
trails_start ~286
Start an agent on a trail. Fire the project's coding-agent trigger on the trail. While the trail has no approved plan, this fires a read-only **plan** run: it reads the trail, asks the person how it should ship (straight to main, behind a flag, flag and experiment, kill switch, flag and kill switch) and…
| Name | Type | Req | Description |
|---|---|---|---|
| agent | string | – | Which coding agent to fire — `claude`, `cursor`, `copilot` or `jules`. Omitted, the project's coding-agent trigger. |
| connectorId | string | – | A specific trigger connector to fire. Overrides `agent`. |
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| kind | string | – | Which run to fire. Omitted, the server picks — `plan` while the trail has no approved plan, else `build`. Asking for `build` before the plan is approved is refused with `409`, and so is asking for `p… |
| prompt | string | – | Extra instructions appended to the trail prompt. |
No output schema declared.
No examples provided.
trails_submit_eval ~352
Submit a review agent's eval. Record one review agent's result on one push of a change: a `value` (0–100 for a score agent, 1/0 for a boolean one), a short `rationale`, and any `findings`. The verdict (pass / warn / fail) is computed from the agent's threshold and polarity. Submitting again for the same pu…
| Name | Type | Req | Description |
|---|---|---|---|
| agent | string | – | Your agent type, when you are the review agent. |
| agentKey | string | yes | The review agent's key (from `ops review-agents list`). |
| findings | array | – | Issues to fix, each with a severity, and a file and line when there is one. |
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| headSha | string | – | The commit reviewed. Omitted, the change's latest push. A sha that is not the latest push is recorded against that push, as history. |
| prUrl | string | – | The change reviewed. Omitted, the trail's primary change. |
| rationale | string | yes | One or two sentences on the evidence behind the value. |
| resources | array | – | Product resources the reviewed diff uses (`getFlag("x")`, `getExperiment("y")`, `t("key")`). They are linked to the trail as detected. A key that does not exist yet becomes a finding. |
| sessionId | string | – | Your session id, so the eval can deep-link to the review run. |
| value | number | yes | 0–100 for a score agent; 1 (yes) or 0 (no) for a boolean one. |
No output schema declared.
No examples provided.
trails_submit_plan ~335
Submit a trail's plan. A plan run submits what it worked out: the plan in markdown, the `release` block (how the trail ships, why, and the exact flags, kill switches, experiments and tracking — events, metrics, alert rules — the build will create; no release tool for `straight_to_main`), the `breakd…
| Name | Type | Req | Description |
|---|---|---|---|
| breakdown | object | – | The milestones and items a plan breaks the trail into. Nothing is filed while the plan is a draft; approving creates the milestones and files the items. `workKind` defaults to `code`. |
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| marketing | object | – | The plan's marketing strategy — tracked, never executed. Every channel is also a breakdown item of the same title with `workKind` `marketing`, so it has an owner, a status and a place on the timeline. |
| plan | string | yes | The plan in markdown — the approach, the files and repos it touches, the order of the work, how each acceptance criterion is met, and the risks. |
| release | object | yes | How the trail ships. The person answers this while the plan is made; the build run creates exactly the resources listed (none for `straight_to_main`), and the Plan gate checks they exist. |
| sources | array | – | What the plan rests on in project memory (`ops memory search`) and earlier tickets and trails, each with what it settled. |
| summary | string | – | For a replan, what changed since the last approved revision. Recorded on the revision. |
No output schema declared.
No examples provided.
trails_timeline ~149
Read a trail's timeline. Everything that happened on the trail, newest first: created, plans approved, questions asked and answered (on the trail and on its items), runs, items filed and done, pull requests opened, approved and merged, every rollout step, pull-back and autopilot action, the goal watch…
| Name | Type | Req | Description |
|---|---|---|---|
| before | string | – | ISO-8601 time; only events strictly before it (the `next` of the previous page). |
| decisions | boolean | – | Only the decisions. |
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| limit | integer | – | Most events to return (1-200). Defaults to 50. |
No output schema declared.
No examples provided.
trails_unlink_pr ~91
Unlink a pull request from a trail. Detach a pull request from the trail. Its recorded pushes, evals, findings and approvals stay in history but no longer count toward the trail's gates. A merged change cannot be unlinked.
| Name | Type | Req | Description |
|---|---|---|---|
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| prUrl | string | yes | The pull request's URL. |
No output schema declared.
No examples provided.
trails_update ~374
Change a trail. Change a trail's title, intent, type, priority, owner (the lead), repo scope, start and target dates, health, goal or autopilot. Pass at least one field; the rest are left as they are. Changing the type changes which release gates apply.
| Name | Type | Req | Description |
|---|---|---|---|
| autopilot | object | – | Turn a trail's autopilot on or off, and set the limits it acts inside. Turning it ON needs the `autopilot` capability (admins have it) and a person's identity — a dashboard session or a signed-in CLI… |
| body | string | – | – |
| goal | – | – | Replaces the trail's goal; `null` clears it. |
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| health | – | – | Set the health by hand; `null` goes back to the derived health. |
| ownerConnectorId | – | – | The agent connector owner; `null` unassigns. |
| ownerId | – | – | The `users.id` of the person owner; `null` unassigns. |
| priority | – | – | Triage priority; `null` clears it. |
| repos | array | – | Replaces the trail's repo scope. |
| startDate | – | – | The calendar day work starts (`YYYY-MM-DD`); `null` clears it. |
| targetDate | – | – | The calendar day the trail is meant to ship by (`YYYY-MM-DD`); `null` clears it. |
| title | string | – | – |
| type | string | – | What a trail is shipping. A `feature` trail is held to the rollback and measured release gates. |
No output schema declared.
No examples provided.
trails_update_finding ~254
Resolve or dismiss a finding. Set a finding's status — `resolved` (it was fixed; say how in `reason`), `dismissed` (it is not a problem; say why), or back to `open`. A finding that is real but out of scope is not dismissed: promote it with `trails promote-finding`.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | string | – | Your agent type, when an agent is resolving the finding. |
| findingId | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| reason | string | – | Why — the fixing commit, or why it is not a problem. |
| status | string | yes | A finding stays `open` until it is `resolved` (fixed) or `dismissed` (not a problem). A finding raised on an earlier push is reported `stale` but stays open until somebody decides. |
No output schema declared.
No examples provided.
trails_update_plan ~252
Edit a trail's plan. A person edits the plan text, the release block (strategy, reason, the resources to create) or the breakdown (milestones and items). Pass at least one field. Any edit puts the plan back to `drafted`, so it needs approving again; a trail with no plan yet gets one this way. Not …
| Name | Type | Req | Description |
|---|---|---|---|
| breakdown | object | – | The milestones and items a plan breaks the trail into. Nothing is filed while the plan is a draft; approving creates the milestones and files the items. `workKind` defaults to `code`. |
| handle | string | yes | The trail's handle (`T-12`) or its id. |
| marketing | object | – | The plan's marketing strategy — tracked, never executed. Every channel is also a breakdown item of the same title with `workKind` `marketing`, so it has an owner, a status and a place on the timeline. |
| plan | string | – | The plan in markdown. |
| release | object | – | How the trail ships. The person answers this while the plan is made; the build run creates exactly the resources listed (none for `straight_to_main`), and the Plan gate checks they exist. |
No output schema declared.
No examples provided.
whoami ~57
Show the current project. Returns the project the caller's auth header resolves to — plan, status, billing, and which modules are enabled. The server reads the project from the credential, so there is no id parameter. Powers `whoami`.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
How do I install the ai.shipeasy/mcp server?
ai.shipeasy/mcp runs locally as an npm package, launched with npx -y @shipeasy/mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · @shipeasy/mcp
claude mcp add ai-shipeasy-mcp -- npx -y @shipeasy/mcp
What is the ai.shipeasy/mcp server?
ai.shipeasy/mcp is listed in the public MCP registry as ai.shipeasy/mcp. Feature flags, A/B experiments, kill switches, dynamic config & i18n, Shipeasy MCP server. This page covers its npm package (@shipeasy/mcp).
Is the ai.shipeasy/mcp server safe to use?
ai.shipeasy/mcp scores 94 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the ai.shipeasy/mcp server expose?
ai.shipeasy/mcp exposes 180 tools: projects_upsert, auth_check, auth_login, auth_logout, api_keys_create, and 175 more. Their descriptions and schemas cost roughly 41,944 tokens of context every time the server is loaded.
Is the ai.shipeasy/mcp server still maintained?
ai.shipeasy/mcp is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the ai.shipeasy/mcp server under?
ai.shipeasy/mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.