deploy-site
Deploy your Laravel Forge sites directly by triggering a deployment process, ensuring your application updates are live without manual intervention.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| deploy | Yes | Deploy the site. |
Implementation Reference
- src/index.ts:50-67 (handler)The handler function for the 'deploy-site' tool. It retrieves server and site IDs from environment variables, makes a POST request to the Laravel Forge API to deploy the site, and returns success or error content.async ({ deploy }) => { const serverId = getServerId(); const siteId = getSiteId(); try { const response = await api.post(`/servers/${serverId}/sites/${siteId}/deployment/deploy`); return { content: [{ type: "text", text: `Deployment started successfully for site ${siteId} on server ${serverId}.\n` + JSON.stringify(response.data, null, 2) }] }; } catch (error: any) { let errorMessage = `Error deploying site ${siteId} on server ${serverId}: ${error.message}`; if (error.response) { errorMessage += `\nStatus: ${error.response.status}\nData: ${JSON.stringify(error.response.data, null, 2)}`; } return { content: [{ type: "text", text: errorMessage }] }; } }
- src/index.ts:47-49 (schema)Input schema for the 'deploy-site' tool, defining a boolean 'deploy' parameter.{ deploy: z.boolean().describe("Deploy the site."), },
- src/index.ts:46-68 (registration)Registration of the 'deploy-site' tool using server.tool, including schema and handler.server.tool("deploy-site", { deploy: z.boolean().describe("Deploy the site."), }, async ({ deploy }) => { const serverId = getServerId(); const siteId = getSiteId(); try { const response = await api.post(`/servers/${serverId}/sites/${siteId}/deployment/deploy`); return { content: [{ type: "text", text: `Deployment started successfully for site ${siteId} on server ${serverId}.\n` + JSON.stringify(response.data, null, 2) }] }; } catch (error: any) { let errorMessage = `Error deploying site ${siteId} on server ${serverId}: ${error.message}`; if (error.response) { errorMessage += `\nStatus: ${error.response.status}\nData: ${JSON.stringify(error.response.data, null, 2)}`; } return { content: [{ type: "text", text: errorMessage }] }; } } );