← Back to search

@ggui-ai/mcp-server-core

GitHub Actions Scanned 4d ago

UI generation harness for ggui — the LLM system prompt, multi-turn coding loop, and evaluation engine that turn a DataContract into a React component. Implements the UiGenerator contract from @ggui-ai/mcp-server-core; consumed by @ggui-ai/mcp-server.

npm
D
53.8 / 100

Versions

0.5.0-rc.2latest
Jul 30, 2026
0.5.0-rc.1
Jul 30, 2026
0.5.0-rc.0
Jul 29, 2026
0.4.0-rc.0
Jul 27, 2026
0.3.0-rc.0
Jun 28, 2026
+ show 5 moreshow less
0.2.0-alpha.4
May 30, 2026
0.2.0-alpha.3
May 29, 2026
0.2.0-alpha.1
May 29, 2026
0.1.0-rc.3
May 24, 2026
0.1.0-rc.1
May 24, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 41

tasks_list
annotations: none low

List tasks with optional filter (status, assignee, priority, due-date window), sort, and cursor-based pagination.

tasks_get
annotations: none low

Retrieve a single task by id. Returns `{ item: null }` when no task with that id exists.

tasks_create
annotations: none low

Create a new task. `status` defaults to `todo`, `priority` to `medium`. The new item is returned in full.

tasks_update
annotations: none low

Patch a task's fields. Pass `null` in `assigneeId` / `dueDate` / `linkedNoteId` to clear. Status transitions may also flow here OR through `tasks_complete`. Returns `{ item: null }` when no task with that id exists.

tasks_delete
annotations: none low

Delete a task by id. Idempotent: `deleted: false` when no task with that id existed.

tasks_search
annotations: none low

Case-insensitive substring search over task titles, with optional filter composition. Returns matched items up to `limit` plus `totalMatches` (unbounded count).

tasks_complete
annotations: none low

Mark a task as done. Distinct from a generic `tasks_update({status:"done"})` so the blueprint negotiator can tell "edit task" apart from "mark done". Returns `{ item: null }` when no task with that id exists.

contacts_list
annotations: none low

List contacts with optional filter (tags, favorite, company, hasEmail/hasPhone), sort, and cursor-based pagination.

contacts_get
annotations: none low

Retrieve a single contact by id. Returns `{ item: null }` when no contact with that id exists.

contacts_create
annotations: none low

Create a new contact. Only `displayName` is required; structured `givenName`/`familyName` are optional. `tags`/`linkedTaskIds`/`linkedNoteIds` default to `[]`, `favorite` to false. The new item is returned in full.

contacts_update
annotations: none low

Patch a contact's fields. Pass `null` in any nullable scalar to clear. `tags`/`linkedTaskIds`/`linkedNoteIds` replace the whole array — use `contacts_link` to add/remove a single linked id. Returns `{ item: null }` when no contact with that id exists.

contacts_delete
annotations: none low

Delete a contact by id. Idempotent: `deleted: false` when no contact with that id existed.

contacts_search
annotations: none low

Case-insensitive substring search over displayName OR email OR company, with optional filter composition. Returns matched items up to `limit` plus `totalMatches` (unbounded count).

contacts_link
annotations: none low

Add or remove a single id on the contact's `linkedTaskIds[]` (kind='task') or `linkedNoteIds[]` (kind='note'). Idempotent. Distinct from `contacts_update({linkedTaskIds:[...]})` so the blueprint negotiator can distinguish link operations from contact-record edits. Returns `{ item: null }` when no contact with that id exists.

notes_list
annotations: none low

List notes with optional filter (tags, pinned, aboutContactId, updatedAt window), sort, and cursor-based pagination.

notes_get
annotations: none low

Retrieve a single note by id. Returns `{ item: null }` when no note with that id exists.

notes_create
annotations: none low

Create a new note. `body` defaults to empty, `tags` to `[]`, `pinned` to false. The new item is returned in full.

notes_update
annotations: none low

Patch a note's fields. Pass `null` in `aboutContactId` to clear. `tags` / `linkedTaskIds` replace the whole array. Body edits are a FULL replace; use `notes_append` to add without losing existing content. Returns `{ item: null }` when no note with that id exists.

notes_delete
annotations: none low

Delete a note by id. Idempotent: `deleted: false` when no note with that id existed.

notes_search
annotations: none low

Case-insensitive substring search over note titles AND bodies, with optional filter composition. Returns matched items up to `limit` plus `totalMatches` (unbounded count).

notes_append
annotations: none low

Append markdown to a note's body (separated by a blank line). Distinct from `notes_update({body:…})` so the blueprint negotiator can tell 'edit note' apart from 'add to existing note'. Returns `{ item: null }` when no note with that id exists.

whoami
annotations: verified low

Returns the resolved session identity (role + table, if any). Handy for confirming which persona this MCP connection is acting as.

readOnlyHint true openWorldHint false
get_order_queue
annotations: verified low

List orders for the kitchen board. Defaults to active tickets (submitted, cooking, ready); pass a status to filter. Returns orders with lines + subtotal. Use as the data source to render a status-column board.

station string
readOnlyHint true openWorldHint false idempotentHint true
update_order_status
annotations: mismatch low

Move an order along its lifecycle (submitted → cooking → ready → served). Returns the updated order. Use void_order to cancel — this tool cannot set draft or voided.

status enum orderId string
readOnlyHint true openWorldHint false idempotentHint true
set_menu_availability
annotations: mismatch low

Mark a menu item available or "86\'d" (unavailable). Returns the updated item. Use to take an item off the menu when it runs out.

itemId string available boolean
readOnlyHint true openWorldHint false idempotentHint true
get_sales_summary
annotations: mismatch low

Return revenue (cents), order count, and top-selling items for a period (today, week, or all). Use as the data source to render a sales dashboard chart.

readOnlyHint true openWorldHint false idempotentHint true destructiveHint true
list_tables
annotations: mismatch low

List dining tables with status (empty, seated, needs_assistance) and current order id. Use as the data source to render a floor map. Pass a status to filter (e.g. needs_assistance).

readOnlyHint true openWorldHint false idempotentHint true destructiveHint true
respond_to_call
annotations: verified low

Clear a table\'s assistance flag (needs_assistance → seated). Returns the updated table. Use after staff has attended to a table that called for help.

tableId string
openWorldHint false idempotentHint true destructiveHint true
void_order
annotations: verified low

Void (cancel) an order with a required reason. This is irreversible — the order is frozen. Returns the voided order.

reason string orderId string
openWorldHint false destructiveHint true
browse_menu
annotations: verified low

List orderable menu items, optionally filtered by free-text query or category. Each item includes price (cents), tags, modifier option groups, and an absolute photoUrl. Use as the data source to render a menu of cards.

query string
readOnlyHint true openWorldHint false
get_item_details
annotations: verified low

Fetch one menu item by id, including its modifier option groups (size, spice, extras) so the agent can render a modifier form.

itemId string
readOnlyHint true openWorldHint false idempotentHint true
add_to_order
annotations: mismatch low

Add an item (with optional chosen modifiers) to this table\'s order, creating a draft order if none exists. Returns the updated order with line totals + subtotal (cents). Use after the diner confirms an add-to-order action.

qty number itemId string options array
readOnlyHint true openWorldHint false idempotentHint true
update_order_item
annotations: mismatch low

Change the quantity and/or modifiers of an existing draft order line. Returns the updated order. Only a draft (not-yet-submitted) order can be edited.

qty number lineId string options array
readOnlyHint true openWorldHint false idempotentHint true
remove_order_item
annotations: mismatch low

Remove a line from this table\'s draft order. Returns the updated order.

lineId string
readOnlyHint true openWorldHint false idempotentHint true
view_order
annotations: verified low

Return this table\'s current order (draft or in-progress), with lines + subtotal, or null if there is none yet.

readOnlyHint true openWorldHint false
submit_order
annotations: verified low

Submit this table\'s draft order to the kitchen (draft → submitted, stamps placedAt). Returns the submitted order. Use when the diner confirms they are done ordering.

openWorldHint false
request_assistance
annotations: verified low

Flag this table as needing a server\'s attention (optionally with a reason). Returns the table with its updated status.

reason string
openWorldHint false
todo_list
annotations: none low

Returns every todo in the current list. Empty list returns an empty array. Use as the data source when an agent wants to render a todo UI.

todo_add
annotations: none low

Append a new todo with the given text. Returns the created row including its server-assigned id + createdAt. Use after the user submits an add-todo form.

todo_toggle
annotations: none low

Flip a todo\'s `done` boolean by id. Returns the updated row, or `{ todo: null }` if no todo matches. Use after the user clicks a checkbox.

id string
todo_delete
annotations: none low

Remove a todo by id. Returns `{ deleted: true }` on success, `{ deleted: false }` if no todo matches. Use after the user clicks a delete affordance.

id string

Permissions 4

network medium
Server uses network capabilities via: fetch(), http, net, ws
filesystem low
Server uses filesystem capabilities via: fs, fs sync ops, fs/promises, open(), path, pathlib
shell high
Server uses shell capabilities via: child_process, execSync(), spawn(), spawnSync()
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 151

info
Tool 'get_order_queue' annotations are consistent annotation_checker · 80%
low
Tool 'tasks_list' has no annotations annotation_checker · 100%
low
Tool 'tasks_get' has no annotations annotation_checker · 100%
low
Tool 'tasks_create' has no annotations annotation_checker · 100%
low
Tool 'tasks_update' has no annotations annotation_checker · 100%
low
Tool 'tasks_delete' has no annotations annotation_checker · 100%
low
Tool 'tasks_search' has no annotations annotation_checker · 100%
low
Tool 'tasks_complete' has no annotations annotation_checker · 100%
low
Tool 'contacts_list' has no annotations annotation_checker · 100%
low
Tool 'contacts_get' has no annotations annotation_checker · 100%
low
Tool 'contacts_create' has no annotations annotation_checker · 100%
low
Tool 'contacts_update' has no annotations annotation_checker · 100%
low
Tool 'contacts_delete' has no annotations annotation_checker · 100%
low
Tool 'contacts_search' has no annotations annotation_checker · 100%
low
Tool 'contacts_link' has no annotations annotation_checker · 100%
low
Tool 'notes_list' has no annotations annotation_checker · 100%
low
Tool 'notes_get' has no annotations annotation_checker · 100%
low
Tool 'notes_create' has no annotations annotation_checker · 100%
low
Tool 'notes_update' has no annotations annotation_checker · 100%
low
Tool 'notes_delete' has no annotations annotation_checker · 100%
low
Tool 'notes_search' has no annotations annotation_checker · 100%
low
Tool 'notes_append' has no annotations annotation_checker · 100%
info
Tool 'whoami' annotations are consistent annotation_checker · 80%
medium
Tool 'update_order_status' claims readOnly but name implies write operation annotation_checker · 80%
medium
Tool 'set_menu_availability' claims readOnly but name implies write operation annotation_checker · 80%
medium
Tool 'get_sales_summary' claims destructive but name implies read-only operation annotation_checker · 80%
medium
Tool 'list_tables' claims destructive but name implies read-only operation annotation_checker · 80%
info
Tool 'respond_to_call' annotations are consistent annotation_checker · 80%
info
Tool 'void_order' annotations are consistent annotation_checker · 80%
info
Tool 'browse_menu' annotations are consistent annotation_checker · 80%
info
Tool 'get_item_details' annotations are consistent annotation_checker · 80%
medium
Tool 'add_to_order' claims readOnly but name implies write operation annotation_checker · 80%
medium
Tool 'update_order_item' claims readOnly but name implies write operation annotation_checker · 80%
high
Tool 'remove_order_item' claims readOnly but name implies destructive operation annotation_checker · 80%
info
Tool 'view_order' annotations are consistent annotation_checker · 80%
info
Tool 'submit_order' annotations are consistent annotation_checker · 80%
info
Tool 'request_assistance' annotations are consistent annotation_checker · 80%
low
Tool 'todo_list' has no annotations annotation_checker · 100%
low
Tool 'todo_add' has no annotations annotation_checker · 100%
low
Tool 'todo_toggle' has no annotations annotation_checker · 100%
low
Tool 'todo_delete' has no annotations annotation_checker · 100%
high
Hardcoded OAuth client secret in ggui-ai-ggui-8547d03/packages/mcp-server/src/oauth-providers-store.test.ts auth_checker · 95%
high
Hardcoded OAuth client secret in ggui-ai-ggui-8547d03/packages/mcp-server/src/admin-oauth-providers-transport.test.ts auth_checker · 95%
high
Hardcoded OAuth client secret in ggui-ai-ggui-8547d03/packages/mcp-server/src/oauth-providers/github.test.ts auth_checker · 95%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Excessive dependency count: 220 direct dependencies dependency_analyzer · 90%
medium
Suspicious package name: react-dom dependency_analyzer · 60%
medium
Suspicious package name: react-native dependency_analyzer · 60%
medium
Vulnerable dependency: ws@8.20.1 (GHSA-96hv-2xvq-fx4p) dependency_analyzer · 95%
medium
Vulnerable dependency: @modelcontextprotocol/sdk@1.21.0 (GHSA-345p-7cg4-v4c7) dependency_analyzer · 95%
medium
Vulnerable dependency: @modelcontextprotocol/sdk@1.21.0 (GHSA-8r9q-7v3j-jr4g) dependency_analyzer · 95%
medium
Vulnerable dependency: @modelcontextprotocol/sdk@1.21.0 (GHSA-w48q-cv73-mx4w) dependency_analyzer · 95%
medium
Vulnerable dependency: ajv@8.17.1 (GHSA-2g4f-4pwh-qvx6) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-26pp-8wgv-hjvm) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-2gcr-mfcq-wcc3) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-3hrh-pfw6-9m5x) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-458j-xx4x-4375) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-54fx-42gc-7vw4) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-69xw-7hcm-h432) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-79qm-7rj5-m7r9) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-88fw-hqm2-52qc) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-8j4g-w8fx-2239) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-9vqf-7f2p-gf9v) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-f23p-vx2j-j53r) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-f577-qrjj-4474) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-hm8q-7f3q-5f36) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-hvrm-45r6-mjfj) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-j6c9-x7qj-28xf) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-p77w-8qqv-26rm) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-qp7p-654g-cw7p) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-r5rp-j6wh-rvv4) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-rv63-4mwf-qqc2) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-w62v-xxxg-mg59) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-wgpf-jwqj-8h8p) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-wmmm-f939-6g9c) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-wwfh-h76j-fc44) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-xf4j-xp2r-rqqx) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-xgm2-5f3f-mvvc) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-xpcf-pg52-r92g) dependency_analyzer · 95%
medium
Vulnerable dependency: hono@4.12.8 (GHSA-xrhx-7g5j-rcj5) dependency_analyzer · 95%
medium
Vulnerable dependency: tsup@8.0.0 (GHSA-3mv9-4h5g-vhg3) dependency_analyzer · 95%
medium
Vulnerable dependency: storybook@8.4.0 (GHSA-8452-54wp-rmv6) dependency_analyzer · 95%
medium
Vulnerable dependency: storybook@8.4.0 (GHSA-mjf5-7g4m-gx5w) dependency_analyzer · 95%
medium
Vulnerable dependency: sigstore@4.0.0 (GHSA-52v5-jr5w-gjxr) dependency_analyzer · 95%
info
Tool: contacts_search manifest_parser · 85%
medium
Buffer.from base64 in ggui-ai-ggui-8547d03/e2e/wire-scenarios/tests/21-marketplace-gadget-lifecycle.spec.ts:320 entropy_analyzer · 75%
medium
Buffer.from base64 in ggui-ai-ggui-8547d03/e2e/wire-scenarios/tests/22-marketplace-blueprint-lifecycle.spec.ts:242 entropy_analyzer · 75%
medium
Buffer.from base64 in ggui-ai-ggui-8547d03/packages/registry-server/src/server.integration.test.ts:760 entropy_analyzer · 75%
medium
Buffer.from base64 in ggui-ai-ggui-8547d03/packages/registry-core/src/ops/publish.sigstore.integration.test.ts:127 entropy_analyzer · 75%
medium
Buffer.from base64 in ggui-ai-ggui-8547d03/packages/registry-core/src/ops/compile.test.ts:35 entropy_analyzer · 75%
medium
Buffer.from base64 in ggui-ai-ggui-8547d03/packages/registry-core/src/ops/compile.test.ts:82 entropy_analyzer · 75%
medium
Buffer.from base64 in ggui-ai-ggui-8547d03/packages/registry-core/src/ops/compile.test.ts:94 entropy_analyzer · 75%
medium
Buffer.from base64 in ggui-ai-ggui-8547d03/packages/registry-core/src/ops/publish.test.ts:693 entropy_analyzer · 75%
medium
Hex string literal (>50 chars) in ggui-ai-ggui-8547d03/packages/registry-core/src/testing/registry-storage-contract.ts:146 entropy_analyzer · 70%
medium
Buffer.from base64 in ggui-ai-ggui-8547d03/packages/registry-core/src/utils/base64.ts:21 entropy_analyzer · 75%
medium
High-entropy string (5.95 bits/char) in ggui-ai-ggui-8547d03/packages/agent-server/src/chat-store.ts:22 entropy_analyzer · 54%
medium
High-entropy string (5.95 bits/char) in ggui-ai-ggui-8547d03/packages/agent-server/src/auth.ts:142 entropy_analyzer · 54%
medium
Buffer.from base64 in ggui-ai-ggui-8547d03/packages/mcp-server-core/src/ws-tokens.ts:138 entropy_analyzer · 75%
medium
Buffer.from base64 in ggui-ai-ggui-8547d03/packages/ggui-cli/src/internal/artifact-publish.test.ts:1096 entropy_analyzer · 75%
medium
Buffer.from base64 in ggui-ai-ggui-8547d03/packages/gadget-signing/src/index.test.ts:443 entropy_analyzer · 75%
medium
Buffer.from base64 in ggui-ai-ggui-8547d03/packages/gadget-signing/src/index.ts:908 entropy_analyzer · 75%
info
package.json metadata manifest_parser · 100%
info
Tool: tasks_list manifest_parser · 85%
info
Tool: tasks_get manifest_parser · 85%
info
Tool: tasks_create manifest_parser · 85%
info
Tool: tasks_update manifest_parser · 85%
info
Tool: tasks_delete manifest_parser · 85%
info
Tool: tasks_search manifest_parser · 85%
info
Tool: tasks_complete manifest_parser · 85%
info
Tool: contacts_list manifest_parser · 85%
info
Tool: contacts_get manifest_parser · 85%
info
Tool: contacts_create manifest_parser · 85%
info
Tool: contacts_update manifest_parser · 85%
info
Tool: contacts_delete manifest_parser · 85%
info
Tool: contacts_link manifest_parser · 85%
info
Tool: notes_list manifest_parser · 85%
info
Tool: notes_get manifest_parser · 85%
info
Tool: notes_create manifest_parser · 85%
info
Tool: notes_update manifest_parser · 85%
info
Tool: notes_delete manifest_parser · 85%
info
Tool: notes_search manifest_parser · 85%
info
Tool: notes_append manifest_parser · 85%
info
Tool: whoami manifest_parser · 85%
info
Tool: get_order_queue manifest_parser · 85%
info
Tool: update_order_status manifest_parser · 85%
info
Tool: set_menu_availability manifest_parser · 85%
info
Tool: get_sales_summary manifest_parser · 85%
info
Tool: list_tables manifest_parser · 85%
info
Tool: respond_to_call manifest_parser · 85%
info
Tool: void_order manifest_parser · 85%
info
Tool: browse_menu manifest_parser · 85%
info
Tool: get_item_details manifest_parser · 85%
info
Tool: add_to_order manifest_parser · 85%
info
Tool: update_order_item manifest_parser · 85%
info
Tool: remove_order_item manifest_parser · 85%
info
Tool: view_order manifest_parser · 85%
info
Tool: submit_order manifest_parser · 85%
info
Tool: request_assistance manifest_parser · 85%
info
Tool: todo_list manifest_parser · 85%
info
Tool: todo_add manifest_parser · 85%
info
Tool: todo_toggle manifest_parser · 85%
info
Tool: todo_delete manifest_parser · 85%
info
Transport: streamable-http manifest_parser · 80%
info
Required env vars (97) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 90%
low
Permission: filesystem access detected permission_analyzer · 90%
high
Permission: shell access detected permission_analyzer · 95%
low
Permission: env_vars access detected permission_analyzer · 90%
info
SBOM generated: 407 components sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%