Skip to main content
Glama

Neon3 AI Authoring MCP

Teach an AI to build Neon3 interfaces correctly, then let Neon3 prove the result.

License

An MCP server, detailed authoring Skill, and Python/Node starter kit for Neon3. It combines three layers:

Skill                 durable NUI Flow rules and design boundaries
MCP resources/tools   searchable references, live capability discovery, orchestration
Neon3 runtime         authoritative parser, compiler, revision, and renderer feedback

The MCP never invents a second UI language. neon3_nui_validate invokes the production neon-ui-runtime parser/compiler, while live mutations use the existing length-prefixed neon3.rpc contract.

Highlights

Area

Included

NUI Flow

V1 grammar, typed inputs, layouts, controls, events, branches, statecharts, drag/drop, world panels

AI workflow

validate, inspect, submit, snapshots, capabilities, diagnostics

Runtime safety

loopback RPC, request IDs, bounded app paths, fixed process profiles, timeouts

Application code

Python and Node templates using the official Neon3 envelope

Documentation

MCP resources plus a standalone OpenCode-compatible Skill

Related MCP server: Flowcore Platform MCP Server

Requirements

  • Node.js 20 or newer.

  • Neon3 checked out at D:\Neon3 on Windows, or NEON3_ROOT set to another checkout.

  • Build the Neon3 authoring probe once:

cd D:\Neon3
cargo build -p neon-ui-runtime --bin neon3_authoring_probe

The probe is the compatibility bridge between this MCP package and the exact Neon3 checkout. It returns structured JSONL and uses the same parser/compiler as the running UI runtime.

Install From Source

git clone https://github.com/unco999/neon3-ai-authoring-mcp.git
cd neon3-ai-authoring-mcp
npm install
npm link

The command is now available as neon3-mcp.

Install From npm

Once published:

npm install -g @neon3/ai-authoring-mcp
neon3-mcp

For a pinned local install:

npm install --save-dev @neon3/ai-authoring-mcp
npx neon3-mcp

OpenCode Configuration

Add an MCP entry to your OpenCode configuration:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "neon3": {
      "type": "local",
      "command": ["neon3-mcp"],
      "enabled": true,
      "environment": {
        "NEON3_ROOT": "D:\\Neon3",
        "NEON3_UI_ENDPOINT": "127.0.0.1:39102",
        "NEON3_WGPU_ENDPOINT": "127.0.0.1:39103",
        "NEON3_PROJECTD_ENDPOINT": "127.0.0.1:39104"
      }
    }
  }
}

Copy skill/SKILL.md into the host's skill directory, or add this repository as a skill source. The Skill is separate from the MCP server so its authoring rules remain available when Neon3 is offline.

The MCP also exposes the same material as resources:

neon3://skill
neon3://references/overview
neon3://references/grammar
neon3://references/components
neon3://references/statecharts
neon3://references/interactions
neon3://references/diagnostics

Claude Desktop / MCP Clients

{
  "mcpServers": {
    "neon3": {
      "command": "neon3-mcp",
      "env": {
        "NEON3_ROOT": "D:\\Neon3",
        "NEON3_UI_ENDPOINT": "127.0.0.1:39102"
      }
    }
  }
}

Tools

Tool

Purpose

neon3_nui_reference

Read a detailed authoritative syntax topic

neon3_nui_validate

Parse and compile without mutating Neon3

neon3_nui_inspect

Return canonical IR, schema, stable nodes, bindings, and budgets

neon3_nui_submit

Validate, then submit through ui-runtime

neon3_capabilities

Query current service capabilities and epochs

neon3_ui_snapshot

Read UI state and revision information

neon3_project_assets

Read project summary and stable AssetRef values

neon3_diagnose

Correlate service snapshots and interaction traces

neon3_app_init

Create a bounded Python or Node application

neon3_app_run

Run a fixed application profile with a timeout

neon3_app_test

Run deterministic local application checks

The Authoring Loop

reference -> capabilities -> generate NUI -> validate -> inspect -> submit -> diagnose

Example of valid, typed, semantic NUI:

version 1
surface surface.example revision 1
budget nodes=32 bindings=16 instances=16 text=16 glyphs=1024 events=8 clips=64
input title text default text:empty
input can_save bool default false
surface root column w 520 h 240 gap 8 pad 16
  text heading value $title
  button save value "Save" enabled $can_save event document.save

NUI Flow must not contain fetch, callbacks, Python code, file paths, coordinates, GPU handles, or arbitrary expressions.

Templates

templates/python-app and templates/node-app include:

  • neon3.app.json application metadata

  • ui/main.nui typed declarative UI

  • a minimal length-prefixed RPC client

  • a deterministic protocol test or syntax check

The neon3_app_init tool only writes below NEON3_APP_ROOT (or the current working directory when that variable is unset).

Validate NUI Without a Live Runtime

$source = [string]::Join("`n", (Get-Content .\templates\node-app\ui\main.nui))
$request = @{ request_id = "manual-1"; operation = "validate"; sequence = 1; source = $source } | ConvertTo-Json -Compress
$request | cargo run --quiet -p neon-ui-runtime --manifest-path D:\Neon3\Cargo.toml --bin neon3_authoring_probe

The process emits JSONL. A parser or compiler failure returns exit code 1 and includes stable diagnostics and source spans.

Start Neon3 Headless Services

Use the existing Neon3 launcher. The MCP does not silently create a second renderer:

cd D:\Neon3
scripts\run-neon-services.ps1

Then call neon3_capabilities, neon3_ui_snapshot, or neon3_nui_submit from the AI client.

Configuration

Variable

Default

Meaning

NEON3_ROOT

D:\Neon3

Neon3 checkout used to build/run the authoring probe

NEON3_AUTHORING_PROBE

auto

Absolute probe executable override

NEON3_UI_ENDPOINT

127.0.0.1:39102

UI runtime RPC endpoint

NEON3_WGPU_ENDPOINT

127.0.0.1:39103

WGPU runtime RPC endpoint

NEON3_PROJECTD_ENDPOINT

127.0.0.1:39104

Project authority RPC endpoint

NEON3_APP_ROOT

current directory

Allowed root for generated app processes

All live endpoints must be loopback endpoints. The MCP does not expose an arbitrary shell command tool.

Troubleshooting

The authoring probe cannot start

cd D:\Neon3
cargo build -p neon-ui-runtime --bin neon3_authoring_probe
$env:NEON3_ROOT = 'D:\Neon3'

revision_conflict

Call neon3_ui_snapshot, use the returned authoritative revision, and submit again. Do not blindly retry a stale mutation.

A service is unreachable

Check the endpoint in neon3_capabilities. Start Neon3 with scripts\run-neon-services.ps1 or use neon-dev for a windowed case.

Development

npm install
npm test
node --check src/index.js
npm pack --dry-run

The protocol test uses a deterministic local fake Neon3 endpoint and verifies request IDs, framing, and structured JSON output. The real NUI boundary is verified by neon3_authoring_probe in the Neon3 repository.

Project Relationship

This repository is the AI integration layer. Neon3 remains the owner of the protocol, NUI grammar, UI runtime, WGPU runtime, and project authority:

  • MCP: https://github.com/unco999/neon3-ai-authoring-mcp

  • Neon3: https://github.com/unco999/Neon3-CiJian

License

MIT. See LICENSE.

Available Tools

11 tools
neon3_app_initB

Create a bounded Python or Node Neon3 application template. Files are written only below NEON3_APP_ROOT.

ParametersJSON Schema
NameRequiredDescriptionDefault
runtimeYes
overwriteNo
destinationYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that files are written only below NEON3_APP_ROOT, which is a valuable safety boundary. However, it omits other behavioral traits such as overwrite semantics, whether it creates directories, or what happens if the destination already exists. With no annotations, this is a partial disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that immediately conveys the core action. Every word contributes: bounded, Python or Node, and the root restriction. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without annotations or output schema, the description is all an agent has. It covers the basic operation but omits critical context such as how overwrite behaves, the relationship between destination and NEON3_APP_ROOT, and what the template contains. This is insufficient for reliable invocation, especially since two parameters are required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must explain parameters. It references 'Python or Node' which maps to the runtime enum, and 'NEON3_APP_ROOT' hints at destination scope, but it doesn't clarify the destination parameter or the overwrite flag. The overwrite behavior is entirely undocumented, leaving the agent uncertain how to set it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it creates a Neon3 application template with a specific verb and resource. The 'bounded' qualifier and mention of Python/Node scope it relative to sibling tools like neon3_project_assets or neon3_app_run. Distinct enough that an agent can identify its role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to choose this tool over siblings. It does not mention alternatives or conditions, such as when to use neon3_project_assets or neon3_app_run. The only implied usage is when initializing an app, but this is not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

neon3_app_runC

Run a generated Python or Node app with a fixed executable profile and bounded timeout.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdYes
argsNo
entryNo
runtimeYes
timeout_msNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full behavioral burden. It mentions a fixed executable profile and bounded timeout, but does not disclose side effects of executing arbitrary code, timeout behavior, or any safety guarantees. This is a significant gap for a tool that runs user-provided code.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no waste, which is good for conciseness, but it omits essential information needed for correct invocation. The lack of structure or additional context makes it less useful than it could be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 5 parameters and no annotations or output schema, the description is too sparse. It does not explain what 'generated' means, what the fixed executable profile entails, how to specify code, or the meaning of the bounded timeout. An agent would need to infer most call details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description adds no parameter explanations. It does not mention cwd, args, entry, runtime, or timeout_ms semantics. The schema's enum for runtime is the only guidance, leaving the agent to guess parameter intent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool runs a generated Python or Node app with a fixed executable profile and bounded timeout. The verb 'Run' and the resource 'app' are specific, and it distinguishes itself from siblings like neon3_app_init (initialization) and neon3_app_test (testing) by focusing on the execution step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies usage for executing an app but does not explicitly contrast with alternatives like neon3_app_test or neon3_app_init. The description gives no when-to-use guidance beyond the underlying action, so an agent must infer context from the tool name and sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

neon3_app_testA

Run the generated app's deterministic local protocol checks without contacting a live Neon3 service.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdYes
runtimeYes
timeout_msNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and does add useful traits: checks are deterministic, local, and make no live Neon3 service contact. However, it does not disclose possible side effects, failure behavior, or what the tool reports back.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler or redundant phrasing. Every word contributes to the tool's core behavior, making it easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a test tool with no output schema and no annotations, the description should explain what a successful check looks like and how runtime, cwd, and timeout relate to execution. It gives good high-level context but lacks the invocation-level details an agent needs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description names none of the three parameters. The parameter names and runtime enum are self-explanatory, but the description does not clarify what cwd should point to or how timeout_ms is applied to the checks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb ('Run') and resource ('deterministic local protocol checks') and includes a distinguishing qualifier ('without contacting a live Neon3 service'). This sharply differentiates it from siblings like neon3_app_run or live-service checks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'without contacting a live Neon3 service' implies the offline/local testing context, but no alternative tools are named and no explicit when-not-to-use guidance is provided. The usage intent is inferable rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

neon3_capabilitiesC

Query service.describe from Neon3 services and return their current capabilities and epochs.

ParametersJSON Schema
NameRequiredDescriptionDefault
ui_endpointNo
wgpu_endpointNo
projectd_endpointNo

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the full burden of behavioral disclosure. 'Query' implies read-only behavior, but the description does not explicitly state that no modifications occur, nor does it explain behavior when zero, one, or multiple endpoints are supplied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single well-front-loaded sentence with no filler, putting the verb and resource first. It is concise, but the brevity contributes to missing usage and parameter context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and three semantically undocumented optional parameters, the description is not complete enough for an agent to reliably select and invoke the tool. It only conveys the high-level operation and return value, not endpoint semantics or invocation strategy.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain ui_endpoint, wgpu_endpoint, or projectd_endpoint. The endpoint names are mildly self-descriptive, but the description adds no meaning about how these parameters map to Neon3 services or how they should be selected.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific operation ('Query service.describe') and the returned data ('current capabilities and epochs'), so the tool's purpose is clear. It does not explicitly differentiate itself from sibling tools like neon3_diagnose or neon3_nui_inspect, so it stops short of full sibling-focused clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states what the tool does but gives no guidance on when to use it versus alternatives. It also does not explain whether the three optional endpoints are alternatives, mandatory in some combination, or optional for querying all services.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

neon3_diagnoseC

Aggregate service snapshots, UI revisions, and interaction trace for a Neon3 authoring issue.

ParametersJSON Schema
NameRequiredDescriptionDefault
ui_endpointNo
wgpu_endpointNo
interaction_idNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only says the tool 'aggregates' data, without disclosing whether it is read-only, what side effects or outputs occur, whether it requires specific permissions, or what the response format looks like. For a diagnostic tool, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no unnecessary words. It fronts the main action and context, but its brevity comes at the cost of critical detail. It is appropriately sized, though not the most informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters (all optional), no output schema, and a crowded sibling set, this description is incomplete. It does not explain what happens when called with no arguments, what the aggregated output looks like, or how it differs from neon3_ui_snapshot and neon3_nui_inspect. An agent cannot confidently decide when or how to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain the parameters. It mentions the data types ('service snapshots, UI revisions, interaction trace') but does not map them to ui_endpoint, wgpu_endpoint, or interaction_id. It never explains what these endpoints are or how they relate, leaving the agent to guess their meaning and required format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Aggregate') and names the data sources (service snapshots, UI revisions, interaction trace) for a defined context (Neon3 authoring issue). It distinguishes the tool's role as aggregator, but does not explicitly contrast with siblings like neon3_ui_snapshot or neon3_nui_inspect, leaving some ambiguity about its uniqueness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many sibling tools that also handle UI snapshots or inspection. The description implies it is for diagnosing an authoring issue, but does not state conditions, prerequisites, or preferred scenarios. The agent must infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

neon3_nui_inspectC

Return the canonical IR, typed input schema, state machines, stable node outline, bindings, and budgets for NUI Flow.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full responsibility for behavioral disclosure. It states a read-like operation ('Return') but never explicitly confirms no side effects, nor does it mention error behavior, required context, or any constraints. The lack of any behavioral detail beyond the output list is a significant gap for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence that efficiently lists the returned items. It is concise and not padded with fluff, though it lacks any structural breaks or emphasis on key aspects.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool that returns a rich set of artifacts (IR, schemas, state machines, etc.) with no output schema, the description should at least hint at the format or structure of the return. It does not. Moreover, it fails to clarify the input parameter, leaving agents without enough context to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one required parameter 'source' with no description, and the tool description does not explain it at all. Since schema coverage is 0%, the description must compensate, but it does not clarify what 'source' refers to (e.g., a path, an ID, or a reference). This is a critical omission.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Return') and a detailed resource list (canonical IR, schema, state machines, etc.), making it unambiguous what the tool produces. However, it does not differentiate from sibling tools like neon3_nui_validate or neon3_nui_reference, so an agent might not know when to pick this one.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. The description only enumerates the returned artifacts, with no mention of context, prerequisites, or exclusions. An agent is left to infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

neon3_nui_referenceB

Read the authoritative Neon3 NUI Flow V1 reference. Topics: overview, grammar, components, statecharts, interactions, diagnostics.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. The verb 'Read' indicates a non-mutating operation, which is helpful, but it does not describe the return format, whether any side effects occur, or any prerequisites. For a read-only look-up tool, this is acceptable but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise—two short sentences—and front-loads the core action ('Read') followed by a list of topics. It avoids unnecessary detail and is easy to scan, but a bulleted list could slightly improve structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (one enum parameter, no output schema), the description provides the essential topics and a clear action. However, it omits details about what the response will contain, such as the format or extent of the reference text, which an agent might need to set expectations. With no annotations and no output schema, this gap is notable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is only one parameter ('topic') with an enum, and the description explicitly lists the same topics ('overview, grammar, components, statecharts, interactions, diagnostics'). This reinforces the schema and adds clarity about the valid values, compensating for the schema description coverage of 0% by providing the enum values in prose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Read') and the resource ('authoritative Neon3 NUI Flow V1 reference'), making the purpose unambiguous. It lists the topics covered, which helps differentiate it from action-oriented siblings like neon3_nui_validate or neon3_nui_inspect, but it does not explicitly name or contrast with those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for retrieving reference material on NUI Flow topics, but it provides no explicit guidance on when to choose this tool over alternatives. It neither lists exclusions nor names sibling tools that might be better suited for other tasks, leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

neon3_nui_submitC

Validate NUI Flow locally, then submit it through ui-runtime to the WGPU runtime.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYes
ui_endpointNo
idempotency_keyNo
expected_revisionNo

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full burden of disclosing side effects. It describes a two-step behavior (validate, then submit) and implies a write operation, but does not state whether submission is destructive, reversible, or idempotent (despite the idempotency_key parameter). It also lacks details on failure handling or return behavior. The high-level flow is present but shallow.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler words, efficiently conveying the main action. However, it is so terse that it sacrifices necessary context for other dimensions. It earns a 4 for brevity, but the structure lacks any breakdown or elaboration where needed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with four parameters, no output schema, and no annotations, the description is severely incomplete. It does not explain the purpose of ui_endpoint, idempotency_key, or expected_revision, nor what happens after submission. An agent cannot correctly construct a call or interpret results based on this description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate by explaining parameter meaning. However, it mentions none of the four parameters (source, ui_endpoint, idempotency_key, expected_revision). 'source' is presumably the NUI Flow code, but this is never stated. The description adds zero semantic value beyond the schema's bare property names and types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool validates NUI Flow locally and then submits it through ui-runtime to the WGPU runtime. It uses a specific verb (validate, submit) and resource (NUI Flow, ui-runtime, WGPU runtime), and distinguishes itself from sibling 'neon3_nui_validate' by explicitly adding submission as part of the pipeline.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives. It does not mention 'neon3_nui_validate' or any other sibling, nor does it state when to choose validation-only versus submission. Usage is only implied by the pipeline itself, which is insufficient for an agent to confidently select this tool over its siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

neon3_nui_validateB

Parse and compile NUI Flow with Neon3's production parser/compiler. Never submit automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It states that the tool parses and compiles and explicitly says it does not submit. However, it does not describe what happens on compile failure, whether there are side effects, or what the response looks like, so transparency is partial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no wasted words. The core action is front-loaded, and the critical safety caution 'Never submit automatically' earns its place as a separate, memorable instruction.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter validation tool, the description covers the core action and a key safety constraint. But with no output schema and no mention of result/error semantics, an agent still lacks some context about what a successful or failed validation will actually return.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It never explicitly describes the 'source' parameter, though the phrase 'Parse and compile NUI Flow' implies the source should contain NUI Flow content. This is only indirect inference, not clear parameter guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb phrase, 'Parse and compile NUI Flow', which clearly names the resource and the action. It also implicitly distinguishes itself from the sibling 'neon3_nui_submit' by ending with 'Never submit automatically,' though it does not explicitly name the alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The instruction 'Never submit automatically' gives meaningful usage context, implying this tool is a validation/compile step that should not be chained into submission. However, it does not explain when to prefer this over siblings like neon3_nui_inspect or neon3_nui_reference, leaving some routing ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

neon3_project_assetsC

Read project summary and stable AssetRef entries from projectd.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectd_endpointNo

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does state 'Read', which suggests a safe read operation, but it does not disclose endpoint behavior, error conditions, output format, or any other side effects. The word 'stable' hints at output behavior but is too vague to provide meaningful transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no filler. It front-loads the action and object and is appropriately concise for a tool with one optional parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, no annotation, and no endpoint or usage context. An agent is left without enough detail about how to supply 'projectd_endpoint', what 'projectd' refers to, or how this tool fits alongside the many related sibling tools. The bare statement of what it reads is not enough for reliable selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description never mentions 'projectd_endpoint' or explains how it should be used, whether it is optional in practice, or what format it should take. The schema only provides the property name, type, and minLength, so the description adds no parameter-level meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb ('Read') and names specific resources ('project summary', 'stable AssetRef entries') plus the source ('projectd'). It is reasonably distinguishable from sibling tools like the nui_* and app_* tools, though it does not explicitly contrast itself with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus its siblings, nor any stated conditions, prerequisites, or exclusions. The intended usage must be inferred entirely from the tool name and the one-line description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

neon3_ui_snapshotC

Read the current UI runtime snapshot, including active fragment and input revisions.

ParametersJSON Schema
NameRequiredDescriptionDefault
ui_endpointNo

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description implies a read-only operation via the verb 'Read,' which is a behavioral hint, and it lists what is included in the snapshot. However, with no annotations, it does not disclose potential errors, side effects, or any constraints such as required authorization. The extra detail about contents adds some transparency, but it remains thin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that quickly states the core action and its scope. There is no extra wording or redundancy; every word contributes to the meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a parameter that is unexplained and no output schema, the description leaves significant gaps. An agent would not know how to supply the ui_endpoint or what to expect in return, making the tool under-specified for a single-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has a single parameter 'ui_endpoint' with no description (coverage 0%), and the description does not mention or explain this parameter at all. With no compensation from the description, an agent cannot know what value to provide or what effect it has.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Read') and the resource ('current UI runtime snapshot'), and adds specificity by mentioning 'active fragment and input revisions.' It does not explicitly name a sibling tool for differentiation, but the verb and resource are concrete enough to convey the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus siblings. The description says nothing about context, prerequisites, or alternatives, leaving the agent to infer usage from the name and siblings alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updatesv0.1.0
    • First observedneon3_app_init
    • First observedneon3_app_run
    • First observedneon3_app_test
    • First observedneon3_capabilities
    • First observedneon3_diagnose
    • First observedneon3_nui_inspect
    • First observedneon3_nui_reference
    • First observedneon3_nui_submit
    • First observedneon3_nui_validate
    • First observedneon3_project_assets
    • First observedneon3_ui_snapshot

TDQS

B3.3/5.0

Scored across 11 tools

Disambiguation5/5

Each tool addresses a distinct stage or resource: reference docs, validation, IR inspection, submission, project assets, capabilities, UI snapshot, app template lifecycle, and diagnostics. There is no meaningful overlap, and validate/inspect/submit are clearly separated by compile, inspect, and runtime submission roles.

Naming Consistency4/5

All tool names share the neon3_ prefix and use snake_case, which is consistent and readable. However, the set mixes noun-style names like nui_reference and ui_snapshot with verb-style names like nui_validate and app_run, so the naming pattern is not perfectly uniform.

Tool Count5/5

11 tools is a well-scoped count for a Neon3 authoring/debugging server. Each tool provides a distinct capability needed for the domain without redundant or superfluous entries.

Completeness4/5

The core workflow is well covered: reference, validate, inspect, submit, create/run/test app templates, and diagnose issues. Minor gaps exist, such as no explicit update/delete for app templates and no write access to project assets, but these do not block the primary authoring flow.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers