Skip to main content
A plugin marketplace is a git repo of plugins that Murmur installs on every agent in a workspace. A plugin bundles MCP servers, and for Claude Code and Codex agents, skills and slash commands too. You maintain the repo, list the plugins you want in the workspace, and each agent starts with them installed. The example used on this page is public at prassoai/example-plugin-market-place. It publishes one plugin, the Linear MCP server.

Setup at a glance

  1. Create a marketplace repo in your GitHub organization and give the Macroscope GitHub App access to it.
  2. Store the MCP server’s token as a Murmur secret.
  3. Add the plugin and the secret to your workspace.
  4. Spawn an agent. It starts with the plugin’s tools.

What each harness supports

Repo structure

The repo uses the Claude Code plugin format:
A repo holding a single plugin may skip marketplace.json and keep .claude-plugin/plugin.json at its root.

.claude-plugin/marketplace.json

Names the marketplace and lists its plugins. Two repos in one workspace cannot use the same marketplace name, and each source is a path inside the repo.
.claude-plugin/marketplace.json

linear/.claude-plugin/plugin.json

Describes the plugin. Claude Code and Codex cache plugins by version, so bump it every time you change the plugin.
linear/.claude-plugin/plugin.json

linear/.mcp.json

Declares the MCP servers. The two highlighted lines carry the same token, because the harnesses read different fields:
linear/.mcp.json
Keep both lines so the server authenticates on every harness. Both name an environment variable, so the repo holds no token.

Set it up

1

Create the repo and give the Macroscope GitHub App access

Copy the example repo into your organization, for example as acme/plugin-marketplace, or create the three files above. Commit and push.If the Macroscope GitHub App has access to selected repositories only, open your organization’s GitHub settings → GitHub Apps → Macroscope → Configure, and add the repo under Repository access.
2

Store the token as a secret

Create a Linear API key and store it under the variable name from .mcp.json:
3

Add the plugin and the secret to your workspace

Export the workspace:
Add a plugins entry and mount the secret as an environment variable. Use the field names murmur get prints. If the file already has plugins or runtimeSecretMounts, add the entries to those lists:
my-workspace.yaml
Save it:
In the dashboard, the same fields are under Settings → Workspaces → your workspace → Plugins. Adding the secret under Settings → Agent configuration → Secrets with Mount automatically checked adds the mount. See Add MCP servers to agents for the dashboard steps.
4

Spawn an agent

Plugins install when an agent starts, so spawn a new one:
The agent answers with your Linear teams. On Claude Code the tools are named like mcp__plugin_linear_linear__list_teams.

Workspace plugins fields

MCP server fields

OpenCode rules

OpenCode loads only a plugin’s MCP servers, with these rules:
  • ${NAME} is the only variable form. ${NAME:-default} makes the plugin unavailable.
  • A relative command such as ./bin/server makes the plugin unavailable; write ${CLAUDE_PLUGIN_ROOT}/bin/server. A bare program name such as npx is found on PATH.
  • A server whose ${NAME} variable has no value is left out until it has one.
  • When two plugins declare the same server name, the plugin listed first in the workspace keeps it.
  • MURMUR_IDENTITY_TOKEN, MURMUR_GATEWAY_TOKEN, and GH_ENTERPRISE_TOKEN cannot be referenced.

Installation

Plugins install each time an agent starts, before its first turn. A plugin that cannot be installed never holds up the agent: the agent starts with every plugin that did install, and goes without the rest. Agents spawned with repository confinement are the exception. Their plugin repos count among the repositories they may reach, so if the Macroscope GitHub App cannot access one, the spawn stops with an error naming that repo. A plugin runs with the agent’s full environment, including every mounted secret, so add only repos you trust.

Errors