forge-mcp-server
Allows interaction with Laravel Forge API, enabling AI agents to manage servers, sites, deployments, and deployment scripts on Laravel Forge.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@forge-mcp-serverList all my Laravel Forge servers"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Laravel Forge MCP Server
A Model Context Protocol (MCP) server for interacting with Laravel Forge API. This server enables AI assistants to manage Laravel Forge servers, sites, and deployments.
Features
List and get details of Laravel Forge servers
Manage sites on Laravel Forge servers
Deploy sites and manage deployment scripts
Toggle quick deploy functionality
View deployment history
Reboot servers and check server load
Related MCP server: Forge MCP Server
Installation
npm install @bretterer/forge-mcp-serverUsage
Prerequisites
You need a Laravel Forge API key to use this server. You can get one from your Laravel Forge account settings.
Environment Variables
Set your Laravel Forge API key as an environment variable:
export FORGE_API_KEY=your_forge_api_keyRunning the Server
npx forge-mcp-serverOr add it to your project:
import { ForgeServer } from '@bretterer/forge-mcp-server';
const server = new ForgeServer();
server.run().catch(console.error);Available Tools
The MCP server provides the following tools:
list_servers- List all Laravel Forge serversget_server- Get details of a specific serverlist_sites- List all sites on a serverget_site- Get details of a specific sitedeploy_site- Deploy a siteget_deployments- Get deployment history for a siteget_deployment_script- Get the deployment script for a siteupdate_deployment_script- Update the deployment script for a sitetoggle_quick_deploy- Enable or disable quick deploy for a sitereboot_server- Reboot a serverget_server_load- Get server load metricsreset_deployment_state- Reset deployment state for a site
Development
Setup
git clone https://github.com/bretterer/forge-mcp-server.git
cd forge-mcp-server
npm installBuild
npm run buildRun in Development Mode
npm run devLicense
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Available Tools
12 toolsdeploy_siteC
Deploy a site
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | Yes | The ID of the site | |
| serverId | Yes | The ID of the server |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only says 'Deploy a site'. It fails to mention whether deployment is destructive, requires authentication, or any side effects. This is a critical gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (3 words) but at the expense of essential information. It is under-specified rather than efficiently concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of deployment and the lack of output schema, the description is woefully incomplete. It provides no context about prerequisites, return values, or process details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Deploy a site' states a clear verb and resource, but it's too minimal to differentiate from sibling tools like 'create_site' or 'reset_deployment_state'. The term 'deploy' is ambiguous and lacks specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'create_site' or 'get_deployments'. The description gives no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_deploymentsC
Get deployment history for a site
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | Yes | The ID of the site | |
| serverId | Yes | The ID of the server |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully disclose behavior. It only states the action (get history) but omits traits like read-only nature, authentication requirements, rate limits, or pagination. The lack of detail reduces transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that efficiently communicates the tool's purpose. However, it could be slightly improved by front-loading key constraints or scope, but overall it is well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 required params, no output schema), the description is minimally adequate. It lacks details such as the order of returned history or any filtering capabilities, which could be useful for an agent. More context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with both parameters clearly described ('The ID of the site' and 'The ID of the server'). The description adds no further semantic value beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves deployment history for a site, using a specific verb and resource. While it does not explicitly differentiate from sibling tools like get_deployment_script or reset_deployment_state, the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, scenarios, or exclusions, leaving the agent without context for proper selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_deployment_scriptB
Get the deployment script for a site
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | Yes | The ID of the site | |
| serverId | Yes | The ID of the server |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It is too brief and does not indicate whether the operation is read-only, requires permissions, or what the output format is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that is efficient and to the point. It contains no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is incomplete for a tool with no output schema. It fails to mention what the deployment script is (e.g., content or path) and does not help distinguish from similar tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for both parameters. The tool description adds no additional meaning beyond what the schema already provides, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('deployment script for a site'). It is specific and distinct from sibling tools like 'deploy_site' or 'update_deployment_script'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'get_deployments' or 'update_deployment_script'. The description lacks context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_serverB
Get details of a specific server
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | Yes | The ID of the server |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read operation ('get'). With no annotations, it provides minimal behavioral context but does not mention side effects, authorization, or error handling. It is acceptable for a simple read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence, front-loaded with the verb and resource. No wasted words. Sufficient for such a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, no annotations), the description is adequate but lacks information on the return format or what 'details' includes. Could be more comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the 'serverId' parameter described. The description adds no extra meaning beyond the schema; it only restates the resource being fetched.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'server', making the purpose obvious. It differentiates from siblings like 'list_servers' (which lists all servers) and other 'get_*' tools, but does not elaborate on what 'details' entails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'list_servers' or other get tools. Lacks instructions on prerequisites or context where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_server_loadC
Get server load metrics
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | Yes | The ID of the server |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but omits behavioral traits like whether the operation is read-only, what type of load metrics are returned, or any prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise but too terse; it does not include any contextual information beyond the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description fails to explain what 'load metrics' includes or how to interpret the response, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (parameter 'serverId' with description 'The ID of the server'), so the description adds no additional meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get server load metrics' clearly states the action and resource, but does not differentiate from sibling tools like 'get_server' which might also return metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as 'get_server' or 'list_servers'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_siteB
Get details of a specific site
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | Yes | The ID of the site | |
| serverId | Yes | The ID of the server |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states 'Get details' implying a read operation, but doesn't mention safe/idempotent behavior, error cases (e.g., site not found), authorization requirements, or side effects. This is insufficient for an agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no extraneous information. It is front-loaded and efficiently conveys the core purpose. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should hint at what 'details' are returned (e.g., properties like name, URL, status). It does not, leaving the agent uncertain about the return value. For a GET tool with moderate complexity, this is inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with both siteId and serverId having descriptions. The description 'Get details of a specific site' adds no additional meaning beyond what the schema already provides. Thus, baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'details of a specific site'. It effectively distinguishes from sibling tools like list_sites (which lists all sites) and create_site (which creates a site). The purpose is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For instance, it doesn't contrast with list_sites or get_server, nor does it mention prerequisites like requiring the server to exist. The agent lacks context for appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_serversA
List all Laravel Forge servers
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It implies a read-only operation returning all servers, which is sufficiently transparent for a parameterless list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (6 words), with no unnecessary content. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters, the description is complete enough. It doesn't mention pagination or authentication, but these are not critical given the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is effectively 100%. The description adds nothing about parameters, but none are needed; baseline of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action ('List') and the resource ('all Laravel Forge servers'), clearly distinguishing it from sibling tools like list_sites or list_databases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. Given the many sibling list tools, explicit usage context would help the agent choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sitesB
List all sites on a server
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | Yes | The ID of the server |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose behavior like pagination, error handling, or permission requirements. Lacks detail on what 'list' entails beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise (one sentence). Front-loaded. However, may be too sparse given no annotations; still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description omits details like result format or error scenarios. Adequate for a simple list, but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (one parameter described). Description adds no additional meaning beyond the schema's 'The ID of the server'. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'List all sites on a server'. It uses a specific verb ('List') and resource ('sites'), and distinguishes from siblings like 'get_site' (single site) and 'create_site'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., 'get_site', 'list_databases'). No context about prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reboot_serverD
Reboot a server
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | Yes | The ID of the server |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose safety traits. However, it does not mention that rebooting is destructive, causes downtime, or has any side effects. The agent receives no warning about potential disruption.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short but at the cost of completeness. The single sentence does not earn its place because it adds no meaningful information beyond the tool name. Underspecified rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description should cover reboot behavior, return values, or side effects. It fails to provide any contextual detail, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (single parameter with description 'The ID of the server'), but the parameter description is minimal and adds no value beyond the schema's name and type. It lacks context on how to obtain the ID or any constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Reboot a server' is a tautology that merely restates the tool name. It provides no additional clarity on what rebooting entails (e.g., power cycle, graceful shutdown) and does not differentiate from sibling tools, though no other reboot tool exists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, prerequisites (e.g., server must be running), or situations to avoid (e.g., during critical workloads). The description is completely silent on usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reset_deployment_stateC
Reset deployment state for a site
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | Yes | The ID of the site | |
| serverId | Yes | The ID of the server |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description is minimal. Does not disclose destructive behavior, side effects, permissions, or idempotency. 'Reset' implies mutation but is not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise (4 words) but at the cost of completeness. Front-loaded but missing essential context, making it less effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description is severely lacking given no annotations, no output schema, and no behavioral or usage context. Fails to provide necessary information for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. Description does not add meaning beyond the schema, providing no explanation of how parameters interact or constraints. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'reset' and resource 'deployment state for a site', distinguishing it from sibling tools like deploy_site, get_deployments, and reboot_server. However, it lacks detail on what 'reset' entails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. No mention of preconditions, when not to use, or related tools despite siblings providing context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggle_quick_deployC
Enable or disable quick deploy for a site
| Name | Required | Description | Default |
|---|---|---|---|
| enable | Yes | Whether to enable or disable quick deploy | |
| siteId | Yes | The ID of the site | |
| serverId | Yes | The ID of the server |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only states the function without addressing side effects, permissions, or immediacy of changes. The agent has no information about what happens when this setting is toggled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very brief and front-loaded, which is good for conciseness. However, it is too minimal; it lacks any supplementary context that would justify its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the three required parameters and no output schema, the description should elaborate on the nature of 'quick deploy' and the effects of toggling. Without this, the tool is not fully contextualized for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains each parameter adequately. The description adds no extra meaning beyond the schema, meeting the baseline for high-coverage cases.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('enable or disable') and the resource ('quick deploy for a site'), making the tool's purpose evident. However, it does not explicitly distinguish this toggle setting from sibling tools like 'deploy_site', which might confuse an agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor are there any prerequisites or context for enabling or disabling quick deploy. The agent must infer usage from the tool name and parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_deployment_scriptC
Update the deployment script for a site
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | Yes | The ID of the site | |
| content | Yes | The new deployment script content | |
| serverId | Yes | The ID of the server |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must compensate. It only states 'Update,' implying mutation, but omits side effects (e.g., overwrite entire script), auth requirements, or whether deployment is triggered. The agent lacks critical behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with verb and resource, no extraneous words. Efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no annotations, and minimal description. For a mutation tool with 3 required parameters, the description should explain return value, success/failure indicators, and potential side effects. Lacks completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for each parameter. The tool description does not add new meaning beyond the schema, which is acceptable but not exceptional. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (update) and resource (deployment script for a site), distinguishing it from sibling tools like get_deployment_script. However, it could be more specific about the scope of the update (e.g., full replacement).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., get_deployment_script for retrieval, deploy_site for execution). No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
12 tool updates
v0.1.1- First observed
deploy_site - First observed
get_deployment_script - First observed
get_deployments - First observed
get_server - First observed
get_server_load - First observed
get_site - First observed
list_servers - First observed
list_sites - First observed
reboot_server - First observed
reset_deployment_state - First observed
toggle_quick_deploy - First observed
update_deployment_script
TDQS
Scored across 12 tools
Each tool targets a distinct action and resource (site, server, deployment). No two tools have overlapping purposes; descriptions are clear and unambiguous.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., deploy_site, get_server_load). No deviation or mixing of conventions.
12 tools is well-scoped for a server management API. Each tool earns its place, covering server and site details, deployment operations, and script management without being overwhelming.
Core monitoring and deployment operations are present, but basic lifecycle actions like creating or deleting servers/sites are missing, representing notable gaps for full CRUD coverage.
Maintenance
Related MCP Connectors
MCP server for Hostinger API
Create, deploy, and operate MCP servers directly from your GitHub repositories.
A MCP server built for developers enabling Git based project management with project and personal…
The official MCP Server for the Mux API
Related MCP Servers
- FlicenseDqualityDmaintenanceA minimalist MCP server that integrates with Laravel Forge, allowing users to manage their Laravel Forge servers, sites, and deployments through AI assistants like Claude Desktop, Windsurf, or Cursor.12-
- AlicenseNot gradedqualityDmaintenanceIntegrates with the Laravel Forge API to provide comprehensive management of servers and sites. It enables users to perform health checks, monitor logs, create resources, and execute deployment tasks through MCP-compliant tools.27 npm2MIT
- AlicenseDqualityDmaintenanceMCP server for managing Pterodactyl game panel resources (users, servers, nodes, locations, etc.) via the Application API.503MIT
- FlicenseBqualityDmaintenanceMCP server for Laravel Cloud to manage projects, environments, deployments, and other resources.98-