Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.YawLabs/mcp

NPM · @YAWLABS/MCP

MCP gateway: one local install fronts every MCP server for Claude Code, Cursor, and VS Code.

Available components

0 this week 72 Trust /100

Last scanned (42 minutes ago)

Scores higher than 42% of npm servers

Category Developer Tools

Trust breakdown (7 categories)

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 Security86
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Install-script check failed: the install command fetches or executes arbitrary code (inline_eval). An install hook runs on every machine, in CI, and on transitive installs, whether or not you ever run the server. View diagnostics → Fail
  • 30 of 101 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency10
  • Repository check failed: no source repository is declared. See how to fix → View diagnostics → Fail
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Licence could not be checked: the licence is shipped as a file inside the package, not declared as a standard (SPDX) licence identifier, so we cannot tell whether it is OSI-approved.Unverified
  • Actively maintained (last published 1 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability68
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2206 tokens (~200/item across 11 items; 11 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
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

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 +15
    • Malware scan: unverified → pass ▲ security
  • 4 Nov 26 −15
    • Malware scan: pass → unverified ▼ security
    • Package version: 1.1.7 → 1.1.8 functional
  • 3 Nov 26 +15
    • Malware scan: unverified → pass ▲ security
  • 2 Nov 26 −15
    • Malware scan: pass → unverified ▼ security
    • Package version: 1.1.6 → 1.1.7 functional
  • 1 Nov 26 +15
    • Malware scan: unverified → pass ▲ security
  • 31 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
    • Package version: 1.1.4 → 1.1.6 functional
    • Package version: 1.1.4 → 1.1.5 functional
  • 23 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 22 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
    • Package version: 1.1.2 → 1.1.4 functional
Diagnostics

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/@yawlabs/mcp@1.1.8

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
preinstall dangerous node -e "const major=Number(process.versions.node.split('.')[0]);if(major<20){console.error('@yawlabs/mcp requires Node 20 or newer; this is Node '+process.versions.node+'. Upgrade Node, then re-run the install.');process.exit(1);}"

Background: Why install scripts are a supply-chain risk →

Dependencies 101 packages
Packages resolved 101
Stale 30
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 11 exposed · ~2,020 tokens

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 →

Tool Tokens
mcp_connect_activate ~209

Load one or more installed servers' tools into this session by namespace; tools are prefixed by it (e.g. "gh_create_issue"). Pass `server` for one or `servers` for several. `tools: [...]` (single server only) advertises just those tools; the rest stay callable by name. Refused when YAW_MCP_MIN_COMPLIANCE is set and the server's grade is below it (ungraded always passes); the message names the grade and the variable.

NameTypeReqDescription
serverstring–Single server namespace to activate (e.g., "gh")
serversarray–Multiple server namespaces to activate at once (e.g., ["gh", "slack"])
toolsarray–Optional per-server tool filter (bare names, not namespace-prefixed). Only the listed tools surface in tools/list; the rest stay callable by name. Omit, or re-activate without it, for the full set. S…

No output schema declared.

No examples provided.

mcp_connect_bundles ~165

List curated multi-server 'bundles' (`pr-review` = github + linear, `devops-incident` = github + pagerduty + slack, ...) for a known multi-server WORKFLOW, each with a ready-to-run `mcp_connect_activate({ servers: [...] })` call. `action="match"` partitions them against the installed servers into READY (activate now) and PARTIAL (names the missing namespaces; `yaw-mcp add <slug>` installs one, catalog at https://yaw.sh/mcp/catalog/). `action="list"` (default) returns the whole catalog. Static data, no network call.

NameTypeReqDescription
actionstring–"list" (default): the full curated catalog. "match": partition against installed servers.

No output schema declared.

No examples provided.

mcp_connect_deactivate ~115

Unload one or more loaded servers' tools from this session to free context. The server stays installed and can be reloaded with `mcp_connect_activate`. yaw-mcp also auto-unloads a server after a run of calls to other servers (baseline YAW_MCP_IDLE_THRESHOLD, raised for a server used in bursts).

NameTypeReqDescription
serverstring–The namespace of the server to deactivate
serversarray–Multiple server namespaces to deactivate at once (e.g., ["gh", "slack"])

No output schema declared.

No examples provided.

mcp_connect_discover ~208

List the MCP servers installed in the user's ~/.yaw-mcp/bundles.json: name, namespace, tool count, an estimated token cost (a tilde marks an estimate from cached metadata), whether it is loaded, any local CLI it shadows, an inline `[A]`-`[F]` compliance grade when scored (ungraded is unmarked, not penalized), and usage hints. Tool-name lists are truncated; pass `server` for one server's full card. Recurring packs get a ready-to-run `mcp_connect_activate` call at the top.

NameTypeReqDescription
contextstring–Optional: the current task. Servers are sorted by relevance to it.
listOnlyboolean–For client UIs, not models: same listing with no side effects (no auto-load, idle tick or install hints).
serverstring–Optional: one namespace to report on in full -- just that server's card, with its complete tool list.

No output schema declared.

No examples provided.

mcp_connect_dispatch ~217

Pick the best-matching installed server(s) for a natural-language task and load their tools in one call. Describe the task ("create a github issue for the login bug", "query the prod postgres"); yaw-mcp ranks the installed servers with BM25 and loads the top match. `budget` defaults to 1; raise it only when one task genuinely spans several servers.

NameTypeReqDescription
budgetinteger–How many top-ranked servers to load. Default 1, cap 10.
intentstringyesWhat you want to accomplish, in plain English (e.g., "file a github issue titled Fix login bug")
routeEffortstring–Per-call routing-effort dial: "off" never asks the client LLM to break a ranking tie, "auto" (default) asks once on genuine ambiguity, "aggressive" samples best-of-3 on milder ambiguity. No effect wi…

No output schema declared.

No examples provided.

mcp_connect_exec ~483

Run a short DECLARATIVE pipeline of upstream tool calls in one round-trip, when you already know the 2-4 calls and one step's output feeds another's args -- e.g. `a = gh_list_prs(); b = gh_get_pr(a[0].number); return b`. No expressions, loops, branches or arithmetic. Steps run in order; the only data flow is `{"$ref": "<stepId>[.path.to.value]"}` (dot keys, `[N]`/`.N` indexing), substituting a prior step's output into a later step's args. A `$ref` reads the output as the server sent it, before the pruning and size cap applied to the echoed copy. Each `tool` is a namespaced upstream name: a loaded server is called directly; an unloaded server whose tools are cached is loaded on first use (its tools join this session). A compliance-floor refusal is decided before step 0 runs and refuses the whole pipeline with nothing done, so a re-run repeats no side effect; a server-cap refusal is only knowable when the step is reached and fails it there, with `partial` holding what already ran. A name neither loaded nor cached, or on a disabled/profile-blocked server, fails its step. Max 16 steps per exec. Refused before step 0: plain `exec: ...` text; a later failure: `{ ok: false, failedStep, error, partial }`. Success returns `{ ok: true, result, steps }`; with a named `return`, `result` is that step's output, `stepKeys` is added, and `steps` is dropped once the intermediates exceed about 4 KB. Name a `return` when one value is enough: it keeps a large intermediate out of your context.

NameTypeReqDescription
returnstring–Optional: id of the step whose output becomes `result` (default: the last step). Naming one adds `stepKeys` and drops `steps` once the intermediate outputs exceed about 4 KB, so a large payload you s…
stepsarrayyesOrdered tool calls, each `{ id?: string, tool: string, args?: object }`. `args` values may be `{"$ref": "<stepId>.path"}`.

No output schema declared.

No examples provided.

mcp_connect_find_tool ~176

Search every installed server's tools by what they DO ("resize an image", "list pull requests") when you do not know which server has it. Ranks tool names and descriptions across loaded and unloaded servers from cache; nothing is loaded and no server is contacted. On a fresh install a no-match first waits (up to 20 s) for the startup scan still learning a server's tools. A match on a loaded server carries its full input schema; one on a never-loaded server carries name and description only -- `mcp_connect_read_tool` returns its arguments.

NameTypeReqDescription
limitnumber–Maximum matches to return. Default 10, cap 50.
querystringyesWhat the tool should DO, in plain words -- "create a github issue", "query postgres", "resize an image".

No output schema declared.

No examples provided.

mcp_connect_health ~73

Health stats for the servers loaded this session: total calls, error count, average latency, last error. Installed-but-unloaded servers with a poor persisted success rate (<80% across sessions) are listed in a separate block -- do NOT load a server just to see its history, loading resets its in-session counters.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

mcp_connect_read_tool ~134

Return one tool's full input schema without loading its server. Free for a loaded server; for an unloaded one yaw-mcp opens a transient connection, reads the schema and closes it -- nothing is added to the session. To call the tool, load its server with `mcp_connect_activate` or call it by name from `mcp_connect_exec`.

NameTypeReqDescription
serverstringyesNamespace of the server that exposes the tool (e.g., "gh", "slack").
toolstringyesTool name; the namespace prefix is optional ("create_issue" and "gh_create_issue" both work).

No output schema declared.

No examples provided.

mcp_connect_secrets ~161

Report, per installed server, which local-vault secrets its `${secret:NAME}` references resolve to -- NAMES only, never a value. `injectedSecrets`: names the vault has. `missing`: names it lacks (`yaw-mcp secrets set <name>`). `malformed`: references that do not parse (a space in the name, a missing `}`), quoted in bounded form behind a `<malformed ref>` marker. yaw-mcp refuses to start a server over a missing or malformed reference. Servers with no references are omitted. Decrypts nothing; needs no passphrase.

NameTypeReqDescription
serverstring–Optional: one server namespace (e.g. "gh"). Omit for every server that references a vault secret.

No output schema declared.

No examples provided.

mcp_connect_suggest ~79

Surface recurring multi-server 'packs' -- servers used together in short bursts more than once -- each as a ready-to-run `mcp_connect_activate` call with all its namespaces. Observation-only: loads and unloads nothing. Patterns persist across yaw-mcp restarts. Returns a 'no patterns yet' message when nothing has recurred.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

Install

How do I install the io.github.YawLabs/mcp server?

io.github.YawLabs/mcp runs locally as an npm package, launched with npx -y @yawlabs/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 · @yawlabs/mcp

# add to Claude Code
claude mcp add yawlabs-mcp -- npx -y @yawlabs/mcp
Common questions

What is the io.github.YawLabs/mcp server?

io.github.YawLabs/mcp is listed in the public MCP registry as io.github.YawLabs/mcp. MCP gateway: one local install fronts every MCP server for Claude Code, Cursor, and VS Code. This page covers its npm package (@yawlabs/mcp).

Is the io.github.YawLabs/mcp server safe to use?

io.github.YawLabs/mcp scores 72 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares an install script we flagged as high risk. 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 io.github.YawLabs/mcp server expose?

io.github.YawLabs/mcp exposes 11 tools: mcp_connect_discover, mcp_connect_activate, mcp_connect_deactivate, mcp_connect_health, mcp_connect_dispatch, and 6 more. Their descriptions and schemas cost roughly 2,020 tokens of context every time the server is loaded.

Is the io.github.YawLabs/mcp server still maintained?

io.github.YawLabs/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.