@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.
Files changed (90) hide show
  1. package/README.md +102 -0
  2. package/dist/auth.d.ts +15 -0
  3. package/dist/auth.d.ts.map +1 -0
  4. package/dist/auth.js +18 -0
  5. package/dist/auth.js.map +1 -0
  6. package/dist/errors.d.ts +36 -0
  7. package/dist/errors.d.ts.map +1 -0
  8. package/dist/formatters.d.ts +179 -0
  9. package/dist/formatters.d.ts.map +1 -0
  10. package/dist/handlers/backups.d.ts +2 -0
  11. package/dist/handlers/backups.d.ts.map +1 -0
  12. package/dist/handlers/certificates.d.ts +2 -0
  13. package/dist/handlers/certificates.d.ts.map +1 -0
  14. package/dist/handlers/commands.d.ts +2 -0
  15. package/dist/handlers/commands.d.ts.map +1 -0
  16. package/dist/handlers/daemons.d.ts +2 -0
  17. package/dist/handlers/daemons.d.ts.map +1 -0
  18. package/dist/handlers/database-users.d.ts +2 -0
  19. package/dist/handlers/database-users.d.ts.map +1 -0
  20. package/dist/handlers/databases.d.ts +2 -0
  21. package/dist/handlers/databases.d.ts.map +1 -0
  22. package/dist/handlers/deployments.d.ts +9 -0
  23. package/dist/handlers/deployments.d.ts.map +1 -0
  24. package/dist/handlers/env.d.ts +2 -0
  25. package/dist/handlers/env.d.ts.map +1 -0
  26. package/dist/handlers/factory.d.ts +71 -0
  27. package/dist/handlers/factory.d.ts.map +1 -0
  28. package/dist/handlers/firewall-rules.d.ts +2 -0
  29. package/dist/handlers/firewall-rules.d.ts.map +1 -0
  30. package/dist/handlers/help.d.ts +16 -0
  31. package/dist/handlers/help.d.ts.map +1 -0
  32. package/dist/handlers/index.d.ts +18 -0
  33. package/dist/handlers/index.d.ts.map +1 -0
  34. package/dist/handlers/monitors.d.ts +2 -0
  35. package/dist/handlers/monitors.d.ts.map +1 -0
  36. package/dist/handlers/nginx-config.d.ts +2 -0
  37. package/dist/handlers/nginx-config.d.ts.map +1 -0
  38. package/dist/handlers/nginx-templates.d.ts +2 -0
  39. package/dist/handlers/nginx-templates.d.ts.map +1 -0
  40. package/dist/handlers/recipes.d.ts +2 -0
  41. package/dist/handlers/recipes.d.ts.map +1 -0
  42. package/dist/handlers/redirect-rules.d.ts +2 -0
  43. package/dist/handlers/redirect-rules.d.ts.map +1 -0
  44. package/dist/handlers/scheduled-jobs.d.ts +2 -0
  45. package/dist/handlers/scheduled-jobs.d.ts.map +1 -0
  46. package/dist/handlers/schema.d.ts +16 -0
  47. package/dist/handlers/schema.d.ts.map +1 -0
  48. package/dist/handlers/security-rules.d.ts +2 -0
  49. package/dist/handlers/security-rules.d.ts.map +1 -0
  50. package/dist/handlers/servers.d.ts +2 -0
  51. package/dist/handlers/servers.d.ts.map +1 -0
  52. package/dist/handlers/sites.d.ts +2 -0
  53. package/dist/handlers/sites.d.ts.map +1 -0
  54. package/dist/handlers/ssh-keys.d.ts +2 -0
  55. package/dist/handlers/ssh-keys.d.ts.map +1 -0
  56. package/dist/handlers/types.d.ts +33 -0
  57. package/dist/handlers/types.d.ts.map +1 -0
  58. package/dist/handlers/user.d.ts +2 -0
  59. package/dist/handlers/user.d.ts.map +1 -0
  60. package/dist/handlers/utils.d.ts +26 -0
  61. package/dist/handlers/utils.d.ts.map +1 -0
  62. package/dist/hints.d.ts +60 -0
  63. package/dist/hints.d.ts.map +1 -0
  64. package/dist/http-BJUKoZdb.js +253 -0
  65. package/dist/http-BJUKoZdb.js.map +1 -0
  66. package/dist/http.d.ts +47 -0
  67. package/dist/http.d.ts.map +1 -0
  68. package/dist/http.js +3 -0
  69. package/dist/index.d.ts +30 -0
  70. package/dist/index.d.ts.map +1 -0
  71. package/dist/index.js +127 -0
  72. package/dist/index.js.map +1 -0
  73. package/dist/instructions.d.ts +11 -0
  74. package/dist/instructions.d.ts.map +1 -0
  75. package/dist/server.d.ts +26 -0
  76. package/dist/server.d.ts.map +1 -0
  77. package/dist/server.js +67 -0
  78. package/dist/server.js.map +1 -0
  79. package/dist/sessions.d.ts +64 -0
  80. package/dist/sessions.d.ts.map +1 -0
  81. package/dist/stdio.d.ts +21 -0
  82. package/dist/stdio.d.ts.map +1 -0
  83. package/dist/tools.d.ts +22 -0
  84. package/dist/tools.d.ts.map +1 -0
  85. package/dist/version-Cw8OGt4r.js +3250 -0
  86. package/dist/version-Cw8OGt4r.js.map +1 -0
  87. package/dist/version.d.ts +2 -0
  88. package/dist/version.d.ts.map +1 -0
  89. package/package.json +53 -1
  90. package/skills/SKILL.md +189 -0
@@ -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`