SkillAgentSearch skills...

GenicUI

The protocol that lets AI agents use your UI.

Install / Use

claude mcp add vaah-ai -- npx -y github:vaah-ai/GenicUI

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

70/100

Supported Platforms

Claude Code
Claude Desktop

Our assessment of GenicUI

GenicUI scores 70/100 on our quality scale, 3832nd of 4,662 Development & Engineering skills we index.

Its MCP Server is 5.7 KB long, well organised into 11 sections with 2 code examples: a solid amount of guidance for an agent.

It has 3 GitHub stars, so there is little community track record yet; judge it on its content.

Substance
26/30
Structure
18/20
Description
8/15
Adoption
3/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated 44 days ago, so GenicUI is actively maintained.
  • No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
  • Its trust signals score 75/100, with 3 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

Safety scan

No issues found

Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.

AI review by kimi-k2.7-code on 2026-11-01. Automated pattern scan on 2026-11-01. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.

GenicUI compared with similar skills

All 4 of these similar skills score higher than GenicUI; compare them before choosing.

SkillScoreStarsUpdatedFormat
GenicUI (this skill)by vaah-ai70344d agoMCP Server
Agent-Reachby Panniantong100107.3k7d agoCLAUDE.md
taste-skillby Leonxlnx100107.1k1d agoCLAUDE.md
headroomby headroomlabs-ai10078.5k1d agoCLAUDE.md
ai-job-searchby ai-job-search-dev10068.5ktodayCLAUDE.md

Frequently asked questions

How do I install GenicUI?
Run claude mcp add vaah-ai -- npx -y github:vaah-ai/GenicUI. The install tabs above show the steps for each supported agent.
Which AI agents does GenicUI work with?
It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
Is GenicUI safe to use?
Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It declares no license and scores 75/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is GenicUI still maintained?
The repository was last updated 44 days ago, so GenicUI is actively maintained.
<div align="right">

Live Site llms.txt

</div>

GenicUI

The protocol that lets AI agents use your UI.

MCP-native · library-agnostic · agent-agnostic.

Build interactive components for AI agents — tables, forms, dashboards — that render live in your own app, with your own component library, against any MCP-capable agent.


What GenicUI is

Plain markdown and structured JSON work for many agent surfaces. They stop working the moment your agent needs a clickable table, a form the user can fill, or a chart that re-renders on a button press — anywhere the conversation and the UI have to be the same thing.

GenicUI is the protocol layer that turns those clicks back into something the agent can hear. You wrap your existing component library with one tiny adapter, declare the component's contract in one place, and any MCP-capable agent — Claude Code, GPT, Cursor, Goose, VS Code — discovers the components and uses them through four standard tools.

Same component renders in the chat, on a voice call, on a dashboard, or through an MCP tool. The agent doesn't know which UI library you used. You can swap libraries without retraining the agent.


How it works — the four tools

| Tool | What it does | | --- | --- | | find_ui_component | Semantic search over your registry — intent + data shape + layout → component + props schema + alternatives. | | render_component | Mount a component with validated props; returns a componentId. Emits STATE_SNAPSHOT + component.mounted. Idempotency-key aware. | | update_component | Two modes — JSON-Patch deltas (RFC 6902) → STATE_DELTA, or full-props replace → STATE_SNAPSHOT. | | subscribe_to_events | Filter-scoped subscription to component events; unsubscribe stops the stream; unmount cleans up. |

JSON-RPC error namespace -32001..-32010 is reserved for the GenicUI surface. Fourteen AG-UI event types ride on the wire (nine base AG-UI events + five GenicUI extensions: COMPONENT_MOUNTED, COMPONENT_UPDATED, COMPONENT_UNMOUNTED, COMPONENT_EVENT, SURFACE_READY).


See it running — frame a component in ~60s

A screenshot-by-screenshot walkthrough lives at https://genicui.vaah.ai/getting-started/quick-start. The block below is the same flow as code.

# 1. From a fresh checkout
bun install
bun --filter @genicui/server start        # → http://localhost:3040

# 2. Drop into your MCP client (Claude Code, mcp-inspector, anything that speaks MCP)
#    Authorization: Bearer gnc_live_<32-char-key>  (printed by the server on boot)
// 3. From any MCP client
import { MCPClient } from "@genicui/agent-bridge";

const client = new MCPClient({ url: "http://localhost:3040/mcp", apiKey: "gnc_live_..." });
const { componentId } = await client.call("render_component", {
  name: "data-table",
  props: {
    columns: [{ key: "name", label: "Name" }, { key: "status", label: "Status" }],
    rows: [{ name: "Alice", status: "active" }, { name: "Bob", status: "inactive" }]
  }
});
// → <genic-data-table> mounts in whatever chat surface you're using
// → component.mounted + STATE_SNAPSHOT stream back as AG-UI frames

Why GenicUI — and what's different

The empty quadrant — every other AI/UI tool picks two of three and gives up the third. GenicUI takes all three:

| | GenicUI | Tambo / CopilotKit / assistant-ui | OpenAI Apps SDK | MCP Apps | | --- | :-: | :-: | :-: | :-: | | Library-agnostic | ✅ | ❌ React-only | — | ❌ iframe-locked | | MCP-native | ✅ | — | — | ✅ | | Agent-agnostic | ✅ | ✅ | ❌ OpenAI-only | ✅ | | No iframe between agent and your DOM | ✅ | ✅ | — | ❌ postMessage | | Works on Claude Desktop / Goose / VS Code today | ✅ | partial | ❌ | ✅ | | Same protocol feeds chat + voice + dashboard | ✅ | ❌ one journey | ❌ | ❌ | | Schema-as-source-of-truth (TypeBox → MCP → agent prompt) | ✅ | partial | ❌ | ❌ |

Full side-by-side with json-render / LiveKit Agents UI / Vercel AI SDK at genicui.vaah.ai/guides/migration.


Five flows this unblocks

  1. Ecommerce — agent renders a <CartViewer> with <TicketCard> rows; user clicks "Apply SUMMER25"; the click becomes a componentEvent the agent can hear.
  2. Customer support — agent renders a <KpiDashboard> with weekly revenue; user clicks a row drilldown; agent updates with <ClaimForm> pre-filled.
  3. Internal ops — voice call dispatches a <CityPicker>; agent pre-fills based on intent; user confirms; <WeatherCard> updates via update_component JSON-Patch.
  4. Migration — drop a GenicUI registry into an existing MCP Apps / OpenAI Apps SDK / CopilotKit surface; the contract stays the same, only the renderer changes.
  5. Multi-channel — same MCP server, same registry, three render targets (chat / voice / dashboard) — same component renders in all three with no per-channel code.

For AI agents

Full content available as plain markdown at:

If you're an AI coding assistant reading this repo, the agent-bridge section of the docs is the highest-signal starting point: genicui.vaah.ai/api/agent-bridge.


License

Apache-2.0 — see LICENSE. Patent grants, attribution requirements, and trademark reservations are documented in NOTICE.

Related Skills

View on GitHub
GitHub Stars3
CategoryDevelopment
Updated1mo ago
Forks0

Languages

TypeScript

Trust signals

75/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 medium2 low