Featured

Deploy OpenClaw in 60 seconds β€” 20% off logoDeploy OpenClaw in 60 seconds β€” 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger β†’
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger β†’
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free β†’
6,000+ web scrapers for your AI agent, start free logo6,000+ web scrapers for your AI agent, start free

Apify gives your agent live web data: 6,000+ prebuilt scrapers and actors, MCP-ready. Sign up free with $5 in usage credits.

Try Apify free β†’
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data β€” no proxies, no parsers, no maintenance.

Start building free β†’
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it β€” secured from day one.

Get it set up for you β†’
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free β†’
Reach 48,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here β†’

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

Nishant-Chaudhary5338/mcp-toolkit MCP server](https://glama.ai/mcp/servers/Nishant-Chaudhary5338/mcp-toolkit/badges/score.svg)](https://glama.ai/mcp/servers/Nishant-Chaudhary5338/mcp-toolkit) πŸ“‡ 🏠 🍎 πŸͺŸ 🐧 - 9 MCP servers for React + TypeScript...

README.md

mcp-toolkit

MCP servers for React + TypeScript development automation. Works with Claude Desktop, Cline, Cursor β€” and as plain CLI scripts β€” one protocol, zero duplication.

![npm](https://www.npmjs.com/package/mcp-react-toolkit) ![CI](https://github.com/Nishant-Chaudhary5338/mcp-toolkit/actions/workflows/ci.yml) ![License: MIT](LICENSE) ![MCP SDK](https://github.com/modelcontextprotocol/typescript-sdk)

59 tools across 9 categories — component scaffolding, code quality, a full CRUD-feature factory, CRA→Vite migration, and more. Every tool ships as its own MCP server, built and tested independently.

---

Why this exists β€” the token math

Here's the thing nobody tells you when you start building agentic workflows: the loop itself is what's expensive, not the model. An agent working without any composed tools does everything the slow way β€” read a file, think, write a file, read it back to check its own work, repeat β€” and every single one of those turns re-sends the whole conversation so far as input tokens. By the time you're 20 steps into a real multi-file task, that resent context alone can be running 50K+ tokens per call. It adds up fast, and it's not really about which model you're using.

I didn't just take that on faith β€” a few sources back it up with real numbers. LeanOps measured agent loops running about 3.2Γ— the tokens of a single direct call at 5 steps, ~30Γ— at 50 steps, and past 100Γ— once you're deep into a typical build-and-debug session β€” because re-sent context is roughly 62% of the bill. Vantage found similar: real agentic sessions run an input-to-output ratio around 25:1 (a direct call is closer to 1:1), with a 50-turn session routinely hitting a million input tokens, and non-agentic usage on comparable work costing something like 200Γ— less per interaction on the same team. And a recent arXiv paper on agentic tokenomics puts agentic tasks at roughly 1000Γ— the tokens of single-turn work, with up to 30Γ— variance run to run on the exact same task β€” so it's not just expensive, it's unpredictable.

That's the problem this toolkit's composed tools are built to get rid of. workflow-runner's schema_to_feature and cra-to-vite don't add one more tool call into an agent's existing loop β€” they replace what would otherwise be 7 or 8 separate read/write/verify turns with a single in-process call that runs the whole generator or migration pipeline and hands back the finished result. That's the "50-turn loop collapses into 1 call" shape the research above says saves 10–100Γ—, which is a very different thing from just bolting one extra tool onto an unchanged loop (that only gets you the 20–40% range).

To keep myself honest, I also ran a real, measured benchmark rather than just trusting the theory β€” ax-benchmark, 6 tasks, claude -p running headless, three arms (agent alone, agent with one MCP tool call added into its loop, and the tool called directly with no agent at all). This is a conservative baseline on purpose, since it only tests adding a single tool call into an otherwise unchanged loop, not the deeper pipeline collapse described above:

| | Agent alone | Agent + one MCP tool | Tool called directly | |---|---|---|---| | Analysis tasks (review, a11y, legacy-code) | baseline | ~41% lower cost | ~100% free, ~15Γ— faster (when in scope) | | All 6 tasks, blended | baseline | ~19% lower cost | β€” | | New code (component, tests) | baseline | roughly cost-neutral | not applicable to novel work |

Two things worth being upfront about: cost is the fair metric here, not wall-time β€” the agent-alone arm ran headless with no shell access and over-explored on open-ended tasks, which inflated its time without touching its actual cost. And on small, novel, single-file work, the overhead of the tool's structured output can offset what it saves β€” the real win shows up on repetitive, mechanical, multi-file work, which also happens to be exactly where the multi-turn-loop tax above hits hardest.

---

Install

Published on npm as mcp-react-toolkit. No clone or build required:

npx mcp-react-toolkit --list            # list all 59 tools
npx mcp-react-toolkit legacy-analyzer   # run one as an MCP server (stdio)

Add it to Claude Desktop / Cursor / Cline:

// claude_desktop_config.json
{
  "mcpServers": {
    "legacy-analyzer": { "command": "npx", "args": ["-y", "mcp-react-toolkit", "legacy-analyzer"] }
  }
}

Swap in any tool name from npx mcp-react-toolkit --list. Restart your client and the tool appears.

---

Interactive dashboards

Most MCP tools return raw JSON. These return that JSON plus an interactive HTML dashboard β€” health score, sortable issue triage, light/dark toggle, and one-click fix actions that call other tools in the toolkit. One self-contained artifact, no server, no external requests:

| Where you run it | What you get | |---|---| | Claude Desktop (MCP Apps) | Renders inline in the conversation (sandboxed iframe) | | Claude Code Β· Cursor Β· CLI | JSON plus a clickable file:// link to the same dashboard | | Any browser | The same HTML, standalone |

Analysis tools (legacy-analyzer, component-reviewer, dep-auditor, etc.) get an audit view β€” grade, category cards, filterable issue table. Generators (component-factory, code-modernizer, etc.) get a result view β€” files created/changed, diffs, follow-ups. Powered by the internal @mcp-showcase/ui-kit package: dependency-free, ~30 KB per report.

---

Tools

Component Development

| Tool | What it does | |---|---| | component-factory | Scaffold React components from 41 shadcn/ui templates β€” with tests + Storybook | | component-reviewer | Audit TypeScript errors, a11y issues, test coverage β€” graded A+ to F | | component-fixer | Auto-fix broken imports, missing deps, inline style refactors | | component-improver | Extend a component with variants, comprehensive stories, and edge-case tests | | storybook-generator | Auto-generate Storybook stories β€” Default, variants, sizes, callbacks, play functions |

Code Quality & Modernisation

| Tool | What it does | |---|---| | typescript-enforcer | Scan for any types, unsafe casts, missing modifiers β€” 7 rules, scored 0–10 | | accessibility-checker | WCAG 2.1 audit β€” alt text, label associations, ARIA roles, keyboard navigation | | a11y-autofixer | Apply safe a11y fixes (img alt, blank rel, htmlFor, tabIndex) | | quality-pipeline | 5-stage audit (tests Β· types Β· perf Β· a11y Β· design tokens), graded A–F | | review-gate | Static A–F quality gate for generated/changed code | | enforce-design-tokens | Flag hardcoded colors/spacing/radii/shadows, suggest tokens, grade A–F | | render-analyzer | Detect unnecessary re-renders, missing memo, inline objects/functions | | performance-audit | Memory leaks, heavy imports, unoptimized images, deep nesting | | bundle-budget-guard | Gate gzipped asset sizes against per-pattern budgets β€” fail CI on regressions | | code-modernizer | AST-based JS/JSX β†’ TypeScript conversion, PropTypes β†’ interfaces | | react-compiler-migrator | Flag redundant useMemo/useCallback/memo for the React 19 Compiler | | codemod-runner | Generic regex codemod engine + named built-ins; dry-run by default | | refactor-executor | Execute refactor plans safely β€” move/rename/split, update imports, rollback | | redux-state-analyzer | Audit Redux for anti-patterns (selectors, mutations, RTK Query migration hints) | | api-contract-differ | Diff two API snapshots β†’ breaking vs additive changes β€” CI gate against breaks | | i18n-extractor | Scan JSX for hardcoded strings β†’ i18n keys + message catalog | | generate-tests | Analyze a TS/React source file and generate a Vitest test suite | | test-gap-analyzer | Find unimplemented functions, uncovered branches, missing edge cases | | test-data-factory | FieldSchema β†’ typed fixture factory for tests/stories | | fix-failing-tests | Run the suite, classify failures by root cause, generate targeted fixes | | legacy-analyzer | 22-tool health audit for any React/Next.js/Remix app β€” scores 0–100, migration hints |

Monorepo & Infrastructure

| Tool | What it does | |---|---| | dep-auditor | Unused deps, duplicate versions, circular imports, bundle impact analysis | | monorepo-manager | Workspace listing, dependency graph, health check, shared dep finder | | lighthouse-runner | Static HTML audit β€” meta tags, a11y, OG/Twitter cards, canonical, JSON-LD | | json-viewer | Interactive HTML JSON viewer β€” collapsible, searchable, dark/light |

CRUD Factory

One JSON API sample (or OpenAPI schema) fans out into a full, typed CRUD feature. Every generator keys off the shared FieldSchema contract, so the pieces compose.

| Tool | What it does | |---|---| | infer-fields | JSON sample / OpenAPI β†’ typed FieldSchema (types, FK relations, table/form defaults) | | zod-schema-generator | FieldSchema β†’ Zod schema + inferred TS type | | api-client-generator | FieldSchema β†’ RTK Query slice or TanStack Query hooks, with cache tags | | form-generator | FieldSchema β†’ React Hook Form + Zod form (create / edit) | | table-generator | FieldSchema β†’ TanStack Table (sort / filter / paginate) | | detail-generator | FieldSchema β†’ typed detail view + delete action | | crud-composer | Wire the pieces into routes β€” React Router 7 or Next App Router | | form-wizard-generator | FieldSchema β†’ multi-step RHF+Zod wizard with per-step validation | | msw-mock-generator | FieldSchema β†’ MSW handlers + seed data, so the feature runs against a mock API | | workflow-runner | Runs the whole chain end-to-end, gated by review-gate β€” files + journal + A–F grade | | e2e-generator | FieldSchema β†’ Playwright CRUD flow spec (createβ†’editβ†’delete + a11y) | | playwright-scaffolder | Scaffold the Playwright harness β€” config, fixtures, base POM, auth setup | | visual-regression-setup | Playwright toHaveScreenshot specs for routes/stories β€” catch CSS drift |

CRA β†’ Vite

Migrate a Create React App project to Vite: analyze β†’ plan β†’ scaffold β†’ migrate β†’ verify.

| Tool | What it does | |---|---| | cra-to-vite | Orchestrator β€” runs the six tools below in sequence, one call, graded report | | craconfig-analyzer | Deep CRA config inspection (react-scripts, env, proxy, jest, browserslist, SVG) | | dependency-remapper | CRA deps β†’ Vite plan (remove/add with versions + unmapped) | | env-var-migrator | REACT_APP_ β†’ import.meta.env.VITE_, in source and .env files | | jest-to-vitest-migrator | jest. β†’ vi., adds the right imports, flags manual-review cases | | vite-project-scaffolder | Generates vite.config.ts, main.tsx, strict tsconfig, a Vitest block | | webpack-config-translator | Best-effort webpack/CRACO β†’ Vite translation + manual-review list |

Boilerplate

| Tool | What it does | |---|---| | barrel-generator | Generate an index.ts barrel re-exporting a folder β€” no drifting export lists | | type-from-json | JSON sample β†’ plain TS interfaces (nested objects become their own interfaces) | | zustand-store-generator | State shape β†’ typed Zustand store (setters, reset, persist/devtools) | | svg-to-component | Raw SVG β†’ typed React component (SVGProps, currentColor) β€” SVGR-grade | | env-config-generator | Zod-validated typed env module (Vite/Next) β€” fail fast on missing/bad vars | | states-scaffolder | Loading/empty/error state components + a switch wrapper for a data view |

Meta

| Tool | What it does | |---|---| | mcp-tool-factory | Scaffold + wire + verify new MCP tools in this package | | mcp-tool-improviser | Analyze + improve MCP tools across 7 dimensions β€” proposed diffs, apply, rollback | | docs-generator | Generate a README (from an MCP tool) or an API reference (from a TS module + JSDoc) |

---

Automation workflows

Chain tools together for common tasks:

| Workflow | Chain | |---|---| | Code Modernization | legacy-analyzer → code-modernizer → typescript-enforcer → generate-tests | | Component Quality Pipeline | component-factory → component-reviewer → accessibility-checker → storybook-generator | | Render Performance Audit | render-analyzer → performance-audit → quality-pipeline | | App Health Check | legacy-analyzer → component-reviewer → generate-tests | | Dependency Health | dep-auditor [unused → duplicates → bundle-impact] → monorepo-manager | | Full CRUD feature | workflow-runner (composes the whole CRUD Factory chain in one call) | | CRA → Vite migration | cra-to-vite (composes the whole CRA→Vite chain in one call) |

---

How MCP works

Claude Desktop / Cline / Cursor
        β”‚  JSON-RPC over stdio
        β–Ό
   MCP Server (e.g. typescript-enforcer)
        β”‚
        β–Ό
   Tool handlers (your code)

Each server extends McpServerBase from tools/shared/ β€” handles transport, routing, and error formatting. Adding a new tool is ~50 lines:

import { McpServerBase } from '@mcp-showcase/shared';

class MyTool extends McpServerBase {
  constructor() {
    super({ name: 'my-tool', version: '1.0.0' });
  }

  protected registerTools(): void {
    this.addTool('do_thing', 'Does a thing', {
      type: 'object',
      properties: { path: { type: 'string', description: 'Target path' } },
      required: ['path'],
    }, async (args) => {
      const { path } = args as { path: string };
      return this.success({ result: `Processed ${path}` });
    });
  }
}

new MyTool().run();

---

Run from source (contributors)

Prefer npm for everyday use (see Install). Clone only to hack on the tools or run the showcase UI:

git clone https://github.com/Nishant-Chaudhary5338/mcp-toolkit.git
cd mcp-toolkit
npm install
npm run build
npm test          # run the full suite across all tools
npm run dev       # server on :3002, client on :5173

Point Claude Desktop at a local build the same way as Install, swapping npx -y mcp-react-toolkit <name> for node /path/to/mcp-toolkit/tools/<name>/build/index.js.

Use as a CLI / in CI

Every tool's build/index.js has a #!/usr/bin/env node shebang β€” pipe a JSON-RPC message to it on stdin:

# Health score + migration hints for a full app
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"analyze-legacy-app","arguments":{"path":"/path/to/app"}}}' \
  | node tools/legacy-analyzer/build/index.js

# Review a component β€” grade A+ to F
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"review","arguments":{"path":"src/components/Button.tsx"}}}' \
  | node tools/component-reviewer/build/index.js

# List a tool's available commands
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | node tools/legacy-analyzer/build/index.js

---

Testing

Every tool has a co-located Vitest suite covering its core logic directly β€” no MCP transport required.

npm test                              # all tools
npm run test -w tools/legacy-analyzer # single tool

CI runs on every push and PR against Node 20 and 22.

---

Companion package

code-graph-indexer β€” indexes any TS/React/Next.js repo into a queryable code graph (files, components, functions, and the edges between them) and answers structural questions: who calls this, blast radius, dead code, semantic search. Same family, separate package.

npx code-graph-indexer ui --root .

---

Contributing

See CONTRIBUTING.md β€” how to scaffold a new tool, write tests, and open a PR.

Stack

TypeScript strict Β· Node.js Β· MCP SDK 1.12 Β· Vitest Β· React 19 Β· Vite Β· Tailwind CSS Β· Express

Built by

Nishant Chaudhary β€” Senior Frontend Engineer Β· nishantchaudhary.dev@gmail.com

Also see: dashcraft Β· react-present Β· ai-builder

MIT License

See related servers & alternatives β†’

Related MCP servers

Browse all β†’

Related guides

Hand-picked reading to help you choose and use Other servers.