mcpField
C
Conductor By Thealxlabs

Conductor By Thealxlabs

Local
conductor.thealxlabs.caAI & Agents2Updated 28w ago

About Conductor By Thealxlabs

Conductor is a plugin-based MCP server for MCP-compatible clients and AI agents. It brings tools from multiple plugins behind one connection, with a CLI for setup and features for auditing and handling failures.

Key features

  1. 01Plugin-based tool integrations
  2. 02CLI setup and configuration
  3. 03Secrets stored in OS keychain
  4. 04Retries and circuit breakers
  5. 05Tamper-evident audit log
  6. 06Create custom plugins

Use cases

  1. 01Access multiple plugins through one MCP connection
  2. 02Configure Claude Desktop or Cursor
  3. 03Review and verify tool-call records
  4. 04Extend the server with custom tools

MCP support

Provides an MCP server over stdio and HTTP/SSE for compatible clients to call plugin tools. Its CLI can start, inspect, and configure the server.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

Conductor

One MCP server. 100+ tools. Every AI agent.

CI npm Node License

Conductor is a single Model Context Protocol server that gives any AI agent — Claude, Cursor, Cline, Copilot, and more — instant access to your entire toolkit through one connection. Install once, configure once, use everywhere.

npm install -g @useconductor/conductor
conductor init

Why Conductor

Most MCP setups mean one server per tool — one for GitHub, one for Slack, one for your database. That's a dozen processes, a dozen configs, and a dozen things to break.

Conductor collapses all of that into a single server with a plugin system, security built in from the start, and a CLI that actually works.

  • 100+ tools across 35+ plugins, all in one process
  • Zero-config plugins work instantly — no API keys, no setup
  • Secrets in the OS keychain — never stored in config files
  • Circuit breakers + retry on every tool call — failures don't cascade
  • SHA-256 chained audit log — every action recorded, tamper-evident
  • One config block in your AI client — that's the whole integration

Quick start

# Install
npm install -g @useconductor/conductor

# First-run wizard — AI provider, plugins, client config
conductor init
Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "conductor": {
      "command": "conductor",
      "args": ["mcp", "start"]
    }
  }
}

Or skip the manual editing: conductor mcp setup

Cursor / Windsurf / Cline / Continue

Same config block — drop it in .cursor/mcp.json, .codeium/windsurf/mcp_config.json, or your client's MCP config file.

No global install
{
  "mcpServers": {
    "conductor": {
      "command": "npx",
      "args": ["-y", "@useconductor/conductor", "mcp", "start"]
    }
  }
}

Plugins

Needs setup
PluginWhat it doesSetup
githubRepos, issues, PRs, code search (20 tools)GITHUB_TOKEN env var
gmailRead, compose, send, search, label emailconductor google
gcalEvents, availability, schedulingconductor google
gdriveSearch, read, upload filesconductor google
notionPages, databases, blocks, searchAPI key
slackMessages, channels, searchconductor slack setup
linearIssues, projects, cyclesAPI key
jiraIssues, projects, sprintsDomain + API token
stripePayments, customers, invoicesSecret key
dockerContainers, images, volumes, networksLocal Docker socket
databasePostgres, MySQL queriesConnection URL
github-actionsTrigger and monitor CI workflowsGITHUB_TOKEN
vercelDeployments, logs, projectsAPI token
n8nTrigger workflows, list executionsBase URL + API key
spotifyPlayback, search, playlistsClient ID + secret
xPost, search, timelineAPI credentials
homekitLights, locks, thermostats via HomebridgeBase URL
lumenSmart lighting controlLocal setup
todoistTasks, projects, labelsAPI token
shellRun allowlisted shell commandsEnabled by default
Zero-config (works instantly)
PluginWhat it does
calculatorMath expressions, unit conversions, date arithmetic
colorsConvert hex/RGB/HSL, generate palettes, WCAG contrast
cryptoEncrypt, decrypt, sign, verify
hashSHA-256/MD5/SHA-512, base64, UUID, passwords
text-toolsJSON format, word count, regex test, case transform
timezoneCurrent time in any city, timezone conversion
url-toolsExpand short links, check status, inspect headers
networkPing, DNS lookup, port check, IP info
systemCPU, memory, disk usage
weatherCurrent conditions and forecast by city
translateTranslate text between languages
funJokes, trivia, quotes
notesLocal markdown notes
memoryPersistent key-value memory across sessions
cronSchedule recurring tasks

CLI reference

Setup
conductor init                        # First-run wizard
conductor mcp setup                   # Auto-configure Claude Desktop / Cursor
conductor mcp start                   # Start MCP server (stdio)
conductor mcp status                  # Show MCP server status
conductor doctor                      # Diagnose common issues
conductor health                      # System health report
conductor health --json               # Machine-readable health output
Plugins
conductor plugins list                # List all plugins (enabled/disabled)
conductor plugins enable <name>       # Enable a plugin
conductor plugins disable <name>      # Disable a plugin
conductor onboard                     # Interactive TUI plugin picker
conductor install <plugin>            # Install from marketplace
conductor marketplace                 # Browse marketplace
conductor marketplace info <plugin>   # Plugin details
conductor plugin create <name>        # Scaffold a new plugin with tests
Authentication
conductor google                      # Browser-based Google OAuth (Gmail, Calendar, Drive)
conductor slack setup                 # Configure Slack bot + app tokens
conductor slack start                 # Start the Slack bot
conductor telegram setup              # Configure Telegram bot token
conductor telegram start              # Start the Telegram bot
conductor ai setup                    # Configure AI provider
conductor ai test                     # Test current AI provider
Configuration
conductor config list                 # Show all config keys and values
conductor config get <key>            # Get a specific key (e.g. ai.provider)
conductor config set <key> <value>    # Set a key (JSON or string)
conductor config path                 # Print config file path
conductor config export               # Dump config as JSON
conductor config validate             # Check config structure
conductor config reset                # Reset to defaults
Audit log
conductor audit list                  # List recent entries
conductor audit list --actor user1    # Filter by actor
conductor audit list --result failure # Filter by result
conductor audit verify                # Verify SHA-256 chain integrity
conductor audit tail                  # Stream in real time
conductor audit stats                 # Summary statistics
conductor audit export -o out.json    # Export to file
conductor audit rotate                # Manually rotate log file
Circuit breakers
conductor circuit list                # Show state of all circuit breakers
conductor circuit reset <tool>        # Reset a specific circuit to closed
Autonomous + other
conductor proactive start             # Start autonomous reasoning loop
conductor dashboard                   # Open web dashboard (--port <n>)
conductor release                     # Bump version and publish to npm

Security model

Every tool call passes through a stack before reaching the handler:

Request
  → Zod input validation        (schema-level type safety)
  → RBAC permission check        (role-based access control)
  → Circuit breaker              (opens after 5 failures, recovers in 30s)
  → Retry with exponential backoff
  → Handler
  → Audit log entry              (SHA-256 chained, append-only)
  → Metrics

Secrets are stored in the OS keychain (macOS Keychain, Linux Secret Service, Windows Credential Manager) via @useconductor/conductor's keychain module — never in config.json.

Shell commands go through a strict allowlist. No eval(), no exec() with arbitrary input, no wildcards. The list covers standard dev tools: git, docker, node, npm, curl, psql, and ~50 others.

Destructive tools set requiresApproval: true — the AI agent must explicitly confirm before execution.

Audit log at ~/.conductor/audit/audit.log is JSONL with a SHA-256 chain. Each entry hashes the previous entry's hash + its own content. Verify integrity anytime with conductor audit verify.

Rate limiting on all HTTP endpoints via express-rate-limit.


Architecture

src/
├── cli/            Commander CLI — commands in src/cli/commands/
│   └── commands/   init, mcp, plugins, audit, config, circuit, auth, ...
├── core/           Conductor orchestrator, config, database, audit, retry, circuit-breaker
├── mcp/            MCP server — stdio + HTTP/SSE transports
├── plugins/        Plugin manager, validation, 35 builtin plugins
│   └── builtin/    calculator, github, slack, gmail, docker, shell, ...
├── ai/             Multi-provider AI (Claude, OpenAI, Gemini, Ollama, OpenRouter)
├── bot/            Telegram + Slack bot runtimes
├── dashboard/      Express web dashboard + REST API
└── security/       Keychain, RBAC, auth

Config storage at ~/.conductor/:

PathContents
config.jsonNon-secret settings
conductor.dbSQLite history + activity log
audit/audit.logTamper-evident audit chain (JSONL)
plugins/External plugin .js files
.keyMachine-bound AES-256-GCM encryption key

Writing plugins

Install the SDK for types:

npm install @useconductor/sdk
import type { Plugin, PluginTool } from '@useconductor/sdk';

class MyPlugin implements Plugin {
  name = 'my-plugin';
  description = 'Does something useful';
  version = '1.0.0';

  async initialize(): Promise<void> {}
  isConfigured(): boolean { return true; }

  getTools(): PluginTool[] {
    return [
      {
        name: 'my_tool',
        description: 'Explain what this does in one sentence',
        inputSchema: {
          type: 'object',
          properties: {
            query: { type: 'string', description: 'The query to process' },
          },
          required: ['query'],
        },
        handler: async ({ query }) => {
          return { result: `Processed: ${query}` };
        },
      },
    ];
  }
}

export default new MyPlugin();

Compile to ~/.conductor/plugins/my-plugin.js and it's immediately available.

Scaffold with tests:

conductor plugin create my-plugin

For plugins needing secrets, add a configSchema with secret: true fields — they get stored in the OS keychain automatically.


Programmatic use

import { ConductorClient } from '@useconductor/sdk';

// stdio (local)
const client = new ConductorClient({ transport: 'stdio' });
await client.connect();

const tools = await client.listTools();
const result = await client.callText('calc_math', { expression: 'sqrt(144) + 8' });
console.log(result); // "20"

await client.disconnect();

// HTTP/SSE (remote)
const remote = new ConductorClient({
  transport: 'http',
  url: 'http://your-conductor-host:3000',
});

Supported clients

Works with any MCP-compatible client:


Contributing

git clone https://github.com/useconductor/conductor
cd conductor
npm install
npm run dev        # Watch mode
npm test           # Run tests (Vitest)
npm run typecheck  # Type check
npm run lint       # ESLint (requires Node >= 20.12)

Requirements: Node >= 20.12, npm >= 9.


License

Apache 2.0 — see LICENSE

Built by Alexander Wondwossen and contributors.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.