@studiometa/forge-mcp 0.0.1 → 0.1.0
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 +102 -0
- package/dist/auth.d.ts +15 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +18 -0
- package/dist/auth.js.map +1 -0
- package/dist/errors.d.ts +36 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/formatters.d.ts +179 -0
- package/dist/formatters.d.ts.map +1 -0
- package/dist/handlers/backups.d.ts +2 -0
- package/dist/handlers/backups.d.ts.map +1 -0
- package/dist/handlers/certificates.d.ts +2 -0
- package/dist/handlers/certificates.d.ts.map +1 -0
- package/dist/handlers/commands.d.ts +2 -0
- package/dist/handlers/commands.d.ts.map +1 -0
- package/dist/handlers/daemons.d.ts +2 -0
- package/dist/handlers/daemons.d.ts.map +1 -0
- package/dist/handlers/database-users.d.ts +2 -0
- package/dist/handlers/database-users.d.ts.map +1 -0
- package/dist/handlers/databases.d.ts +2 -0
- package/dist/handlers/databases.d.ts.map +1 -0
- package/dist/handlers/deployments.d.ts +9 -0
- package/dist/handlers/deployments.d.ts.map +1 -0
- package/dist/handlers/env.d.ts +2 -0
- package/dist/handlers/env.d.ts.map +1 -0
- package/dist/handlers/factory.d.ts +71 -0
- package/dist/handlers/factory.d.ts.map +1 -0
- package/dist/handlers/firewall-rules.d.ts +2 -0
- package/dist/handlers/firewall-rules.d.ts.map +1 -0
- package/dist/handlers/help.d.ts +16 -0
- package/dist/handlers/help.d.ts.map +1 -0
- package/dist/handlers/index.d.ts +18 -0
- package/dist/handlers/index.d.ts.map +1 -0
- package/dist/handlers/monitors.d.ts +2 -0
- package/dist/handlers/monitors.d.ts.map +1 -0
- package/dist/handlers/nginx-config.d.ts +2 -0
- package/dist/handlers/nginx-config.d.ts.map +1 -0
- package/dist/handlers/nginx-templates.d.ts +2 -0
- package/dist/handlers/nginx-templates.d.ts.map +1 -0
- package/dist/handlers/recipes.d.ts +2 -0
- package/dist/handlers/recipes.d.ts.map +1 -0
- package/dist/handlers/redirect-rules.d.ts +2 -0
- package/dist/handlers/redirect-rules.d.ts.map +1 -0
- package/dist/handlers/scheduled-jobs.d.ts +2 -0
- package/dist/handlers/scheduled-jobs.d.ts.map +1 -0
- package/dist/handlers/schema.d.ts +16 -0
- package/dist/handlers/schema.d.ts.map +1 -0
- package/dist/handlers/security-rules.d.ts +2 -0
- package/dist/handlers/security-rules.d.ts.map +1 -0
- package/dist/handlers/servers.d.ts +2 -0
- package/dist/handlers/servers.d.ts.map +1 -0
- package/dist/handlers/sites.d.ts +2 -0
- package/dist/handlers/sites.d.ts.map +1 -0
- package/dist/handlers/ssh-keys.d.ts +2 -0
- package/dist/handlers/ssh-keys.d.ts.map +1 -0
- package/dist/handlers/types.d.ts +33 -0
- package/dist/handlers/types.d.ts.map +1 -0
- package/dist/handlers/user.d.ts +2 -0
- package/dist/handlers/user.d.ts.map +1 -0
- package/dist/handlers/utils.d.ts +26 -0
- package/dist/handlers/utils.d.ts.map +1 -0
- package/dist/hints.d.ts +60 -0
- package/dist/hints.d.ts.map +1 -0
- package/dist/http-BJUKoZdb.js +253 -0
- package/dist/http-BJUKoZdb.js.map +1 -0
- package/dist/http.d.ts +47 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +3 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +127 -0
- package/dist/index.js.map +1 -0
- package/dist/instructions.d.ts +11 -0
- package/dist/instructions.d.ts.map +1 -0
- package/dist/server.d.ts +26 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +67 -0
- package/dist/server.js.map +1 -0
- package/dist/sessions.d.ts +64 -0
- package/dist/sessions.d.ts.map +1 -0
- package/dist/stdio.d.ts +21 -0
- package/dist/stdio.d.ts.map +1 -0
- package/dist/tools.d.ts +22 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/version-Cw8OGt4r.js +3250 -0
- package/dist/version-Cw8OGt4r.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/package.json +53 -1
- package/skills/SKILL.md +189 -0
package/skills/SKILL.md
ADDED
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: forge-mcp
|
|
3
|
+
description: MCP server for Laravel Forge — manage servers, sites, deployments, SSL, databases, and more via AI agents
|
|
4
|
+
keywords:
|
|
5
|
+
- forge
|
|
6
|
+
- laravel
|
|
7
|
+
- servers
|
|
8
|
+
- deployment
|
|
9
|
+
- devops
|
|
10
|
+
- mcp
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Laravel Forge MCP Server
|
|
14
|
+
|
|
15
|
+
MCP (Model Context Protocol) server for [Laravel Forge](https://forge.laravel.com). Provides a single unified `forge` tool for all operations.
|
|
16
|
+
|
|
17
|
+
## Quick Start
|
|
18
|
+
|
|
19
|
+
Before your first interaction with any resource, call `action="help"` with that resource to discover required fields and examples.
|
|
20
|
+
|
|
21
|
+
## The `forge` Tool
|
|
22
|
+
|
|
23
|
+
Single unified tool with this signature:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
forge(resource, action, [parameters...])
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Resources & Actions
|
|
30
|
+
|
|
31
|
+
| Resource | Actions | Scope |
|
|
32
|
+
| ----------------- | --------------------------------------------- | ------ |
|
|
33
|
+
| `servers` | `list`, `get`, `create`, `delete`, `reboot` | global |
|
|
34
|
+
| `sites` | `list`, `get`, `create`, `delete` | server |
|
|
35
|
+
| `deployments` | `list`, `deploy`, `get`, `update` | site |
|
|
36
|
+
| `env` | `get`, `update` | site |
|
|
37
|
+
| `nginx` | `get`, `update` | site |
|
|
38
|
+
| `certificates` | `list`, `get`, `create`, `delete`, `activate` | site |
|
|
39
|
+
| `databases` | `list`, `get`, `create`, `delete` | server |
|
|
40
|
+
| `database-users` | `list`, `get`, `create`, `delete` | server |
|
|
41
|
+
| `daemons` | `list`, `get`, `create`, `delete`, `restart` | server |
|
|
42
|
+
| `firewall-rules` | `list`, `get`, `create`, `delete` | server |
|
|
43
|
+
| `ssh-keys` | `list`, `get`, `create`, `delete` | server |
|
|
44
|
+
| `security-rules` | `list`, `get`, `create`, `delete` | site |
|
|
45
|
+
| `redirect-rules` | `list`, `get`, `create`, `delete` | site |
|
|
46
|
+
| `monitors` | `list`, `get`, `create`, `delete` | server |
|
|
47
|
+
| `nginx-templates` | `list`, `get`, `create`, `update`, `delete` | server |
|
|
48
|
+
| `recipes` | `list`, `get`, `create`, `delete`, `run` | global |
|
|
49
|
+
|
|
50
|
+
### Scope Guide
|
|
51
|
+
|
|
52
|
+
- **global**: No parent ID needed (e.g. `servers`, `recipes`)
|
|
53
|
+
- **server**: Requires `server_id` (e.g. `sites`, `databases`, `daemons`)
|
|
54
|
+
- **site**: Requires `server_id` + `site_id` (e.g. `deployments`, `env`, `certificates`)
|
|
55
|
+
|
|
56
|
+
### Getting Help
|
|
57
|
+
|
|
58
|
+
Use `action: "help"` to get detailed documentation for any resource:
|
|
59
|
+
|
|
60
|
+
```json
|
|
61
|
+
{ "resource": "servers", "action": "help" }
|
|
62
|
+
{ "resource": "deployments", "action": "help" }
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Use `action: "schema"` for a compact machine-readable spec:
|
|
66
|
+
|
|
67
|
+
```json
|
|
68
|
+
{ "resource": "sites", "action": "schema" }
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Common Parameters
|
|
72
|
+
|
|
73
|
+
| Parameter | Type | Description |
|
|
74
|
+
| ----------- | ------- | ------------------------------------------------------------- |
|
|
75
|
+
| `resource` | string | **Required**. Resource type (see table above) |
|
|
76
|
+
| `action` | string | **Required**. Action to perform |
|
|
77
|
+
| `id` | string | Resource ID (for `get`, `delete`, `activate`, `restart`) |
|
|
78
|
+
| `server_id` | string | Server ID (for server-scoped and site-scoped resources) |
|
|
79
|
+
| `site_id` | string | Site ID (for site-scoped resources) |
|
|
80
|
+
| `compact` | boolean | Compact output (default: true) |
|
|
81
|
+
| `content` | string | Content for env/nginx `update` and deployment script `update` |
|
|
82
|
+
|
|
83
|
+
## Common Workflows
|
|
84
|
+
|
|
85
|
+
### Deploy a Site
|
|
86
|
+
|
|
87
|
+
```json
|
|
88
|
+
// 1. Find the server
|
|
89
|
+
{ "resource": "servers", "action": "list" }
|
|
90
|
+
|
|
91
|
+
// 2. Find the site
|
|
92
|
+
{ "resource": "sites", "action": "list", "server_id": "123" }
|
|
93
|
+
|
|
94
|
+
// 3. Deploy
|
|
95
|
+
{ "resource": "deployments", "action": "deploy", "server_id": "123", "site_id": "456" }
|
|
96
|
+
|
|
97
|
+
// 4. Check deployment status
|
|
98
|
+
{ "resource": "deployments", "action": "list", "server_id": "123", "site_id": "456" }
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Check Server Status
|
|
102
|
+
|
|
103
|
+
```json
|
|
104
|
+
// Get server details
|
|
105
|
+
{ "resource": "servers", "action": "get", "id": "123" }
|
|
106
|
+
|
|
107
|
+
// List sites on server
|
|
108
|
+
{ "resource": "sites", "action": "list", "server_id": "123" }
|
|
109
|
+
|
|
110
|
+
// List databases
|
|
111
|
+
{ "resource": "databases", "action": "list", "server_id": "123" }
|
|
112
|
+
|
|
113
|
+
// List background processes
|
|
114
|
+
{ "resource": "daemons", "action": "list", "server_id": "123" }
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Manage SSL Certificates
|
|
118
|
+
|
|
119
|
+
```json
|
|
120
|
+
// List existing certs
|
|
121
|
+
{ "resource": "certificates", "action": "list", "server_id": "123", "site_id": "456" }
|
|
122
|
+
|
|
123
|
+
// Request a new Let's Encrypt cert
|
|
124
|
+
{ "resource": "certificates", "action": "create", "server_id": "123", "site_id": "456", "domain": "example.com", "type": "new" }
|
|
125
|
+
|
|
126
|
+
// Activate it
|
|
127
|
+
{ "resource": "certificates", "action": "activate", "server_id": "123", "site_id": "456", "id": "789" }
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Update Environment Variables
|
|
131
|
+
|
|
132
|
+
```json
|
|
133
|
+
// Get current env
|
|
134
|
+
{ "resource": "env", "action": "get", "server_id": "123", "site_id": "456" }
|
|
135
|
+
|
|
136
|
+
// Update env
|
|
137
|
+
{ "resource": "env", "action": "update", "server_id": "123", "site_id": "456", "content": "APP_ENV=production\nAPP_DEBUG=false" }
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Create a Queue Worker
|
|
141
|
+
|
|
142
|
+
```json
|
|
143
|
+
{
|
|
144
|
+
"resource": "daemons",
|
|
145
|
+
"action": "create",
|
|
146
|
+
"server_id": "123",
|
|
147
|
+
"command": "php artisan queue:work --tries=3",
|
|
148
|
+
"user": "forge"
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Run a Recipe on Multiple Servers
|
|
153
|
+
|
|
154
|
+
```json
|
|
155
|
+
// Create recipe
|
|
156
|
+
{ "resource": "recipes", "action": "create", "name": "Clear caches", "script": "php artisan cache:clear" }
|
|
157
|
+
|
|
158
|
+
// Run it on servers
|
|
159
|
+
{ "resource": "recipes", "action": "run", "id": "456", "servers": [1, 2, 3] }
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Authentication
|
|
163
|
+
|
|
164
|
+
### Stdio Mode (Claude Desktop)
|
|
165
|
+
|
|
166
|
+
Set `FORGE_API_TOKEN` environment variable, or use the `forge_configure` tool:
|
|
167
|
+
|
|
168
|
+
```json
|
|
169
|
+
// Configure interactively
|
|
170
|
+
{ tool: "forge_configure", arguments: { api_token: "your-token" } }
|
|
171
|
+
|
|
172
|
+
// Check current config
|
|
173
|
+
{ tool: "forge_get_config", arguments: {} }
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### Getting Your API Token
|
|
177
|
+
|
|
178
|
+
1. Log into [Laravel Forge](https://forge.laravel.com)
|
|
179
|
+
2. Go to **Account → API Tokens**
|
|
180
|
+
3. Create a new token
|
|
181
|
+
4. Copy the token (shown only once)
|
|
182
|
+
|
|
183
|
+
## Tips for Efficient Usage
|
|
184
|
+
|
|
185
|
+
1. **Use help first**: Call `action="help"` for any resource before using it
|
|
186
|
+
2. **Use schema for specs**: Call `action="schema"` for compact field metadata
|
|
187
|
+
3. **Start with list**: Use `action="list"` to discover existing resources
|
|
188
|
+
4. **Chain operations**: List servers → list sites → deploy (follow the hierarchy)
|
|
189
|
+
5. **Scope matters**: Server-scoped resources need `server_id`, site-scoped need both `server_id` and `site_id`
|