Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

director-run/director

Repository files navigation

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.


director-demo.mp4

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.