jqwidgets-mcp-server

Model Context Protocol (MCP) server that exposes the jQWidgets API (80+ widgets — properties, methods, events, data types) and generates runnable jQWidgets examples for Plain JS/jQuery, React, Angular and Vue.
578
Install
npm install jqwidgets-mcp-server
Latest Version:1.1.1
License:Custom
Last Updated:May 24, 2026
Links: GitHub  ·  npm
Maintainer: jqxelements

jqwidgets-mcp-server

A Model Context Protocol server that gives any MCP-aware coding assistant — Claude Code, Claude Desktop, Cursor, Continue, GitHub Copilot Chat (agent mode), etc. — full knowledge of the jQWidgets component library: 80+ widgets, their properties, methods, events, custom data types, and a code generator that emits runnable examples for Plain JS / jQuery, React (TSX), Angular, and Vue.

Ask the assistant questions like:

  • "What properties does jqxGrid support?"
  • "What events does jqxScheduler fire?"
  • "Generate a sortable, filterable jqxGrid bound to a JSON array, theme energyblue."
  • "Which <script> tags do I need for a jqxGrid with editing, sorting, filtering and paging?"

…and the server answers from the bundled API metadata or emits the code directly.

What's new in 1.1

  • generate_example writes current code for every component: React 19 function components with hooks and strict TypeScript, Vue 3 <script setup>, Angular 19+ standalone components with signals, and plain JavaScript without jQuery, each with real sample data. Every component's example is built and run in all four frameworks (npm run test:examples). The result lists its files (files), the install command and notes; code is kept.
  • Scripts load from the jsDelivr CDN by default (scripts: "npm" for node_modules).
  • The API data is jQWidgets 27.1.0: 82 components, 46 themes (Tailwind Blue and the dark versions of Fluent and Material are new), and the AI members of the Grid, Scheduler and Gantt.

Install

npm install -g jqwidgets-mcp-server

Or use it without installing globally:

npx jqwidgets-mcp-server

The package bundles a snapshot of the jQWidgets API JSON metadata — it works zero-config straight after install.

Configure your assistant

The server speaks MCP over stdio. Wire it into your assistant of choice.

Claude Code

claude mcp add jqwidgets npx jqwidgets-mcp-server

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "jqwidgets": {
      "command": "npx",
      "args": ["jqwidgets-mcp-server"]
    }
  }
}

VS Code — GitHub Copilot Chat (agent mode)

Create .vscode/mcp.json in your workspace:

{
  "servers": {
    "jqwidgets": {
      "type": "stdio",
      "command": "npx",
      "args": ["jqwidgets-mcp-server"]
    }
  }
}

Cursor / Continue / other MCP clients

Use the same command + args as above in whatever config your client expects.

Tools

All tools return structured JSON. Pass raw: true to property/method/event tools to keep the original HTML in description fields.

Tool Purpose
list_widgets All 80+ widgets with one-line descriptions.
get_widget Full API summary for one widget (counts, exampleInit, dataTypes, Angular metadata).
get_widget_properties Properties: name, dataType, tsType, defaultValue, description, exampleInit.
get_widget_methods Methods: name, returnType, arguments, description.
get_widget_events Events: name, description, handler code sample.
get_widget_types Custom enums and interfaces declared by the widget (valid property values).
get_required_scripts Ordered CSS + JS includes for a widget, with feature modules (e.g. ["edit","sort","filter"]) and theme.
list_demos List shipped demo file names for a widget (requires a local jqWidgets checkout — see below).
get_demo_code Read the source of a specific demo file (requires a local jqWidgets checkout).
generate_example Emit a runnable example for jquery / react / angular / vue (see below).

generate_example

Every widget has a default example with small sample data (a data adapter with six rows and its columns for the grids, a list of strings for the list inputs, series and data for the charts, appointments for the scheduler, tasks for the Gantt chart, child markup for tabs, menus, windows and so on). options are merged on top; numbers and booleans given as strings ("600", "true") become real values, and a string that names a sample declaration ("dataAdapter", "columns") refers to it.

framework Output (files)
jquery index.html: plain JavaScript (jqxcore.js provides $; jQuery is not needed), scripts and styles from the jsDelivr CDN pinned to the package version (scripts: "npm" for node_modules/jqwidgets-scripts/jqwidgets/, prefix for anything else), feature modules from the options (sortable → jqxgrid.sort.js, …).
react src/App.tsx (React 19 function component, TypeScript strict, import JqxGrid, { type IGridProps, jqx } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxgrid', data created outside the component, useRef for method calls, events as onRowselect) and src/main.tsx (styles + createRoot into #root), for a Vite react-ts project.
vue src/App.vue (<script setup lang="ts">, jqwidgets-scripts/jqwidgets-vue3/vue_*.vue, template refs, @rowselect), src/main.ts and src/jqwidgets-vue3.d.ts, for a Vite vue-ts project.
angular src/app/app.ts + src/app/app.html (standalone component, imports: [jqxGridModule], viewChild.required, outputs (onRowselect), string inputs quoted [theme]="'fluent'") for an ng new project (Angular 19+); angularJson.styles lists the stylesheets for angular.json (ng add jqwidgets-ng adds jqx.base.css; add the theme next to it).

The result also has code (all files in one string, for clients that read only that), install (the commands that create the project), notes and warnings (e.g. options the widget does not have). Other inputs: theme (default fluent; "" for none), events (event names to handle; default one typical event), features, elementId.

Configuration (optional env vars)

Variable Default Purpose
JQWIDGETS_REPO_ROOT unset Point at your local jQWidgets installation (the folder containing jqwidgets/, jqwidgets-src/ and demos/). Enables list_demos / get_demo_code and live feature/theme discovery. Without it the server uses the API data bundled in this package, so every other tool works unchanged.
JQWIDGETS_SCRIPTS_PREFIX https://cdn.jsdelivr.net/npm/jqwidgets-scripts@<version>/jqwidgets/ URL of the folder with jqxcore.js and styles/ that generated pages and get_required_scripts use. E.g. node_modules/jqwidgets-scripts/jqwidgets/, or wherever you serve jQWidgets from.
JQWIDGETS_VERSION the version of the bundled data (data/snapshot.json), else 27.1.0 The jqwidgets-scripts version in the CDN URLs.

Verifying the examples

npm run test:examples (test/examples-build.mjs) generates the default example of every widget for each framework and checks it the way a user would use it:

  • jquery: each page in Chromium, with its CDN URLs answered from a local jqwidgets-scripts package (no network);
  • react: all examples in one Vite react-ts project: tsc -b (strict), then a vite build per example (one entry each, as in a project of its own), then each page in Chromium;
  • vue: the same with vue-tsc --build;
  • angular: all examples in one ng new project, one route per example: ng build, then each route in Chromium.

A page passes when it has no console error, page error or failed request and a jQWidgets component was created on an element of non-zero size. The projects are not modified: their configuration is copied into the output folder and their node_modules linked.

npm run test:examples -- --react <vite react-ts project> --vue <vite vue-ts project> \
    --angular <ng new project> --scripts <dir of an installed jqwidgets-scripts package> \
    [--frameworks jquery,react,vue] [--widgets grid,chart] [--out <dir>] [--shots] \
    [--playwright <dir of the playwright package>]

The React and Vue projects need jqwidgets-scripts, the Angular project jqwidgets-ng (all of the version being tested), and Playwright with Chromium must be installed somewhere (found from --playwright, PLAYWRIGHT_MODULE, this package or the projects). --shots saves a screenshot of every page; results.json in the output folder has the outcome per framework and widget. A full run (82 widgets × 4 frameworks) takes about 5 minutes.

Worked example

After registering the server, a single prompt drives the whole flow:

Use the jqwidgets MCP server. Build me a runnable HTML page with a sortable, filterable, pageable jqxGrid bound to a 10-row JSON array of employees, theme energyblue.

The assistant will:

  1. Call get_widget → understand the grid surface.
  2. Call get_widget_properties with nameFilter: "sort" → confirm property names.
  3. Call get_required_scripts with features: ["sort","filter","pager","selection"], theme: "energyblue" → get the right script tags.
  4. Call generate_example with framework: "jquery" → receive a complete HTML file.

…and hand you a ready-to-run HTML file.

License

Use of this package requires a valid jQWidgets license. Trial use is permitted for evaluation. See LICENSE and https://www.jqwidgets.com/license/.

Related Packages

mcp-probe-kit

AI-powered MCP development toolkit with 29 default tools (24 base + 5 History Se...

33,568 39
mcp-glue-code-generator

MCP Server that generates Zod schemas to map API responses to Vue/React Design S...

2,994 1
@opentiny/genui-sdk-integration-skill

GenUI SDK integration skill for AI assistants (Vue, Angular, React, Server)

379 181
ux-ui-agent-skills

Design-system kit for coding agents — DTCG design tokens, 52 components, WCAG 2....

7,394 2,786

Version History

Version Released License
1.1.1 Custom
1.1.0 Custom
1.0.0 Custom