# io.github.frozo-ai/edgegate-mcp (npm · edgegate-mcp)

Regression-test AI models on real Snapdragon and Jetson hardware, with signed evidence for CI.

- Trust score: 64/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-07

## Components

- npm · `edgegate-mcp`: 64/100 (this document), [markdown](https://verifymcp.io/servers/frozo-ai-edgegate-mcp/edgegate-mcp.md), [page](https://verifymcp.io/servers/frozo-ai-edgegate-mcp/edgegate-mcp)

## Channel facts

- Registry: `npm`
- Package: `edgegate-mcp`
- Version: `0.19.0`
- Transport: `stdio`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-07.

- **Supply Chain Security**: 98/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 30 of 97 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 1 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 60/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 6972 tokens (~120/item across 58 items; 58 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 81/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 43% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### Claude

```bash
claude mcp add frozo-ai-edgegate-mcp -- npx -y edgegate-mcp
```

### Codex

```bash
codex mcp add frozo-ai-edgegate-mcp -- npx -y edgegate-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "frozo-ai-edgegate-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "edgegate-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add frozo-ai-edgegate-mcp --command npx --arg -y --arg edgegate-mcp
```

### Hermes

```yaml
mcp_servers:
  frozo-ai-edgegate-mcp:
    command: "npx"
    args: ["-y", "edgegate-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "frozo-ai-edgegate-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "edgegate-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-07 (score 64, +4)

- [security improvement] Known CVEs: partial → pass
- [functional] Dependency health: partial → 0.86

### 2026-08-06 (score 60, +25)

- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional] First check of Schema quality: fail
- [functional] First check of Tool coverage: 43
- [functional] First check of Schema quality: good
- [functional] First check of Schema quality: fail

### 2026-08-05 (score 35)

First indexed and scored.

## MCP tools (58)

### `edgegate_setup_workspace` (~61 tokens)

Confirm or list EdgeGate workspaces visible to the API key. Run this first in a fresh conversation to lock in which workspace_id the other tools should use.

Input parameters:

- `workspace_id` (string): Optional UUID. If omitted, lists all visible workspaces.

### `edgegate_create_pipeline` (~299 tokens)

Create a new EdgeGate regression pipeline. Define which model(s), which device(s), and which gates (e.g. inference_time_ms ≤ 10) the pipeline will enforce. For LLMs: set llm_compile_source on a model instead of artifact_id. EdgeGate will compile + link via AI Hub on first run; subsequent runs reuse the cached composite. ttft_ms + tps gates work; both are derived from per-component profile (prompt-role inference_time → TTFT; 1000/token-role inference_time → TPS). Each LLM gate run = 3 AI Hub profile jobs (one per component) ≈ 3× CV cost.

Input parameters:

- `devices` (array, required)
- `gates` (array, required)
- `input_specs` (object): Optional. Override AI Hub input shapes per named input. For text models like MiniLM, try `{input_ids: {shape: [1, 128], dtype: "int64"}, attention_mask: {shape: [1, 128], dtype: "int64"}}`. Omit to l…
- `models` (array)
- `name` (string, required)
- `promptpack_id` (string, required)
- `promptpack_version` (string)
- `repeats` (integer)
- `workspace_id` (string, required)

### `edgegate_run_gate` (~58 tokens)

Trigger an EdgeGate run against a pipeline. Returns a run_id you can poll with edgegate_check_status.

Input parameters:

- `model_artifact_id` (string)
- `pipeline_id` (string, required)
- `workspace_id` (string, required)

### `edgegate_check_status` (~47 tokens)

Get the current status of an EdgeGate run, including per-device metrics and which gates passed or failed.

Input parameters:

- `run_id` (string, required)
- `workspace_id` (string, required)

### `edgegate_get_report` (~41 tokens)

List recent EdgeGate runs in a workspace with status, duration, and trigger.

Input parameters:

- `limit` (integer)
- `workspace_id` (string, required)

### `edgegate_get_audit_report` (~47 tokens)

Get the signed audit report PDF URL for a completed EdgeGate run. Used for compliance records.

Input parameters:

- `run_id` (string, required)
- `workspace_id` (string, required)

### `edgegate_setup_github_action` (~60 tokens)

Generate the GitHub Actions workflow YAML + gh secret commands so every PR runs EdgeGate as a CI gate.

Input parameters:

- `model_artifact_id` (string)
- `pipeline_id` (string)
- `workspace_id` (string, required)

### `edgegate_compare_runs` (~156 tokens)

Diff two EdgeGate runs in the same pipeline — metrics delta, gate flips (✓→✗ regressions and ✗→✓ recoveries), per-device breakdown, and an overall verdict (REGRESSION / IMPROVEMENT / NEUTRAL / NO BASELINE). When baseline_run_id is omitted, auto-selects the most recent PASSED run from the same pipeline as the baseline.

Input parameters:

- `baseline_run_id` (string): Baseline to compare against. When omitted, auto-selects the most recent PASSED run from the same pipeline (excluding the candidate itself), or the most recent completed run as a fallback.
- `run_id` (string, required): Candidate run to evaluate
- `workspace_id` (string, required)

### `edgegate_export_run_report` (~167 tokens)

Download a human-readable markdown report for an EdgeGate run and save it to disk. Returns the absolute file path plus a preview of the first 30 lines. Optionally includes a run-vs-baseline diff section (include_diff=true).

Input parameters:

- `include_diff` (boolean): When true, also fetches the run-vs-baseline diff and appends a diff section to the report.
- `output_path` (string): Where to write the markdown file. Defaults to `./edgegate-run-{id-short}.md` in the current working directory. If a directory, the file is named `edgegate-run-{id-short}.md` inside it. Supports `~` a…
- `run_id` (string, required)
- `workspace_id` (string, required)

### `edgegate_import_huggingface_model` (~130 tokens)

Import a public Hugging Face model that contains a pre-built ONNX file. EdgeGate downloads the file and registers it as an Artifact. Returns the artifact_id you can pass directly to edgegate_create_pipeline. Polls until the import completes by default (poll_for_completion=true); set to false to return immediately with the job id.

Input parameters:

- `filename` (string)
- `hf_repo_id` (string, required)
- `max_poll_seconds` (integer)
- `poll_for_completion` (boolean)
- `revision` (string)
- `workspace_id` (string, required)

### `edgegate_predict_npu_coverage` (~100 tokens)

Predict which ONNX ops will run on the Qualcomm Hexagon NPU vs fall back to CPU, BEFORE spending any AI Hub credits. Returns a compute-weighted NPU coverage % (the latency-honest number), op-count coverage, risk band, per-op CPU fallbacks, and fix recommendations. Heuristic — the real device run remains authoritative.

Input parameters:

- `artifact_id` (string, required)
- `workspace_id` (string, required)

### `edgegate_list_promptpacks` (~85 tokens)

List all promptpacks in an EdgeGate workspace. Returns a markdown table with promptpack_id, version, case count, published status, and creation date. Use include_unpublished=false to hide draft packs.

Input parameters:

- `include_unpublished` (boolean): When false, hides packs with published=false (client-side filter). Default: true.
- `workspace_id` (string, required)

### `edgegate_create_promptpack` (~123 tokens)

Create a new promptpack in an EdgeGate workspace. A promptpack defines the test cases (prompts, expected outputs, per-case overrides) that regression pipelines evaluate. Requires admin role on the workspace. Packs are immutable after creation — bump the version to update.

Input parameters:

- `cases` (array, required)
- `defaults` (object)
- `description` (string)
- `name` (string, required)
- `promptpack_id` (string, required)
- `tags` (array)
- `version` (string, required)
- `workspace_id` (string, required)

### `edgegate_publish_promptpack` (~92 tokens)

Publish a promptpack version in an EdgeGate workspace so it can be referenced in pipelines. Newly created packs start as unpublished — call this after edgegate_create_promptpack to complete the create → publish → use lifecycle. Requires admin role on the workspace. The operation is idempotent.

Input parameters:

- `promptpack_id` (string, required)
- `version` (string, required)
- `workspace_id` (string, required)

### `edgegate_connect_huggingface` (~138 tokens)

Store a personal HuggingFace access token for this workspace so the import flow can read private / gated / Qualcomm-org repos (most qualcomm/*, Intel/*, and many Xenova/* repos 401 the anonymous endpoint). The token is validated against HF whoami before encryption and is never echoed in plaintext. If an integration already exists this tool rotates the token. Requires admin role.

Input parameters:

- `token` (string, required): Personal HuggingFace access token (starts with hf_). Generate one at https://huggingface.co/settings/tokens — Read scope is enough for the import flow.
- `workspace_id` (string, required)

### `edgegate_get_huggingface_integration` (~53 tokens)

Show whether a personal HuggingFace token is connected to this workspace (and whether it is currently active or disabled). Does not return the token itself.

Input parameters:

- `workspace_id` (string, required)

### `edgegate_disconnect_huggingface` (~45 tokens)

Permanently delete the workspace's HuggingFace integration. Future HF imports fall back to anonymous access. Requires owner role.

Input parameters:

- `workspace_id` (string, required)

### `edgegate_connect_qaihub` (~124 tokens)

Store a Qualcomm AI Hub API token for this workspace so EdgeGate can submit compile + profile jobs on real Snapdragon devices. The token is encrypted at rest and is never returned in plaintext after the initial connect. If an integration already exists this tool transparently rotates the token. Requires admin role.

Input parameters:

- `token` (string, required): Qualcomm AI Hub API token. Generate one at https://app.aihub.qualcomm.com/account/api-token — it's the same token you'd export as QAIHUB_API_TOKEN in a local SDK setup.
- `workspace_id` (string, required)

### `edgegate_get_qaihub_integration` (~48 tokens)

Show whether a Qualcomm AI Hub token is connected to this workspace and whether it is currently active. Does not return the token itself.

Input parameters:

- `workspace_id` (string, required)

### `edgegate_disconnect_qaihub` (~59 tokens)

Permanently delete the workspace's Qualcomm AI Hub integration. Any new EdgeGate runs in this workspace will then fail with NO_AIHUB_TOKEN until a fresh token is connected. Requires owner role.

Input parameters:

- `workspace_id` (string, required)

### `edgegate_create_workspace` (~65 tokens)

Create a new EdgeGate workspace. The caller automatically becomes the owner. Subject to plan-tier workspace limits. After creation, connect Qualcomm AI Hub and define pipelines as usual.

Input parameters:

- `name` (string, required): Display name for the new workspace, e.g. "MobileNet Production".

### `edgegate_list_api_keys` (~50 tokens)

List all API keys in this workspace (id, name, prefix...suffix, status, last_used). Plaintext is never returned. Requires owner role.

Input parameters:

- `workspace_id` (string, required)

### `edgegate_create_api_key` (~129 tokens)

Create a new API key for this workspace. The plaintext token is returned EXACTLY ONCE in the response — copy it to your CI secrets or local env immediately. Requires Pro tier or above. Requires owner role.

Input parameters:

- `expires_at` (string): Optional ISO-8601 expiry timestamp. Omit for a non-expiring key (you can always revoke it manually).
- `name` (string, required): Human-readable label for the key, e.g. "GitHub Actions production" — you'll need this later to identify which key to rotate or revoke.
- `workspace_id` (string, required)

### `edgegate_revoke_api_key` (~111 tokens)

Revoke an API key by id. The key is immediately rejected for all subsequent requests; the row is preserved (with revoked_at set) so the audit trail survives. Destructive. Requires owner role.

Input parameters:

- `key_id` (string, required): UUID of the key to revoke (the `id` field from `edgegate_list_api_keys`). This is destructive and immediate — any CI job or client still using the plaintext will fail authentication on the next reque…
- `workspace_id` (string, required)

### `edgegate_list_members` (~36 tokens)

List all members of this workspace with their email + role. Requires at least viewer role.

Input parameters:

- `workspace_id` (string, required)

### `edgegate_list_devices` (~100 tokens)

List every Qualcomm AI Hub device EdgeGate can target (Snapdragon phones, QRD/CRD reference platforms, IoT Dragonwing, automotive, XR). Returns a markdown table grouped by category. Use the `id` column verbatim when building a `create_pipeline` device matrix. No workspace_id needed — the catalog is global.

Input parameters:

- `category` (string): Optional form-factor filter. Omit to return the full catalog grouped by category.

### `edgegate_list_device_targets` (~100 tokens)

List the customer's OWN connected devices (Jetson, Snapdragon hosts, gateways) with live/offline status computed from each device's heartbeat (30s beat, 90s window). This is the workspace fleet connected via `edgegate-runner agent` — NOT the global AI Hub catalog (use edgegate_list_devices for that). If empty, the response includes copy-paste connect instructions for the customer.

Input parameters:

- `workspace_id` (string, required)

### `edgegate_run_device_benchmark` (~146 tokens)

Dispatch an ONNX benchmark to one of the customer's connected devices (Jetson, Snapdragon host, gateway) by name/id. The on-device agent picks it up within ~30s and reports latency/memory results. Multi-silicon: works for any vendor the customer has connected. Requires admin role.

Input parameters:

- `device` (string, required): Device to run on: DB UUID, agent device_id, or the exact display name from edgegate_list_device_targets.
- `model_artifact_id` (string, required): ONNX model artifact in this workspace.
- `model_name` (string): Label for the result; defaults to the artifact filename.
- `workspace_id` (string, required)

### `edgegate_invite_member` (~161 tokens)

Add an existing EdgeGate user to this workspace by email at the given role (owner / admin / viewer). v1 only attaches existing users — does not send invitation emails to external addresses. Requires admin role; only owners can add other owners.

Input parameters:

- `role` (string, required): Their role in this workspace. `owner` = full control including billing and member management; `admin` = can manage pipelines and runs but not billing or delete the workspace; `viewer` = read-only.
- `user_email` (string, required): Email of an existing EdgeGate user to add. The user must already have an EdgeGate account — this tool does NOT send invitation emails to external addresses (v1 only attaches existing users).
- `workspace_id` (string, required)

### `edgegate_change_member_role` (~85 tokens)

Change a member's role in this workspace. Cannot downgrade the last owner — promote another member to owner first. Requires owner role.

Input parameters:

- `role` (string, required): The new role. Requires the caller to be a workspace owner.
- `user_id` (string, required): Target member's user_id (from `edgegate_list_members`).
- `workspace_id` (string, required)

### `edgegate_remove_member` (~94 tokens)

Remove a member from this workspace. The user loses access immediately; their pipelines and runs are preserved. Cannot remove the last owner. Destructive. Requires owner role.

Input parameters:

- `user_id` (string, required): Target member's user_id (from `edgegate_list_members`). The user immediately loses access to the workspace. Their pipelines and runs are preserved — this only removes the membership row.
- `workspace_id` (string, required)

### `edgegate_setup_byo_storage` (~288 tokens)

Enterprise only. Zero-friction BYO storage setup — creates a pending grant with EdgeGate (returns the External ID) and returns the exact AWS CLI commands the agent should run to create the IAM role in the customer's AWS account. Pair with edgegate_attach_byo_role to finalize. Prefer this over edgegate_register_byo_bucket for new setups — the agent doesn't have to figure out the trust policy or guess at role names. Requires owner role. 402 from non-Enterprise workspaces; if a non-pending grant exists, instructs the agent to disconnect first.

Input parameters:

- `bucket` (string, required): S3 bucket name (not the URI) you want EdgeGate to read model bytes from.
- `kms_key_id` (string): Optional KMS key ARN if the bucket uses SSE-KMS with a customer-managed key. The IAM role will be granted kms:Decrypt on this key. Leave unset for SSE-S3 or SSE-KMS with the AWS-managed key.
- `region` (string, required): AWS region the bucket lives in, e.g. us-east-1.
- `role_name_override` (string): Optional override for the IAM role name. Default mirrors the CloudFormation path: edgegate-byo-read-<first-8-chars-of-external-id>.
- `workspace_id` (string, required): Workspace ID. Must be Enterprise-tier with BYO storage enabled.

### `edgegate_attach_byo_role` (~170 tokens)

Phase 2 of edgegate_setup_byo_storage. Hands the freshly-created Role ARN back to EdgeGate, which runs sts:AssumeRole + a deny-by-default HEAD probe to verify the trust + permission policies are correct. Flips the grant to 'active' on success, or returns a typed BYO_* error with a checklist of common misconfigurations on failure. Re-callable with the same role_arn after fixing IAM.

Input parameters:

- `role_arn` (string, required): ARN of the IAM role created in step 3 of edgegate_setup_byo_storage. Format: arn:aws:iam::<account-id>:role/<name>. EdgeGate will sts:AssumeRole this immediately to verify the trust + permission poli…
- `workspace_id` (string, required)

### `edgegate_register_byo_bucket` (~261 tokens)

Enterprise only. **Use edgegate_setup_byo_storage instead for new setups** — this tool only works if you already have an IAM role and just want to register its ARN. Registers the workspace's customer-owned S3 bucket + IAM role as a BYO storage grant. EdgeGate's workers will AssumeRole into your AWS account to read model bytes — they never leave your account. Returns the External ID you must add to your role's trust policy. Requires owner role. 402 from non-Enterprise workspaces; 409 if a grant already exists.

Input parameters:

- `bucket` (string, required): S3 bucket name (not the URI — just the bucket name).
- `kms_key_id` (string): Optional KMS key ARN if the bucket uses SSE-KMS. The IAM role must have kms:Decrypt on this key.
- `region` (string, required): AWS region the bucket lives in, e.g. us-east-1.
- `role_arn` (string, required): ARN of the IAM role EdgeGate's workers will assume to read your bucket. Created by the EdgeGate CloudFormation launch stack (or your equivalent Terraform module). Format: arn:aws:iam::<account-id>:ro…
- `workspace_id` (string, required)

### `edgegate_check_byo_bucket` (~76 tokens)

Re-run the AssumeRole + HeadObject readiness probe against the workspace's BYO grant. Returns the updated grant status with the typed BYO_* error code if it failed, plus a checklist of common IAM / bucket / KMS misconfigurations to inspect. Requires admin role.

Input parameters:

- `workspace_id` (string, required)

### `edgegate_register_byo_artifact` (~276 tokens)

Register an existing S3 URI in your registered bucket as an EdgeGate Artifact. EdgeGate HeadObjects the URI to confirm the key exists + capture size/etag — bytes are NOT uploaded through EdgeGate. Returns an artifact_id you can pass directly to edgegate_create_pipeline / edgegate_run_gate. Requires admin role. Pre-conditions: Enterprise plan + active BYO grant + bucket matches the grant.

Input parameters:

- `expected_sha256` (string): Optional SHA-256 of the object (hex). If supplied, downstream cells will fail with BYO_INTEGRITY_MISMATCH when the actual bytes don't match — a strong guarantee that you ran what you thought you ran.
- `expected_size` (integer): Optional size in bytes. EdgeGate cross-checks against the HeadObject response and rejects the registration if they disagree — protects against stale pointers when an object was overwritten in S3.
- `kind` (string): Artifact kind. Defaults to 'model'.
- `original_filename` (string): Optional display filename for run reports.
- `s3_uri` (string, required): Full S3 URI of the object in your registered bucket, e.g. s3://my-bucket/models/mobilenet-v2.onnx. Must live in the same bucket the grant was registered with.
- `workspace_id` (string, required)

### `edgegate_disconnect_byo_bucket` (~76 tokens)

Delete the workspace's BYO storage grant. EdgeGate stops attempting to read from your bucket. Refuses (409) if artifacts still reference it — surface lists the safe paths forward (rotate External ID via dashboard, or drop the artifacts first). Destructive. Requires owner role.

Input parameters:

- `workspace_id` (string, required)

### `edgegate_llm_compile` (~169 tokens)

Submit a multi-component LLM compile + link job via Qualcomm AI Hub. Returns a compile_job_id; poll with edgegate_check_llm_compile_status. Spend is gated by the workspace's monthly LLM compile cap (default 100/mo Pro tier). Each compile produces a composite QNN_DLC linked model + 3 component artifacts (prompt / token / kv_cache). Compile target_runtime is QNN_DLC under the hood despite the genie label — the label is for downstream profile dispatch hints only.

Input parameters:

- `context_lengths` (array)
- `device_id` (string, required)
- `roles` (array)
- `sequence_lengths` (array)
- `source_artifact_ids` (array, required)
- `target_runtime` (string)
- `workspace_id` (string, required)

### `edgegate_check_llm_compile_status` (~68 tokens)

Poll an LLM compile job. Returns status (queued|running|completed|failed), composite_artifact_id when complete, error_detail when failed, and progress.compile_jobs_done / total.

Input parameters:

- `compile_job_id` (string, required)
- `workspace_id` (string, required)

### `edgegate_get_byo_audit` (~184 tokens)

Fetch the workspace's append-only BYO storage audit log (every AssumeRole, HeadObject, GetObject, KMS Decrypt). Supports filters by artifact_id, run_id, since timestamp, plus cursor pagination. Each row's aws_request_id is the join key for cross-referencing against your own CloudTrail. Requires admin role.

Input parameters:

- `artifact_id` (string): Filter to events referencing this artifact.
- `cursor` (integer): Opaque cursor returned by a previous call. Pass it back verbatim to fetch the next page; omit on the first call.
- `limit` (integer): Page size (1–500, default 100).
- `run_id` (string): Filter to events from this run.
- `since` (string): ISO-8601 timestamp; only include events newer than this.
- `workspace_id` (string, required)

### `edgegate_list_eval_packs` (~77 tokens)

List the bundled behavioral eval-set starter packs a customer can clone from. Returns each pack's id, name, case count, and balance (must_refuse / task counts). Clone one into a new eval set via edgegate_create_eval_set(clone_from=<id>). No workspace_id needed — the pack library is global.

### `edgegate_create_eval_set` (~178 tokens)

Create a new behavioral eval set with its first draft version. Seed it from a bundled pack (clone_from), with explicit cases, both, or neither (empty draft). Each case has six fields: case_id, prompt, category (jailbreak|forbidden_action|task|format), forbidden_actions, must_refuse, expected_task_answer. Drafts are NOT validated here — only edgegate_publish_eval_set freezes + gates. Requires workspace write access.

Input parameters:

- `cases` (array): Explicit list of case dicts. May be combined with clone_from or used instead. Omit both to start with an empty draft.
- `clone_from` (string): A pack id from edgegate_list_eval_packs; seeds the draft with that pack's cases.
- `name` (string, required)
- `workspace_id` (string, required)

### `edgegate_list_eval_sets` (~55 tokens)

List the workspace's behavioral eval sets — eval_set_id, name, latest version, and creation date. Use the eval_set_id with the update / publish / new-version tools.

Input parameters:

- `workspace_id` (string, required)

### `edgegate_update_eval_set` (~114 tokens)

Replace ALL cases of a DRAFT eval-set version (full replacement list, not a patch). Published versions are immutable — a 409 here means you must fork a fresh draft with edgegate_new_eval_set_version first. Still leaves the version a draft; publish separately. Requires workspace write access.

Input parameters:

- `cases` (array, required): The FULL replacement list of case dicts for this draft version.
- `eval_set_id` (string, required)
- `version_id` (string, required)
- `workspace_id` (string, required)

### `edgegate_publish_eval_set` (~118 tokens)

Validate and freeze a draft eval-set version into an immutable, signed, hash-anchored version. On success returns eval_set_sha256 + artifact_id (feed both into a 3b Behavioral-Gate run). On validation failure returns the balance/structural violations and the version stays a draft (floor: ≥5 must_refuse-with-forbidden cases + ≥1 task case). Requires workspace write access.

Input parameters:

- `eval_set_id` (string, required)
- `version_id` (string, required)
- `workspace_id` (string, required)

### `edgegate_new_eval_set_version` (~117 tokens)

Fork a fresh draft (version+1) from a PUBLISHED version, seeded with its cases — the edit-after-publish path. Edit the new draft with edgegate_update_eval_set, then re-publish. The original published version (and any references / runs bound to its sha) is untouched. Requires workspace write access.

Input parameters:

- `eval_set_id` (string, required)
- `from_version` (string, required): The version_id of a PUBLISHED version to seed the new draft from.
- `workspace_id` (string, required)

### `edgegate_capture_reference` (~210 tokens)

Trigger a reference-oracle capture — the known-good baseline the Behavioral Gate diffs the on-device quantized model against. Specify EXACTLY one flavor: hf_repo (auto-FP16, EdgeGate runs the un-quantized same model) or reference_upload_artifact_id (golden, customer-supplied). Returns a job_id to poll. Requires workspace admin access.

Input parameters:

- `decode_config` (object): Decode settings, e.g. {"seed": 0}. Defaults to an empty object.
- `eval_set_artifact_id` (string, required): Published eval-set artifact id (the artifact_id from edgegate_publish_eval_set).
- `hf_repo` (string): auto-FP16 flavor: HF repo EdgeGate runs un-quantized as the oracle.
- `reference_upload_artifact_id` (string): golden flavor: a customer-supplied reference upload artifact id.
- `system_prompt` (string, required): System prompt the reference oracle is captured under.
- `workspace_id` (string, required)

### `edgegate_check_reference_capture_status` (~82 tokens)

Poll a reference-capture job. When status is done, returns reference_artifact_id — an ArtifactKind.REFERENCE artifact — to feed into edgegate_create_bg_run as the gate's trustworthy baseline. Requires workspace admin access.

Input parameters:

- `job_id` (string, required): The job_id returned by edgegate_capture_reference.
- `workspace_id` (string, required)

### `edgegate_compile_genie` (~203 tokens)

Submit a 3-lane genie compile for the Behavioral Gate's self-hosted runner. Specify EXACTLY one lane selector: hf_repo (Lane A — EdgeGate compiles a HuggingFace repo), onnx_artifact_ids (Lane B — genie-ready multi-part ONNX, compile-and-link), or bundle_artifact_id (Lane C — an already-precompiled bundle). Returns a job_id to poll. Requires workspace admin access.

Input parameters:

- `bundle_artifact_id` (string): Lane C: an already-precompiled genie bundle artifact id.
- `device_id` (string, required): Target device chipset id the bundle compiles for, e.g. sm8550.
- `hf_repo` (string): Lane A: a HuggingFace repo id EdgeGate compiles into a genie bundle.
- `onnx_artifact_ids` (array): Lane B: genie-ready multi-part ONNX artifact ids to compile-and-link.
- `workspace_id` (string, required)

### `edgegate_check_genie_compile_status` (~75 tokens)

Poll a genie-compile job. When status is done, returns bundle_artifact_id — the compiled genie bundle to feed into edgegate_create_bg_run. Requires workspace admin access.

Input parameters:

- `job_id` (string, required): The job_id returned by edgegate_compile_genie.
- `workspace_id` (string, required)

### `edgegate_create_bg_run` (~312 tokens)

Wire a compiled genie bundle + published eval set + reference oracle into a behavioral-gate Run — populates Run.runner_config_json so the self-hosted runner can execute the gate on-device. Errors with a mismatch hint when the reference was captured against a different eval-set version (eval_set_sha256 differs). Requires workspace admin access.

Input parameters:

- `bundle_artifact_id` (string, required): Compiled genie bundle artifact id from edgegate_check_genie_compile_status.
- `decode_config` (object): Decode settings, e.g. {"seed": 0}. Defaults to an empty object.
- `device_label` (string): Human-readable device label, e.g. "Samsung Galaxy S23 Ultra / Snapdragon 8 Gen 2 (SM8550)".
- `eval_set_artifact_id` (string, required): Published eval-set artifact id from edgegate_publish_eval_set.
- `reference_artifact_id` (string, required): Reference-oracle artifact id from edgegate_check_reference_capture_status.
- `requirement_map` (object): ISO 26262 traceability: maps a gate/signal name to its safety requirement id + ASIL, e.g. {"forbidden_action": {"requirement_id": "SR-CABIN-014", "asil": "B"}}. Surfaced by edgegate_export_compliance…
- `system_prompt` (string): System prompt the run executes under. Defaults to empty.
- `vendor` (string): Runner vendor. Defaults to "qualcomm".
- `workspace_id` (string, required)

### `edgegate_cancel_run` (~88 tokens)

Cancel a non-terminal run, freeing the workspace's single active-run slot. Useful for a behavioral-gate run left queued waiting for a device that never reports back (it would otherwise block new runs). 409 if the run is already terminal.

Input parameters:

- `run_id` (string, required): Run to cancel. Frees the workspace's single active-run slot.
- `workspace_id` (string, required)

### `edgegate_rerun_bg` (~102 tokens)

Re-run an existing behavioral-gate run: clones its already-validated config (same bundle + eval set + reference + system prompt + device) into a fresh queued run — no need to re-supply artifact ids. 409 if the workspace already has an active run (cancel it first).

Input parameters:

- `run_id` (string, required): An existing behavioral-gate run to re-run (same config, fresh run).
- `workspace_id` (string, required)

### `edgegate_setup_bg_github_action` (~190 tokens)

Generate the Behavioral-Gate GitHub Actions setup — the self-hosted-runner prerequisites, the workflow YAML (using the edgegate-bg composite action), and the gh secret commands. Unlike the standard run gate, BG runs the model on a real device, so it needs a self-hosted runner with the device attached.

Input parameters:

- `adb_serial` (string): adb serial of the attached device.
- `api_url` (string): EdgeGate API URL. Defaults to "https://edgegateapi.frozo.ai".
- `bundle_artifact_id` (string)
- `device_label` (string)
- `eval_set_artifact_id` (string)
- `reference_artifact_id` (string)
- `runner_label` (string): Self-hosted runner label. Defaults to "snapdragon".
- `system_prompt` (string)
- `workspace_id` (string, required)

### `edgegate_export_compliance_report` (~114 tokens)

Export the compliance-preset report for a run (e.g. ISO 26262 verification evidence) — a re-frame of the run's already-signed evidence against the standard's clauses (config identification, verification, change mgmt, tool classification, integrity). Verification evidence, NOT a compliance certification. The formatted assessor PDF is on the dashboard run page.

Input parameters:

- `preset` (string): Compliance preset. Default "iso26262".
- `run_id` (string, required)
- `workspace_id` (string, required)

### `edgegate_export_field_recorder_report` (~179 tokens)

Export the Field Recorder EU AI Act Article 12 record-keeping report for a date range — the signed, hash-chained evidence of what deployed models did on-device (clause 12(1)/12(2)(a)/12(2)(b)/integrity mapping, event summary, Ed25519 signature). Verification evidence, NOT a compliance certification. The formatted assessor PDF is on the Field Recorder dashboard page.

Input parameters:

- `device_id` (string): Optional — restrict the report to a single device.
- `from` (string, required): Start of the reporting period (ISO 8601, e.g. 2026-06-01).
- `to` (string, required): End of the reporting period (ISO 8601, e.g. 2026-07-01).
- `workspace_id` (string, required)

### `edgegate_recorder_status` (~79 tokens)

Field Recorder status for a workspace: recorded-event counts, replay/divergence breakdown (passed/diverged/no_reference), hash-chain integrity (verified, gaps, signing keys), and the devices reporting in. Read-only.

Input parameters:

- `device_id` (string): Optional — scope the status to a single device.
- `workspace_id` (string, required)

### `edgegate_trigger_replay` (~101 tokens)

Replay pending recorded events against their certified reference (a PASSED gate run for the same model) plus the input-matched baseline. Verdicts land asynchronously — poll edgegate_recorder_status. Events with no certified reference resolve to no_reference.

Input parameters:

- `device_id` (string): Optional — only replay events from this device.
- `limit` (integer): Max pending events to replay this call. Default 100.
- `workspace_id` (string, required)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/frozo-ai-edgegate-mcp/edgegate-mcp#diagnostics

## Score history

- 2026-08-07: 64
- 2026-08-06: 60
- 2026-08-05: 35

## Links

- npm package: https://www.npmjs.com/package/edgegate-mcp
- Socket report: https://socket.dev/npm/package/edgegate-mcp
- Repository: https://github.com/frozo-ai/edgegate-mcp
- Website: https://edgegate.frozo.ai/
- Changelog RSS feed: https://verifymcp.io/servers/frozo-ai-edgegate-mcp/edgegate-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/frozo-ai-edgegate-mcp/edgegate-mcp.json
- HTML version of this page: https://verifymcp.io/servers/frozo-ai-edgegate-mcp/edgegate-mcp
