@studiometa/forge-mcp 0.4.8 → 0.5.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@studiometa/forge-mcp",
3
- "version": "0.4.8",
3
+ "version": "0.5.0",
4
4
  "description": "MCP server for Laravel Forge — Model Context Protocol integration for AI agents",
5
5
  "keywords": [
6
6
  "ai",
@@ -67,8 +67,8 @@
67
67
  },
68
68
  "dependencies": {
69
69
  "@modelcontextprotocol/sdk": "^1.26.0",
70
- "@studiometa/forge-api": "0.4.8",
71
- "@studiometa/forge-core": "0.4.8",
70
+ "@studiometa/forge-api": "0.5.0",
71
+ "@studiometa/forge-core": "0.5.0",
72
72
  "h3": "2.0.1-rc.20"
73
73
  },
74
74
  "devDependencies": {
package/skills/SKILL.md CHANGED
@@ -42,30 +42,31 @@ forge_write(resource, action, [parameters...])
42
42
 
43
43
  ### Resources & Actions
44
44
 
45
- | Resource | Read Actions (`forge`) | Write Actions (`forge_write`) | Scope |
46
- | ----------------- | ----------------------------------- | ------------------------------ | ------ |
47
- | `servers` | `list`, `get`, `resolve`, `context` | `create`, `delete`, `reboot` | global |
48
- | `sites` | `list`, `get`, `resolve`, `context` | `create`, `delete` | server |
49
- | `deployments` | `list` | `deploy`, `update` | site |
50
- | `env` | `get` | `update` | site |
51
- | `nginx` | `get` | `update` | site |
52
- | `certificates` | `get` | `create`, `delete`, `activate` | domain |
53
- | `databases` | `list`, `get` | `create`, `delete` | server |
54
- | `database-users` | `list`, `get` | `create`, `delete` | server |
55
- | `daemons` | `list`, `get` | `create`, `delete`, `restart` | server |
56
- | `firewall-rules` | `list`, `get` | `create`, `delete` | server |
57
- | `ssh-keys` | `list`, `get` | `create`, `delete` | server |
58
- | `security-rules` | `list`, `get` | `create`, `delete` | site |
59
- | `redirect-rules` | `list`, `get` | `create`, `delete` | site |
60
- | `monitors` | `list`, `get` | `create`, `delete` | server |
61
- | `nginx-templates` | `list`, `get` | `create`, `update`, `delete` | server |
62
- | `recipes` | `list`, `get` | `create`, `delete`, `run` | global |
63
- | `scheduled-jobs` | `list`, `get` | `create`, `delete` | server |
64
- | `backups` | `list`, `get` | `create`, `delete` | server |
65
- | `commands` | `list`, `get` | `create` | site |
66
- | `php` | `list`, `get` | `update` | server |
67
- | `user` | `get` | — | global |
68
- | `batch` | `run` | — | global |
45
+ | Resource | Read Actions (`forge`) | Write Actions (`forge_write`) | Scope |
46
+ | ------------------- | ----------------------------------- | ------------------------------ | ------ |
47
+ | `servers` | `list`, `get`, `resolve`, `context` | `create`, `delete`, `reboot` | global |
48
+ | `sites` | `list`, `get`, `resolve`, `context` | `create`, `delete` | server |
49
+ | `deployments` | `list` | `deploy`, `update` | site |
50
+ | `env` | `get` | `update` | site |
51
+ | `nginx` | `get` | `update` | site |
52
+ | `certificates` | `get` | `create`, `delete`, `activate` | domain |
53
+ | `databases` | `list`, `get` | `create`, `delete` | server |
54
+ | `database-users` | `list`, `get` | `create`, `delete` | server |
55
+ | `daemons` | `list`, `get` | `create`, `delete`, `restart` | server |
56
+ | `firewall-rules` | `list`, `get` | `create`, `delete` | server |
57
+ | `ssh-keys` | `list`, `get` | `create`, `delete` | server |
58
+ | `security-rules` | `list`, `get` | `create`, `delete` | site |
59
+ | `redirect-rules` | `list`, `get` | `create`, `delete` | site |
60
+ | `monitors` | `list`, `get` | `create`, `delete` | server |
61
+ | `nginx-templates` | `list`, `get` | `create`, `update`, `delete` | server |
62
+ | `recipes` | `list`, `get` | `create`, `delete`, `run` | global |
63
+ | `scheduled-jobs` | `list`, `get` | `create`, `delete` | server |
64
+ | `backups` | `list`, `get` | `create`, `update`, `delete` | server |
65
+ | `storage-providers` | `list`, `get` | `create`, `delete` | global |
66
+ | `commands` | `list`, `get` | `create` | site |
67
+ | `php` | `list`, `get` | `update` | server |
68
+ | `user` | `get` | — | global |
69
+ | `batch` | `run` | — | global |
69
70
 
70
71
  ### Scope Guide
71
72
 
@@ -227,6 +228,16 @@ Use `action: "schema"` for a compact machine-readable spec:
227
228
  { "resource": "recipes", "action": "run", "id": "456", "servers": [1, 2, 3] }
228
229
  ```
229
230
 
231
+ ### Back Up Databases to an S3-Compatible Bucket
232
+
233
+ ```json
234
+ // Create the storage provider once per organization (forge_write)
235
+ { "resource": "storage-providers", "action": "create", "name": "Backups", "provider": "custom", "endpoint": "https://s3.example.com", "region": "eu-west-1", "bucket": "my-bucket", "access_key": "...", "secret_key": "..." }
236
+
237
+ // Back up two databases every day at 02:00 and keep 7 backups (forge_write)
238
+ { "resource": "backups", "action": "create", "server_id": "123", "storage_provider_id": 7, "frequency": "daily", "time": "02:00", "retention": 7, "directory": "web-1", "database_ids": [11, 12] }
239
+ ```
240
+
230
241
  ### Auto-Resolve: Deploy Using Names Instead of IDs
231
242
 
232
243
  No need to look up numeric IDs first — just pass names directly: