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.

Ikenga iyke (control bridge)

NPM · @IKENGA/MCP-IYKE · SCANNED SEP 20

Drive a running Ikenga desktop app from MCP clients — DOM, click, type, navigate, screenshot.

Available components

+3 this week 90 Trust /100
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 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 97 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 ikenga-hq/ikenga-pkgs). View diagnostics → Pass
  • Clear OSI-approved license (Apache-2.0).Pass
  • Actively maintained (last published 30 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability72
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 6863 tokens (~90/item across 76 items; 76 tools + 0 resources), lean.Pass
  • 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 Coverage75
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 26% of tool parameters carry a description.Partial
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 6 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "iyke_iframe_send" implies "send" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 76 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
Install

How do I install the Ikenga iyke (control bridge) MCP server?

Ikenga iyke (control bridge) runs locally as an npm package, launched with npx -y @ikenga/mcp-iyke. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @ikenga/mcp-iyke

# add to Claude Code
claude mcp add dev-ikenga-mcp-iyke -- npx -y @ikenga/mcp-iyke
// .cursor/mcp.json
{
  "mcpServers": {
    "dev-ikenga-mcp-iyke": {
      "command": "npx",
      "args": [
        "-y",
        "@ikenga/mcp-iyke"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "dev-ikenga-mcp-iyke": {
      "command": "npx",
      "args": [
        "-y",
        "@ikenga/mcp-iyke"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add dev-ikenga-mcp-iyke -- npx -y @ikenga/mcp-iyke
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "dev-ikenga-mcp-iyke": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@ikenga/mcp-iyke"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add dev-ikenga-mcp-iyke --command npx --arg -y --arg @ikenga/mcp-iyke
# ~/.hermes/config.yaml
mcp_servers:
  dev-ikenga-mcp-iyke:
    command: "npx"
    args: ["-y", "@ikenga/mcp-iyke"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "dev-ikenga-mcp-iyke": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@ikenga/mcp-iyke"
      ]
    }
  }
}
# add to Vellum
assistant mcp add dev-ikenga-mcp-iyke -t stdio -c npx -a -y @ikenga/mcp-iyke
// mcp.json
{
  "mcpServers": {
    "dev-ikenga-mcp-iyke": {
      "command": "npx",
      "args": [
        "-y",
        "@ikenga/mcp-iyke"
      ]
    }
  }
}
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.

  • 20 Sept 26 0
    • Stability: 0.97 → pass security
  • 19 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 17 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 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 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.

  • 10 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

  • 8 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

  • 6 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

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 20 Sept 2026 · Analysed npm/@ikenga/mcp-iyke@0.2.3

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 ikenga-hq/ikenga-pkgs
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/ikenga-hq/ikenga-pkgs/.github/workflows/release.yml@refs/heads/main
Rekor log index 2545526583
Predicate type https://slsa.dev/provenance/v1
Subject digest sha512:f0953eb7b70ae050cc9739ea9e397bbfd72d3263c9f1698d362da8a7bd1986d213e1bcf2d5737da35a104b398e168fcec5708edaa1dcaa7461f382bf7

Background: How many MCP packages publish verified provenance →

Dependencies 97 packages
Packages resolved 97
Stale 31
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 76 exposed · ~6,863 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
iyke_agent_register ~121

Register this agent so locks and timers can attribute work to it. Returns an opaque id. Pass the id as holder to iyke_lock_acquire. Repeated calls with the same {id} bump last_seen_at; omit id to mint a new one.

NameTypeReqDescription
idstringOptional. Caller-supplied id (e.g. session-derived). Server mints one if omitted.
metadataobject
modelstring
namestringyesDisplay name, e.g. "claude-conductor".

No output schema declared.

No examples provided.

iyke_chi_cancel ~29

Cancel a running chi agent run by run_id.

NameTypeReqDescription
run_idstringyes

No output schema declared.

No examples provided.

iyke_chi_list ~54

List chi agent runs. Optionally filter by engine_id. Returns rows newest-first with runId, engineId, status, and brief.

NameTypeReqDescription
engine_idstring
limitinteger

No output schema declared.

No examples provided.

iyke_chi_resume ~55

Continue an existing chi agent run with a new prompt. Requires run_id from a previous iyke_chi_run or iyke_chi_list.

NameTypeReqDescription
promptstringyes
run_idstringyes

No output schema declared.

No examples provided.

iyke_chi_run ~187

Start a new chi agent run against an engine. Returns { runId, status, output?, error? }. Use iyke_chi_status to poll for output. engine_id examples: claude-code, gemini, codex. mode controls permissions: plan, default, auto, bypassPermissions.

NameTypeReqDescription
cwdstringWorking directory. Defaults to the active project root.
engine_idstringyesEngine id, e.g. claude-code.
modestringPermission mode. Defaults to default.
modelstringOptional engine model.
parent_idstringOptional parent run id for subagent chains.
promptstringyesInitial prompt / task for the agent.
resume_session_idstringOptional existing engine session id to resume.
timeout_secondsintegerTimeout in seconds (currently advisory).

No output schema declared.

No examples provided.

iyke_chi_status ~56

Get the current status and output of a chi run. Returns { runId, engineId, status, output?, error?, brief? }. Poll periodically after iyke_chi_run.

NameTypeReqDescription
run_idstringyes

No output schema declared.

No examples provided.

iyke_claude_asset_list_pins ~74

List Claude-config asset pins for a scope. Scope is "workspace" (cross-project) or "project:<id>" (this project only). Returns one entry per pin with preferred_tier + preferred_source.

NameTypeReqDescription
scopestringyesEither "workspace" or "project:<id>".

No output schema declared.

No examples provided.

iyke_claude_asset_pin ~183

Pin a preferred provider for a Claude-config asset name in a scope. When discovery finds the same asset name in multiple tiers (e.g. a `code-reviewer` agent in both ~/.claude/ and a project pkg), the lowest tier wins by default; a pin overrides that. Scope is "workspace" (cross-project) or "project:<id>" (this project only). preferred_tier is one of personal | workspace_pkg | project | project_pkg. preferred_source is the pkg id (or "personal" for ~/.claude/) — omit to match any source in the tier.

NameTypeReqDescription
asset_kindstringyes
asset_namestringyes
preferred_sourcestring
preferred_tierstringyes
scopestringyesEither "workspace" or "project:<id>".

No output schema declared.

No examples provided.

iyke_claude_asset_unpin ~53

Remove a pinned resolution. Falls back to the default lowest-tier-wins rule.

NameTypeReqDescription
asset_kindstringyes
asset_namestringyes
scopestringyes

No output schema declared.

No examples provided.

iyke_claude_assets_list ~119

List Claude-config assets (skills, agents, commands, hooks, mcps) discovered for a project, grouped by provider tier. Returns a tree where each asset name maps to one or more AssetSource entries; multiple entries on the same name indicate a conflict between tiers. Defaults to the active project; pass project_id to query a specific one. Use this to see what an agent will actually load in a project context.

NameTypeReqDescription
kindstringOptional. Filter to one asset kind.
project_idstring

No output schema declared.

No examples provided.

iyke_click ~75

Click an element. Specify exactly one of `ref` (from iyke_dom), `selector` (CSS), or `text` (innerText match). Refs are most reliable.

NameTypeReqDescription
panestring
refstring
selectorstring
textstring

No output schema declared.

No examples provided.

iyke_close ~82

Close a pane (or the focused pane if pane_id omitted). Closes the entire pane and all its tabs — to close a single tab from the in-app keyboard, use ⌘⇧W (⌘W closes the whole pane). Refuses to close the last remaining pane.

NameTypeReqDescription
pane_idstringOptional. Defaults to focused pane.

No output schema declared.

No examples provided.

iyke_devtools ~31

Open Chrome DevTools for the main webview (debug builds only). Returns 503 in production builds.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

iyke_dom ~120

Take an accessibility-tree snapshot of the focused pane. Returns Playwright-style text plus structured JSON. Each interactive element gets a stable ref like e1, e2; pass that ref to iyke_click / iyke_type / iyke_key. Refs invalidate on the next snapshot or page navigation. Use `query` for substring filter, `all=true` to include hidden elements.

NameTypeReqDescription
allbooleanInclude hidden + aria-hidden elements.
panestring
querystringSubstring filter against role/name/value.

No output schema declared.

No examples provided.

iyke_focus ~74

Focus a specific pane. Provide either pane_id (leaf id from iyke_state response — shell.panes.leaves[].id) or index (1-based DFS leaf index, matching the in-app ⌃1..⌃6 keyboard shortcuts).

NameTypeReqDescription
indexinteger
pane_idstring

No output schema declared.

No examples provided.

iyke_go ~77

Navigate the focused pane to a route path inside the Ikenga desktop app (e.g. "/notes/today"). Path must start with "/". This replaces the focused pane's active tab content; use iyke_open with kind=route to add a new tab instead.

NameTypeReqDescription
pathstringyesRoute path, must start with "/".

No output schema declared.

No examples provided.

iyke_iframe_send ~76

Send a fire-and-forget postMessage to an iframe pane. The iframe bridge listens for known kinds (e.g. "story-select") and acts on the payload. Use to drive mini-app actions from outside the running app.

NameTypeReqDescription
kindstringyes
panestringyes
payload

No output schema declared.

No examples provided.

iyke_iframe_state ~61

Read the latest published state object for an iframe pane (storyboard cursor, comp current frame, etc.). Iframes call publishState(key, value) from their iyke-bridge to expose runtime state for inspection.

NameTypeReqDescription
panestringyes

No output schema declared.

No examples provided.

iyke_key ~105

Dispatch a keyboard combo. Use names like "Enter", "Escape", "Tab", "ArrowDown", and modifiers Ctrl/Alt/Shift/Meta separated by + or , (e.g. "Ctrl+S", "Meta+K"). Optional `ref`/`selector` targets a specific element; otherwise the active element receives.

NameTypeReqDescription
combostringyes
panestring
refstring
selectorstring

No output schema declared.

No examples provided.

iyke_kv_delete ~34

Delete a KV entry. Idempotent.

NameTypeReqDescription
keystringyes
scopestring

No output schema declared.

No examples provided.

iyke_kv_get ~51

Read a JSON value at scope+key. Returns { key, value: null } if absent (200, not 404).

NameTypeReqDescription
keystringyes
scopestring

No output schema declared.

No examples provided.

iyke_kv_list ~42

List KV entries in a scope. `prefix` filter narrows by key prefix.

NameTypeReqDescription
prefixstring
scopestring

No output schema declared.

No examples provided.

iyke_kv_set ~70

Store a small JSON value at scope+key. Cap 64 KB per value; cap 1 MB total per scope. For larger durable text, use scratchpads. Scope defaults to active project.

NameTypeReqDescription
keystringyes
scopestring
valueyes

No output schema declared.

No examples provided.

iyke_layout_get ~101

Get the saved layout (pane tree, files-explorer state, panel sizes) for a project. Returns the raw layout_state row contents — each field is the JSON the shell wrote, or null when nothing has been saved for that key. Defaults to the active project; pass project_id to query a specific one. Useful for the conductor pattern (an agent inspecting "what does this project look like to the user").

NameTypeReqDescription
project_idstring

No output schema declared.

No examples provided.

iyke_layout_reset ~89

Reset a project's saved layout — deletes the pane tree, files-explorer state, and panel sizes rows. Next time the user (or anyone) switches to this project, the layout-swap orchestrator finds no saved state and leaves the current view in place. Use this to recover from a wedged layout or as part of a clean-slate workflow.

NameTypeReqDescription
project_idstringyes

No output schema declared.

No examples provided.

iyke_lock_acquire ~121

Acquire a project-scoped lease lock on a named resource. Use for short-lived coordination around shared files, plans, migrations. holder is the agent id from iyke_agent_register. ttl_ms defaults to 60000 (clamped to [1000, 600000]). If wait_ms is set, blocks up to that long for an existing lock to expire.

NameTypeReqDescription
holderstringyes
resourcestringyes
scopestring
ttl_msinteger
wait_msinteger

No output schema declared.

No examples provided.

iyke_lock_release ~48

Release a lock you hold. No-op if held by someone else or already expired.

NameTypeReqDescription
holderstringyes
resourcestringyes
scopestring

No output schema declared.

No examples provided.

iyke_lock_renew ~63

Extend a lock you hold by ttl_ms. Useful for long-running work that needs more time than the original lease.

NameTypeReqDescription
holderstringyes
resourcestringyes
scopestring
ttl_msinteger

No output schema declared.

No examples provided.

iyke_lock_status ~45

Check whether a resource is currently locked (active leases only). Returns held=false if the lease has expired.

NameTypeReqDescription
resourcestringyes
scopestring

No output schema declared.

No examples provided.

iyke_logs ~76

Read recent console + error logs (last 500) from the running webview. Includes window error and unhandledrejection captures.

NameTypeReqDescription
levelstring
sinceintegerOnly entries with ts >= this (epoch ms).
sourcestringFilter by pane source ("shell" or leaf id).

No output schema declared.

No examples provided.

iyke_mcp_list ~119

List MCP servers visible from a project. Returns each (server name × source) pair so conflicts across tiers are surfaced separately. Each entry reports: source tier (personal | workspace_pkg | project | project_pkg), provider (pkg id or "personal"), lifecycle (long-lived | per-call | on-demand), live state (running / parked / crashed / blocked / not-started / on-demand), and the source file path. Defaults to the active project; pass project_id to query a specific one.

NameTypeReqDescription
project_idstring

No output schema declared.

No examples provided.

iyke_mcp_restart ~87

Restart a supervised MCP server by pkg id. Restarts every long-lived MCP entry the pkg declares (the supervisor keys per pkg, not per server name). Useful when a child has wedged. Fails with 404 if the pkg is not supervised — per-call MCPs spawn fresh on every tool invocation and have nothing persistent to restart.

NameTypeReqDescription
pkg_idstringyes

No output schema declared.

No examples provided.

iyke_mode ~60

Switch the activity-bar sidebar mode. Valid modes: app, files, agents, sessions, settings, storyboard, video-engine, canvas-design, image-generator. The first five are core; the rest are mini-apps.

NameTypeReqDescription
modestringyes

No output schema declared.

No examples provided.

iyke_network ~54

Read recent fetch + XHR network activity (last 100). Each entry has method, url, status, duration_ms, and error if it failed.

NameTypeReqDescription
sinceinteger
sourcestring

No output schema declared.

No examples provided.

iyke_open ~276

Open a new tab in the focused pane. `kind` selects the view type. For "route" pass `path`; "terminal" optionally `cmd` (a shell command string); "chat" requires `session_id`; "artifact" requires `path` (a single .html file); "artifact-studio" requires `path` plus optional `density` (grid for a folder, loupe for a single artifact, compare for two — with a `vs` sibling path); "artifact-grid" is a back-compat alias for `artifact-studio` at grid density; "mini-app" requires `name`.

NameTypeReqDescription
cmdstringFor terminal kind. Omit for default login shell.
densitystringFor artifact-studio kind. Defaults: folder path → 'grid'; file path → 'loupe'. Required with `vs` for compare.
kindstringyes
namestringFor mini-app kind.
pathstringFor route, artifact, artifact-studio, or artifact-grid kinds. For artifact-studio: a folder for grid density, a file for loupe / compare.
session_idstringFor chat kind.
vsstringFor artifact-studio kind at compare density — the second artifact path.

No output schema declared.

No examples provided.

iyke_pa_actions_pause ~168

Pause a batch of drafted actions into the Ikenga approve gate for operator sign-off (ux_mode: approve). Call this INSTEAD of performing the side effect (sending an email, posting, etc.) once you have drafted the outgoing items: it writes them to the gate at /outbox/approvals where the operator edits + approves, then STOP — the operator's approval drives the real send, not you. Each draft's `payload` must be `{ item: DraftItem, meta: ApproveGateMeta }` (the draft content + batch metadata).

NameTypeReqDescription
actionIdstringyesThe action id, e.g. "<pkgId>/<verb>".
batchIdstringyesA unique id for this pause batch.
draftsarrayyes

No output schema declared.

No examples provided.

iyke_pin_acknowledge ~79

Transition a pin from `open` to `in_progress`. Call this once you've read the pin and started working — the grid cell's pin dot flips to kola-amber so the user sees you're on it. Idempotent: later calls leave the existing `acknowledged_at` timestamp intact.

NameTypeReqDescription
idintegeryes

No output schema declared.

No examples provided.

iyke_pin_read ~127

Fetch the full payload for an artifact-grid pin by id. The routing dispatcher pastes a short prompt referencing the pin id; call this tool to retrieve the structured context — artifact_path (the .html file on disk), selector (CSS selector inside the artifact iframe), text (the user's comment body), screenshot_path (local PNG of the targeted element, may be null), plus lifecycle stamps. Use the path + selector + text to reason about and execute the requested change. 404 if the pin no longer exists.

NameTypeReqDescription
idintegeryesPin id as posted by the dispatcher.

No output schema declared.

No examples provided.

iyke_pin_resolve ~100

Transition a pin to `resolved`. Call this after committing the change you set out to make — the grid cell's pin dot flips to verdigris (resolved). Users can also resolve manually from the grid right-click menu; this is the agent-initiated path for closing the loop without bouncing back to the human. Stamps `resolved_at` on first transition; idempotent on re-calls.

NameTypeReqDescription
idintegeryes

No output schema declared.

No examples provided.

iyke_pkg_install_scope_set ~71

Change the scope of an installed pkg. scope="workspace" (always loaded) or "project:<id>" (loaded only when that project is active). Triggers a kernel reconcile so sidecars start/stop accordingly.

NameTypeReqDescription
pkg_idstringyes
scopestringyes

No output schema declared.

No examples provided.

iyke_pkg_list ~92

List installed pkgs visible from the active project. Workspace-scoped pkgs are always included; project-scoped pkgs are included only when their project is active unless include_other_projects=true. Each entry: id, version, install_path, enabled, source, scope ("workspace" | "project:<id>"), active_now.

NameTypeReqDescription
include_other_projectsboolean
kindstring

No output schema declared.

No examples provided.

iyke_pkg_trust_list ~73

List trust state for every installed pkg. Returns one entry per pkg with state (auto_trusted / auto_granted / granted / needs_approval), declared sensitive permissions summary, and last grant timestamp when applicable. Use when surveying which third-party pkgs need user approval before their MCP tools can be invoked.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

iyke_pkg_trust_status ~129

Get the trust state for a single installed pkg. Returns one of: auto_trusted (built-in com.ikenga.* shipped with the shell), auto_granted (no sensitive permissions declared), granted (user approved a specific manifest version), or needs_approval (sensitive perms declared but no current grant; either never approved, perms changed since last grant, or explicitly revoked). When state is needs_approval, MCP tools/call against this pkg returns the structured `trust_required` error until the user grants approval via Settings → Pkgs.

NameTypeReqDescription
pkg_idstringyes

No output schema declared.

No examples provided.

iyke_pkg_uninstall ~74

Uninstall a pkg. Stops its sidecars, removes its registry entries, deletes its files. Project-scoped state in iyke_kv / iyke_scratchpads / iyke_todos survives. Builtins (com.ikenga.*) cannot be uninstalled.

NameTypeReqDescription
pkg_idstringyes

No output schema declared.

No examples provided.

iyke_pkg_violations_list ~140

List kernel-level permission-violation audit rows newest-first. Today only `shell.execute` denials write here (a pkg attempted to spawn a binary outside its manifest's declared allowlist). Returns one entry per attempt with attempted (the resolved command), declared (the manifest allowlist at attempt time, comma-joined), scope_kind ('shell.execute'), pkg_id, and occurred_at (unix millis). Pass pkg_id to filter to one pkg; omit for a cross-pkg view. limit defaults to 100 and is hard-capped at 1000.

NameTypeReqDescription
limitnumber
pkg_idstring

No output schema declared.

No examples provided.

iyke_project_archive ~99

Archive a project (soft-delete — sets archived_at, no data removed). The project disappears from the default switcher list but its sessions/pkgs/todos remain on disk and can be restored by a later iyke_project_update if needed. Refuses to archive the built-in "Default" project. If the archived project was active, the shell falls back to Default automatically.

NameTypeReqDescription
idstringyesSlug of the project to archive.

No output schema declared.

No examples provided.

iyke_project_create ~279

Create a new project in the Ikenga shell. Projects scope chats, installed pkgs, pane layouts, todos, scratchpads and cron jobs — switching project rebinds those surfaces. Slug `id` must match ^[a-z0-9][a-z0-9_-]{0,63}$ and be unique; `default` is reserved. `display_name` is freely Unicode, capped at 120 chars. `root_path` is optional but recommended — it becomes the cwd for new chats spawned inside the project. `color` is a hex string used for the activity-bar dot. Use when the user asks to set up a new working context (a codebase, a label, an experiment).

NameTypeReqDescription
colorstringHex color like #4f8cff for the activity-bar dot.
descriptionstring
display_namestringyesHuman-readable name, up to 120 chars.
iconstringEmoji or filename inside ~/.local/share/ikenga/projects/<id>/.
idstringyesSlug: ^[a-z0-9][a-z0-9_-]{0,63}$. Unique. "default" is reserved.
root_pathstringAbsolute path. Used as cwd for new chats. Need not exist yet.

No output schema declared.

No examples provided.

iyke_project_get_active ~64

Return the currently active project (id, display_name, root_path, icon, color, description, position, is_default, created_at). Call this before iyke_project_set_active or any project-scoped mutation so an agent knows which project the user is in.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

iyke_project_list ~89

List projects in switcher order (position ASC, then created_at). Each entry has id, display_name, root_path, icon, color, description, position, is_default, created_at, archived_at. Archived projects are hidden by default — pass include_archived=true to surface them (e.g. when an agent is restoring an old project).

NameTypeReqDescription
include_archivedboolean

No output schema declared.

No examples provided.

iyke_project_set_active ~111

Switch the shell's active project. Subsequent new chats, scratchpads, todos and pkg installs default to this project; existing project-scoped TanStack queries (sessions, pkgs, todos, scratchpads, cron) refetch automatically. Does NOT navigate panes — pane contents stay put until a phase-2/6-aware surface reads the new active id. Fails if the id is unknown or archived.

NameTypeReqDescription
idstringyesSlug of an existing, non-archived project.

No output schema declared.

No examples provided.

Common questions

What is the Ikenga iyke (control bridge) MCP server?

Ikenga iyke (control bridge) is an MCP server listed in the public MCP registry as dev.ikenga/mcp-iyke. Drive a running Ikenga desktop app from MCP clients, DOM, click, type, navigate, screenshot. This page covers its npm package (@ikenga/mcp-iyke).

Is the Ikenga iyke (control bridge) MCP server safe to use?

Ikenga iyke (control bridge) scores 90 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 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 Ikenga iyke (control bridge) MCP server expose?

Ikenga iyke (control bridge) exposes 76 tools: iyke_state, iyke_go, iyke_mode, iyke_open, iyke_split, and 71 more. Their descriptions and schemas cost roughly 6,863 tokens of context every time the server is loaded.

Is the Ikenga iyke (control bridge) MCP server still maintained?

Ikenga iyke (control bridge) is still listed as active in the MCP registry. We last reached this channel on 20 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 Ikenga iyke (control bridge) MCP server under?

Ikenga iyke (control bridge) declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.