Manifest schema
Every plugin ships a plugin.json manifest next to its entry assembly. It's small
by design — richer display metadata lives in the store index, not here.
Fields
| Field | Type | Required | Meaning |
|---|---|---|---|
schemaVersion | int | Optional (default 1) | Manifest format version. |
id | string | Yes | Permanent, stable identity; connections reference a provider by it. |
type | string | Yes | provider / tool / mcp / extension. |
name | string | Yes | Display name. |
version | string | Optional | The plugin's own SemVer (used for gallery listing and updates). |
hostApiVersion | int | Yes | Host-API version the plugin was built against; the loader gates on it. |
entryAssembly | string | Yes | Entry DLL, relative to the plugin folder. |
localization | string | Optional | Resource prefix for the plugin's localization files. |
capabilities | string[] | Optional (default []) | For extension plugins: the powers it needs (panel, background, menu, storage, connections, process). |
Provider example
// a provider plugin
{
"schemaVersion": 1,
"id": "myengine",
"type": "provider",
"name": "MyEngine",
"version": "1.0.0",
"hostApiVersion": 26,
"entryAssembly": "SqlExplorer.Providers.MyEngine.dll"
}
Extension example
An extension declares the capabilities it needs; the user consents to those at
install time.
// an extension plugin, declaring the powers it needs
{
"schemaVersion": 1,
"id": "local-containers",
"type": "extension",
"name": "Local Containers",
"version": "0.1.0",
"hostApiVersion": 3,
"entryAssembly": "LocalContainers.dll",
"capabilities": ["panel", "menu", "connections", "process"]
}
Host-API versions (current / minimum supported): providers
26 / 23, tools & extensions 3 / 1, MCP 2 / 1. Build against the current version; older plugins keep loading while they stay within range.Learn more
For the full developer guide — implementing a provider or tool, packaging and publishing — see PLUGINS.md in the repository.
SQL Explorer