Skip to main content

Generate a visual technology-stack inventory (TECH_STACK.html) from any codebase — languages, frameworks, databases, AI SDKs, testing, and infra. CLI + MCP server, stdlib-only scanner.

Project description

generate-tech-stack

Scan any project and generate a visual TECH_STACK.html page — dark-mode, auto-adapting, zero config.

Works as a Claude Code skill, MCP server, or GitHub Copilot Extension.

Live demo → — generated from fastapi/full-stack-fastapi-template, unmodified.

TECH_STACK.html generated for full-stack-fastapi-template


What it produces

Every generated page contains:

Section Description
Stat row Total tools · Categories · AI Backends · Data Stores
Architecture diagram Layered flow diagram (Consumer → API → AI/NLP → Data/Obs/Frontend)
Bar chart Horizontal bars per category, colour-matched
Tool cards One card per category; each tool shows a dot, name, description, and badge
Badge legend Explains pip, dep, optional, core, deploy, ci, etc.
Footer Project name · tool count · generation date

Repository layout

~/.claude/skills/generate-tech-stack/
├── SKILL.md                  ← Claude Code skill definition
├── INSTALL.md                ← detailed per-platform installation guide
├── README.md                 ← this file
├── scripts/
│   └── analyze.py            ← core scanner + HTML renderer (no dependencies)
├── mcp/
│   ├── server.py             ← MCP stdio server (pip install mcp)
│   └── requirements.txt
└── copilot/
    ├── index.js              ← GitHub Copilot Extension (Express)
    ├── package.json
    └── openai_function.json  ← OpenAI / Antigravity function definition

Usage

pip (CLI + MCP server)

pip install generate-tech-stack-mcp

generate-tech-stack . TECH_STACK.html    # CLI: scan and write the report
generate-tech-stack-mcp                   # stdio MCP server

With pip installed, any MCP host config reduces to:

{
  "mcpServers": {
    "generate-tech-stack": { "command": "generate-tech-stack-mcp" }
  }
}

Claude Code

/generate-tech-stack

Run it from any project directory. The skill calls scripts/analyze.py and opens the result in your browser.

MCP (Claude Desktop, VS Code, Cursor, Zed, Windsurf, Continue)

pip install mcp

Add to your host's MCP config (replace the path with your actual home directory):

{
  "mcpServers": {
    "generate-tech-stack": {
      "command": "python3",
      "args": ["/home/<you>/.claude/skills/generate-tech-stack/mcp/server.py"]
    }
  }
}

Then ask: generate my tech stack or /generate-tech-stack.

MCP tools exposed:

  • generate_tech_stack — scans a project, writes TECH_STACK.html, opens in browser
  • list_tech_stack — returns a JSON summary, no file written

GitHub Copilot Extension

cd copilot
npm install
npm start        # listens on port 3000
ngrok http 3000  # expose for GitHub to reach

Register 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:

@generate-tech-stack /generate-tech-stack
@generate-tech-stack /generate-tech-stack /path/to/project

Command line (standalone)

python3 ~/.claude/skills/generate-tech-stack/scripts/analyze.py /path/to/project
# output: /path/to/project/TECH_STACK.html

# custom output path:
python3 scripts/analyze.py . ~/Desktop/TECH_STACK.html

analyze.py has no third-party dependencies — just Python 3.8+.


What gets detected

Source file Detected tools
requirements.txt / pyproject.toml Python packages (web, DB, AI, testing, observability, security…)
package.json Node / npm packages (frameworks, frontend, DB drivers, tooling)
go.mod Go language
Cargo.toml Rust language
pom.xml / build.gradle Java / Kotlin
Gemfile Ruby
composer.json PHP
**/*.py source Optional/dynamic SDKs via importlib.find_spec() patterns
docker-compose.yml / .env PostgreSQL, Redis, MongoDB, SQLite connection strings
Dockerfile Docker
docker-compose.yml Docker Compose
.github/workflows/ GitHub Actions
.gitlab-ci.yml GitLab CI
alembic.ini Alembic migrations
nginx.conf / Caddyfile Reverse proxy
tsconfig.json / src/**/*.ts TypeScript

Detected categories

Category Colour Examples
Language & Runtime Green Python, Go, Rust, TypeScript
Web / API Framework Purple FastAPI, Express, Django, Next.js
Database / Storage Green SQLAlchemy, Prisma, Redis, ChromaDB
AI Guardrail SDKs Blue GuardrailsAI, NVIDIA NeMo, Presidio, Lakera
NLP / ML Teal spaCy, Transformers, Sentence Transformers
Observability Teal Prometheus, OpenTelemetry, Sentry, Loguru
Testing Yellow pytest, Jest, Cypress, Playwright
Security / Auth Rose PyJWT, bcrypt, Authlib, Helmet
Infrastructure / Deploy Orange Docker, Kubernetes, Celery, Boto3
Frontend / Dashboard Gray React, Vue, Tailwind, Recharts
Messaging / Comms Blue Kafka, RabbitMQ, Socket.io
Dev Tools Gray ESLint, Prettier, Vite, TypeScript

Design

Dark-mode only. Fonts: IBM Plex Sans (body) + JetBrains Mono (code/badges), loaded from Google Fonts. No JavaScript — pure HTML + CSS. Self-contained single file, opens in any browser offline.


See also

  • INSTALL.md — per-platform setup instructions
  • SKILL.md — Claude Code skill specification

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

generate_tech_stack_mcp-0.2.0.tar.gz (22.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

generate_tech_stack_mcp-0.2.0-py3-none-any.whl (20.9 kB view details)

Uploaded Python 3

File details

Details for the file generate_tech_stack_mcp-0.2.0.tar.gz.

File metadata

  • Download URL: generate_tech_stack_mcp-0.2.0.tar.gz
  • Upload date:
  • Size: 22.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for generate_tech_stack_mcp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 e8596df0ae55f45d30eaef6f887e171a471c25b40eaa8838c1fbece83239b14a
MD5 d88c871c788ab4b012b4f43fefbfb466
BLAKE2b-256 a76a3c820c5d7a4830c91b8beb66d94ebddd738fe16f79e5c40ba5b041c59895

See more details on using hashes here.

Provenance

The following attestation bundles were made for generate_tech_stack_mcp-0.2.0.tar.gz:

Publisher: publish.yml on askuma/generate-tech-stack

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file generate_tech_stack_mcp-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for generate_tech_stack_mcp-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 77b353a901eb08dd1ec61c49117c358cd06786057669a3781f673fcd9db79756
MD5 bf13599ee53baa8dc05dbfb5c93c8632
BLAKE2b-256 d1d640a4b75b2b42d9d75d2180358ec45af4258fe8868d9e30404b7a82401934

See more details on using hashes here.

Provenance

The following attestation bundles were made for generate_tech_stack_mcp-0.2.0-py3-none-any.whl:

Publisher: publish.yml on askuma/generate-tech-stack

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page