Connect approved App-scoped tools
An Agent Skill is a reviewed step-by-step playbook that helps an AI client use only the approved tools for one App. Review what each integration can do before connecting it to an App. The installer below verifies the downloaded package before it runs and initially connects with no credentials. You can inspect the 15 available tool descriptions, but real App actions stay blocked because this client cannot yet ask for approval separately for every write, paid action, or external send. Never add a management key.
set -euo pipefail
ARCHIVE="$(mktemp)"
STAGE="$(mktemp -d)"
TARGET="$HOME/.local/share/intelliverse-router-mcp/2980c8a0f3d37589a734e1483db0fdf05ed392df"
trap 'rm -f "$ARCHIVE"; rm -R "$STAGE" 2>/dev/null || true' EXIT
curl -fsSL "https://github.com/intelli-verse-x/router-mcp/archive/2980c8a0f3d37589a734e1483db0fdf05ed392df.tar.gz" -o "$ARCHIVE"
ACTUAL="$(node -e 'const fs=require("fs"),c=require("crypto");process.stdout.write(c.createHash("sha256").update(fs.readFileSync(process.argv[1])).digest("hex"))' "$ARCHIVE")"
test "$ACTUAL" = "206080f65e3ff0c4145b3eff4ad86860828e8e33f3830ea48cc073d90c55156a"
mkdir -p "$STAGE/package" "$(dirname "$TARGET")"
tar -xzf "$ARCHIVE" -C "$STAGE/package" --strip-components=1
test -f "$STAGE/package/package-lock.json" && test -f "$STAGE/package/dist/index.js"
(cd "$STAGE/package" && npm ci --omit=dev --ignore-scripts)
DIST_SHA="$(node -e 'const fs=require("fs"),c=require("crypto");process.stdout.write(c.createHash("sha256").update(fs.readFileSync(process.argv[1])).digest("hex"))' "$STAGE/package/dist/index.js")"
LOCK_SHA="$(node -e 'const fs=require("fs"),c=require("crypto");process.stdout.write(c.createHash("sha256").update(fs.readFileSync(process.argv[1])).digest("hex"))' "$STAGE/package/package-lock.json")"
test "$DIST_SHA" = "b7e7f6c51a7c94a20aed48c7a482068b1b53f79e0805b913b3ffc9c1b4c5b68b" && test "$LOCK_SHA" = "f9757316602842ffb2ee22fb71135fdc823753a017dd7a2305c0d457c8be0f3d"
NODE_BIN="$(command -v node)"
printf '#!/bin/sh\nexec env -i HOME="$HOME" PATH="/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin" ROUTER_API_KEY="${ROUTER_API_KEY:-}" ROUTER_WORKSPACE_ID="${ROUTER_WORKSPACE_ID:-}" "%s" "%s"\n' "$NODE_BIN" "$TARGET/dist/index.js" > "$STAGE/package/run-isolated.sh"
chmod 700 "$STAGE/package/run-isolated.sh"
printf '%s\n' "206080f65e3ff0c4145b3eff4ad86860828e8e33f3830ea48cc073d90c55156a" > "$STAGE/package/.archive-sha256"
if test -e "$TARGET"; then
EXISTING_DIST="$(node -e 'const fs=require("fs"),c=require("crypto");process.stdout.write(c.createHash("sha256").update(fs.readFileSync(process.argv[1])).digest("hex"))' "$TARGET/dist/index.js")"
EXISTING_LOCK="$(node -e 'const fs=require("fs"),c=require("crypto");process.stdout.write(c.createHash("sha256").update(fs.readFileSync(process.argv[1])).digest("hex"))' "$TARGET/package-lock.json")"
EXISTING_ARCHIVE="$(tr -d '\r\n' < "$TARGET/.archive-sha256")"
test "$EXISTING_DIST" = "b7e7f6c51a7c94a20aed48c7a482068b1b53f79e0805b913b3ffc9c1b4c5b68b" && test "$EXISTING_LOCK" = "f9757316602842ffb2ee22fb71135fdc823753a017dd7a2305c0d457c8be0f3d" && test "$EXISTING_ARCHIVE" = "206080f65e3ff0c4145b3eff4ad86860828e8e33f3830ea48cc073d90c55156a" && cmp -s "$STAGE/package/run-isolated.sh" "$TARGET/run-isolated.sh" || { echo "Existing target failed artifact or launcher integrity check" >&2; exit 1; }
(cd "$TARGET" && npm ci --omit=dev --ignore-scripts)
test "$(node -e 'const fs=require("fs"),c=require("crypto");process.stdout.write(c.createHash("sha256").update(fs.readFileSync(process.argv[1])).digest("hex"))' "$TARGET/dist/index.js")" = "b7e7f6c51a7c94a20aed48c7a482068b1b53f79e0805b913b3ffc9c1b4c5b68b"
test "$(node -e 'const fs=require("fs"),c=require("crypto");process.stdout.write(c.createHash("sha256").update(fs.readFileSync(process.argv[1])).digest("hex"))' "$TARGET/package-lock.json")" = "f9757316602842ffb2ee22fb71135fdc823753a017dd7a2305c0d457c8be0f3d"
cmp -s "$STAGE/package/run-isolated.sh" "$TARGET/run-isolated.sh"
else
mv "$STAGE/package" "$TARGET"
fi
# Replace /ABSOLUTE/PATH in the client config with your home-directory path.The skills
Each listed skill is a reviewed playbook with an explicit live, setup-required, or unsupported status. Source availability and runtime readiness are separate.
Inspect the reviewed router-mcp sources under skills/ →
Platform wiring
setup requiredConnect an approved coding agent to apps, keys, KB, media, and credits.
skills/intelliverse-router/SKILL.md
Web and mobile app builder
setup requiredScaffold a web or mobile client against the approved Router API contract.
skills/nl-app-builder/SKILL.md
Platform Memory
setup requiredAdd consent-aware app and end-user memory with correction and deletion paths.
skills/platform-memory/SKILL.md
Conversational avatar
setup requiredAdd a real-time voice avatar with App-ID room scope and explicit credit holds.
skills/conversational-avatar/SKILL.md
Voice agents through Router
setup requiredOperate per-App voice agents through typed Router routes, never raw Fonoster credentials.
skills/fonoster-voice-router/SKILL.md
Channel engagement
setup requiredConnect app-scoped SMS, WhatsApp, email, Telegram, Chatwoot, Siri, social, or web channels.
skills/channel-engagement/SKILL.md
Siri intents
setup requiredExpose an App ID through an Apple Shortcut today and native App Intents in an iOS app.
skills/siri-intents/SKILL.md
End-user wallets
setup requiredAdd app-scoped balances, holds, settlement, and an immutable ledger for your customers.
skills/app-wallets/SKILL.md
Managed game backend
setup requiredPlan App-ID-scoped leaderboards, rewards, inventory, and live-ops without raw Nakama access.
skills/game-backend/SKILL.md
Game backend scaffold
setup requiredGenerate honest Nakama module stubs and documented client wiring.
skills/scaffold-game/SKILL.md
Desktop app scaffold
setup requiredPrepare Electron or Tauri shells for macOS, Windows, and Linux.
skills/deploy-desktop/SKILL.md
Communications suite
setup requiredPlan voice, numbers, SMS, WhatsApp, newsletters, and push with compliance gates.
skills/comms/SKILL.md
…and the deep dives
Example prompts, honest-scope tables, and the pairing with each API live in the docs.
Agent Skills docs →Install on your platform
Every template starts the same isolated local program with blank credentials. After setup, confirm that your client can display the tool list. Leave credentials blank: these templates are for reviewing capabilities, not activating App actions.
Then copy your client template and replace the absolute path. Keep its credential field blank.
Cursor
Template · run local canary{
"mcpServers": {
"intelliverse-router": {
"command": "/ABSOLUTE/PATH/.local/share/intelliverse-router-mcp/2980c8a0f3d37589a734e1483db0fdf05ed392df/run-isolated.sh",
"args": [],
"env": {
"ROUTER_API_KEY": "",
"ROUTER_WORKSPACE_ID": "your-workspace-uuid"
}
}
}
}Open Dashboard → Apps → your App → Features & tools → Integrate with Agent Skills.
Choose one reviewed playbook, check its digest, permissions, data, cost, status, and rollback.
The dashboard never bulk-installs SKILL.md files or copies operator playbooks.Claude Desktop
Template · run local canary{
"mcpServers": {
"intelliverse-router": {
"command": "/ABSOLUTE/PATH/.local/share/intelliverse-router-mcp/2980c8a0f3d37589a734e1483db0fdf05ed392df/run-isolated.sh",
"args": [],
"env": {
"ROUTER_API_KEY": "",
"ROUTER_WORKSPACE_ID": "your-workspace-uuid"
}
}
}
}Claude Code
Template · run local canaryclaude mcp add intelliverse-router \
--env ROUTER_API_KEY= \
--env ROUTER_WORKSPACE_ID=your-workspace-uuid \
-- /ABSOLUTE/PATH/.local/share/intelliverse-router-mcp/2980c8a0f3d37589a734e1483db0fdf05ed392df/run-isolated.shOpen the per-App “Integrate with Agent Skills” catalog before installing a playbook.
Only copy a named customer skill after its source digest and permissions match.
Operator skills are intentionally unavailable to App users.VS Code (GitHub Copilot)
Template · run local canarySame verified local Node entrypoint as Cursor; VS Code wraps it in its own schema.
{
"servers": {
"intelliverse-router": {
"type": "stdio",
"command": "/ABSOLUTE/PATH/.local/share/intelliverse-router-mcp/2980c8a0f3d37589a734e1483db0fdf05ed392df/run-isolated.sh",
"args": [],
"env": {
"ROUTER_API_KEY": "",
"ROUTER_WORKSPACE_ID": "your-workspace-uuid"
}
}
}
}Windsurf
Template · run local canarySame verified local Node entrypoint as Cursor.
{
"mcpServers": {
"intelliverse-router": {
"command": "/ABSOLUTE/PATH/.local/share/intelliverse-router-mcp/2980c8a0f3d37589a734e1483db0fdf05ed392df/run-isolated.sh",
"args": [],
"env": {
"ROUTER_API_KEY": "",
"ROUTER_WORKSPACE_ID": "your-workspace-uuid"
}
}
}
}Cline
Template · run local canarySame verified local Node entrypoint as Cursor.
{
"mcpServers": {
"intelliverse-router": {
"command": "/ABSOLUTE/PATH/.local/share/intelliverse-router-mcp/2980c8a0f3d37589a734e1483db0fdf05ed392df/run-isolated.sh",
"args": [],
"env": {
"ROUTER_API_KEY": "",
"ROUTER_WORKSPACE_ID": "your-workspace-uuid"
}
}
}
}Continue
Template · run local canarySame verified local Node entrypoint as Cursor.
mcpServers:
- name: intelliverse-router
command: /ABSOLUTE/PATH/.local/share/intelliverse-router-mcp/2980c8a0f3d37589a734e1483db0fdf05ed392df/run-isolated.sh
args: []
env:
ROUTER_API_KEY: ""
ROUTER_WORKSPACE_ID: your-workspace-uuidOpenAI Codex CLI
Template · run local canarySame verified local Node entrypoint as Cursor; stored in ~/.codex/config.toml.
codex mcp add intelliverse-router \
--env ROUTER_API_KEY= \
--env ROUTER_WORKSPACE_ID=your-workspace-uuid \
-- /ABSOLUTE/PATH/.local/share/intelliverse-router-mcp/2980c8a0f3d37589a734e1483db0fdf05ed392df/run-isolated.shChatGPT
Hosted endpoint on the roadmapChatGPT's developer-mode apps (Settings → Security and login → Developer mode, then chatgpt.com/plugins) connect to remoteMCP servers over HTTPS — they can't launch a local stdio process. The Intelliverse server is stdio-only today, so there's no ChatGPT path yet; a hosted streamable-HTTP endpoint is on the roadmap. In the OpenAI ecosystem, use the Codex CLI setup above — it runs stdio servers natively.
Then just say what you want
"Create an app with a knowledge base, ingest my docs,
and email my users when it's live."
# → create_app → create_api_key → kb_ingest → send_email
# App ID, key prefix, chunk counts, and send receipts come back as JSON.