Back to Docs Hub

MCP

Model Context Protocol — extend agent capabilities with third-party tools.

MCP (Model Context Protocol) is an open standard for connecting AI agents with external tools and data sources. Aura Work supports MCP servers as a first-class extension mechanism alongside built-in skills and plugins. MCP allows you to add new capabilities without modifying the core application — just install a server and the agent can use its tools.

What is MCP?

MCP is a protocol that lets AI agents communicate with external services through a standardized interface. Think of it as a universal adapter for AI tools — instead of building custom integrations for each service, MCP provides a common language that both the agent and the service understand.

With MCP, you can connect the agent to:

  • Databases — query PostgreSQL, MySQL, SQLite, MongoDB
  • APIs — interact with GitHub, Slack, Discord, Jira, etc.
  • File systems — access cloud storage (S3, GCS, Azure Blob)
  • Development tools — linters, formatters, test runners
  • Custom services — your own internal tools and APIs

⚙️ How MCP Works in Aura Work

MCP servers are managed by the Plugins Helper sidecar (port 47824). When you add an MCP server:

  1. 1. The Plugins Helper starts the server process (for stdio) or connects to it (for SSE)
  2. 2. The server announces its capabilities (tools, resources, prompts)
  3. 3. These capabilities are registered with the agent engine
  4. 4. When the agent needs a tool, it can now call the MCP server's tools
  5. 5. Each tool call goes through the permission gate for approval

The agent automatically discovers which MCP tools are available and selects them when appropriate — you don't need to explicitly tell it to use an MCP tool.

🔌 Supported Transports

MCP supports two transport mechanisms:

TransportHow it WorksBest For
stdio Server runs as a subprocess. Communication happens via stdin/stdout pipes. Local tools, CLI wrappers, simple integrations
SSE Server runs as an HTTP service. Communication happens via Server-Sent Events. Remote services, containerized servers, multi-client setups

Most community MCP servers use stdio because it's simpler — no network configuration needed. Use SSE when the server needs to be shared across multiple clients or runs in a container.

📦 Installing MCP Servers

There are three ways to add MCP servers:

Method 1: Marketplace (Recommended)

Open the Plugins panel in the desktop app, search for an MCP server, and click Install. The marketplace handles versioning, updates, and dependency management.

Method 2: Manual Configuration

Add a server manually in Settings → Plugins → MCP Servers:

{
  "name": "my-database-server",
  "command": "node",
  "args": ["path/to/mcp-server.js"],
  "env": {
    "DATABASE_URL": "postgresql://localhost/mydb"
  }
}

Method 3: Project-Level Config

Add MCP servers to your project's aura.jsonc file:

{
  "mcp": {
    "test-project-server": {
      "type": "local",
      "command": ["node", "/path/to/test-mcp-server.js"],
      "enabled": true,
      "environment": {
        "TEST_ENV_VAR": "Hello from project-level config"
      }
    }
  }
}

Project-level servers are only available when working in that project — perfect for project-specific tools.

🔐 Security & Permissions

MCP tool calls are subject to the same permission system as built-in tools:

  • Per-tool approval — each MCP tool can be individually approved or denied
  • Sandboxed execution — MCP servers run in isolated processes
  • Permission declarations — servers must declare what they need access to
  • Audit logging — all MCP calls are logged with tool name, arguments, and result

In ask-first mode, you'll be prompted before each MCP tool call. You can set "always allow" for trusted servers in Settings → Permissions.

🛒 Marketplace

The marketplace (registry/marketplace.json) includes MCP servers alongside skills and plugins. Each entry includes:

  • Server manifest — command, args, env vars, transport type
  • Tool descriptions — what each tool does and its parameters
  • Localized descriptions — available in 20 languages
  • Version info — for updates and compatibility checks
  • Risk assessment — based on required permissions

Browse the marketplace in the Plugins panel or check registry/mcp/ for available servers.

🛠️ Developing MCP Servers

You can create your own MCP servers using the official MCP SDK:

// my-mcp-server.js
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

const server = new Server({
  name: "my-custom-server",
  version: "1.0.0"
}, {
  capabilities: { tools: {} }
});

// Define a tool
server.setRequestHandler("tools/list", async () => ({
  tools: [{
    name: "my_tool",
    description: "Does something useful",
    inputSchema: {
      type: "object",
      properties: {
        query: { type: "string", description: "Input query" }
      },
      required: ["query"]
    }
  }]
}));

// Handle tool calls
server.setRequestHandler("tools/call", async (request) => {
  const { name, arguments: args } = request.params;
  if (name === "my_tool") {
    return { content: [{ type: "text", text: "Result: " + args.query }] };
  }
});

// Start the server
const transport = new StdioServerTransport();
await server.connect(transport);

See examples/mcp-server/ for a complete working example.

💡 Common MCP Servers

Popular community MCP servers include:

ServerPurposeTransport
filesystemRead/write files, search, list directoriesstdio
githubManage repos, issues, PRs via GitHub APIstdio
postgresQuery PostgreSQL databasesstdio
slackSend messages, read channelsstdio
puppeteerBrowser automation with Chromestdio
brave-searchWeb search via Brave APIstdio

Find more at github.com/modelcontextprotocol/servers