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
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
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
claude mcp add dev-ikenga-mcp-iyke -- npx -y @ikenga/mcp-iyke
{
"mcpServers": {
"dev-ikenga-mcp-iyke": {
"command": "npx",
"args": [
"-y",
"@ikenga/mcp-iyke"
]
}
}
} {
"servers": {
"dev-ikenga-mcp-iyke": {
"command": "npx",
"args": [
"-y",
"@ikenga/mcp-iyke"
]
}
}
} codex mcp add dev-ikenga-mcp-iyke -- npx -y @ikenga/mcp-iyke
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"dev-ikenga-mcp-iyke": {
"type": "local",
"command": [
"npx",
"-y",
"@ikenga/mcp-iyke"
],
"enabled": true
}
}
} openclaw mcp add dev-ikenga-mcp-iyke --command npx --arg -y --arg @ikenga/mcp-iyke
mcp_servers:
dev-ikenga-mcp-iyke:
command: "npx"
args: ["-y", "@ikenga/mcp-iyke"] {
"McpServers": {
"dev-ikenga-mcp-iyke": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"@ikenga/mcp-iyke"
]
}
}
} assistant mcp add dev-ikenga-mcp-iyke -t stdio -c npx -a -y @ikenga/mcp-iyke
{
"mcpServers": {
"dev-ikenga-mcp-iyke": {
"command": "npx",
"args": [
"-y",
"@ikenga/mcp-iyke"
]
}
}
} 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.
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 →
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 →
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | – | Optional. Caller-supplied id (e.g. session-derived). Server mints one if omitted. |
| metadata | object | – | – |
| model | string | – | – |
| name | string | yes | Display 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.
| Name | Type | Req | Description |
|---|---|---|---|
| run_id | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| engine_id | string | – | – |
| limit | integer | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| prompt | string | yes | – |
| run_id | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| cwd | string | – | Working directory. Defaults to the active project root. |
| engine_id | string | yes | Engine id, e.g. claude-code. |
| mode | string | – | Permission mode. Defaults to default. |
| model | string | – | Optional engine model. |
| parent_id | string | – | Optional parent run id for subagent chains. |
| prompt | string | yes | Initial prompt / task for the agent. |
| resume_session_id | string | – | Optional existing engine session id to resume. |
| timeout_seconds | integer | – | Timeout 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.
| Name | Type | Req | Description |
|---|---|---|---|
| run_id | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| scope | string | yes | Either "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.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_kind | string | yes | – |
| asset_name | string | yes | – |
| preferred_source | string | – | – |
| preferred_tier | string | yes | – |
| scope | string | yes | Either "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.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_kind | string | yes | – |
| asset_name | string | yes | – |
| scope | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| kind | string | – | Optional. Filter to one asset kind. |
| project_id | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| pane | string | – | – |
| ref | string | – | – |
| selector | string | – | – |
| text | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| pane_id | string | – | Optional. 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.
| Name | Type | Req | Description |
|---|---|---|---|
| all | boolean | – | Include hidden + aria-hidden elements. |
| pane | string | – | – |
| query | string | – | Substring 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).
| Name | Type | Req | Description |
|---|---|---|---|
| index | integer | – | – |
| pane_id | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | yes | Route 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.
| Name | Type | Req | Description |
|---|---|---|---|
| kind | string | yes | – |
| pane | string | yes | – |
| 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.
| Name | Type | Req | Description |
|---|---|---|---|
| pane | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| combo | string | yes | – |
| pane | string | – | – |
| ref | string | – | – |
| selector | string | – | – |
No output schema declared.
No examples provided.
iyke_kv_delete ~34
Delete a KV entry. Idempotent.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | – |
| scope | string | – | – |
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).
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | – |
| scope | string | – | – |
No output schema declared.
No examples provided.
iyke_kv_list ~42
List KV entries in a scope. `prefix` filter narrows by key prefix.
| Name | Type | Req | Description |
|---|---|---|---|
| prefix | string | – | – |
| scope | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | – |
| scope | string | – | – |
| value | – | yes | – |
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").
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| holder | string | yes | – |
| resource | string | yes | – |
| scope | string | – | – |
| ttl_ms | integer | – | – |
| wait_ms | integer | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| holder | string | yes | – |
| resource | string | yes | – |
| scope | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| holder | string | yes | – |
| resource | string | yes | – |
| scope | string | – | – |
| ttl_ms | integer | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| resource | string | yes | – |
| scope | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| level | string | – | – |
| since | integer | – | Only entries with ts >= this (epoch ms). |
| source | string | – | Filter 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.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| pkg_id | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| mode | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| since | integer | – | – |
| source | string | – | – |
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`.
| Name | Type | Req | Description |
|---|---|---|---|
| cmd | string | – | For terminal kind. Omit for default login shell. |
| density | string | – | For artifact-studio kind. Defaults: folder path → 'grid'; file path → 'loupe'. Required with `vs` for compare. |
| kind | string | yes | – |
| name | string | – | For mini-app kind. |
| path | string | – | For route, artifact, artifact-studio, or artifact-grid kinds. For artifact-studio: a folder for grid density, a file for loupe / compare. |
| session_id | string | – | For chat kind. |
| vs | string | – | For 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).
| Name | Type | Req | Description |
|---|---|---|---|
| actionId | string | yes | The action id, e.g. "<pkgId>/<verb>". |
| batchId | string | yes | A unique id for this pause batch. |
| drafts | array | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Pin 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| pkg_id | string | yes | – |
| scope | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| include_other_projects | boolean | – | – |
| kind | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| pkg_id | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| pkg_id | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | – |
| pkg_id | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Slug 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).
| Name | Type | Req | Description |
|---|---|---|---|
| color | string | – | Hex color like #4f8cff for the activity-bar dot. |
| description | string | – | – |
| display_name | string | yes | Human-readable name, up to 120 chars. |
| icon | string | – | Emoji or filename inside ~/.local/share/ikenga/projects/<id>/. |
| id | string | yes | Slug: ^[a-z0-9][a-z0-9_-]{0,63}$. Unique. "default" is reserved. |
| root_path | string | – | Absolute 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).
| Name | Type | Req | Description |
|---|---|---|---|
| include_archived | boolean | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Slug of an existing, non-archived project. |
No output schema declared.
No examples provided.
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.