@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/README.md
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# @studiometa/forge-mcp
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@studiometa/forge-mcp)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
5
|
+
|
|
6
|
+
MCP (Model Context Protocol) server for [Laravel Forge](https://forge.laravel.com). Enables Claude Desktop and other MCP clients to manage servers, sites, deployments, and more through natural language.
|
|
7
|
+
|
|
8
|
+
## Features
|
|
9
|
+
|
|
10
|
+
- Single unified `forge` tool — minimal token overhead
|
|
11
|
+
- Resource/action routing from centralized constants
|
|
12
|
+
- Built-in help system — `action=help` for any resource
|
|
13
|
+
- Stdio transport for local use
|
|
14
|
+
- Configuration tools for interactive token setup
|
|
15
|
+
|
|
16
|
+
## Installation
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npm install -g @studiometa/forge-mcp
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Claude Desktop Configuration
|
|
23
|
+
|
|
24
|
+
Add to your Claude Desktop config:
|
|
25
|
+
|
|
26
|
+
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
27
|
+
- **Windows**: `%APPDATA%/Claude/claude_desktop_config.json`
|
|
28
|
+
- **Linux**: `~/.config/Claude/claude_desktop_config.json`
|
|
29
|
+
|
|
30
|
+
```json
|
|
31
|
+
{
|
|
32
|
+
"mcpServers": {
|
|
33
|
+
"forge": {
|
|
34
|
+
"command": "forge-mcp",
|
|
35
|
+
"env": {
|
|
36
|
+
"FORGE_API_TOKEN": "your-api-token"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Alternatively, omit the `env` block and ask Claude to configure credentials using the `forge_configure` tool.
|
|
44
|
+
|
|
45
|
+
## The `forge` Tool
|
|
46
|
+
|
|
47
|
+
A single unified tool with `resource` + `action` routing:
|
|
48
|
+
|
|
49
|
+
```json
|
|
50
|
+
{ "resource": "servers", "action": "list" }
|
|
51
|
+
{ "resource": "servers", "action": "get", "id": "123" }
|
|
52
|
+
{ "resource": "sites", "action": "list", "server_id": "123" }
|
|
53
|
+
{ "resource": "deployments", "action": "deploy", "server_id": "123", "site_id": "456" }
|
|
54
|
+
{ "resource": "servers", "action": "help" }
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Resources & Actions
|
|
58
|
+
|
|
59
|
+
| Resource | Actions | Required Fields |
|
|
60
|
+
| --------------- | ----------------------------------- | -------------------------- |
|
|
61
|
+
| servers | list, get, create, delete, reboot | id (for get/delete/reboot) |
|
|
62
|
+
| sites | list, get, create, delete | server_id |
|
|
63
|
+
| deployments | list, deploy, get, update | server_id, site_id |
|
|
64
|
+
| env | get, update | server_id, site_id |
|
|
65
|
+
| nginx | get, update | server_id, site_id |
|
|
66
|
+
| certificates | list, get, create, delete, activate | server_id, site_id |
|
|
67
|
+
| databases | list, get, create, delete | server_id |
|
|
68
|
+
| daemons | list, get, create, delete, restart | server_id |
|
|
69
|
+
| firewall-rules | list, get, create, delete | server_id |
|
|
70
|
+
| ssh-keys | list, get, create, delete | server_id |
|
|
71
|
+
| security-rules | list, get, create, delete | server_id, site_id |
|
|
72
|
+
| redirect-rules | list, get, create, delete | server_id, site_id |
|
|
73
|
+
| monitors | list, get, create, delete | server_id |
|
|
74
|
+
| nginx-templates | list, get, create, update, delete | server_id |
|
|
75
|
+
| recipes | list, get, create, delete, run | id (for get/delete/run) |
|
|
76
|
+
|
|
77
|
+
### Discovery
|
|
78
|
+
|
|
79
|
+
Use `action: "help"` with any resource:
|
|
80
|
+
|
|
81
|
+
```json
|
|
82
|
+
{ "resource": "servers", "action": "help" }
|
|
83
|
+
{ "resource": "deployments", "action": "help" }
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Stdio-Only Tools
|
|
87
|
+
|
|
88
|
+
| Tool | Description |
|
|
89
|
+
| ------------------ | ---------------------------------- |
|
|
90
|
+
| `forge_configure` | Save API token to local config |
|
|
91
|
+
| `forge_get_config` | Show current config (token masked) |
|
|
92
|
+
|
|
93
|
+
## Getting Your API Token
|
|
94
|
+
|
|
95
|
+
1. Log into [Laravel Forge](https://forge.laravel.com)
|
|
96
|
+
2. Go to **Account → API Tokens**
|
|
97
|
+
3. Create a new token with the scopes you need
|
|
98
|
+
4. Copy the token (it's only shown once)
|
|
99
|
+
|
|
100
|
+
## License
|
|
101
|
+
|
|
102
|
+
MIT © [Studio Meta](https://www.studiometa.fr)
|
package/dist/auth.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Authentication utilities for Forge MCP HTTP server
|
|
3
|
+
*/
|
|
4
|
+
export interface ForgeCredentials {
|
|
5
|
+
apiToken: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Parse Bearer token containing Forge API credentials.
|
|
9
|
+
* Token format: raw Forge API token (no base64 encoding needed).
|
|
10
|
+
*
|
|
11
|
+
* @param authHeader - Authorization header value (e.g., "Bearer <token>")
|
|
12
|
+
* @returns Parsed credentials or null if invalid
|
|
13
|
+
*/
|
|
14
|
+
export declare function parseAuthHeader(authHeader: string | undefined | null): ForgeCredentials | null;
|
|
15
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,gBAAgB,GAAG,IAAI,CAiB9F"}
|
package/dist/auth.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse Bearer token containing Forge API credentials.
|
|
3
|
+
* Token format: raw Forge API token (no base64 encoding needed).
|
|
4
|
+
*
|
|
5
|
+
* @param authHeader - Authorization header value (e.g., "Bearer <token>")
|
|
6
|
+
* @returns Parsed credentials or null if invalid
|
|
7
|
+
*/
|
|
8
|
+
function parseAuthHeader(authHeader) {
|
|
9
|
+
if (!authHeader) return null;
|
|
10
|
+
const match = authHeader.match(/^Bearer\s+(.+)$/i);
|
|
11
|
+
if (!match) return null;
|
|
12
|
+
const token = match[1].trim();
|
|
13
|
+
if (!token) return null;
|
|
14
|
+
return { apiToken: token };
|
|
15
|
+
}
|
|
16
|
+
export { parseAuthHeader };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=auth.js.map
|
package/dist/auth.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","names":[],"sources":["../src/auth.ts"],"sourcesContent":["/**\n * Authentication utilities for Forge MCP HTTP server\n */\n\nexport interface ForgeCredentials {\n apiToken: string;\n}\n\n/**\n * Parse Bearer token containing Forge API credentials.\n * Token format: raw Forge API token (no base64 encoding needed).\n *\n * @param authHeader - Authorization header value (e.g., \"Bearer <token>\")\n * @returns Parsed credentials or null if invalid\n */\nexport function parseAuthHeader(authHeader: string | undefined | null): ForgeCredentials | null {\n if (!authHeader) {\n return null;\n }\n\n const match = authHeader.match(/^Bearer\\s+(.+)$/i);\n if (!match) {\n return null;\n }\n\n const token = match[1].trim();\n\n if (!token) {\n return null;\n }\n\n return { apiToken: token };\n}\n"],"mappings":";;;;;;;AAeA,SAAgB,gBAAgB,YAAgE;AAC9F,KAAI,CAAC,WACH,QAAO;CAGT,MAAM,QAAQ,WAAW,MAAM,mBAAmB;AAClD,KAAI,CAAC,MACH,QAAO;CAGT,MAAM,QAAQ,MAAM,GAAG,MAAM;AAE7B,KAAI,CAAC,MACH,QAAO;AAGT,QAAO,EAAE,UAAU,OAAO"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom error classes for MCP server
|
|
3
|
+
*
|
|
4
|
+
* These provide structured error handling with LLM-friendly messages
|
|
5
|
+
* that include guidance on how to resolve issues.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Error thrown when user input validation fails.
|
|
9
|
+
* These errors should be returned to the user directly.
|
|
10
|
+
*
|
|
11
|
+
* Includes optional hints for how to resolve the issue.
|
|
12
|
+
*/
|
|
13
|
+
export declare class UserInputError extends Error {
|
|
14
|
+
readonly hints?: string[];
|
|
15
|
+
constructor(message: string, hints?: string[]);
|
|
16
|
+
/**
|
|
17
|
+
* Format error message with hints for LLM consumption
|
|
18
|
+
*/
|
|
19
|
+
toFormattedMessage(): string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Error messages with guidance for common validation failures
|
|
23
|
+
*/
|
|
24
|
+
export declare const ErrorMessages: {
|
|
25
|
+
readonly missingId: (action: string) => UserInputError;
|
|
26
|
+
readonly missingRequiredFields: (resource: string, fields: string[]) => UserInputError;
|
|
27
|
+
readonly invalidAction: (action: string, resource: string, validActions: string[]) => UserInputError;
|
|
28
|
+
readonly unknownResource: (resource: string, validResources: string[]) => UserInputError;
|
|
29
|
+
readonly noUpdateFieldsSpecified: (allowedFields: string[]) => UserInputError;
|
|
30
|
+
readonly apiError: (statusCode: number, message: string) => UserInputError;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Check if an error is a UserInputError
|
|
34
|
+
*/
|
|
35
|
+
export declare function isUserInputError(error: unknown): error is UserInputError;
|
|
36
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,SAAgB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;gBAErB,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE;IAM7C;;OAEG;IACH,kBAAkB,IAAI,MAAM;CAO7B;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;iCAEJ,MAAM;+CAMQ,MAAM,UAAU,MAAM,EAAE;qCAUlC,MAAM,YAAY,MAAM,gBAAgB,MAAM,EAAE;yCAO5C,MAAM,kBAAkB,MAAM,EAAE;sDAOnB,MAAM,EAAE;oCAO1B,MAAM,WAAW,MAAM;CAsBtC,CAAC;AAEX;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Response formatters for MCP tool output.
|
|
3
|
+
*
|
|
4
|
+
* This module contains per-resource formatter functions that convert
|
|
5
|
+
* executor data payloads into human-readable text for MCP responses.
|
|
6
|
+
*
|
|
7
|
+
* Keeping formatting in the MCP layer ensures executors remain pure data
|
|
8
|
+
* functions that can be reused by any adapter (CLI, SDK, etc.).
|
|
9
|
+
*/
|
|
10
|
+
import type { ForgeBackupConfig, ForgeCertificate, ForgeCommand, ForgeDaemon, ForgeDatabase, ForgeDatabaseUser, ForgeDeployment, ForgeFirewallRule, ForgeMonitor, ForgeNginxTemplate, ForgeRecipe, ForgeRedirectRule, ForgeScheduledJob, ForgeSecurityRule, ForgeServer, ForgeSite, ForgeSshKey, ForgeUser } from "@studiometa/forge-api";
|
|
11
|
+
/**
|
|
12
|
+
* Format a list of servers.
|
|
13
|
+
*/
|
|
14
|
+
export declare function formatServerList(servers: ForgeServer[]): string;
|
|
15
|
+
/**
|
|
16
|
+
* Format a single server.
|
|
17
|
+
*/
|
|
18
|
+
export declare function formatServer(server: ForgeServer): string;
|
|
19
|
+
/**
|
|
20
|
+
* Format a list of sites.
|
|
21
|
+
*/
|
|
22
|
+
export declare function formatSiteList(sites: ForgeSite[], serverId?: string): string;
|
|
23
|
+
/**
|
|
24
|
+
* Format a single site.
|
|
25
|
+
*/
|
|
26
|
+
export declare function formatSite(site: ForgeSite): string;
|
|
27
|
+
/**
|
|
28
|
+
* Format a list of databases.
|
|
29
|
+
*/
|
|
30
|
+
export declare function formatDatabaseList(databases: ForgeDatabase[]): string;
|
|
31
|
+
/**
|
|
32
|
+
* Format a single database.
|
|
33
|
+
*/
|
|
34
|
+
export declare function formatDatabase(db: ForgeDatabase): string;
|
|
35
|
+
/**
|
|
36
|
+
* Format a list of database users.
|
|
37
|
+
*/
|
|
38
|
+
export declare function formatDatabaseUserList(users: ForgeDatabaseUser[]): string;
|
|
39
|
+
/**
|
|
40
|
+
* Format a single database user.
|
|
41
|
+
*/
|
|
42
|
+
export declare function formatDatabaseUser(user: ForgeDatabaseUser): string;
|
|
43
|
+
/**
|
|
44
|
+
* Format a list of deployments.
|
|
45
|
+
*/
|
|
46
|
+
export declare function formatDeploymentList(deployments: ForgeDeployment[]): string;
|
|
47
|
+
/**
|
|
48
|
+
* Format a deployment action result (deploy/update-script).
|
|
49
|
+
*/
|
|
50
|
+
export declare function formatDeployAction(siteId: string, serverId: string): string;
|
|
51
|
+
/**
|
|
52
|
+
* Format deployment script content.
|
|
53
|
+
*/
|
|
54
|
+
export declare function formatDeploymentScript(script: string): string;
|
|
55
|
+
/**
|
|
56
|
+
* Format deployment output.
|
|
57
|
+
*/
|
|
58
|
+
export declare function formatDeploymentOutput(deploymentId: string, output: string): string;
|
|
59
|
+
/**
|
|
60
|
+
* Format a deployment script update confirmation.
|
|
61
|
+
*/
|
|
62
|
+
export declare function formatDeploymentScriptUpdated(siteId: string, serverId: string): string;
|
|
63
|
+
/**
|
|
64
|
+
* Format a list of certificates.
|
|
65
|
+
*/
|
|
66
|
+
export declare function formatCertificateList(certificates: ForgeCertificate[]): string;
|
|
67
|
+
/**
|
|
68
|
+
* Format a single certificate.
|
|
69
|
+
*/
|
|
70
|
+
export declare function formatCertificate(cert: ForgeCertificate): string;
|
|
71
|
+
/**
|
|
72
|
+
* Format a list of daemons.
|
|
73
|
+
*/
|
|
74
|
+
export declare function formatDaemonList(daemons: ForgeDaemon[]): string;
|
|
75
|
+
/**
|
|
76
|
+
* Format a single daemon.
|
|
77
|
+
*/
|
|
78
|
+
export declare function formatDaemon(daemon: ForgeDaemon): string;
|
|
79
|
+
/**
|
|
80
|
+
* Format a list of firewall rules.
|
|
81
|
+
*/
|
|
82
|
+
export declare function formatFirewallRuleList(rules: ForgeFirewallRule[]): string;
|
|
83
|
+
/**
|
|
84
|
+
* Format a single firewall rule.
|
|
85
|
+
*/
|
|
86
|
+
export declare function formatFirewallRule(rule: ForgeFirewallRule): string;
|
|
87
|
+
/**
|
|
88
|
+
* Format a list of monitors.
|
|
89
|
+
*/
|
|
90
|
+
export declare function formatMonitorList(monitors: ForgeMonitor[]): string;
|
|
91
|
+
/**
|
|
92
|
+
* Format a single monitor.
|
|
93
|
+
*/
|
|
94
|
+
export declare function formatMonitor(monitor: ForgeMonitor): string;
|
|
95
|
+
/**
|
|
96
|
+
* Format a list of SSH keys.
|
|
97
|
+
*/
|
|
98
|
+
export declare function formatSshKeyList(keys: ForgeSshKey[]): string;
|
|
99
|
+
/**
|
|
100
|
+
* Format a single SSH key.
|
|
101
|
+
*/
|
|
102
|
+
export declare function formatSshKey(key: ForgeSshKey): string;
|
|
103
|
+
/**
|
|
104
|
+
* Format a list of scheduled jobs.
|
|
105
|
+
*/
|
|
106
|
+
export declare function formatScheduledJobList(jobs: ForgeScheduledJob[]): string;
|
|
107
|
+
/**
|
|
108
|
+
* Format a single scheduled job.
|
|
109
|
+
*/
|
|
110
|
+
export declare function formatScheduledJob(job: ForgeScheduledJob): string;
|
|
111
|
+
/**
|
|
112
|
+
* Format a list of security rules.
|
|
113
|
+
*/
|
|
114
|
+
export declare function formatSecurityRuleList(rules: ForgeSecurityRule[]): string;
|
|
115
|
+
/**
|
|
116
|
+
* Format a single security rule.
|
|
117
|
+
*/
|
|
118
|
+
export declare function formatSecurityRule(rule: ForgeSecurityRule): string;
|
|
119
|
+
/**
|
|
120
|
+
* Format a list of redirect rules.
|
|
121
|
+
*/
|
|
122
|
+
export declare function formatRedirectRuleList(rules: ForgeRedirectRule[]): string;
|
|
123
|
+
/**
|
|
124
|
+
* Format a single redirect rule.
|
|
125
|
+
*/
|
|
126
|
+
export declare function formatRedirectRule(rule: ForgeRedirectRule): string;
|
|
127
|
+
/**
|
|
128
|
+
* Format nginx configuration content.
|
|
129
|
+
*/
|
|
130
|
+
export declare function formatNginxConfig(content: string): string;
|
|
131
|
+
/**
|
|
132
|
+
* Format a list of nginx templates.
|
|
133
|
+
*/
|
|
134
|
+
export declare function formatNginxTemplateList(templates: ForgeNginxTemplate[]): string;
|
|
135
|
+
/**
|
|
136
|
+
* Format a single nginx template.
|
|
137
|
+
*/
|
|
138
|
+
export declare function formatNginxTemplate(template: ForgeNginxTemplate): string;
|
|
139
|
+
/**
|
|
140
|
+
* Format a list of backup configurations.
|
|
141
|
+
*/
|
|
142
|
+
export declare function formatBackupConfigList(backups: ForgeBackupConfig[]): string;
|
|
143
|
+
/**
|
|
144
|
+
* Format a single backup configuration.
|
|
145
|
+
*/
|
|
146
|
+
export declare function formatBackupConfig(backup: ForgeBackupConfig): string;
|
|
147
|
+
/**
|
|
148
|
+
* Format a list of recipes.
|
|
149
|
+
*/
|
|
150
|
+
export declare function formatRecipeList(recipes: ForgeRecipe[]): string;
|
|
151
|
+
/**
|
|
152
|
+
* Format a single recipe.
|
|
153
|
+
*/
|
|
154
|
+
export declare function formatRecipe(recipe: ForgeRecipe): string;
|
|
155
|
+
/**
|
|
156
|
+
* Format a list of commands.
|
|
157
|
+
*/
|
|
158
|
+
export declare function formatCommandList(commands: ForgeCommand[]): string;
|
|
159
|
+
/**
|
|
160
|
+
* Format a single command.
|
|
161
|
+
*/
|
|
162
|
+
export declare function formatCommand(command: ForgeCommand): string;
|
|
163
|
+
/**
|
|
164
|
+
* Format environment variables content.
|
|
165
|
+
*/
|
|
166
|
+
export declare function formatEnv(content: string): string;
|
|
167
|
+
/**
|
|
168
|
+
* Format the authenticated user.
|
|
169
|
+
*/
|
|
170
|
+
export declare function formatUser(user: ForgeUser): string;
|
|
171
|
+
/**
|
|
172
|
+
* Format a deleted resource confirmation.
|
|
173
|
+
*/
|
|
174
|
+
export declare function formatDeleted(resource: string, id: string): string;
|
|
175
|
+
/**
|
|
176
|
+
* Format a created resource confirmation (for simple cases).
|
|
177
|
+
*/
|
|
178
|
+
export declare function formatCreated(resource: string, name: string, id: number | string): string;
|
|
179
|
+
//# sourceMappingURL=formatters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../src/formatters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backups.d.ts","sourceRoot":"","sources":["../../src/handlers/backups.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,aAAa,+IA8BxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"certificates.d.ts","sourceRoot":"","sources":["../../src/handlers/certificates.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,kBAAkB,+IAsC7B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/handlers/commands.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,cAAc,+IA0BzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemons.d.ts","sourceRoot":"","sources":["../../src/handlers/daemons.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,aAAa,+IAsCxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-users.d.ts","sourceRoot":"","sources":["../../src/handlers/database-users.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,mBAAmB,+IAkC9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"databases.d.ts","sourceRoot":"","sources":["../../src/handlers/databases.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,eAAe,+IAkC1B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { CommonArgs, HandlerContext, ToolResult } from "./types.ts";
|
|
2
|
+
/**
|
|
3
|
+
* Handle deployment resource actions.
|
|
4
|
+
*
|
|
5
|
+
* Not using the factory because the `get` action has special logic
|
|
6
|
+
* (with id → output, without id → script).
|
|
7
|
+
*/
|
|
8
|
+
export declare function handleDeployments(action: string, args: CommonArgs, ctx: HandlerContext): Promise<ToolResult>;
|
|
9
|
+
//# sourceMappingURL=deployments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployments.d.ts","sourceRoot":"","sources":["../../src/handlers/deployments.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAIzE;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,UAAU,CAAC,CAyDrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/handlers/env.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,SAAS,+IA2BpB,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Factory for creating Forge resource handlers.
|
|
3
|
+
*
|
|
4
|
+
* Encapsulates the repetitive list/get/create/update/delete pattern
|
|
5
|
+
* shared by all MCP resource handlers.
|
|
6
|
+
*/
|
|
7
|
+
import type { ExecutorContext, ExecutorResult } from "@studiometa/forge-core";
|
|
8
|
+
import type { ContextualHints } from "../hints.ts";
|
|
9
|
+
import type { CommonArgs, HandlerContext, ToolResult } from "./types.ts";
|
|
10
|
+
/**
|
|
11
|
+
* Configuration for a resource handler.
|
|
12
|
+
*/
|
|
13
|
+
export interface ResourceHandlerConfig {
|
|
14
|
+
/** Resource name for error messages */
|
|
15
|
+
resource: string;
|
|
16
|
+
/** Valid actions for this resource */
|
|
17
|
+
actions: string[];
|
|
18
|
+
/** Fields required per action (in addition to defaults) */
|
|
19
|
+
requiredFields?: Record<string, string[]>;
|
|
20
|
+
/** Executor functions keyed by action name */
|
|
21
|
+
executors: Record<string, (options: any, ctx: ExecutorContext) => Promise<ExecutorResult<unknown>>>;
|
|
22
|
+
/**
|
|
23
|
+
* Generate contextual hints for the get action response.
|
|
24
|
+
*
|
|
25
|
+
* Called with the executor result data and the resource id.
|
|
26
|
+
* Only injected when `ctx.includeHints` is true.
|
|
27
|
+
*/
|
|
28
|
+
hints?: (data: unknown, id: string) => ContextualHints;
|
|
29
|
+
/** Map tool args to executor options. Defaults to pass-through. */
|
|
30
|
+
mapOptions?: (action: string, args: CommonArgs) => Record<string, unknown>;
|
|
31
|
+
/**
|
|
32
|
+
* Format the executor result data into human-readable text for MCP output.
|
|
33
|
+
*
|
|
34
|
+
* Called with the executor result data and the tool args when compact mode
|
|
35
|
+
* is enabled. If not provided, the data is JSON-serialized.
|
|
36
|
+
*/
|
|
37
|
+
formatResult?: (action: string, data: any, args: CommonArgs) => string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Create a resource handler from configuration.
|
|
41
|
+
*
|
|
42
|
+
* Returns a function that routes actions to the correct executor,
|
|
43
|
+
* validates required fields, and formats results.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```typescript
|
|
47
|
+
* export const handleDatabases = createResourceHandler({
|
|
48
|
+
* resource: 'databases',
|
|
49
|
+
* actions: ['list', 'get', 'create', 'delete'],
|
|
50
|
+
* requiredFields: {
|
|
51
|
+
* list: ['server_id'],
|
|
52
|
+
* get: ['server_id', 'id'],
|
|
53
|
+
* create: ['server_id', 'name'],
|
|
54
|
+
* delete: ['server_id', 'id'],
|
|
55
|
+
* },
|
|
56
|
+
* executors: {
|
|
57
|
+
* list: listDatabases,
|
|
58
|
+
* get: getDatabase,
|
|
59
|
+
* create: createDatabase,
|
|
60
|
+
* delete: deleteDatabase,
|
|
61
|
+
* },
|
|
62
|
+
* formatResult: (action, data) => {
|
|
63
|
+
* if (action === 'list') return formatDatabaseList(data);
|
|
64
|
+
* if (action === 'get') return formatDatabase(data);
|
|
65
|
+
* return 'Done.';
|
|
66
|
+
* },
|
|
67
|
+
* });
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
export declare function createResourceHandler(config: ResourceHandlerConfig): (action: string, args: CommonArgs, ctx: HandlerContext) => Promise<ToolResult>;
|
|
71
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/handlers/factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAIzE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IAEjB,sCAAsC;IACtC,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAE1C,8CAA8C;IAE9C,SAAS,EAAE,MAAM,CACf,MAAM,EAEN,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CACzE,CAAC;IAEF;;;;;OAKG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,KAAK,eAAe,CAAC;IAEvD,mEAAmE;IACnE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE3E;;;;;OAKG;IAEH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,KAAK,MAAM,CAAC;CACxE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,qBAAqB,GAC5B,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,UAAU,CAAC,CA8EhF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firewall-rules.d.ts","sourceRoot":"","sources":["../../src/handlers/firewall-rules.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,mBAAmB,+IAkC9B,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Help handler — provides detailed documentation for each resource.
|
|
3
|
+
*
|
|
4
|
+
* Follows the productive-tools convention: per-resource docs with
|
|
5
|
+
* actions, required fields, field descriptions, and examples.
|
|
6
|
+
*/
|
|
7
|
+
import type { ToolResult } from "./types.ts";
|
|
8
|
+
/**
|
|
9
|
+
* Handle help action — returns documentation for a specific resource.
|
|
10
|
+
*/
|
|
11
|
+
export declare function handleHelp(resource: string): ToolResult;
|
|
12
|
+
/**
|
|
13
|
+
* Get help for all resources (overview).
|
|
14
|
+
*/
|
|
15
|
+
export declare function handleHelpOverview(): ToolResult;
|
|
16
|
+
//# sourceMappingURL=help.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/handlers/help.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA0oB7C;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAQvD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,UAAU,CAa/C"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool execution handlers for Forge MCP server.
|
|
3
|
+
* Shared between stdio and HTTP transports.
|
|
4
|
+
*
|
|
5
|
+
* Single consolidated tool for minimal token overhead:
|
|
6
|
+
* - forge: resource + action based API
|
|
7
|
+
*/
|
|
8
|
+
import type { ToolResult } from "./types.ts";
|
|
9
|
+
export type { ToolResult } from "./types.ts";
|
|
10
|
+
/**
|
|
11
|
+
* Execute a tool call with provided credentials.
|
|
12
|
+
*
|
|
13
|
+
* This is the main entry point shared between stdio and HTTP transports.
|
|
14
|
+
*/
|
|
15
|
+
export declare function executeToolWithCredentials(_name: string, args: Record<string, unknown>, credentials: {
|
|
16
|
+
apiToken: string;
|
|
17
|
+
}): Promise<ToolResult>;
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EAA8B,UAAU,EAAE,MAAM,YAAY,CAAC;AA6BzE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAiE7C;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,WAAW,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAChC,OAAO,CAAC,UAAU,CAAC,CAyDrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monitors.d.ts","sourceRoot":"","sources":["../../src/handlers/monitors.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,cAAc,+IA8BzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nginx-config.d.ts","sourceRoot":"","sources":["../../src/handlers/nginx-config.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,iBAAiB,+IA2B5B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nginx-templates.d.ts","sourceRoot":"","sources":["../../src/handlers/nginx-templates.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,oBAAoB,+IAsC/B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../src/handlers/recipes.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,aAAa,+IAqCxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redirect-rules.d.ts","sourceRoot":"","sources":["../../src/handlers/redirect-rules.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,mBAAmB,+IA8B9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduled-jobs.d.ts","sourceRoot":"","sources":["../../src/handlers/scheduled-jobs.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,mBAAmB,+IA8B9B,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema handler — compact, machine-readable resource specifications.
|
|
3
|
+
*
|
|
4
|
+
* More concise than action=help, optimized for LLM consumption when only
|
|
5
|
+
* field metadata is needed (actions, required params, field descriptions).
|
|
6
|
+
*/
|
|
7
|
+
import type { ToolResult } from "./types.ts";
|
|
8
|
+
/**
|
|
9
|
+
* Handle schema action — returns compact spec for a specific resource.
|
|
10
|
+
*/
|
|
11
|
+
export declare function handleSchema(resource: string): ToolResult;
|
|
12
|
+
/**
|
|
13
|
+
* Get schema overview for all resources.
|
|
14
|
+
*/
|
|
15
|
+
export declare function handleSchemaOverview(): ToolResult;
|
|
16
|
+
//# sourceMappingURL=schema.d.ts.map
|