Sandbox
@fdmtl/director

MCP playbooks for Claude Code and Cursor

Director sits between your agent and your MCP servers, then packages tools, prompts, and config into portable playbooks. You can create, switch, and connect those playbooks from the CLI or the Studio, and route them through one MCP endpoint.

483 starsโ€ข74 forksโ€ขTypeScriptโ€ขUpdated 14d ago
Who it's for

Builders who want their agent setup to stay portable across tasks, servers, and MCP clients.

What it delivers

You can switch between task-specific agent setups without reconfiguring every tool by hand.

What it does

Playbooks

Bundles tools, prompts, and configuration into a portable unit for a specific task or environment.

1-click client connections

Connects playbooks to Claude Code, Claude Desktop, Cursor, and VSCode from the UI or CLI.

Single MCP endpoint

Exposes a playbook through one endpoint so it can be shared across agents.

Tool filtering

Lets you choose only the MCP tools needed for the job, so the agent sees less clutter.

Unified OAuth

Connects to OAuth-backed MCP servers centrally and reuses them across agents.

Central logging

Records JSON logs so you can see what the agent is doing.

Local-first setup

Runs on your machine or your own infrastructure and is designed to set up quickly.

Registry support

Includes commands for listing, inspecting, and reading registry items.

How to get it

  1. 1Run
    # Install Director
    $ curl -LsSf https://director.run/install.sh | sh
    
    # Start the onboarding flow
    $ director quickstart
  2. 2Run
    # Install the director CLI + dependencies (node, npm & uvx) via the 1-liner:
    $ curl -LsSf https://director.run/install.sh | sh
    
    # Alternatively, install through npm:
    $ npm install -g @director.run/cli
    
    # Start director & open the UI
    $ director quickstart
  3. 3The simplest way to interact with director is via the admin interface
    # Open studio in your browser
    $ director studio

README

Director

MCP Playbooks for AI agents

curl -LsSf https://director.run/install.sh | sh


License: AGPL v3 ci Release npm

Overview

Director allows you to provide playbooks to AI Agents. A playbook is a set of MCP tools, prompts and configuration, that give agents new skills. You can connect Claude, Cursor and VSCode in 1-click, or integrate manually through a single MCP endpoint.

Playbooks are portable and can easily be switched in and out of context. Director is local-first - setup and client integration takes 30 seconds. In addition, Director provides all of the MCP management functionality that you'd expect: tool filtering, logging, strong isolation, and unified OAuth.



https://github.com/user-attachments/assets/cafc0902-a854-4ee8-ac89-b7535f10c93d

Key Features

  • ๐Ÿ“š Playbooks - Maintain sets of tools, prompts and config for different tasks or environments.
  • ๐Ÿš€ 1-Click Integration - Switch playbooks with a single click. Currently supports Claude Code, Claude Desktop, Cursor, VSCode
  • ๐Ÿ”— Shareable - Playbooks are accessible through a single MCP endpoint, making them easy to share across agents.
  • ๐Ÿ  Local-First - Director is local-first, designed to easily run on your own machine or infrastructure.
  • ๐Ÿ”‘ Unified OAuth - Connect to OAuth MCPs centrally, and use them across all of your agents.
  • ๐ŸŽฏ Tool Filtering - Select only the MCP tools that are required for the specific task, preserving context.
  • ๐Ÿ“Š Observability - Centralized JSON logging, that allows you to understand exactly what your agent is doing.
  • ๐Ÿ”Œ MCP Compliant - Just works with any MCP server or client. Up to date with the latest MCP spec.

Quickstart

# Install Director
$ curl -LsSf https://director.run/install.sh | sh

# Start the onboarding flow
$ director quickstart

Core Concepts

Playbooks

A playbook is a set of tools, prompts and configuration, used to provide specific capabilities to your agent. Under the hood, playbooks are built on top of the MCP tools & prompts primitives.

The easiest way to author a playbook is via the UI (director studio). But you can also use the CLI. You can have many playbooks, typically one per task or per environment. You can connect to them via a single CLI command or directly over a URL.

Architecture

At a high level, Director is a service that sits between your agents and MCP servers. It's transparent to clients, requiring no additional tokens. It models playbooks, which can be thought of as standalone, portable skills that enhance your AI agent with new capabilities.

director demo

Usage

Installation

# Install the director CLI + dependencies (node, npm & uvx) via the 1-liner:
$ curl -LsSf https://director.run/install.sh | sh

# Alternatively, install through npm:
$ npm install -g @director.run/cli

# Start director & open the UI
$ director quickstart

The Studio (Web UI)

The simplest way to interact with director is via the admin interface:

# Open studio in your browser
$ director studio

CLI Reference

Playbooks for your AI agent

USAGE
  director <command> [subcommand] [flags]

CORE COMMANDS
   quickstart                                    Start the gateway and open the studio in your browser
   serve                                         Start the web service
   studio                                        Open the UI in your browser
   ls                                            List playbooks
   get <playbookId> [serverName]                 Show playbook details
   auth <playbookId> <server>                    Authenticate a server
   create <name>                                 Create a new playbook
   destroy <playbookId>                          Delete a playbook
   connect <playbookId> [options]                Connect a playbook to a MCP client
   disconnect <playbookId> [options]             Disconnect a playbook from an MCP client
   add <playbookId> [options]                    Add a server to a playbook.
   remove <playbookId> <serverName>              Remove a server from a playbook
   update <playbookId> [serverName] [options]    Update playbook attributes
   http2stdio <url>                              Proxy an HTTP connection (sse or streamable) to a stdio stream
   env [options]                                 Print environment variables
   status                                        Get the status of the director

REGISTRY
   registry ls                                   List all available servers in the registry
   registry get <entryName>                      Get detailed information about a registry item
   registry readme <entryName>                   Print the readme for a registry item

MCP
   mcp list-tools <playbookId>                   List tools on a playbook
   mcp get-tool <playbookId> <toolName>          Get the details of a tool
   mcp call-tool <playbookId> <toolName> [options]  Call a tool on a playbook

PROMPTS
   prompts ls <playbookId>                       List all prompts for a playbook
   prompts add <playbookId>                      Add a new prompt to a playbook
   prompts edit <playbookId> <promptName>        Edit an existing prompt
   prompts remove <playbookId> <promptName>      Remove a prompt from a playbook
   prompts get <playbookId> <promptName>         Show the details of a specific prompt

FLAGS
   -V, --version                                 output the version number

EXAMPLES
  $ director create my-playbook # Create a new playbook
  $ director add my-playbook --entry fetch # Add a server to a playbook
  $ director connect my-playbook --target claude # Connect my-playbook to claude

TypeScript SDK

Programmatic control for advanced use cases:

import { Gateway, GatewayConfig } from "@director.run/sdk";

// Start the gateway
const gateway = await Gateway.start({
  config: await GatewayConfig.createMemoryBasedConfig({
    defaults: {
      server: {
        port: 3673,
      },
    },
  }),
  baseUrl: "http://localhost:3673",
});

// Add a new playbook
await gateway.playbookStore.create({
  name: "test",
  servers: [
    {
      name: "notion",
      type: "http",
      url: "https://mcp.notion.com/mcp",
    },
  ],
});

Repository Structure

External Apps

Internal Packages

This is a monorepo managed by Turborepo.

Community

If you're using director, have any ideas, or just want to chat about MCP, we'd love to chat:

Contributing

We welcome contributions! See CONTRIBUTING.mdx for guidelines.

Setting up Development Environment

# Fork and clone
git clone https://github.com/director_run/director
cd director
./scripts/setup-development.sh
bun run test

License

AGPL v3 - See LICENSE for details.

Files in the repo

Repository payloadโ€ข20 top-level entries
  • .changeset
  • .cursor
  • .github
  • .vscode
  • apps
  • docs
  • packages
  • scripts
  • .gitignore
  • biome.json
  • bun.lock
  • CLAUDE.md
  • docker-compose.yml
  • LICENSE
  • package.json
  • README.md
  • SECURITY.md
  • TODOS.md
  • tsconfig.json
  • turbo.json

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More harnesses

affaan-m/
ECC
affaan-m/ECCHarnesses

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

258k
ruvnet/rufloHarnesses

๐ŸŒŠ The original agent meta-harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, RAG integration, and native Claude Code / Codex / Hermes and many more Integrated

72k

Practical patterns, starters & CLI tools for loop engineering with AI coding agents. Design systems that prompt and orchestrate agents (inspired by Addy Osmani and Boris Cherny). Includes loop-audit, loop-init, loop-cost.

11k