@director.run/cli 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<h1 align="center">Director</h1>
|
|
2
|
-
<p align="center">Playbooks for AI agents</p>
|
|
2
|
+
<p align="center">MCP Playbooks for AI agents</p>
|
|
3
3
|
|
|
4
4
|
<p align="center"><code>curl -LsSf https://director.run/install.sh | sh</code></p>
|
|
5
5
|
|
|
@@ -16,12 +16,14 @@
|
|
|
16
16
|
|
|
17
17
|
# Overview
|
|
18
18
|
|
|
19
|
-
Director
|
|
19
|
+
Director allows you to provide <ins>**playbooks**</ins> to AI Agents. A playbook is a set of <ins>**MCP tools**</ins>, <ins>**prompts**</ins> and <ins>**configuration**</ins>, that give agents new <ins>**skills**</ins>. You can connect Claude, Cursor and VSCode in 1-click, or integrate manually through a single MCP endpoint.
|
|
20
20
|
|
|
21
21
|
Playbooks are portable, declarative YAML files that can easily be shared (or committed to version control). Director is local-first - installation 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.
|
|
22
22
|
|
|
23
23
|
<br />
|
|
24
|
-
|
|
24
|
+
|
|
25
|
+
[](https://player.mux.com/LkXOkiGsfatE6XLxda8ZEm02ydvxJ1K004y5EgqYV7dus)
|
|
26
|
+
|
|
25
27
|
|
|
26
28
|
## Key Features
|
|
27
29
|
|
|
@@ -33,7 +35,7 @@ Playbooks are portable, declarative YAML files that can easily be shared (or com
|
|
|
33
35
|
- 🎯 **Tool Filtering** - Select only the MCP tools that are required for the specific task, preserving context.
|
|
34
36
|
- 📋 **Declarative** - Like terraform for AI agents, Director will enforce playbook to client mapping on startup.
|
|
35
37
|
- 🔧 **Flexibility** - You can configure director through the UI, by editing the config file, through the CLI or even using the Typescript SDK.
|
|
36
|
-
- 📊 **Observability** -
|
|
38
|
+
- 📊 **Observability** - Centralized JSON logging, that allows you to understand exactly what your agent is doing.
|
|
37
39
|
- 🔌 **MCP Compliant** - Just works with any MCP server or client. Up to date with the latest MCP spec.
|
|
38
40
|
|
|
39
41
|
# Quickstart
|
|
@@ -59,55 +61,75 @@ The easiest way to author a playbook is via the UI (`director studio`). But you
|
|
|
59
61
|
# Client <> Playbook mappings (enforced on startup)
|
|
60
62
|
#
|
|
61
63
|
clients:
|
|
62
|
-
|
|
63
|
-
cursor: [ production-support ]
|
|
64
|
+
cursor: [ demo ]
|
|
64
65
|
|
|
65
|
-
#
|
|
66
|
-
# Playbooks
|
|
67
|
-
#
|
|
68
66
|
playbooks:
|
|
69
|
-
- id:
|
|
70
|
-
name:
|
|
71
|
-
description:
|
|
67
|
+
- id: demo
|
|
68
|
+
name: demo
|
|
69
|
+
description: A demonstration playbook
|
|
72
70
|
#
|
|
73
|
-
#
|
|
71
|
+
# Prompts
|
|
74
72
|
#
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
type: stdio
|
|
84
|
-
command: uvx
|
|
85
|
-
args: ["awslabs.cloudwatch-mcp-server@latest"]
|
|
86
|
-
env:
|
|
87
|
-
AWS_PROFILE: "[The AWS Profile Name to use for AWS access]",
|
|
88
|
-
include: [search_logs, get_metrics] # No write access
|
|
73
|
+
prompts:
|
|
74
|
+
- name: changelog
|
|
75
|
+
title: changelog
|
|
76
|
+
description: ""
|
|
77
|
+
body: "write a short changelog based on recent changes on the
|
|
78
|
+
director-run/director repository and the post it to to the slack
|
|
79
|
+
#general channel. Make sure the message will format correctly inside
|
|
80
|
+
of slack"
|
|
89
81
|
|
|
90
|
-
|
|
82
|
+
#
|
|
83
|
+
# MCP Servers
|
|
84
|
+
#
|
|
85
|
+
servers:
|
|
86
|
+
# GitHub server
|
|
91
87
|
- name: github
|
|
92
88
|
type: http
|
|
93
89
|
url: https://api.githubcopilot.com/mcp/
|
|
90
|
+
headers:
|
|
91
|
+
Authorization: Bearer
|
|
92
|
+
<YOUR_GITHUB_TOKEN>
|
|
93
|
+
# This server is enabled
|
|
94
|
+
disabled: false
|
|
95
|
+
# Only include the tools you need
|
|
94
96
|
tools:
|
|
95
|
-
include:
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
97
|
+
include:
|
|
98
|
+
- list_commits
|
|
99
|
+
- search_pull_requests
|
|
100
|
+
- get_latest_release
|
|
101
|
+
# Prompts from MCP server are disabled by default
|
|
102
|
+
prompts:
|
|
103
|
+
include: []
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
- name: slack
|
|
107
|
+
type: stdio
|
|
108
|
+
command: npx
|
|
109
|
+
args:
|
|
110
|
+
- -y
|
|
111
|
+
- "@modelcontextprotocol/server-slack"
|
|
112
|
+
env:
|
|
113
|
+
SLACK_TEAM_ID: <YOUR_SLACK_TEAM_ID>
|
|
114
|
+
SLACK_BOT_TOKEN: <YOUR_SLACK_BOT_TOKEN>
|
|
115
|
+
SLACK_CHANNEL_IDS: <YOUR_SLACK_CHANNEL_ID>
|
|
116
|
+
# This server is enabled
|
|
117
|
+
disabled: false
|
|
118
|
+
# Only include the tools you need
|
|
119
|
+
tools:
|
|
120
|
+
include:
|
|
121
|
+
- slack_list_channels
|
|
122
|
+
- slack_post_message
|
|
123
|
+
# Prompts from MCP server are disabled by default
|
|
124
|
+
prompts:
|
|
125
|
+
include: []
|
|
104
126
|
```
|
|
105
127
|
|
|
106
|
-
##
|
|
128
|
+
## Architecture
|
|
107
129
|
|
|
108
130
|
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.
|
|
109
131
|
|
|
110
|
-
<img src="https://github.com/director-run/director/blob/main/apps/docs/images/director-highlevel-overview.
|
|
132
|
+
<img src="https://github.com/director-run/director/blob/main/apps/docs/images/director-highlevel-overview.png" width="100%" alt="director demo">
|
|
111
133
|
|
|
112
134
|
# Usage
|
|
113
135
|
|
|
@@ -192,40 +214,75 @@ EXAMPLES
|
|
|
192
214
|
# Server config
|
|
193
215
|
#
|
|
194
216
|
server:
|
|
217
|
+
# Defaults to 3673
|
|
195
218
|
port: 1234
|
|
196
219
|
|
|
197
220
|
#
|
|
198
|
-
# Client
|
|
199
|
-
#
|
|
221
|
+
# Client <> Playbook mappings (enforced on startup)
|
|
222
|
+
#
|
|
200
223
|
clients:
|
|
201
|
-
|
|
224
|
+
cursor: [ demo ]
|
|
202
225
|
|
|
203
|
-
#
|
|
204
|
-
# Playbooks
|
|
205
|
-
#
|
|
206
226
|
playbooks:
|
|
207
|
-
-
|
|
208
|
-
|
|
227
|
+
- id: demo
|
|
228
|
+
name: demo
|
|
229
|
+
description: A demonstration playbook
|
|
230
|
+
#
|
|
231
|
+
# Prompts
|
|
232
|
+
#
|
|
233
|
+
prompts:
|
|
234
|
+
- name: changelog
|
|
235
|
+
title: changelog
|
|
236
|
+
description: ""
|
|
237
|
+
body: "write a short changelog based on recent changes on the
|
|
238
|
+
director-run/director repository and the post it to to the slack
|
|
239
|
+
#general channel. Make sure the message will format correctly inside
|
|
240
|
+
of slack"
|
|
241
|
+
|
|
242
|
+
#
|
|
243
|
+
# MCP Servers
|
|
244
|
+
#
|
|
209
245
|
servers:
|
|
210
|
-
|
|
211
|
-
type: stdio
|
|
212
|
-
command: npx
|
|
213
|
-
args: [ "@modelcontextprotocol/server-filesystem", "./src" ]
|
|
214
|
-
|
|
246
|
+
# GitHub server
|
|
215
247
|
- name: github
|
|
216
248
|
type: http
|
|
217
249
|
url: https://api.githubcopilot.com/mcp/
|
|
250
|
+
headers:
|
|
251
|
+
Authorization: Bearer
|
|
252
|
+
<YOUR_GITHUB_TOKEN>
|
|
253
|
+
# This server is enabled
|
|
254
|
+
disabled: false
|
|
255
|
+
# Only include the tools you need
|
|
218
256
|
tools:
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
257
|
+
include:
|
|
258
|
+
- list_commits
|
|
259
|
+
- search_pull_requests
|
|
260
|
+
- get_latest_release
|
|
261
|
+
# Prompts from MCP server are disabled by default
|
|
262
|
+
prompts:
|
|
263
|
+
include: []
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
- name: slack
|
|
267
|
+
type: stdio
|
|
268
|
+
command: npx
|
|
269
|
+
args:
|
|
270
|
+
- -y
|
|
271
|
+
- "@modelcontextprotocol/server-slack"
|
|
272
|
+
env:
|
|
273
|
+
SLACK_TEAM_ID: <YOUR_SLACK_TEAM_ID>
|
|
274
|
+
SLACK_BOT_TOKEN: <YOUR_SLACK_BOT_TOKEN>
|
|
275
|
+
SLACK_CHANNEL_IDS: <YOUR_SLACK_CHANNEL_ID>
|
|
276
|
+
# This server is enabled
|
|
277
|
+
disabled: false
|
|
278
|
+
# Only include the tools you need
|
|
279
|
+
tools:
|
|
280
|
+
include:
|
|
281
|
+
- slack_list_channels
|
|
282
|
+
- slack_post_message
|
|
283
|
+
# Prompts from MCP server are disabled by default
|
|
284
|
+
prompts:
|
|
285
|
+
include: []
|
|
229
286
|
```
|
|
230
287
|
|
|
231
288
|
### TypeScript SDK
|
|
@@ -260,7 +317,7 @@ const result = await playbook.callTool('github.create_issue', {
|
|
|
260
317
|
|
|
261
318
|
- [`apps/cli`](./apps/cli/README.md) - The command-line interface, the primary way to interact with Director. Available on [npm](https://www.npmjs.com/package/@director.run/cli).
|
|
262
319
|
- [`apps/sdk`](./apps/sdk/README.md) - The Typescript SDK, available on [npm](https://www.npmjs.com/package/@director.run/sdk).
|
|
263
|
-
- [`apps/docker`](./apps/docker/README.md) - The Director docker image, which allows you to run Director (and all MCP servers)
|
|
320
|
+
- [`apps/docker`](./apps/docker/README.md) - The Director docker image, which allows you to run Director (and all MCP servers) securely inside a container. Available on [Docker Hub](https://hub.docker.com/r/barnaby/director).
|
|
264
321
|
- [`apps/docs`](./apps/docs/README.md) - Project documentation hosted at [https://docs.director.run](https://docs.director.run)
|
|
265
322
|
- [`apps/registry`](./apps/registry/README.md) - Backend for the registry hosted at [https://registry.director.run](https://registry.director.run)
|
|
266
323
|
- [`apps/sandbox`](./apps/sandbox/README.md) - A tool for running Director (and all MCP servers) securely inside a VM. Apple Silicon only.
|