Laravel Forge MCP by usefulapi
Manage Laravel Forge servers, sites, and deployments from your AI assistant.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"laravel-forge": {
"url": "https://laravel-forge.usefulapi.io/mcp"
}
}
}Remote endpoints
https://laravel-forge.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (17)
🟢forge_list_organizations(page_size, page_cursor)
List organizations you belong to. Call this FIRST to get the organization id used by nearly every other tool. Forge v2: GET /orgs.
Input Schema
{
"type": "object",
"properties": {
"page_size": {
"description": "Results per page (maps to page[size]).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_cursor": {
"description": "Pagination cursor from links.next / meta (maps to page[cursor]).",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢forge_get_current_user
Get the authenticated Forge user. Forge v2: GET /user.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢forge_list_servers(organization, name, region, provider, php_version, ...)
List servers in an organization. Call forge_list_organizations first to get the organization id. Forge v2: GET /orgs/{organization}/servers.
Input Schema
{
"type": "object",
"properties": {
"organization": {
"type": "string",
"description": "Organization id (from forge_list_organizations)."
},
"name": {
"description": "Filter by server name (maps to filter[name]).",
"type": "string"
},
"region": {
"description": "Filter by region (maps to filter[region]).",
"type": "string"
},
"provider": {
"description": "Filter by provider (maps to filter[provider]).",
"type": "string"
},
"php_version": {
"description": "Filter by PHP version (maps to filter[php_version]).",
"type": "string"
},
"database_type": {
"description": "Filter by database type (maps to filter[database_type]).",
"type": "string"
},
"page_size": {
"description": "Results per page (maps to page[size]).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_cursor": {
"description": "Pagination cursor (maps to page[cursor]).",
"type": "string"
}
},
"required": [
"organization"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢forge_get_server(organization, server)
Get a single server's details. Forge v2: GET /orgs/{organization}/servers/{server}.
Input Schema
{
"type": "object",
"properties": {
"organization": {
"type": "string",
"description": "Organization id."
},
"server": {
"type": "string",
"description": "Server id (from forge_list_servers)."
}
},
"required": [
"organization",
"server"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢forge_list_server_events(organization, server, page_size, page_cursor)
List provisioning/activity events for a server. Forge v2: GET /orgs/{organization}/servers/{server}/events.
Input Schema
{
"type": "object",
"properties": {
"organization": {
"type": "string",
"description": "Organization id."
},
"server": {
"type": "string",
"description": "Server id."
},
"page_size": {
"description": "Results per page (maps to page[size]).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_cursor": {
"description": "Pagination cursor (maps to page[cursor]).",
"type": "string"
}
},
"required": [
"organization",
"server"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢forge_list_sites(organization, server, name, page_size, page_cursor)
List sites hosted on a server. Forge v2: GET /orgs/{organization}/servers/{server}/sites.
Input Schema
{
"type": "object",
"properties": {
"organization": {
"type": "string",
"description": "Organization id."
},
"server": {
"type": "string",
"description": "Server id."
},
"name": {
"description": "Filter by site name (maps to filter[name]).",
"type": "string"
},
"page_size": {
"description": "Results per page (maps to page[size]).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_cursor": {
"description": "Pagination cursor (maps to page[cursor]).",
"type": "string"
}
},
"required": [
"organization",
"server"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢forge_get_site(organization, site)
Get a single site's details (org-level lookup — no server id needed). Forge v2: GET /orgs/{organization}/sites/{site}.
Input Schema
{
"type": "object",
"properties": {
"organization": {
"type": "string",
"description": "Organization id."
},
"site": {
"type": "string",
"description": "Site id (from forge_list_sites)."
}
},
"required": [
"organization",
"site"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢forge_list_deployments(organization, server, site, page_size, page_cursor)
List a site's deployment history. Forge v2: GET /orgs/{organization}/servers/{server}/sites/{site}/deployments.
Input Schema
{
"type": "object",
"properties": {
"organization": {
"type": "string",
"description": "Organization id."
},
"server": {
"type": "string",
"description": "Server id."
},
"site": {
"type": "string",
"description": "Site id."
},
"page_size": {
"description": "Results per page (maps to page[size]).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_cursor": {
"description": "Pagination cursor (maps to page[cursor]).",
"type": "string"
}
},
"required": [
"organization",
"server",
"site"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢forge_get_deployment(organization, server, site, deployment)
Get a single deployment's details. Forge v2: GET /orgs/{organization}/servers/{server}/sites/{site}/deployments/{deployment}.
Input Schema
{
"type": "object",
"properties": {
"organization": {
"type": "string",
"description": "Organization id."
},
"server": {
"type": "string",
"description": "Server id."
},
"site": {
"type": "string",
"description": "Site id."
},
"deployment": {
"type": "string",
"description": "Deployment id (from forge_list_deployments)."
}
},
"required": [
"organization",
"server",
"site",
"deployment"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢forge_get_deployment_log(organization, server, site, deployment)
Get a deployment's output/log. Forge v2: GET /orgs/{organization}/servers/{server}/sites/{site}/deployments/{deployment}/log.
Input Schema
{
"type": "object",
"properties": {
"organization": {
"type": "string",
"description": "Organization id."
},
"server": {
"type": "string",
"description": "Server id."
},
"site": {
"type": "string",
"description": "Site id."
},
"deployment": {
"type": "string",
"description": "Deployment id."
}
},
"required": [
"organization",
"server",
"site",
"deployment"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢forge_get_deployment_status(organization, server, site)
Get the current deployment status for a site. Forge v2: GET /orgs/{organization}/servers/{server}/sites/{site}/deployments/status.
Input Schema
{
"type": "object",
"properties": {
"organization": {
"type": "string",
"description": "Organization id."
},
"server": {
"type": "string",
"description": "Server id."
},
"site": {
"type": "string",
"description": "Site id."
}
},
"required": [
"organization",
"server",
"site"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢forge_list_databases(organization, server, page_size, page_cursor)
List database schemas on a server. Forge v2: GET /orgs/{organization}/servers/{server}/database/schemas.
Input Schema
{
"type": "object",
"properties": {
"organization": {
"type": "string",
"description": "Organization id."
},
"server": {
"type": "string",
"description": "Server id."
},
"page_size": {
"description": "Results per page (maps to page[size]).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_cursor": {
"description": "Pagination cursor (maps to page[cursor]).",
"type": "string"
}
},
"required": [
"organization",
"server"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢forge_list_scheduled_jobs(organization, server, page_size, page_cursor)
List cron/scheduled jobs on a server. Forge v2: GET /orgs/{organization}/servers/{server}/scheduled-jobs.
Input Schema
{
"type": "object",
"properties": {
"organization": {
"type": "string",
"description": "Organization id."
},
"server": {
"type": "string",
"description": "Server id."
},
"page_size": {
"description": "Results per page (maps to page[size]).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_cursor": {
"description": "Pagination cursor (maps to page[cursor]).",
"type": "string"
}
},
"required": [
"organization",
"server"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢forge_list_monitors(organization, server, page_size, page_cursor)
List server monitors (CPU/disk/etc.). Forge v2: GET /orgs/{organization}/servers/{server}/monitors.
Input Schema
{
"type": "object",
"properties": {
"organization": {
"type": "string",
"description": "Organization id."
},
"server": {
"type": "string",
"description": "Server id."
},
"page_size": {
"description": "Results per page (maps to page[size]).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_cursor": {
"description": "Pagination cursor (maps to page[cursor]).",
"type": "string"
}
},
"required": [
"organization",
"server"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢forge_get_site_env(organization, server, site)
Get a site's .env file content. ⚠️ Returns SENSITIVE config (secrets, DB credentials, API keys). Forge v2: GET /orgs/{organization}/servers/{server}/sites/{site}/environment.
Input Schema
{
"type": "object",
"properties": {
"organization": {
"type": "string",
"description": "Organization id."
},
"server": {
"type": "string",
"description": "Server id."
},
"site": {
"type": "string",
"description": "Site id."
}
},
"required": [
"organization",
"server",
"site"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴forge_deploy_site(organization, server, site)
⚠️ Triggers a new deployment of the site (runs the deployment script). Returns the created deployment. Forge v2: POST /orgs/{organization}/servers/{server}/sites/{site}/deployments.
Input Schema
{
"type": "object",
"properties": {
"organization": {
"type": "string",
"description": "Organization id."
},
"server": {
"type": "string",
"description": "Server id."
},
"site": {
"type": "string",
"description": "Site id."
}
},
"required": [
"organization",
"server",
"site"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴forge_run_site_command(organization, server, site, command)
⚠️ Runs an arbitrary shell command in the site's directory on the server. Use with care. Forge v2: POST /orgs/{organization}/servers/{server}/sites/{site}/commands.
Input Schema
{
"type": "object",
"properties": {
"organization": {
"type": "string",
"description": "Organization id."
},
"server": {
"type": "string",
"description": "Server id."
},
"site": {
"type": "string",
"description": "Site id."
},
"command": {
"type": "string",
"description": "The shell command to run, e.g. \"php artisan migrate --force\"."
}
},
"required": [
"organization",
"server",
"site",
"command"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence