{
  "markdown": "# generate-tech-stack\n\n<!-- mcp-name: io.github.askuma/generate-tech-stack -->\n\nScan any project and generate a visual `TECH_STACK.html` page — light/dark theme, auto-adapting, zero config.\n\nWorks as a **Claude Code skill**, **MCP server**, or **GitHub Copilot Extension**.\n\n**[Live demo →](https://askuma.github.io/generate-tech-stack/)** — generated from\n[fastapi/full-stack-fastapi-template](https://github.com/fastapi/full-stack-fastapi-template), unmodified.\n\n![Running generate-tech-stack against fastapi/full-stack-fastapi-template, from pip install to the generated page](https://raw.githubusercontent.com/askuma/generate-tech-stack/main/docs/demo.gif)\n\n*(real CLI output, unscripted — [static screenshot](https://raw.githubusercontent.com/askuma/generate-tech-stack/main/docs/preview.png) if you'd rather not autoplay)*\n\n---\n\n## What it produces\n\nEvery generated page contains:\n\n| Section | Description |\n|---|---|\n| **Stat row** | Total tools · Categories · AI Backends · Data Stores |\n| **Architecture diagram** | Layered flow diagram (Consumer → API → AI/NLP → Data/Obs/Frontend) |\n| **Bar chart** | Horizontal bars per category, colour-matched |\n| **Tool cards** | One card per category; each tool shows a dot, name, description, and badge |\n| **Badge legend** | Explains `pip`, `dep`, `optional`, `core`, `deploy`, `ci`, etc. |\n| **Footer** | Project name · tool count · generation date |\n| **Guided tour** | Spotlight walkthrough of every section, shown automatically the first time a report is opened; replay anytime with the `?` button |\n| **Theme toggle** | Sun/moon button next to the tour button switches between dark and light mode |\n\n---\n\n## Repository layout\n\n```\n~/.claude/skills/generate-tech-stack/\n├── SKILL.md                  ← Claude Code skill definition\n├── INSTALL.md                ← detailed per-platform installation guide\n├── README.md                 ← this file\n├── scripts/\n│   └── analyze.py            ← core scanner + HTML renderer (no dependencies)\n├── mcp/\n│   ├── server.py             ← MCP stdio server (pip install mcp)\n│   └── requirements.txt\n└── copilot/\n    ├── index.js              ← GitHub Copilot Extension (Express)\n    ├── package.json\n    └── openai_function.json  ← OpenAI / Antigravity function definition\n```\n\n---\n\n## Usage\n\n### pip (CLI + MCP server)\n\n```bash\npip install generate-tech-stack-mcp\n\ngenerate-tech-stack . TECH_STACK.html    # CLI: scan and write the report\ngenerate-tech-stack-mcp                   # stdio MCP server\n```\n\nWith pip installed, any MCP host config reduces to:\n\n```json\n{\n  \"mcpServers\": {\n    \"generate-tech-stack\": { \"command\": \"generate-tech-stack-mcp\" }\n  }\n}\n```\n\n### Claude Code\n\n```\n/generate-tech-stack\n```\n\nRun it from any project directory. The skill calls `scripts/analyze.py` and opens the result in your browser.\n\n### MCP (Claude Desktop, VS Code, Cursor, Zed, Windsurf, Continue)\n\n```bash\npip install mcp\n```\n\nAdd to your host's MCP config (replace the path with your actual home directory):\n\n```json\n{\n  \"mcpServers\": {\n    \"generate-tech-stack\": {\n      \"command\": \"python3\",\n      \"args\": [\"/home/<you>/.claude/skills/generate-tech-stack/mcp/server.py\"]\n    }\n  }\n}\n```\n\nThen ask: `generate my tech stack` or `/generate-tech-stack`.\n\n**MCP tools exposed:**\n- `generate_tech_stack` — scans a project, writes `TECH_STACK.html`, opens in browser\n- `list_tech_stack` — returns a JSON summary, no file written\n\n### GitHub Copilot Extension\n\n```bash\ncd copilot\nnpm install\nnpm start        # listens on port 3000\nngrok http 3000  # expose for GitHub to reach\n```\n\nRegister a GitHub App with **Copilot Extension** enabled, set the Agent URL to `https://your-url/agent`, and install it on your account. Then in Copilot Chat:\n\n```\n@generate-tech-stack /generate-tech-stack\n@generate-tech-stack /generate-tech-stack /path/to/project\n```\n\n### Command line (standalone)\n\n```bash\npython3 ~/.claude/skills/generate-tech-stack/scripts/analyze.py /path/to/project\n# output: /path/to/project/TECH_STACK.html\n\n# custom output path:\npython3 scripts/analyze.py . ~/Desktop/TECH_STACK.html\n```\n\n`analyze.py` has no third-party dependencies — just Python 3.8+.\n\n---\n\n## What gets detected\n\n| Source file | Detected tools |\n|---|---|\n| `requirements.txt` / `pyproject.toml` | Python packages (web, DB, AI, testing, observability, security…) |\n| `package.json` | Node / npm packages (frameworks, frontend, DB drivers, tooling) |\n| `go.mod` | Go language |\n| `Cargo.toml` | Rust language |\n| `pom.xml` / `build.gradle` | Java / Kotlin |\n| `Gemfile` | Ruby |\n| `composer.json` | PHP |\n| `**/*.py` source | Optional/dynamic SDKs via `importlib.find_spec()` patterns |\n| `docker-compose.yml` / `.env` | PostgreSQL, Redis, MongoDB, SQLite connection strings |\n| `Dockerfile` | Docker |\n| `docker-compose.yml` | Docker Compose |\n| `.github/workflows/` | GitHub Actions |\n| `.gitlab-ci.yml` | GitLab CI |\n| `alembic.ini` | Alembic migrations |\n| `nginx.conf` / `Caddyfile` | Reverse proxy |\n| `tsconfig.json` / `src/**/*.ts` | TypeScript |\n\n---\n\n## Detected categories\n\n| Category | Colour | Examples |\n|---|---|---|\n| Language & Runtime | Green | Python, Go, Rust, TypeScript |\n| Web / API Framework | Purple | FastAPI, Express, Django, Next.js |\n| Database / Storage | Green | SQLAlchemy, Prisma, Redis, ChromaDB |\n| AI SDKs | Blue | OpenAI, Anthropic, LangChain, GuardrailsAI, NVIDIA NeMo, Presidio |\n| NLP / ML | Teal | spaCy, Transformers, Sentence Transformers |\n| Observability | Teal | Prometheus, OpenTelemetry, Sentry, Loguru |\n| Testing | Yellow | pytest, Jest, Cypress, Playwright |\n| Security / Auth | Rose | PyJWT, bcrypt, Authlib, Helmet |\n| Infrastructure / Deploy | Orange | Docker, Kubernetes, Celery, Boto3 |\n| Frontend / Dashboard | Gray | React, Vue, Tailwind, Recharts |\n| Messaging / Comms | Blue | Kafka, RabbitMQ, Socket.io |\n| Dev Tools | Gray | ESLint, Prettier, Vite, TypeScript |\n\n---\n\n## Design\n\nDark by default with a light-mode toggle (top-right corner, no persistence — resets to dark on reload). Fonts: **IBM Plex Sans** (body) + **JetBrains Mono** (code/badges), loaded from Google Fonts. Vanilla JS powers the guided tour and theme toggle only — everything else is plain HTML + CSS. Self-contained single file, opens in any browser offline.\n\n---\n\n## See also\n\n- [INSTALL.md](INSTALL.md) — per-platform setup instructions\n- [SKILL.md](SKILL.md) — Claude Code skill specification\n",
  "bytes": 6392,
  "sha": "378dd8ee3150dacb8dd1965331575e74456c28207827a224b97e92041953f258",
  "repo_slug": "askuma/generate-tech-stack",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_askuma_generate_tech_stack_f4084a78/readme"
}