ai.shipeasy/mcp
NPM · @SHIPEASY/MCP · SCANNED SEP 21
Feature flags, A/B experiments, kill switches, dynamic config & i18n — Shipeasy MCP server.
Available components
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
- 31 of 98 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 55 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability77
- 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 22388 tokens (~194/item across 115 items; 115 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 Management90
- Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
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 10 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 115 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
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
{
"mcpServers": {
"ai-shipeasy-mcp": {
"command": "npx",
"args": [
"-y",
"@shipeasy/mcp"
]
}
}
} {
"servers": {
"ai-shipeasy-mcp": {
"command": "npx",
"args": [
"-y",
"@shipeasy/mcp"
]
}
}
} codex mcp add ai-shipeasy-mcp -- npx -y @shipeasy/mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ai-shipeasy-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"@shipeasy/mcp"
],
"enabled": true
}
}
} openclaw mcp add ai-shipeasy-mcp --command npx --arg -y --arg @shipeasy/mcp
mcp_servers:
ai-shipeasy-mcp:
command: "npx"
args: ["-y", "@shipeasy/mcp"] {
"McpServers": {
"ai-shipeasy-mcp": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"@shipeasy/mcp"
]
}
}
} assistant mcp add ai-shipeasy-mcp -t stdio -c npx -a -y @shipeasy/mcp
{
"mcpServers": {
"ai-shipeasy-mcp": {
"command": "npx",
"args": [
"-y",
"@shipeasy/mcp"
]
}
}
} 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.
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 26 −3
- Stability: pass → 0.80 functional
- 17 Sept 26 +1
- Stability: 0.97 → pass security
- 15 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 13 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 11 Sept 26 −3
- Stability: pass → 0.80 functional
- 10 Sept 26 +1
- Stability: 0.97 → pass security
- 8 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
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 21 Sept 2026 · Analysed npm/@shipeasy/mcp@2.8.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 | 2261052342 |
| Predicate type | https://slsa.dev/provenance/v1 |
| Subject digest | sha512:0fa95a914595dbb959af7a7eb4185bcda3d04cac56c8c47b8df9665356898cd2add7341ba0e3f62d879d805c3615304af9a5ee6cb84e0929620ac1f97 |
Background: How many MCP packages publish verified provenance →
Dependencies 98 packages
| Packages resolved | 98 |
|---|---|
| Stale | 31 |
| 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 →
release_flags_templates_archive ~108
Delete a gate template. Soft-deletes (archives) a **customer** template. Returns `409` if `id` names a read-only built-in template.
| Name | Type | Req | Description |
|---|---|---|---|
| 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.
release_flags_templates_create ~205
Create a gate template. Creates a per-project (customer) targeting-rule template. Built-ins are read-only and cannot be created here. Returns `409` if a template with this `name` already exists in the project.
| Name | Type | Req | Description |
|---|---|---|---|
| auto | boolean | – | Mark the attribute as request-derived (resolved at the SDK edge). |
| category | string | – | – |
| description | string | – | One-liner shown in pickers and matched by the list `query` filter. |
| icon_key | string | – | Display-only icon hint. |
| listToken | string | – | REQUIRED. The `listToken` returned by the most recent `release_flags_templates_list` call. It proves you listed existing release flags templates and confirmed this one doesn't already exist before cr… |
| name | string | yes | Human label. Unique per project. |
| rules | array | yes | The rule definition captured by the template. |
No output schema declared.
No examples provided.
release_flags_templates_get ~108
Get one gate template. Returns a single template by its `id` — a built-in slug (`country`) or a customer `gtpl_…` id.
| Name | Type | Req | Description |
|---|---|---|---|
| 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.
release_flags_templates_list ~146
List gate templates. Returns the merged targeting-rule template catalog — read-only **built-ins first** (the `@team`/`@owner` audience aliases, country, email-domain, region presets, …), then this project's **customer** templates. Each item carries a `rules: [{ attr, op, value }]` definition; the …
| Name | Type | Req | Description |
|---|---|---|---|
| q | string | – | Case-insensitive substring filter across the resource's human-readable text columns (e.g. `name`, `title`, `description`). OR-matched across those columns; omit to return everything. |
| query | string | – | Deprecated alias for `q`, kept working for one release. Prefer `q`. |
No output schema declared.
No examples provided.
release_flags_templates_update ~154
Update a gate template. Partial update of a **customer** template. `rules` replaces the list wholesale. Returns `409` if `id` names a read-only built-in template.
| Name | Type | Req | Description |
|---|---|---|---|
| auto | boolean | – | – |
| category | string | – | – |
| description | string | – | – |
| icon_key | – | – | – |
| 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… |
| name | string | – | – |
| rules | array | – | – |
No output schema declared.
No examples provided.
release_flags_update ~506
Update a feature gate. Partial update — only supplied fields change. Array fields (`rules`, `stack`) **replace** wholesale; there is no merge or append.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | Long-form description / runbook. Markdown is rendered in the dashboard. |
| enabled | boolean | – | Master switch. `false` makes the gate evaluate to `false` for every caller regardless of `rollout_pct`, `rules`, or `stack` — use as kill switch. |
| folder | – | – | Optional folder name grouping items in the dashboard. Alphanumeric, `_` or `-` (no `/`). Part of the SDK lookup key (`<folder>/<name>`). |
| group | string | – | Group label for dashboard organisation (e.g. team or product area). |
| 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… |
| owner_email | string | – | Owner contact. Displayed verbatim; not used for auth. |
| rollout_pct | integer | – | New rollout in **basis points** (0–10000 = 0%–100%) — `100` here means **1%**. Use `rollout_percent` (0–100) below for percent. Omit both to leave unchanged. |
| rollout_percent | number | – | New rollout as a **percentage** (0–100). Friendlier alias for `rollout_pct`; converted internally. Wins over `rollout_pct` if both are supplied. Omit both to leave unchanged. |
| rules | array | – | Replaces the rule list wholesale. To add a value to an `in` rule, send the full new `rules` array with the augmented `value` (e.g. previous `['US','CA']` → `['US','CA','GB']`). |
| stack | – | – | Replaces the gatekeeper stack wholesale. Send `null` to revert to flat `rules` + `rollout_pct` evaluation. |
| title | string | – | Human-readable title shown in the dashboard. Free-form, no key format constraint. |
| type | string | – | Gate kind. Switching to `holdout` requires the gate carry only a public rollout % + whitelist (attribute rules / stack are rejected). |
No output schema declared.
No examples provided.
release_killswitch_archive ~102
Delete a killswitch. Soft-deletes the killswitch and rebuilds the project's flags KV blob so SDKs stop seeing it.
| Name | Type | Req | Description |
|---|---|---|---|
| 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.
release_killswitch_create ~266
Create a killswitch. Creates a new killswitch with `value` (default `false`) applied to **every** env at version 1.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | Optional free-form description shown in the dashboard. Max 512 chars. |
| folder | – | – | Optional folder name grouping items in the dashboard. Alphanumeric, `_` or `-` (no `/`). Part of the SDK lookup key (`<folder>/<name>`). |
| listToken | string | – | REQUIRED. The `listToken` returned by the most recent `release_killswitch_list` call. It proves you listed existing release killswitch and confirmed this one doesn't already exist before creating it.… |
| name | string | yes | Stable config/killswitch key in `folder.name` form (two lowercase segments separated by a dot, e.g. `pricing.tiers`). Immutable after create. |
| switches | object | – | Initial per-switch overrides applied to every env. Empty/omitted leaves the killswitch with only the flat `value`. |
| value | boolean | – | Default value applied to every env at creation. Defaults to `false`. Use `true` to ship the killswitch pre-tripped. |
No output schema declared.
No examples provided.
release_killswitch_get ~105
Get one killswitch. Returns the killswitch metadata plus the latest published `value`/`switches`/`version` per env.
| Name | Type | Req | Description |
|---|---|---|---|
| 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.
release_killswitch_list ~143
List killswitches. Returns a single page of killswitches ordered by `updated_at desc, id desc`. Each row includes the latest published `value`/`switches`/`version` per env.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | Opaque cursor returned in the previous page's `next_cursor`. Omit for the first page. |
| limit | integer | – | Page size (1–500). Defaults to 100. |
| q | string | – | Case-insensitive substring filter across the resource's human-readable text columns (e.g. `name`, `title`, `description`). OR-matched across those columns; omit to return everything. |
No output schema declared.
No examples provided.
release_killswitch_set ~170
Set one switch entry. Sets or updates a single `switchKey` on a single `env`. Publishes one new version on that env only — other envs untouched.
| Name | Type | Req | Description |
|---|---|---|---|
| env | string | yes | Target environment. One of the project's configured envs (`dev`, `staging`, `prod`). |
| 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… |
| switchKey | string | yes | Switch key to set. |
| value | boolean | yes | New boolean value for this `switchKey` on this `env`. |
No output schema declared.
No examples provided.
release_killswitch_set_value ~168
Set the flat value on one env. Sets the flat `value` on a single `env`, publishing one new version on that env only. `switches` and other envs are untouched.
| Name | Type | Req | Description |
|---|---|---|---|
| env | string | yes | Target environment. One of the project's configured envs (`dev`, `staging`, `prod`). |
| 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… |
| value | boolean | yes | Flat boolean to publish on `env`. Publishes a new version on that env only. |
No output schema declared.
No examples provided.
release_killswitch_unset ~150
Remove one switch entry. Removes a single `switchKey` from the `switches` map on a single `env`. Publishes a new version on that env.
| Name | Type | Req | Description |
|---|---|---|---|
| env | string | yes | Target environment. One of the project's configured envs (`dev`, `staging`, `prod`). |
| 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… |
| switchKey | string | yes | Switch key to remove. |
No output schema declared.
No examples provided.
release_killswitch_update ~237
Update a killswitch. Partial update applied to **every** env. Setting `value`/`switches` publishes a new version per env. Description-only patches don't bump versions.
| Name | Type | Req | Description |
|---|---|---|---|
| description | – | – | New description, or `null` to clear it. Max 512 chars. |
| folder | – | – | Optional folder name grouping items in the dashboard. Alphanumeric, `_` or `-` (no `/`). Part of the SDK lookup key (`<folder>/<name>`). |
| 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… |
| switches | object | – | Replace the switches map wholesale on every env. To edit a single entry on a single env use `PUT /{id}/switch` instead. |
| value | boolean | – | Flat value applied to every env. Publishes a new version per env when set. Omit to leave values unchanged. |
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.
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 93 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 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 115 tools: projects_upsert, auth_check, auth_login, auth_logout, errors_get, and 110 more. Their descriptions and schemas cost roughly 22,388 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 21 September 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.