{"_id":"@awdlab/jig-mcp","_rev":"2-1dd1964a5f9888c044b5afd7e6c1bd57","name":"@awdlab/jig-mcp","dist-tags":{"next":"0.0.1-next.1","latest":"0.0.1"},"versions":{"0.0.1-next.1":{"name":"@awdlab/jig-mcp","version":"0.0.1-next.1","keywords":["angular","mcp","model-context-protocol","ai","awdlab","jig"],"license":"MIT","_id":"@awdlab/jig-mcp@0.0.1-next.1","maintainers":[{"name":"loaderb0t","email":"rndmb0t@gmail.com"}],"homepage":"https://jig.awdlab.dev","bugs":{"url":"https://github.com/awdlab/jig/issues"},"bin":{"jig-mcp":"dist/index.js"},"dist":{"shasum":"5b461976f18fed2ad4c51d55bfe74e43b9903b4a","tarball":"https://registry.npmjs.org/@awdlab/jig-mcp/-/jig-mcp-0.0.1-next.1.tgz","fileCount":29,"integrity":"sha512-qj1McfJh8WbDnrD0ZLWyB6N9Ht3A2npHy3JOPQQ7PhCo/wHlSGcJY6Qn69LKGhS+x3b8ttr7PvCTcGvPuccuuw==","signatures":[{"sig":"MEUCIAFbobqaTLOu5yNzSy4C4uv4iXGL5JzCoVdHR621cGmyAiEA+yP9DcwA3lop49rMmpBH5pTYLljl/A8OgZVySydwYYE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":852143},"type":"module","_npmUser":{"name":"loaderb0t","email":"rndmb0t@gmail.com"},"repository":{"url":"git+https://github.com/awdlab/jig.git","type":"git","directory":"packages/mcp"},"_npmVersion":"11.13.0","description":"Model Context Protocol server exposing @awdlab/jig docs, API and concepts to AI coding agents.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"zod":"^3.24.1","awesome-logging":"^2.1.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.5","vitest":"^4.1.9","typedoc":"^0.28.19","typescript":"~6.0.0","@types/node":"^26.1.0"},"_npmOperationalInternal":{"tmp":"tmp/jig-mcp_0.0.1-next.1_1786238566376_0.6569156235882374","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"@awdlab/jig-mcp","version":"0.0.1","description":"Model Context Protocol server exposing @awdlab/jig docs, API and concepts to AI coding agents.","type":"module","license":"MIT","homepage":"https://jig.awdlab.dev","repository":{"type":"git","url":"git+https://github.com/awdlab/jig.git","directory":"packages/mcp"},"keywords":["angular","mcp","model-context-protocol","ai","awdlab","jig"],"publishConfig":{"access":"public"},"bin":{"jig-mcp":"dist/index.js"},"dependencies":{"@modelcontextprotocol/sdk":"^1.30.0","awesome-logging":"^2.1.1","zod":"^4.4.3"},"devDependencies":{"@types/node":"^26.2.0","tsx":"^4.23.8","typedoc":"^0.28.20","typescript":"~6.0.0","vitest":"^4.1.10"},"_id":"@awdlab/jig-mcp@0.0.1","bugs":{"url":"https://github.com/awdlab/jig/issues"},"_nodeVersion":"22.23.2","_npmVersion":"12.0.2","dist":{"integrity":"sha512-D5LlnHdAT0cvCKRsSKya0k/shkZ6YbTRGj9SoCJISEIk7uh4CEVu543yueAG6TAy0De86qY5rNW2KGN7zY1bug==","shasum":"b40e0467d8461cb6caa589940dda290acd9f7a11","tarball":"https://registry.npmjs.org/@awdlab/jig-mcp/-/jig-mcp-0.0.1.tgz","fileCount":29,"unpackedSize":952137,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@awdlab%2fjig-mcp@0.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEiXh/6vnDUoa9xCiJVVQMOfb8Xmk/t4n8fVSuSU3pqeAiB+EwKM1gf+Hf1zrk2hyyj76H4zU/XYK5LTPE0MNgQrKg=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2478e41e-04c2-4ea5-8d66-8a186a4cf099"}},"directories":{},"maintainers":[{"name":"loaderb0t","email":"rndmb0t@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/jig-mcp_0.0.1_1787824956978_0.8126279577792097"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-09T01:22:46.200Z","modified":"2026-08-27T10:02:37.487Z","0.0.1-next.1":"2026-08-09T01:22:46.534Z","0.0.1":"2026-08-27T10:02:37.133Z"},"bugs":{"url":"https://github.com/awdlab/jig/issues"},"license":"MIT","homepage":"https://jig.awdlab.dev","keywords":["angular","mcp","model-context-protocol","ai","awdlab","jig"],"repository":{"type":"git","url":"git+https://github.com/awdlab/jig.git","directory":"packages/mcp"},"description":"Model Context Protocol server exposing @awdlab/jig docs, API and concepts to AI coding agents.","maintainers":[{"name":"loaderb0t","email":"rndmb0t@gmail.com"}],"readme":"<div align=\"center\">\n\n<img src=\"https://raw.githubusercontent.com/awdlab/jig/main/apps/docs/public/img/logo-mark.png\" alt=\"\" width=\"88\" />\n\n# @awdlab/jig-mcp\n\n**[Model Context Protocol](https://modelcontextprotocol.io) server that teaches AI coding\nagents [@awdlab/jig](https://www.npmjs.com/package/@awdlab/jig)** — every\ncontrol's API, selector and usage, plus the concept guides (theming, colors, passthrough,\nstate, …).\n\n[![Main package](https://img.shields.io/badge/Main%20package-%40awdlab%2Fjig-e90464?style=for-the-badge)](https://www.npmjs.com/package/@awdlab/jig)\n[![Documentation](https://img.shields.io/badge/Documentation-jig.awdlab.dev-8514f5?style=for-the-badge)](https://jig.awdlab.dev)\n\n</div>\n\nPoint Claude Code, Cursor, Windsurf, or any MCP client at it and the agent stops\nguessing component names and input signatures.\n\nFour capabilities:\n\n1. **Docs / explain** — control APIs, selectors, usage, concept guides.\n2. **Theming** — token schema + per-control anatomy + theme-part scaffolds.\n3. **Migration** — PrimeNG / Angular Material / Syncfusion → jig component maps.\n4. **Feature dev** — control recommendations + composition recipes.\n\nAll layers are **advisory / knowledge-only**: the server returns knowledge and\nscaffolds; the host agent makes the file edits.\n\n## How it works\n\nThe server is **self-contained and read-only**. At runtime it serves a single\nbundled JSON — `data/knowledge-pack.json` — and never touches your repo or the\nnetwork. That makes it safe to `npx` inside any project.\n\n```\nbuild time (in this monorepo, at publish)      runtime (in a consumer's repo)\n┌────────────────────────────────────────┐     ┌──────────────────────────────┐\n│ api-docs-gen typedoc.json ─┐            │     │ npx @awdlab/jig-mcp    │\n│ components/**/index.md    ─┼─► build-   │ ──► │  (stdio JSON-RPC)            │\n│ guides/**/index.md        ─┘   pack.ts  │     │  reads data/knowledge-pack   │\n│                              → data/*.json     │  serves resources/tools/     │\n└────────────────────────────────────────┘     │  prompts                     │\n                                                └──────────────────────────────┘\n```\n\nKnowledge is **hybrid**:\n\n- **Auto-derived** from the monorepo: control API (TypeDoc), real selectors\n  (decorator source), per-control theme anatomy (theme templates), per-theme\n  kind/color options, and real usage examples (the docs demos' templates).\n- **Hand-authored** in [`authored/`](./authored): the theme token schema,\n  migration maps, and composition recipes — the judgment that can't be derived.\n\nRebuild the pack whenever controls, docs, or authored knowledge change\n(`pnpm build:pack`), so it can never silently drift.\n\n## What it exposes\n\n**Tools** (agent calls these):\n\n| Tool                     | Purpose                                                            |\n| ------------------------ | ------------------------------------------------------------------ |\n| `list_controls`          | Discover every control/directive with selector + one-liner.        |\n| `get_control`            | Full reference for one control: inputs/outputs, types, prose docs. |\n| `search_docs`            | Ranked keyword search across controls **and** concept guides.      |\n| `get_theme_schema`       | Token vocabulary + `createThemePart` authoring API + gotchas.      |\n| `get_control_theme`      | A control's themeable anatomy (`c()` classes, `d()` deps).         |\n| `scaffold_theme_part`    | Ready-to-edit `createThemePart` skeleton for a control.            |\n| `get_theme_options`      | Theme-dependent `kind`/`color` values (per built-in theme).        |\n| `list_migration_sources` | Source libraries with a migration map + coverage.                  |\n| `map_component`          | One source component → jig target, with prop/event maps + gaps.    |\n| `search_migration`       | Find the jig equivalent for a source component/feature.            |\n| `recommend_controls`     | Suggest controls + recipes for a feature goal.                     |\n\n**Resources** (browsable, addressable): `jig://control/<name>`,\n`jig://concept/<slug>`, `jig://recipe/<slug>`, `jig://example/<slug>` (real,\ncompiled usage snippets auto-derived from the docs demos).\n\n**Prompts** (surfaced as slash-commands / quick actions where supported):\n`explain_control`, `explain_concept`, `author_theme`, `migrate_library`,\n`build_feature` — each returns a ready-made request with the relevant reference\ninlined.\n\n## Using it in a client\n\nOnce published, no install step is needed — clients run it via `npx`.\n\n**Claude Code** (`.mcp.json` in the consumer's project, or user settings):\n\n```json\n{\n  \"mcpServers\": {\n    \"jig\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@awdlab/jig-mcp\"]\n    }\n  }\n}\n```\n\n**Cursor** (`.cursor/mcp.json`) and **Windsurf** use the same `mcpServers`\nshape. Any MCP-capable client works — the server is client-agnostic.\n\n## Skills\n\nThe package also ships agent **skills** under [`skills/`](./skills) — procedural\nguides that tell an agent _how_ to use the MCP tools for a task (`jig`,\n`jig-migrate`, `jig-theme`, `jig-build-feature`). Each is a `SKILL.md` with\n`name` + `description` frontmatter, the convention used by the\n[`skills`](https://github.com/vercel-labs/skills) CLI and compatible installers.\n\nInstall them into a project (they compose with the MCP server — skills carry the\nprocedure, MCP carries the data):\n\n```bash\n# From the repo (the skills CLI resolves git repos / subpaths / local paths):\nnpx skills@latest add https://github.com/awdlab/jig/tree/main/packages/mcp/skills\n\n# ...or point at a local checkout / the installed package folder:\nnpx skills@latest add ./node_modules/@awdlab/jig-mcp/skills\n```\n\nThe CLI detects your agent and installs to `.claude/skills/`, `.cursor/rules/`,\n`.agents/skills/`, etc. Pick specific skills with `--skill <name>` or take all\nwith `--all`.\n\n### Built-in installer (`init`)\n\nThe package also has its own installer that needs no external CLI — it copies the\nbundled skills into your project and interactively (via `awesome-logging`) asks\nbefore overwriting an existing skill, comparing versions:\n\n```bash\nnpx @awdlab/jig-mcp init              # → ./.claude/skills, prompts on conflicts\nnpx @awdlab/jig-mcp init --dir .cursor/rules\nnpx @awdlab/jig-mcp init --skill jig-migrate --yes\nnpx @awdlab/jig-mcp init --list       # list bundled skills and exit\n```\n\nAn up-to-date skill (same version) is left untouched; an older one prompts to\nupdate (auto-yes with `--yes` or when there is no TTY).\n\n> Note: the `skills` CLI's sources are git repos, git URLs, and local paths — an\n> npm spec like `@awdlab/jig-mcp` is not itself a source, so install from\n> the repo subpath or the package's `skills/` folder on disk (shown above). The\n> skills are published with the package, so the local-path form works after a\n> plain `npm install`. The **MCP prompts** (`author_theme`, `migrate_library`,\n> `build_feature`) provide the same procedures in-protocol for any MCP client\n> without a separate install.\n\n## Development (in this monorepo)\n\n```bash\n# 1. Make sure the docs API data is fresh (produces typedoc.json)\npnpm --filter @awdlab/jig api-docs:generate\n\n# 2. Rebuild the bundled knowledge pack from typedoc + docs markdown\npnpm --filter @awdlab/jig-mcp build:pack\n\n# 3. Compile the server\npnpm --filter @awdlab/jig-mcp build:server\n\n# Run against source without building (stdio):\npnpm --filter @awdlab/jig-mcp start\n\n# Explore interactively with the MCP Inspector:\npnpm --filter @awdlab/jig-mcp inspect\n```\n\n## Layout\n\n```\nauthored/               Hand-authored knowledge (merged into the pack)\n  theme-schema.json       Theme token schema + authoring overview\n  migrations/*.json       Per-source-library component maps\n  recipes/*.md            Composition recipes (frontmatter + walkthrough)\nskills/                 Agent skills (SKILL.md per task) for the skills CLI\nscripts/build-pack.ts   Monorepo-only pack generator (typedoc + md + authored → JSON)\ndata/knowledge-pack.json Generated at build time (gitignored), shipped in the package\nsrc/pack.ts             Pack schema + runtime loader\nsrc/render.ts           Markdown rendering + search helpers\nsrc/resources.ts        jig://control, jig://concept, jig://recipe resources\nsrc/tools.ts            list_controls, get_control, search_docs\nsrc/prompts.ts          explain_control, explain_concept\nsrc/theming.ts          get_theme_schema, get_control_theme, scaffold_theme_part, get_theme_options, author_theme\nsrc/migration.ts        list_migration_sources, map_component, search_migration, migrate_library\nsrc/feature.ts          recommend_controls, build_feature\nsrc/server.ts           Wires the pack into an McpServer\nsrc/init.ts             `init` command — installs bundled skills (awesome-logging prompts)\nsrc/index.ts            Entry point (bin): stdio server, or `init` subcommand\n```\n","readmeFilename":"README.md"}