Skip to content

verygoodplugins/mcp-ecosystem

Repository files navigation

MCP Ecosystem

Shared infrastructure, templates, and standards for Very Good Plugins MCP servers.

Our MCP Servers

Server Description npm/PyPI MCP Registry
mcp-automem Graph-vector memory for AI assistants @verygoodplugins/mcp-automem
mcp-edd Easy Digital Downloads @verygoodplugins/mcp-edd
mcp-evernote Evernote note management @verygoodplugins/mcp-evernote
mcp-freescout FreeScout helpdesk integration @verygoodplugins/mcp-freescout
mcp-local-wp WordPress via Local by Flywheel @verygoodplugins/mcp-local-wp
mcp-pirsch Pirsch Analytics integration @verygoodplugins/mcp-pirsch
mcp-toggl Toggl Track time tracking @verygoodplugins/mcp-toggl
mcp-ical macOS Calendar integration PyPI
telegram-mcp Telegram messaging PyPI
whatsapp-mcp WhatsApp messaging GitHub Release
streamdeck-mcp Elgato Stream Deck control PyPI

Repository Structure

mcp-ecosystem/
├── README.md                    # This file
├── STANDARDS.md                 # Coding standards for all servers
├── PUBLISHING.md                # Publishing checklist
├── config/
│   └── ecosystem-policy.json    # Machine-readable repo profiles and policy
├── templates/
│   ├── typescript/              # Templates for TypeScript MCP servers
│   │   └── .github/workflows/
│   │       ├── ci.yml
│   │       ├── dependabot-auto-merge.yml
│   │       ├── release-please.yml
│   │       └── security.yml
│   └── python/                  # Templates for Python MCP servers
│       └── .github/workflows/
│           ├── ci.yml
│           ├── dependabot-auto-merge.yml
│           ├── release.yml
│           └── security.yml
├── scripts/
│   ├── audit-server.sh          # Audit a server against standards
│   ├── apply-templates.sh       # Copy templates to a server
│   ├── configure-github-defaults.sh # Apply repo-level GitHub defaults
│   ├── render-managed-files.mjs # Generate profile-aware managed workflows/config
│   ├── validate-sync.mjs        # Preflight generated diffs before opening PRs
│   ├── register-mcp.sh          # Submit to MCP Registry
│   └── update-utm-links.sh      # Update README links with UTM
└── server-inventory.json        # Machine-readable inventory

Quick Start

Audit an existing server

./scripts/audit-server.sh ../mcp-freescout

Apply templates to a server

./scripts/apply-templates.sh typescript ../mcp-freescout

Preview downstream template drift

./scripts/propagate-templates.sh --server mcp-pirsch --dry-run

Validate a generated sync before opening a PR

./scripts/render-managed-files.mjs whatsapp-mcp ../whatsapp-mcp
./scripts/sync-template-baseline.mjs whatsapp-mcp ../whatsapp-mcp
./scripts/validate-sync.mjs whatsapp-mcp ../whatsapp-mcp

Register a server in MCP Registry

./scripts/register-mcp.sh ../mcp-freescout

Standards

See STANDARDS.md for complete coding standards.

Key requirements:

  • TypeScript: Node.js ≥18, ES2022, strict mode, Vitest, release-please
  • Python: Python ≥3.11, pyproject.toml, pytest, ruff
  • All: CI/CD, security scanning, MCP Registry, UTM tracking

Source Of Truth

mcp-ecosystem is the source of truth for shared MCP server workflows, config, and baseline dependency versions.

  • Update templates and shared baselines here first.
  • Merge the source-of-truth change to main.
  • server-inventory.json now carries repo capabilities such as packagePath, ciProfile, releaseProfile, securityProfile, templateTier, and propagate.
  • config/ecosystem-policy.json is the machine-readable source for shared CI/release/security policy and repo defaults.
  • .github/workflows/propagate-templates.yml opens or updates chore/template-sync PRs in downstream repos from server-inventory.json.
  • scripts/render-managed-files.mjs generates profile-aware managed workflows/config instead of force-copying one workflow shape into every repo.
  • Managed standard workflow check contexts are normalized in this repo first: TypeScript CI, Python CI, and Lint PR Title.
  • scripts/sync-template-baseline.mjs updates managed dependency baselines with parsed JSON/TOML data and reports when lockfiles need regeneration.
  • scripts/validate-sync.mjs blocks PR creation when the generated diff is incompatible with the repo profile.
  • Org rulesets are the canonical branch-protection layer for MCP repos; repo-level GitHub booleans like allow_auto_merge are applied separately with scripts/configure-github-defaults.sh.
  • See STANDARDS.md for the current org rulesets, repo-level defaults, and rollout policy.

The propagation workflow requires an org/repo secret named VGP_TEMPLATE_SYNC_TOKEN with access to the downstream repos and workflow files.

Publishing

See PUBLISHING.md for the complete publishing checklist.

Links

Follow

About

Shared infrastructure, templates, and standards for Very Good Plugins MCP servers

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors