No description
  • Java 89.6%
  • Shell 10.4%
Find a file
FTMahringer a48a06803f feat(template): add GitHub MCP scaffold
Add a declarative MCP example based on the official GitHub MCP server.\n\nKeep the scaffold YAML-only with a single required token secret plus optional GitHub Enterprise host override.
2026-05-19 01:25:37 +02:00
channel feat: full rewrite — type-based scaffold structure for synapse-plugin-api v1.0.0 2026-05-12 16:31:06 +02:00
mcp feat(template): add GitHub MCP scaffold 2026-05-19 01:25:37 +02:00
model-provider feat: full rewrite — type-based scaffold structure for synapse-plugin-api v1.0.0 2026-05-12 16:31:06 +02:00
.gitignore feat: full rewrite — type-based scaffold structure for synapse-plugin-api v1.0.0 2026-05-12 16:31:06 +02:00
README.md feat(template): add GitHub MCP scaffold 2026-05-19 01:25:37 +02:00

synapse-plugin-template

Scaffold templates for SYNAPSE plugins.

The fastest way to start: run synapse plugin scaffold — it creates a GitHub repo from the right subdirectory automatically.


Plugin types

Subdirectory Type When to use
channel/ Channel Connect an external messaging platform (Telegram, Discord, WhatsApp, …)
model-provider/ Model Provider Add an LLM backend (OpenAI-compatible, local, custom)
mcp/ MCP Server Connect an external MCP server with YAML-only declarative config

The MCP scaffold uses the official GitHub MCP server as its example and keeps the credential surface to the minimum required token + optional host override.


Quick start (manual)

  1. Pick a type subdirectory.
  2. Copy it to your new repo.
  3. If you picked channel/ or model-provider/, choose Gradle or Maven — delete the other build file.
  4. Fill in manifest.yml — at minimum: id, name, author, version, and any required credentials for the selected type.
  5. If you picked a Java scaffold, rename the scaffold class to match your plugin name and implement the interface methods.
  6. If you picked mcp/, fill in the token field and optional host override only; no Java source or build file is needed.
  7. If you picked mcp/, run synapse plugin validate; if you picked a Java scaffold, run ./test.sh.
  8. Push a version tag: git tag v1.0.0 && git push --tags — triggers the release workflow.

Requirements

  • Java 25+ for the Java-based scaffolds only
  • Docker (for integration tests)
  • SYNAPSE CLI (synapse plugin validate, synapse plugin package)
  • GitHub account (for scaffold + publish workflows)

Dependency

The Java scaffolds declare synapse-plugin-api as their only compile dependency:

dev.synapse:synapse-plugin-api:1.0.0

Served from GitHub Packages. Add your credentials to ~/.gradle/gradle.properties or ~/.m2/settings.xml — see the scaffold README for details.

The MCP scaffold does not compile Java code. It uses a YAML manifest plus a token-based MCP server configuration example based on the official GitHub MCP server.

Do not add any other dependencies unless they are purely utility libraries with no Spring, JPA, or Redis classes. The bytecode scanner will reject forbidden references at install time.


Publishing

Community plugins: open a PR against synapse-plugins-community.
Official plugins: contact the SYNAPSE team.

synapse plugin publish (stub in v2.6.0) prints the submission instructions.


Reference implementations

See synapse-plugin-examples for real, working plugins against this API.