{"id":48603579,"url":"https://github.com/tmhsdigital/developer-tools-directory","last_synced_at":"2026-04-25T16:02:11.494Z","repository":{"id":350088085,"uuid":"1205241208","full_name":"TMHSDigital/Developer-Tools-Directory","owner":"TMHSDigital","description":"Centralized catalog, standards, and scaffolding for 9 TMHSDigital developer tools - 177 skills, 71 rules, 371 MCP tools","archived":false,"fork":false,"pushed_at":"2026-04-22T20:22:23.000Z","size":1445,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-22T22:09:17.480Z","etag":null,"topics":["cursor-ide","cursor-plugin","developer-tools","github-actions","github-pages","mcp-server","scaffolding"],"latest_commit_sha":null,"homepage":"https://tmhsdigital.github.io/Developer-Tools-Directory/","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TMHSDigital.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-08T19:19:40.000Z","updated_at":"2026-04-22T20:23:45.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/TMHSDigital/Developer-Tools-Directory","commit_stats":null,"previous_names":["tmhsdigital/developer-tools-directory"],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/TMHSDigital/Developer-Tools-Directory","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TMHSDigital%2FDeveloper-Tools-Directory","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TMHSDigital%2FDeveloper-Tools-Directory/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TMHSDigital%2FDeveloper-Tools-Directory/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TMHSDigital%2FDeveloper-Tools-Directory/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TMHSDigital","download_url":"https://codeload.github.com/TMHSDigital/Developer-Tools-Directory/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TMHSDigital%2FDeveloper-Tools-Directory/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32267710,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T09:15:33.318Z","status":"ssl_error","status_checked_at":"2026-04-25T09:15:31.997Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cursor-ide","cursor-plugin","developer-tools","github-actions","github-pages","mcp-server","scaffolding"],"created_at":"2026-04-08T23:03:22.017Z","updated_at":"2026-04-25T16:02:11.489Z","avatar_url":"https://github.com/TMHSDigital.png","language":"Jinja","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n \u003cimg src=\"assets/logo.png\" alt=\"Developer Tools Directory\" width=\"120\" /\u003e\n\u003c/div\u003e\n\n\u003ch1 align=\"center\"\u003eDeveloper Tools Directory\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n \u003cstrong\u003eCentralized catalog, standards, and scaffolding for TMHSDigital Cursor IDE plugins, MCP servers, and developer tools.\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n \u003ca href=\"https://tmhsdigital.github.io/Developer-Tools-Directory/\"\u003e\u003cimg src=\"https://img.shields.io/badge/catalog-live-7c3aed\" alt=\"Catalog\" /\u003e\u003c/a\u003e\n \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-CC--BY--NC--ND--4.0-green\" alt=\"License: CC BY-NC-ND 4.0\" /\u003e\u003c/a\u003e\n \u003ca href=\"https://github.com/TMHSDigital/Developer-Tools-Directory/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/TMHSDigital/Developer-Tools-Directory?style=flat\" alt=\"GitHub stars\" /\u003e\u003c/a\u003e\n \u003ca href=\"https://github.com/TMHSDigital/Developer-Tools-Directory/actions/workflows/validate.yml\"\u003e\u003cimg src=\"https://github.com/TMHSDigital/Developer-Tools-Directory/actions/workflows/validate.yml/badge.svg\" alt=\"Validate\" /\u003e\u003c/a\u003e\n \u003ca href=\"https://github.com/TMHSDigital/Developer-Tools-Directory/actions/workflows/pages.yml\"\u003e\u003cimg src=\"https://github.com/TMHSDigital/Developer-Tools-Directory/actions/workflows/pages.yml/badge.svg\" alt=\"Pages\" /\u003e\u003c/a\u003e\n \u003ca href=\"https://github.com/TMHSDigital/Developer-Tools-Directory/actions/workflows/codeql.yml\"\u003e\u003cimg src=\"https://github.com/TMHSDigital/Developer-Tools-Directory/actions/workflows/codeql.yml/badge.svg\" alt=\"CodeQL\" /\u003e\u003c/a\u003e\n \u003ca href=\"https://www.python.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/python-3.12+-3776ab?logo=python\u0026logoColor=white\" alt=\"Python 3.12+\" /\u003e\u003c/a\u003e\n \u003ca href=\"CONTRIBUTING.md\"\u003e\u003cimg src=\"https://img.shields.io/badge/PRs-welcome-brightgreen\" alt=\"PRs Welcome\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n \u003ca href=\"#tools\"\u003eTools\u003c/a\u003e \u0026bull;\n \u003ca href=\"#standards\"\u003eStandards\u003c/a\u003e \u0026bull;\n \u003ca href=\"#scaffold-generator\"\u003eScaffold\u003c/a\u003e \u0026bull;\n \u003ca href=\"https://tmhsdigital.github.io/Developer-Tools-Directory/\"\u003eCatalog Site\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n\u003c!-- registry:stats:start --\u003e\n\u003cp align=\"center\"\u003e\n 9 repos \u0026nbsp;\u0026bull;\u0026nbsp; 177 skills \u0026nbsp;\u0026bull;\u0026nbsp; 71 rules \u0026nbsp;\u0026bull;\u0026nbsp; 371 MCP tools\n\u003c/p\u003e\n\u003c!-- registry:stats:end --\u003e\n\n## How It Works\n\n```mermaid\nflowchart LR\n    A[\"registry.json\\n(source of truth)\"] --\u003e B[\"GitHub Pages\\ncatalog site\"]\n    A --\u003e C[\"README tables\\n(below)\"]\n    D[\"scaffold/\\ncreate-tool.py\"] --\u003e E[\"New repo with\\nall standards\"]\n    F[\"standards/\\n(conventions)\"] --\u003e D\n    G[\"site-template/\\nbuild_site.py\"] --\u003e H[\"Tool repo\\nGitHub Pages\"]\n```\n\n**Registry** tracks every tool repo. **Standards** document conventions for CI/CD, folder structure, manifests, and versioning. **Scaffold** generates new repos that follow those standards automatically. **Site template** provides a shared build system for tool repo GitHub Pages sites.\n\n## Tools\n\n\u003c!-- registry:tools:start --\u003e\n| Tool | Type | Skills | Rules | MCP\u0026nbsp;Tools | Links |\n|:-----|:-----|-------:|------:|------:|:------|\n| **CFX Developer Tools** | Plugin | 9 | 6 | 6 | [![Repo](https://img.shields.io/badge/repo-blue?logo=github)](https://github.com/TMHSDigital/CFX-Developer-Tools) [![Docs](https://img.shields.io/badge/docs-7c3aed)](https://tmhsdigital.github.io/CFX-Developer-Tools/) |\n| **Unity Developer Tools** | Plugin | 18 | 8 | 4 | [![Repo](https://img.shields.io/badge/repo-blue?logo=github)](https://github.com/TMHSDigital/Unity-Developer-Tools) [![Docs](https://img.shields.io/badge/docs-7c3aed)](https://tmhsdigital.github.io/Unity-Developer-Tools/) |\n| **Docker Developer Tools** | Plugin | 17 | 10 | 150 | [![Repo](https://img.shields.io/badge/repo-blue?logo=github)](https://github.com/TMHSDigital/Docker-Developer-Tools) [![Docs](https://img.shields.io/badge/docs-7c3aed)](https://tmhsdigital.github.io/Docker-Developer-Tools/) [![npm](https://img.shields.io/badge/npm-cb3837?logo=npm\u0026logoColor=white)](https://www.npmjs.com/package/@tmhs/docker-mcp) |\n| **Home Lab Developer Tools** | Plugin | 22 | 11 | 50 | [![Repo](https://img.shields.io/badge/repo-blue?logo=github)](https://github.com/TMHSDigital/Home-Lab-Developer-Tools) [![Docs](https://img.shields.io/badge/docs-7c3aed)](https://tmhsdigital.github.io/Home-Lab-Developer-Tools/) [![npm](https://img.shields.io/badge/npm-cb3837?logo=npm\u0026logoColor=white)](https://www.npmjs.com/package/@tmhs/homelab-mcp) |\n| **Mobile App Developer Tools** | Plugin | 43 | 12 | 36 | [![Repo](https://img.shields.io/badge/repo-blue?logo=github)](https://github.com/TMHSDigital/Mobile-App-Developer-Tools) [![Docs](https://img.shields.io/badge/docs-7c3aed)](https://tmhsdigital.github.io/Mobile-App-Developer-Tools/) [![npm](https://img.shields.io/badge/npm-cb3837?logo=npm\u0026logoColor=white)](https://www.npmjs.com/package/@tmhs/mobile-mcp) |\n| **Plaid Developer Tools** | Plugin | 17 | 7 | 30 | [![Repo](https://img.shields.io/badge/repo-blue?logo=github)](https://github.com/TMHSDigital/Plaid-Developer-Tools) [![Docs](https://img.shields.io/badge/docs-7c3aed)](https://tmhsdigital.github.io/Plaid-Developer-Tools/) |\n| **Monday Cursor Plugin** | Plugin | 21 | 8 | 45 | [![Repo](https://img.shields.io/badge/repo-blue?logo=github)](https://github.com/TMHSDigital/Monday-Cursor-Plugin) [![Docs](https://img.shields.io/badge/docs-7c3aed)](https://tmhsdigital.github.io/Monday-Cursor-Plugin/) |\n| **Steam Cursor Plugin** | Plugin | 30 | 9 | 25 | [![Repo](https://img.shields.io/badge/repo-blue?logo=github)](https://github.com/TMHSDigital/Steam-Cursor-Plugin) [![Docs](https://img.shields.io/badge/docs-7c3aed)](https://tmhsdigital.github.io/Steam-Cursor-Plugin/) |\n| **Steam MCP Server** | MCP Server | - | - | 25 | [![Repo](https://img.shields.io/badge/repo-blue?logo=github)](https://github.com/TMHSDigital/steam-mcp) [![npm](https://img.shields.io/badge/npm-cb3837?logo=npm\u0026logoColor=white)](https://www.npmjs.com/package/@tmhs/steam-mcp) |\n\u003c!-- registry:tools:end --\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eTool descriptions\u003c/summary\u003e\n\n\u0026nbsp;\n\n\u003c!-- registry:descriptions:start --\u003e\n| Tool | Description |\n|:-----|:------------|\n| **CFX Developer Tools** | AI-powered Cursor IDE plugin for FiveM and RedM resource development |\n| **Unity Developer Tools** | Cursor IDE plugin for Unity game development with URP, HDRP, and Built-in render pipeline support |\n| **Docker Developer Tools** | Cursor IDE plugin for Docker workflows with container management, Compose, and Dockerfile support |\n| **Home Lab Developer Tools** | Home lab and Raspberry Pi workflows for Cursor with Docker Compose, monitoring, DNS, networking, and security |\n| **Mobile App Developer Tools** | Cursor plugin for mobile app development with React Native, Expo, and Flutter support |\n| **Plaid Developer Tools** | Cursor plugin and MCP companion for building on the Plaid API |\n| **Monday Cursor Plugin** | Cursor IDE plugin for Monday.com with boards, items, sprints, docs, dashboards, and GraphQL |\n| **Steam Cursor Plugin** | Steam and Steamworks integration for Cursor IDE for game developers, modders, and power users |\n| **Steam MCP Server** | MCP server for Steam and Steamworks APIs with store data, player stats, reviews, achievements, and workshop tools |\n\u003c!-- registry:descriptions:end --\u003e\n\n\u003c/details\u003e\n\n## Standards\n\nDocumented conventions for building new developer tools. All docs in [`standards/`](standards/).\n\n| Standard | Summary |\n|:---------|:--------|\n| [Folder Structure](standards/folder-structure.md) | Canonical repo layout for plugins and MCP servers |\n| [Plugin Manifest](standards/plugin-manifest.md) | `.cursor-plugin/plugin.json` specification and required fields |\n| [CI/CD](standards/ci-cd.md) | GitHub Actions workflows every repo must have |\n| [GitHub Pages](standards/github-pages.md) | Documentation site setup (static HTML or MkDocs Material) |\n| [Commit Conventions](standards/commit-conventions.md) | Conventional commits and version bumping rules |\n| [README Template](standards/readme-template.md) | Standard README structure and required sections |\n| [AGENTS.md Template](standards/agents-template.md) | AI agent guidance file structure |\n| [Versioning](standards/versioning.md) | Semver management and automated release flow |\n| [Release-doc-sync](standards/release-doc-sync.md) | Composite action contract for keeping CHANGELOG, CLAUDE, and ROADMAP in sync after auto-release |\n| [Testing](standards/testing.md) | Test frameworks, coverage bar, and CI wiring |\n| [Skills](standards/skills.md) | `SKILL.md` structure and frontmatter |\n| [Rules](standards/rules.md) | `.mdc` structure, globs, and the secrets rule pattern |\n| [MCP Server](standards/mcp-server.md) | Tool naming, runtime, transport, destructive ops |\n| [Security](standards/security.md) | Disclosure, secrets handling, workflow supply chain |\n| [Licensing](standards/licensing.md) | DCO + inbound license grant model |\n| [Scope](standards/scope.md) | What belongs in the directory and what does not |\n| [Lifecycle](standards/lifecycle.md) | Tool status transitions |\n| [Writing Style](standards/writing-style.md) | Prose conventions across all repos |\n\n\u003cdetails\u003e\n\u003csummary\u003eCore principles\u003c/summary\u003e\n\n\u0026nbsp;\n\n1. **Derived artifacts are generated, not edited** - `registry.json` is the single source of truth. README tables, catalog site, and About section are emitted from it.\n2. **Single branch** - All repos use `main` only. No develop, staging, or release branches.\n3. **Conventional commits** - Every commit follows the conventional format. Release workflows parse them to determine version bumps.\n4. **AI-agent friendly** - Every repo includes `AGENTS.md` and `.cursorrules`. Standards are written so an agent can apply them without guessing.\n5. **Inbound DCO, outbound CC-BY-NC-ND-4.0** - See [`standards/licensing.md`](standards/licensing.md).\n6. **Scope gate** - Tools must be developer-facing, Cursor or MCP native, and actively maintained. See [`standards/scope.md`](standards/scope.md).\n7. **Lifecycle transitions are explicit** - Tools move through documented states. See [`standards/lifecycle.md`](standards/lifecycle.md).\n\n\u003c/details\u003e\n\n## Scaffold Generator\n\nGenerate a fully standards-compliant repository from the command line.\n\n**Prerequisites:**\n\n\u003ca href=\"https://www.python.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/python-3.12+-3776ab?logo=python\u0026logoColor=white\" alt=\"Python 3.12+\" /\u003e\u003c/a\u003e \u003ca href=\"https://pypi.org/project/Jinja2/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Jinja2-3.1+-b41717?logo=jinja\u0026logoColor=white\" alt=\"Jinja2 3.1+\" /\u003e\u003c/a\u003e\n\n```bash\npip install Jinja2\n```\n\n```bash\npython scaffold/create-tool.py \\\n  --name \"Unreal Developer Tools\" \\\n  --description \"Cursor plugin for Unreal Engine development\" \\\n  --mcp-server \\\n  --skills 5 \\\n  --rules 3\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eAll options\u003c/summary\u003e\n\n\u0026nbsp;\n\n| Flag | Required | Default | Description |\n|:-----|:---------|:--------|:------------|\n| `--name` | Yes | -- | Display name (e.g., \"Unreal Developer Tools\") |\n| `--description` | Yes | -- | One-line description |\n| `--slug` | No | auto | Kebab-case identifier (derived from name) |\n| `--type` | No | `cursor-plugin` | `cursor-plugin` or `mcp-server` |\n| `--mcp-server` | No | false | Include MCP server scaffold |\n| `--skills N` | No | 0 | Number of placeholder skill directories |\n| `--rules N` | No | 0 | Number of placeholder rule files |\n| `--license` | No | `cc-by-nc-nd-4.0` | `cc-by-nc-nd-4.0`, `mit`, or `apache-2.0` |\n| `--output` | No | `./output` | Output directory |\n| `--author-name` | No | TMHSDigital | Author name for manifests |\n| `--author-email` | No | contact@... | Author email |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eWhat it generates\u003c/summary\u003e\n\n\u0026nbsp;\n\n- Full folder structure per the [standard](standards/folder-structure.md)\n- Populated `plugin.json` with provided metadata\n- All 4 core GitHub Actions workflows (validate, release, pages, stale)\n- Skeleton docs: `AGENTS.md`, `CLAUDE.md`, `README.md`, `CONTRIBUTING.md`, `CHANGELOG.md`, `CODE_OF_CONDUCT.md`, `SECURITY.md`, `ROADMAP.md`\n- GitHub Pages site template (`docs/index.html`)\n- MCP server scaffold (if `--mcp-server`): `server.py`, `tools/`, `data/`, `requirements.txt`\n- `.cursorrules`, `.gitignore`, `LICENSE`\n\n\u003c/details\u003e\n\n## Project Structure\n\n```\nDeveloper-Tools-Directory/\n  .github/\n    workflows/             CI/CD (validate, pages, release, stale, codeql, dep-review, label-sync)\n    release-drafter.yml    Release notes category config\n  assets/                  Logo\n  docs/                    GitHub Pages catalog site\n  scaffold/                Repo generator + Jinja2 templates\n  site-template/           Shared GitHub Pages build system for tool repos\n    build_site.py          Reads plugin.json, skills/, rules/, mcp-tools.json -\u003e index.html\n    template.html.j2       Jinja2 HTML template with configurable branding\n    fonts/                 Self-hosted Inter + JetBrains Mono woff2\n    SETUP-PROMPT.md        Copy-paste prompt for applying template to a repo\n  standards/               Convention documentation (9 docs)\n  registry.json            Tool registry (source of truth)\n  AGENTS.md                AI agent guidance\n  CLAUDE.md                Claude Code project docs\n  .cursorrules             Cursor IDE agent rules\n```\n\n## Contributing\n\n\u003cp\u003e\n \u003ca href=\"CONTRIBUTING.md\"\u003e\u003cimg src=\"https://img.shields.io/badge/contributing-guide-blue\" alt=\"Contributing Guide\" /\u003e\u003c/a\u003e\n \u003ca href=\"CODE_OF_CONDUCT.md\"\u003e\u003cimg src=\"https://img.shields.io/badge/code%20of%20conduct-Contributor%20Covenant%202.1-4baaaa\" alt=\"Code of Conduct\" /\u003e\u003c/a\u003e\n \u003ca href=\"SECURITY.md\"\u003e\u003cimg src=\"https://img.shields.io/badge/security-policy-red\" alt=\"Security Policy\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nPull requests welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for setup, how-to guides, and PR process.\n\n## License\n\n\u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-CC--BY--NC--ND--4.0-green\" alt=\"License: CC BY-NC-ND 4.0\" /\u003e\u003c/a\u003e\n\n---\n\n\u003cp align=\"center\"\u003e\n \u003cstrong\u003eBuilt by \u003ca href=\"https://github.com/TMHSDigital\"\u003eTMHSDigital\u003c/a\u003e\u003c/strong\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmhsdigital%2Fdeveloper-tools-directory","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftmhsdigital%2Fdeveloper-tools-directory","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmhsdigital%2Fdeveloper-tools-directory/lists"}