Laravel Forge MCP by usefulapi

Manage Laravel Forge servers, sites, and deployments from your AI assistant.

Should I use this

Quality & Safety

A
Description quality
89%
Schema completeness
95%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,605Tokens (tool definitions)
~1.2 KBTypical response size
Significant attention impact (2.04% of 128k context)

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-http

What it can do

Tool inventory

Tools (17)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded17 tools
verifiedversion not recorded17 tools
verifiedversion not recorded17 tools
verifiedversion not recorded17 tools
failed observationversion not recorded—