Scaffold templates for SYNAPSE plugins.
The fastest way to start: run synapse plugin scaffold — it creates a GitHub repo from the right subdirectory automatically.
| 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.
- Pick a type subdirectory.
- Copy it to your new repo.
- If you picked
channel/ormodel-provider/, choose Gradle or Maven — delete the other build file. - Fill in
manifest.yml— at minimum:id,name,author,version, and any required credentials for the selected type. - If you picked a Java scaffold, rename the scaffold class to match your plugin name and implement the interface methods.
- If you picked
mcp/, fill in the token field and optional host override only; no Java source or build file is needed. - If you picked
mcp/, runsynapse plugin validate; if you picked a Java scaffold, run./test.sh. - Push a version tag:
git tag v1.0.0 && git push --tags— triggers the release workflow.
- 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)
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.
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.
See synapse-plugin-examples for real, working plugins against this API.