Developer platform · Plugin directory

Extend what workers can do

Publish tools, adapters, and observability integrations using AgentMug's shared plugin contract. Every plugin implements the same definePlugin() interface from @agentmug/runtime.

Workers are packaged jobs. Plugins extend what the runtime itself can do. MCP lets an external host call a worker; plugins extend the worker's own capabilities. They complement each other — a plugin can ship the tools a worker uses, and MCP exposes the finished worker to Claude Code, Cursor, or Cline.

Plugins are wired into a runtime you host. There is no cloud install flow yet — see “Publish a plugin” below for how entries get added.

OpenTelemetry tracing

@agentmug/otel
observability

Emits LLM-call + transcription spans into your existing OTel pipeline — Honeycomb, Datadog, Tempo, Jaeger, Sentry, anything OTel-compatible.

TracingAdapteropentelemetryhoneycombdatadog
Wire snippet
import { runAgent, noSourcePlan } from "@agentmug/runtime";
import { OtelTracingAdapter } from "@agentmug/otel";

await runAgent({
  agentId: "...",
  userId: "...",
  userInput: "...",
  adapters: {
    persistence: yourPersistence,
    llm: yourLlmClient,
    tracing: new OtelTracingAdapter(),
  },
  onEvent: () => {},
});

MCP server bridge

@agentmug/mcp-bridge
official

Expose any AgentMug agent as a Model Context Protocol server so Claude Code, Cursor, Continue, Cline, and Claude Desktop can call it as a tool.

mcpstdioclaude-codecursorcontinue
Wire snippet
// In your MCP client config (.claude/settings.json):
{
  "mcpServers": {
    "my-agent": {
      "command": "npx",
      "args": [
        "-y",
        "@agentmug/mcp-bridge",
        "https://agentmug.com/api/external/agents/<AGENT_ID>"
      ],
      "env": { "AGENTMUG_API_KEY": "am_agent_..." }
    }
  }
}

agentmug CLI

@agentmug/cli
official

Run .agent files from any shell. Cloud subcommands (create / list / fork / invoke) make the runtime agent-controllable: an LLM with shell access can ship new agents into your AgentMug account.

cliagent-controllableautomation
Wire snippet
npm install -g @agentmug/cli
export AGENTMUG_API_KEY=am_user_...

agentmug create --prompt "Triage my Gmail and draft replies"
agentmug list
agentmug invoke email-triage --input "Summarize unread"

Publish a plugin

The plugin shape is one function call: definePlugin({ name, version, tools }). Consumers wire your package with registry.loadPlugin(yourPlugin), which registers your tools.

There is no automated publish flow. Publish your package to npm, then open a pull request adding it here with a one-line description — that PR is the review step.

Note: loadPlugin() currently registers tools only. A plugin may declare adapters, but the runtime does not read them yet — pass adapters directly to runAgent(), as the OpenTelemetry example above does.