Zum Inhalt springen
DeutschlandGPT

Plugins

Use skills, hooks and MCP servers from a local folder in Code and Cowork

A plugin bundles extensions for Code and Cowork in one folder. It can bring three things:

  • Skills: instructions the agent reads when a task fits them.
  • Hooks: commands that run on your computer at set events of a run, described under Hooks.
  • MCP servers: local programs that offer the agent more tools, as under Local MCP servers.

You manage plugins under Settings → Desktop app → Plugins.

The hooks and MCP servers of a plugin run commands with your rights on this device. Only add plugins from sources you trust, and only approve commands you understand.

What a plugin contains

The folder holds a manifest at .deutschlandgpt-plugin/plugin.json.

JSON
{
  "name": "kanzlei-toolkit",
  "version": "1.2.0",
  "description": "Templates and checks for legal briefs",
  "author": { "name": "Example GmbH" },
  "skills": "./skills/",
  "hooks": "./hooks/hooks.json",
  "mcpServers": {
    "akten": {
      "command": "node",
      "args": ["${DGPT_PLUGIN_ROOT}/server.mjs"],
      "env": { "AKTEN_CACHE": "${DGPT_PLUGIN_DATA}/cache" }
    }
  },
  "requires": { "app": ">=0.16.0", "runtimes": ["node"] },
  "surfaces": ["code", "cowork"]
}
FieldMeaning
nameRequired. Lowercase letters, digits and hyphens, at most 32 characters
versionthe plugin's version, such as 1.2.0
descriptiona short description shown in the settings
authora name as text, or an object with name, email and url
skillsfolder with skills. The default is ./skills/. Each skill is a folder of its own with a SKILL.md
hookspath to a hooks file, by default hooks/hooks.json, or the hooks right in the manifest. The format is the same as in the hooks settings
mcpServerspath to a servers file, by default .mcp.json, or the servers right in the manifest, as an object mcpServers with one entry per server name
requiresapp names the app version needed, such as ">=0.16.0". runtimes names programs that must be present, such as node
surfaces"code", "cowork" or both. Without it, the plugin applies to both

In commands, arguments and variables, the app replaces these placeholders:

  • ${DGPT_PLUGIN_ROOT}: the plugin's folder.
  • ${DGPT_PLUGIN_DATA}: a data folder of the plugin's own that is kept when the version changes.

Adding a plugin

Click Add plugin folder and choose the folder. The app checks the manifest and copies the folder to ~/.deutschlandgpt/plugins/cache/local/<name>/<version>/. Your source folder stays untouched, and the app only works with the copy. When you have worked on the plugin, add the folder again so the app takes over the new state.

Each card shows name, version, description and author, what the plugin contains and its status. If a program from requires.runtimes is missing or the app is older than required, the card says so too. The switch turns a plugin off without removing it. Remove deletes the plugin's copy and data from this computer.

Skills from plugins

Skills of a plugin are named <plugin>:<skill>, for example kanzlei-toolkit:brief. That way they never hide a skill from your project or your own skills. Skills run nothing, so they are ready without approval as soon as the plugin is on. Tools that a skill allows without asking under allowed-tools only count once you have approved the plugin.

Approving hooks and MCP servers

The hooks and MCP servers of a plugin only run once you have approved them. Review and approve shows every hook with its event, matcher and command exactly as written, and every MCP server with its command line or address, its working folder and its environment variables with their values. Your approval applies to exactly this state.

The app asks again when a hook or a server changes, also after a version change. Until then the card shows Changed since approval and the commands do not run. If files of the copy were changed outside the app, the card shows Damaged and nothing from the plugin runs. Add the folder again in that case. Withdraw approval stops the commands again, also for a plugin that is off or blocked by your organization.

Hooks from plugins can only block an action or make the app ask. They can never allow anything the app would otherwise ask about.

A plugin's MCP servers are named p-<plugin>-<server>, their tools mcp__p-<plugin>-<server>__<tool>. A tool name is at most 64 characters long. For long names the app shortens them and adds a short checksum, so names with the same beginning stay distinct. You also find these servers under Integrations, but you manage them here.

Your organization's rules

With the switch Plugins with their own commands under Organization → Tool policies, the administrators decide whether plugins may start commands on members' computers. When it is off, you keep using the skills, but hooks and MCP servers from plugins do not run, even if you have already approved them. The card then shows Blocked by organization.

Not available yet

  • Installing plugins from a marketplace. For now the app reads plugins only from a local folder.
  • Commands, agents, rules and instructions from a plugin. The card lists such parts with a note that this version does not support them yet.
Was this page helpful?