Laravel Forge MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.16.3 · published by io.usefulapi
Manage Laravel Forge servers, sites, and deployments from your AI assistant.
17 tools: 2 can delete or cancel things and 15 only read.
Scanned Oct 21, 2026
- Deletes or cancels2Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things0Claude Code: ask
- Only reads15Claude Code: allow: see these tools
5 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http laravel-forge https://laravel-forge.usefulapi.io/mcpFindings
Matches of fixed checks, with the text they matched.
The title refers to ".env".
What this check looks forMatched text
title: "Get site environment (.env)"
The annotations title refers to ".env".
What this check looks forMatched text
annotations.title: "Get site environment (.env)"
The description refers to ".env".
What this check looks forMatched text
description: "Get a site's .env file content. ⚠[U+FE0F] Returns SENSITIVE conf..."
The description contains "every other tool", wording about other tools or servers.
What this check looks forMatched text
description: "...get the organization id used by nearly every other tool. Forge v2: GET /orgs."
The description mentions "credentials".
What this check looks forMatched text
description: "...[U+FE0F] Returns SENSITIVE config (secrets, DB credentials, API keys). Forge v2: GET /orgs/{organi..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
17 tools
Deletes or cancels 2Claude Code: deny
forge_deploy_site⚠[U+FE0F] Triggers a new deployment of the site (runs the deployment script).No findings
Why it is in this group
- The name "forge_deploy_site" says "deploy": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote itContains invisible characters, shown as [U+…] ⚠[U+FE0F] 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.
Annotations the server declares
- title: Deploy site
- destructiveHint: true
forge_run_site_command⚠[U+FE0F] Runs an arbitrary shell command in the site's directory on the server.No findings
Why it is in this group
- The name "forge_run_site_command" says "run": a word for a change.
- The input takes a statement or command to run (input.command), which can change anything it can reach.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote itContains invisible characters, shown as [U+…] ⚠[U+FE0F] 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.
Annotations the server declares
- title: Run site command
- destructiveHint: true
Only reads 15Claude Code: allow
forge_get_current_userGet the authenticated Forge user.No findings
Why it is in this group
- The name "forge_get_current_user" says "get": a word for reading.
Description, as the server wrote it Get the authenticated Forge user. Forge v2: GET /user.
Annotations the server declares
- title: Get current user
- readOnlyHint: true
forge_get_deploymentGet a single deployment's details.No findings
Why it is in this group
- The name "forge_get_deployment" says "get": a word for reading.
Description, as the server wrote it Get a single deployment's details. Forge v2: GET /orgs/{organization}/servers/{server}/sites/{site}/deployments/{deployment}.
Annotations the server declares
- title: Get deployment
- readOnlyHint: true
forge_get_deployment_logGet a deployment's output/log.No findings
Why it is in this group
- The name "forge_get_deployment_log" says "get": a word for reading.
Description, as the server wrote it Get a deployment's output/log. Forge v2: GET /orgs/{organization}/servers/{server}/sites/{site}/deployments/{deployment}/log.
Annotations the server declares
- title: Get deployment log
- readOnlyHint: true
forge_get_deployment_statusGet the current deployment status for a site.No findings
Why it is in this group
- The name "forge_get_deployment_status" says "get": a word for reading.
Description, as the server wrote it Get the current deployment status for a site. Forge v2: GET /orgs/{organization}/servers/{server}/sites/{site}/deployments/status.
Annotations the server declares
- title: Get deployment status
- readOnlyHint: true
forge_get_serverGet a single server's details.No findings
Why it is in this group
- The name "forge_get_server" says "get": a word for reading.
Description, as the server wrote it Get a single server's details. Forge v2: GET /orgs/{organization}/servers/{server}.
Annotations the server declares
- title: Get server
- readOnlyHint: true
forge_get_siteGet a single site's details (org-level lookup — no server id needed).No findings
Why it is in this group
- The name "forge_get_site" says "get": a word for reading.
Description, as the server wrote it Get a single site's details (org-level lookup — no server id needed). Forge v2: GET /orgs/{organization}/sites/{site}.
Annotations the server declares
- title: Get site
- readOnlyHint: true
forge_get_site_envGet a site's .env file content.4 findings
Why it is in this group
- The name "forge_get_site_env" says "get": a word for reading.
Findings
- High
The title refers to ".env".
What this check looks forMatched text
title: "Get site environment (.env)"
- High
The annotations title refers to ".env".
What this check looks forMatched text
annotations.title: "Get site environment (.env)"
- High
The description refers to ".env".
What this check looks forMatched text
description: "Get a site's .env file content. ⚠[U+FE0F] Returns SENSITIVE conf..."
- Info
The description mentions "credentials".
What this check looks forMatched text
description: "...[U+FE0F] Returns SENSITIVE config (secrets, DB credentials, API keys). Forge v2: GET /orgs/{organi..."
Description, as the server wrote itContains invisible characters, shown as [U+…] Get a site's .env file content. ⚠[U+FE0F] Returns SENSITIVE config (secrets, DB credentials, API keys). Forge v2: GET /orgs/{organization}/servers/{server}/sites/{site}/environment.
Annotations the server declares
- title: Get site environment (.env)
- readOnlyHint: true
forge_list_databasesList database schemas on a server.No findings
Why it is in this group
- The name "forge_list_databases" says "list": a word for reading.
Description, as the server wrote it List database schemas on a server. Forge v2: GET /orgs/{organization}/servers/{server}/database/schemas.
Annotations the server declares
- title: List databases
- readOnlyHint: true
forge_list_deploymentsList a site's deployment history.No findings
Why it is in this group
- The name "forge_list_deployments" says "list": a word for reading.
Description, as the server wrote it List a site's deployment history. Forge v2: GET /orgs/{organization}/servers/{server}/sites/{site}/deployments.
Annotations the server declares
- title: List deployments
- readOnlyHint: true
forge_list_monitorsList server monitors (CPU/disk/etc.).No findings
Why it is in this group
- The name "forge_list_monitors" says "list": a word for reading.
Description, as the server wrote it List server monitors (CPU/disk/etc.). Forge v2: GET /orgs/{organization}/servers/{server}/monitors.
Annotations the server declares
- title: List monitors
- readOnlyHint: true
forge_list_organizationsList organizations you belong to.1 finding
Why it is in this group
- The name "forge_list_organizations" says "list": a word for reading.
Findings
- Warn
The description contains "every other tool", wording about other tools or servers.
What this check looks forMatched text
description: "...get the organization id used by nearly every other tool. Forge v2: GET /orgs."
Description, as the server wrote it List organizations you belong to. Call this FIRST to get the organization id used by nearly every other tool. Forge v2: GET /orgs.
Annotations the server declares
- title: List organizations
- readOnlyHint: true
forge_list_scheduled_jobsList cron/scheduled jobs on a server.No findings
Why it is in this group
- The name "forge_list_scheduled_jobs" says "list": a word for reading.
Description, as the server wrote it List cron/scheduled jobs on a server. Forge v2: GET /orgs/{organization}/servers/{server}/scheduled-jobs.
Annotations the server declares
- title: List scheduled jobs
- readOnlyHint: true
forge_list_server_eventsList provisioning/activity events for a server.No findings
Why it is in this group
- The name "forge_list_server_events" says "list": a word for reading.
Description, as the server wrote it List provisioning/activity events for a server. Forge v2: GET /orgs/{organization}/servers/{server}/events.
Annotations the server declares
- title: List server events
- readOnlyHint: true
forge_list_serversList servers in an organization.No findings
Why it is in this group
- The name "forge_list_servers" says "list": a word for reading.
Description, as the server wrote it List servers in an organization. Call forge_list_organizations first to get the organization id. Forge v2: GET /orgs/{organization}/servers.
Annotations the server declares
- title: List servers
- readOnlyHint: true
forge_list_sitesList sites hosted on a server.No findings
Why it is in this group
- The name "forge_list_sites" says "list": a word for reading.
Description, as the server wrote it List sites hosted on a server. Forge v2: GET /orgs/{organization}/servers/{server}/sites.
Annotations the server declares
- title: List sites
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.16.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http laravel-forge https://laravel-forge.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__laravel-forge__forge_list_organizations",
"mcp__laravel-forge__forge_get_current_user",
"mcp__laravel-forge__forge_list_servers",
"mcp__laravel-forge__forge_get_server",
"mcp__laravel-forge__forge_list_server_events",
"mcp__laravel-forge__forge_list_sites",
"mcp__laravel-forge__forge_get_site",
"mcp__laravel-forge__forge_list_deployments",
"mcp__laravel-forge__forge_get_deployment",
"mcp__laravel-forge__forge_get_deployment_log",
"mcp__laravel-forge__forge_get_deployment_status",
"mcp__laravel-forge__forge_list_databases",
"mcp__laravel-forge__forge_list_scheduled_jobs",
"mcp__laravel-forge__forge_list_monitors",
"mcp__laravel-forge__forge_get_site_env"
],
"ask": [],
"deny": [
"mcp__laravel-forge__forge_deploy_site",
"mcp__laravel-forge__forge_run_site_command"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as laravel-forge. Review it before you use it.