{"apiVersion":"v1","directorySlug":"ngxviewbuilder-mcp-0cc3d2e778","title":"NGX View Builder","description":"Build Angular forms, dashboards and data tables visually, save them as JSON, and render them natively in your app. Logic, validation, REST data and AI access over MCP.","pageUrl":"https://www.mcpbundles.com/skills/ngxviewbuilder-mcp-0cc3d2e778","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.ngxviewbuilder.io/mcp","hostedMcpUrl":null,"toolCount":19,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"io.ngxviewbuilder/ngxviewbuilder-mcp-0cc3d2e778","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"nvb_pair","description":"Pair this connection with the user's open builder tab. Call this before any other tool, with the session key the user gives you. The key is shown in the NGX View Builder designer, under Settings (gear icon) → AI access (MCP), and looks like NVB-XXXX-XXXX-XXXX. If you do not have the key yet, ask the user for it; never guess one.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["session_key"],"properties":{"session_key":{"type":"string","minLength":4}},"additionalProperties":false},"logicalName":"nvb_pair","displayName":"nvb_pair","title":"nvb_pair","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"nvb_status","description":"Whether this connection is paired, whether the builder tab the calls go to is open right now, and every tab it holds. Does not count against the call limit.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"nvb_status","displayName":"nvb_status","title":"nvb_status"},{"name":"nvb_unpair","description":"Disconnect this connection from builder tabs. With session_key, from that tab only; without it, from every tab. Use when the user asks you to stop. To move to another tab you hold, call nvb_pair with its key instead.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"session_key":{"type":"string","minLength":4}},"additionalProperties":false},"logicalName":"nvb_unpair","displayName":"nvb_unpair","title":"nvb_unpair","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"nvb_read_docs","description":"Read the NGX View Builder documentation for AI agents, page by page. Without arguments it lists the pages and says which are required reading and which you have read. With `page` (a title, or the last part of its URL) it returns that page; long pages come in parts, ask for each `part` in turn. Read every required page, all parts, before your first nvb_execute. Does not need pairing and does not count against the call limit.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"page":{"type":"string"},"part":{"type":"integer","default":1,"minimum":1},"source":{"enum":["authoring","full"],"type":"string","default":"authoring"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"nvb_read_docs","displayName":"nvb_read_docs","title":"nvb_read_docs"},{"name":"nvb_get_instructions","description":"The whole contract as one prompt ready block: what the API is, the working order and the rules. Read this first after pairing.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"nvb_get_instructions","displayName":"nvb_get_instructions","title":"nvb_get_instructions"},{"name":"nvb_help","description":"The machine readable command catalog: every op with its parameters and a worked example. Comes from the running builder, so it always matches the library version the user has open.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"nvb_help","displayName":"nvb_help","title":"nvb_help"},{"name":"nvb_describe_element_types","description":"Element types the builder can create, with the properties each one accepts. Pass a type for just that one. Call this before writing properties: guessing property names produces warnings, not errors, so a wrong guess looks like it worked.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"type":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"nvb_describe_element_types","displayName":"nvb_describe_element_types","title":"nvb_describe_element_types"},{"name":"nvb_describe_templates","description":"The template library of the open view, and which element types can host a template.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"name":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"nvb_describe_templates","displayName":"nvb_describe_templates","title":"nvb_describe_templates"},{"name":"nvb_get_tree","description":"Compact outline of pages, rows and elements. The cheap read, and the one to use before mutating.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"nvb_get_tree","displayName":"nvb_get_tree","title":"nvb_get_tree"},{"name":"nvb_get_structure","description":"The complete view JSON. Large: prefer nvb_get_tree unless you need the exact current state.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"nvb_get_structure","displayName":"nvb_get_structure","title":"nvb_get_structure"},{"name":"nvb_get_element","description":"One element body by name, so you can patch it instead of overwriting fields you never read.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["name"],"properties":{"name":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"nvb_get_element","displayName":"nvb_get_element","title":"nvb_get_element"},{"name":"nvb_get_element_property","description":"One property value from one element. Use when the whole element body would be large.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["name","property_key"],"properties":{"name":{"type":"string"},"property_key":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"nvb_get_element_property","displayName":"nvb_get_element_property","title":"nvb_get_element_property"},{"name":"nvb_get_data","description":"The runtime data the open view currently holds, keyed by data path.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"nvb_get_data","displayName":"nvb_get_data","title":"nvb_get_data"},{"name":"nvb_get_audit_log","description":"Every command batch applied in this builder session, newest last.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"nvb_get_audit_log","displayName":"nvb_get_audit_log","title":"nvb_get_audit_log"},{"name":"nvb_get_selection","description":"The element the user has selected in the designer: name, type, label and the path commands take. Call it when the user says \"this field\" or \"the selected element\". Null when nothing is selected.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"nvb_get_selection","displayName":"nvb_get_selection","title":"nvb_get_selection"},{"name":"nvb_list_plugins","description":"Plugins installed in the builder that keep data of their own, such as the logic map (how every field depends on the others) and the field documentation. Each entry says what it is for, what nvb_read_plugin accepts and which commands nvb_plugin_execute runs. Unavailable plugins say why (usually a missing license).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"nvb_list_plugins","displayName":"nvb_list_plugins","title":"nvb_list_plugins"},{"name":"nvb_read_plugin","description":"What one plugin knows about the open view. \"logicMap\" returns every rule (visible, required, disabled, calculated, validators, events, data sources) in plain words with what each field depends on and changes; pass {\"element\": \"name\"} for one field and its whole chain. \"documentation\" returns the description of every field and the generated field table; pass {\"format\": \"markdown\"} for the finished table.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["plugin"],"properties":{"query":{"type":"object","additionalProperties":{}},"plugin":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"nvb_read_plugin","displayName":"nvb_read_plugin","title":"nvb_read_plugin"},{"name":"nvb_plugin_execute","description":"Runs one plugin command, e.g. documentation.setDescription to write what a field is for (stored outside the view JSON, saved for the team at once), or logicMap.show to open the logic map on a field for the person. Never use nvb_execute for plugin data.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["plugin","command"],"properties":{"args":{"type":"object","additionalProperties":{}},"plugin":{"type":"string"},"command":{"type":"string"}},"additionalProperties":false},"logicalName":"nvb_plugin_execute","displayName":"nvb_plugin_execute","title":"nvb_plugin_execute","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"nvb_execute","description":"Apply a batch of builder commands. The only way to change anything. Works only after the required documentation pages were read with nvb_read_docs on this connection. A batch is atomic: if one command fails, none apply, and the whole batch is one undo step for the user. Get the op names from nvb_help first. Send dry_run true for anything large. Build a new view of more than about eight elements section by section, one batch per section top to bottom, all with the same group, so the person watche","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["commands"],"properties":{"group":{"type":"string","maxLength":80},"dry_run":{"type":"boolean","default":false},"commands":{"type":"array","items":{"type":"object","additionalProperties":{}},"minItems":1},"return_tree":{"type":"boolean","default":true},"return_structure":{"type":"boolean","default":false}},"additionalProperties":false},"logicalName":"nvb_execute","displayName":"nvb_execute","title":"nvb_execute","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=NGX-View-Builder&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3Aubmd4dmlld2J1aWxkZXIuaW8vbWNwIn0%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22NGX-View-Builder%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.ngxviewbuilder.io%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22NGX-View-Builder%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.ngxviewbuilder.io%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=NGX+View+Builder&connectorUrl=https%3A%2F%2Fmcp.ngxviewbuilder.io%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"NGX-View-Builder\" --url \"https://mcp.ngxviewbuilder.io/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/ngxviewbuilder-mcp-0cc3d2e778","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/ngxviewbuilder-mcp-0cc3d2e778/tools/{tool}","mcpServerUrl":"https://mcp.ngxviewbuilder.io/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/ngxviewbuilder-mcp-0cc3d2e778?live=1"}