Skip to main content
Glama
bultcloud

bult-mcp-server

Official
by bultcloud

@bultcloud/mcp-server

License: MIT

Official Model Context Protocol (MCP) server for Bult.ai, a DevOps platform and cloud hosting Platform-as-a-Service for deploying apps, GitHub repositories, Docker images, databases, and services with AI agents.

Use Bult MCP with Claude Desktop, Claude Code, Cursor, Codex, and other MCP-compatible clients to deploy apps, manage cloud infrastructure, inspect logs, and troubleshoot deployments through the Bult API.

Demo

Bult MCP demo

Related MCP server: shipstatic

Features

  • Deploy GitHub repositories, Docker images, databases, and app services from MCP-compatible AI agents.

  • Project lifecycle tools: list, inspect, create, update, delete, deploy, start, stop, and discard changes.

  • Service management for daemon and database services, including Docker image and Git-based deployments.

  • Persistent volumes, route/domain mappings, templates, service logs, and build history.

  • MCP tool annotations for read-only, idempotent, and destructive operations where supported.

  • Works over stdio with Claude Desktop, Claude Code, Cursor, Google Antigravity and other MCP-compatible clients.

When to use Bult MCP

Use Bult MCP when you want an AI coding agent to deploy and operate cloud hosting resources for you. Common workflows include deploying a GitHub repo from Cursor, deploying the current project from Claude Code, launching a Docker image, creating a database service, adding a public route, checking build logs, and debugging failed deployments.

Requirements

  • Node.js 18 or newer.

  • Bult API token.

Installation

If you install the package globally, use the bult-mcp binary:

npm install -g @bultcloud/mcp-server
bult-mcp

You can also run it with npx from MCP client configs:

npx -y @bultcloud/mcp-server

Configuration

The server reads its configuration from environment variables.

Variable

Required

Description

BULT_API_URL

Yes

Bult API base URL, https://app.bult.ai.

BULT_API_TOKEN

Yes

API token used for Bearer authentication.

The server exits during startup if either variable is missing.

MCP Client Setup

Claude Desktop

Add the server to claude_desktop_config.json.

Using npx:

{
  "mcpServers": {
    "bult": {
      "command": "npx",
      "args": ["-y", "@bultcloud/mcp-server"],
      "env": {
        "BULT_API_URL": "https://app.bult.ai",
        "BULT_API_TOKEN": "your-token"
      }
    }
  }
}

Claude Code

Using npx:

claude mcp add bult \
  -e BULT_API_URL=https://app.bult.ai \
  -e BULT_API_TOKEN=your-token \
  -- npx -y @bultcloud/mcp-server

Codex CLI

Using npx:

codex mcp add \
  --env BULT_API_URL=https://app.bult.ai \
  --env BULT_API_TOKEN=your-token \
  bult \
  -- npx -y @bultcloud/mcp-server

Available Tools

Projects

Tool

Description

list-projects

List all projects in the workspace.

get-project

Get a project overview with services, volumes, and routes.

create-project

Create a new project.

update-project

Update a project name.

delete-project

Delete a project and all of its resources.

deploy-project

Deploy project changes and create a version snapshot.

control-project

Start, stop, or discard project changes.

Services

Tool

Description

list-services

List all services in a project.

get-service

Get service details and configuration.

create-service

Create a daemon or database service.

update-service

Update service configuration.

delete-service

Delete a service.

control-service

Start, stop, or rebuild a service.

Volumes

Tool

Description

create-volume

Create a persistent storage volume.

update-volume

Update a volume name or size.

delete-volume

Delete a volume.

wipe-volume

Irreversibly wipe all data from a volume.

Routes

Tool

Description

create-route

Create a domain or path mapping for a service.

update-route

Update route configuration.

delete-route

Delete a route.

Templates

Tool

Description

list-templates

List available project templates.

apply-template

Apply a template to a project.

Logs and Builds

Tool

Description

get-service-logs

Read service logs with cursor-based pagination.

list-builds

List build history for a service.

Example Prompts

  • Deploy this GitHub repo to Bult and give me the public URL.

  • Deploy the current project to Bult.

  • Check why my deployment failed.

  • Show the latest logs for my app.

  • Set DATABASE_URL and restart the service.

  • Deploy this Docker image to Bult.

  • List my Bult projects and services.

Development

npm run dev      # run with tsx, no build step
npm run build    # compile TypeScript to dist/
npm run lint     # type-check without emitting files

Project layout:

src/index.ts          MCP server entrypoint
src/client.ts         Bult API client
src/tools/*.ts        MCP tool registrations by resource type

Security

BULT_API_TOKEN grants access to your Bult resources. Keep it out of source control, shell history, issue reports, and screenshots. Prefer scoped or rotatable tokens when available.

Some tools can create, delete, deploy, stop, or wipe resources. Review tool calls from your MCP client before approving destructive actions.

Privacy Policy

This MCP server connects your MCP client to Bult.ai using the API token you provide. Requests are sent to Bult.ai to perform actions such as listing projects, deploying services, managing routes and volumes, and reading logs.

The server does not store your API token. Tokens are passed through your MCP client configuration or extension settings. For Bult.ai data handling practices, see the Bult.ai Privacy Policy.

Contributing

Issues and pull requests are welcome at github.com/bultcloud/mcp-server.

Before opening a pull request, run:

npm run lint
npm run build

License

This project is licensed under the MIT License.

Available Tools

24 tools
apply-templateA

Apply a Bult template to a project, creating preconfigured services, databases, volumes, routes, and deployable cloud hosting resources.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe project ID
template_idYesThe template ID

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description must carry behavioral info. It discloses that the tool creates resources, but does not mention idempotency, error conditions, or authorization requirements. Somewhat transparent but lacking depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that is front-loaded and to the point. No redundancy, every word is necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a template-apply tool with no output schema and no annotations, the description is incomplete. It lists created resources but omits behavior like whether the operation is additive or replaces, failure modes, or required project state. Adequate but with gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with simple descriptions ('The project ID', 'The template ID'). The description adds no extra meaning beyond the schema. Baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool applies a template to a project, creating multiple resource types (services, databases, etc.). It distinguishes itself from sibling tools like create-project or create-service by describing a higher-level operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 creating individual resources. The description does not provide context for when apply-template is preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

control-projectA

Control a Bult project lifecycle by starting services, stopping cloud hosting resources, or discarding pending deployment changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe project ID
actionYesAction: start, stop, or discard

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It outlines three actions but does not disclose side effects, safety considerations, or whether actions are reversible. Schema enumerates actions but description adds minimal 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, concise and to the point with no superfluous information. All words are necessary and front-loads the purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given simple two-parameter schema, description covers actions but lacks explanation of return values or state changes after execution. Since no output schema exists, more detail would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, baseline 3. Description adds meaning by explaining each action: 'starting services', 'stopping cloud hosting resources', 'discarding pending deployment changes', which goes beyond the schema's brief 'Action: start, stop, or discard'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool controls a Bult project lifecycle with specific verbs: starting services, stopping cloud hosting resources, or discarding pending deployment changes. It distinguishes from siblings like 'control-service' by focusing on project-level actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies usage for project lifecycle actions but does not explicitly guide when to use this tool versus siblings like 'control-service' or 'deploy-project'. No exclusions or alternatives mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

control-serviceA

Control a Bult service lifecycle: start it, stop it, or rebuild it after deployment, Docker image, GitHub repository, or environment variable changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
service_idYesThe service ID
actionYesAction: start, stop, or rebuild

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so description carries full burden. It correctly states mutability (start, stop, rebuild) but omits details like prerequisites, downtime impact, or reversibility. The trigger conditions for rebuild add some depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the core actions and includes useful context for rebuild. Efficient but could be slightly more structured with bullet points for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with two parameters and no output schema, the description is sufficiently complete. It explains the tool's purpose and specific use case for rebuild, though start/stop lack elaboration.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters, so baseline is 3. The description adds value by explaining when rebuild is appropriate (after changes to deployment, image, repo, env vars), which goes beyond the enum labels 'start, stop, rebuild'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool controls a service lifecycle with three specific actions: start, stop, rebuild. The resource ('Bult service') and verb ('Control') are present, though 'rebuild' is elaborated with triggers. It distinguishes from sibling tools like create-service or delete-service by focusing on lifecycle management.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use after changes (deployment, image, repo, env vars) for rebuild, but lacks explicit when-to-use or when-not-to-use for start/stop. No alternatives or exclusions are mentioned, leaving the agent to infer context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create-projectC

Create a new Bult project for cloud hosting deployments from GitHub repositories, Docker images, templates, or databases.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe project name

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must fully disclose behavioral traits. It mentions 'create' (a write operation) but lacks details on side effects, required permissions, idempotency, error behavior (e.g., duplicate names), or reversibility. The source ambiguity also undermines transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 19 words, efficiently conveying the core action. It is front-loaded with the verb and resource, with no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description should provide more completeness about behavior and parameter handling. The mismatch between described sources and actual parameters leaves gaps. For a simple creation tool, it is minimally adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of parameters (only 'name') with a descriptive description. The tool 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a 'Bult project' for cloud hosting from various sources, distinguishing it from siblings like 'create-service' or 'create-volume'. However, the listed sources (GitHub repos, Docker images, etc.) are not reflected in the input schema, which only requires a 'name'. This creates ambiguity about how sources are specified, slightly reducing clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like 'apply-template' or 'deploy-project'. There are no exclusions, prerequisites, or context for choosing this tool over others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create-routeC

Create a Bult public route, generated URL, or custom domain mapping for a deployed service port.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe project ID
service_idYesThe service ID to route traffic to
domainNoCustom domain (leave empty for auto-generated)
pathNoURL path prefix (default: /)
portYesPort number (1-65535)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only says 'Create' (implying mutation) but does not disclose side effects, idempotency, permissions needed, or what happens on success/failure. The description is insufficient for a creation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, concise and to the point. However, the typo 'Bult' and lack of structure (no bullet points or separate sections) slightly detract. Still efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a creation tool with 5 parameters (100% schema coverage) but no output schema and no annotations, the description should provide prerequisites (e.g., service must exist), return value, and limitations. It only mentions 'deployed service port' but misses crucial context. Incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter described in the input schema. The tool description adds no extra meaning beyond what the schema already provides (e.g., 'generated URL, or custom domain mapping' aligns with 'domain' and 'path' but no new details). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a public route, generated URL, or custom domain mapping for a deployed service port, using specific verbs and resources. It distinguishes from sibling tools like 'delete-route' and 'update-route', though the typo 'Bult' slightly reduces clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions 'for a deployed service port' implying a prerequisite, but provides no explicit when-to-use, when-not-to-use, or alternative tools. With siblings like 'update-route' and 'delete-route', the lack of guidance is a notable gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create-serviceA

Create a Bult.ai service. Supports daemon apps from a GitHub repository or Docker image, plus PostgreSQL, Redis, MySQL, and MongoDB database services.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe project ID
nameYesService name (lowercase, alphanumeric with hyphens/underscores)
configYesBult service configuration with 'kind' (daemon/database), 'deploy' settings (box_id, source_type: git/docker), and optionally environment variables, ports, files, and deployment metadata

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavior. It only states creation, missing side effects, permissions, idempotency, or error conditions. Significant gaps remain.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with core action. No redundant or verbose content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex creation tool with nested config and no output schema, the description is adequate but lacks return behavior, validation rules, or prerequisites. It sufficiently introduces the main purpose but leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, setting baseline at 3. The description adds value by explaining config supports 'kind' (daemon/database), 'deploy' settings (git/docker), exceeding schema detail for that parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a Bult.ai service, specifying supported types (daemon apps from GitHub/Docker, and database services). This distinguishes it from sibling tools like create-project or create-volume.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for creating services but provides no explicit guidance on when to choose daemon vs database, or alternatives among siblings. No when-not-to-use or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create-volumeB

Create a persistent storage volume in a Bult project for deployed apps, databases, and cloud hosting services.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe project ID
nameYesVolume name
sizeYesVolume size in GB

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are given, so the description must fully disclose behavioral traits. It only states the basic action without detailing side effects, idempotency, failure modes, or dependencies like billing or existing volume conflicts.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that efficiently conveys the tool's purpose without superfluous words. However, it could benefit from slightly more structure to highlight key aspects.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a creation tool with no output schema, the description lacks details about return value (e.g., volume ID) or post-creation state. It fails to address common agent needs like confirmation of success or error handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with descriptions for all three parameters. The description adds no additional meaning beyond what the schema provides, meeting the baseline for adequate parameter information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (create) and resource (persistent storage volume) with context (in a Bult project for apps, databases, cloud hosting). It effectively distinguishes from sibling tools like delete-volume or update-volume.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (creating a volume) but provides no explicit guidance on when not to use or comparison with alternatives like deploy-project. No prerequisites or preferences mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete-projectA
Destructive

Delete a Bult project and all related cloud hosting resources, including services, routes, volumes, deployments, and public URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe project ID

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveness (destructiveHint: true). The description adds context by listing the specific resources that will be destroyed (services, routes, volumes, deployments, public URLs), enhancing understanding of the tool's impact.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that efficiently conveys the tool's purpose and scope without unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple destructive tool with one parameter and no output schema, the description sufficiently covers what the tool does, what resources are affected, and the required input.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description for the parameter. The tool description does not add additional meaning beyond the schema, and the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Delete' and identifies the resource 'project', clearly distinguishing it from sibling tools that delete individual resources (e.g., delete-route, delete-service).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for deleting entire projects with all resources, which contrasts with sibling tools for single resources, but it does not explicitly state when to use this tool versus alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete-routeB
Destructive

Delete a Bult public route or custom domain mapping from a deployed service.

ParametersJSON Schema
NameRequiredDescriptionDefault
route_idYesThe route ID

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation destructiveHint: true already indicates the destructive nature, and the description's 'Delete' is consistent. However, the description adds no extra behavioral details beyond the annotation, such as irreversibility or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, very concise and front-loaded. However, it could be slightly more informative without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive tool with only one parameter and no output schema, the description is too minimal. It doesn't explain the effect on the deployed service, whether it's reversible, or how to obtain the route ID.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the description adds no extra meaning to the route_id parameter beyond what the schema already provides ('The route ID'). No format or examples are given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool deletes a public route or custom domain mapping, using the verb 'delete' and specifying the resource. However, the typo 'Bult' instead of 'built' slightly reduces clarity. It distinguishes from sibling tools like create-route or update-route.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives minimal usage context, only stating the action. It does not specify when to use this tool versus alternatives like update-route or delete-service, nor does it mention prerequisites or consequences like service impact.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete-serviceA
Destructive

Delete a Bult service and remove its cloud hosting deployment resources.

ParametersJSON Schema
NameRequiredDescriptionDefault
service_idYesThe service ID

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark as destructive. Description adds valuable context by specifying that cloud hosting deployment resources are removed, clarifying the full impact beyond just the service record.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no verbose or redundant content. Front-loaded with the action and scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool is simple with one parameter and no output schema. Description adequately covers the purpose and behavioral impact, leaving no critical gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameter documentation with a clear description for service_id. Description does not add extra meaning beyond what the schema provides, meeting the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Describes a specific action ('Delete a Bult service') and its scope ('remove its cloud hosting deployment resources'), clearly distinguishing from sibling tools like delete-project or delete-route.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives such as control-service or update-service. Lacks context for appropriate use cases or preconditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete-volumeA
Destructive

Delete a Bult persistent volume used by a deployed service or database.

ParametersJSON Schema
NameRequiredDescriptionDefault
volume_idYesThe volume ID

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already indicate destructiveHint=true, so the destructive nature is clear. The description adds context that the volume is used by a service or database, but does not explicitly state that all data will be permanently lost.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no unnecessary words. It is front-loaded with the action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete tool with one parameter and destructive annotation, the description is adequate. It could be improved by explicitly stating irreversibility, but it covers the essential context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the description does not add additional meaning beyond what the parameter description already provides. 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool deletes a persistent volume used by a deployed service or database. It distinguishes from sibling tools like wipe-volume by specifying the resource type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool versus alternatives like wipe-volume or delete-service. No when-to-use or when-not-to-use information is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

deploy-projectB

Deploy pending Bult project changes, create a version snapshot, and make updated app services available on their public URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe project ID
commit_messageNoDeployment commit message

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool deploys pending changes, creates a snapshot, and makes services available, but it does not clarify whether this action is destructive, reversible, or requires specific permissions. Key behavioral traits are missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the action and outcome. It is concise with no wasted words, though it could benefit from slight restructuring for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description covers the core action but omits details about side effects, return values, or error states. It is adequate but not fully comprehensive for an agent to predict behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and both parameters are described in the input schema. The tool description adds no additional meaning beyond the schema for either 'project_id' or 'commit_message'. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'deploy' and specifies the resource as 'pending Bult project changes'. It also describes the outcome: creating a version snapshot and making services available on public URLs. This distinguishes it from sibling tools like create-project or update-project.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, when not to use, or what distinguishes it from other project-related tools like control-project or create-service. The usage is merely implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-projectA
Read-only

Get a Bult project overview, including services, volumes, routes, deployment status, and public URL information.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe project ID

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, so the description’s additional detail about included information (services, volumes, routes, etc.) provides some extra behavioral context but does not disclose anything beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single concise sentence directly stating the tool's purpose and output contents; no unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description lists key response components (services, volumes, routes, deployment status, public URL). Adequate for a simple retrieval tool, though slightly more detail on response structure could be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description of 'project_id'. The tool description adds no extra meaning beyond what the schema provides, meeting the baseline but not exceeding it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it gets a project overview and lists the included elements (services, volumes, routes, etc.), which distinguishes it nicely from sibling tools like list-projects (list all) and get-service (specific service).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for retrieving a single project's overview, but no explicit guidance on when to use versus alternatives like list-projects or get-service. The description does not include exclusion criteria or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-serviceA
Read-only

Get Bult service details including deployment configuration, environment variables, ports, status, logs context, and public URL routing data.

ParametersJSON Schema
NameRequiredDescriptionDefault
service_idYesThe service ID

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The tool has readOnlyHint=true annotation, so the description's list of returned information adds context but does not disclose any additional behavioral traits beyond what the annotation already says.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is reasonably concise, though it could be slightly more succinct. It front-loads the purpose and lists details efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one required parameter, no output schema, read-only), the description adequately explains what the tool returns. It is complete enough for an agent to understand the function, though it could mention that it returns details for a single service.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter (service_id) is well-described in the schema. The tool description does not provide any additional meaning or usage details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets service details and lists the specific types of data included (deployment configuration, environment variables, ports, etc.), distinguishing it from sibling tools like get-service-logs and list-services.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by listing what the tool provides but does not explicitly state when to use this tool over alternatives or when not to use it. Guidelines are implied but not direct.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-service-logsA
Read-only

Get Bult service logs with cursor-based pagination for debugging failed deployments, build errors, runtime issues, and cloud hosting status.

ParametersJSON Schema
NameRequiredDescriptionDefault
service_idYesThe service ID
cursorNoPagination cursor from a previous response

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a read-only operation (readOnlyHint=true). The description adds the behavioral trait of cursor-based pagination, which is useful but does not disclose additional aspects like rate limits, authentication needs, or potential empty results. The description is consistent with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the action and resource. It is concise with no superfluous words, though the typo 'Bult' is a minor detraction.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 parameters, no output schema, clear annotations), the description covers the use case and pagination method. It does not explain the return format but for log retrieval this is largely implicit. Some additional detail on cursor handling could improve completeness, but overall it is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters have clear descriptions in the input schema. The description mentions cursor-based pagination in general but does not add any specific meaning to individual parameters beyond what the schema already provides. Baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get', the resource 'service logs', and the pagination method. It specifies use cases (debugging failures, errors, runtime issues, cloud hosting status) that distinguish it from sibling tools like 'get-service' (which gets service details) and 'list-builds' (lists builds). The 'Bult' typo is minor but does not obscure the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for debugging specific scenarios but does not explicitly state when to use this tool versus alternatives like 'get-service' for status or 'list-builds' for builds. No guidance on when not to use or prerequisites is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list-buildsB
Read-only

List Bult service build and deployment history to inspect build status, failures, source revisions, and recent deploy activity.

ParametersJSON Schema
NameRequiredDescriptionDefault
service_idYesThe service ID

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description doesn't need to mention safety. It adds value by detailing the contents of the history (status, failures, source revisions, deploy activity), which helps the agent understand what to expect from the output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently conveys the core purpose. The typo 'Bult' slightly detracts from clarity, but overall it is appropriately sized and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one required parameter and no output schema, the description explains what information is available. However, it does not cover pagination, ordering, or response format, which are typical for list tools, leaving some gaps for agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage and describes the single parameter as 'The service ID'. The description does not add any further meaning or context to the parameter, so it meets the baseline but does not exceed it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (list) and resource (service build and deployment history) and specifies what can be inspected (build status, failures, source revisions, deploy activity). However, the typo 'Bult' may cause minor confusion about the resource name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool versus alternatives. It only describes the tool's functionality without mentioning context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list-projectsA
Read-only

List Bult.ai hosting projects in the workspace so an AI agent can choose where to deploy, inspect status, or manage services.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description's behavioral burden is lower. It adds no additional behavioral details (e.g., pagination, rate limits, required permissions) beyond the purpose. Acceptable given annotations but not enriched.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with action and resource, immediately followed by purpose. No wasted words, perfectly concise for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with no parameters and no output schema required, the description covers the essential: what it lists and why an agent would use it. Lacks details on output format but sufficient for context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist in the input schema, so schema description coverage is trivially 100%. The description does not need to add param info; the baseline of 4 is appropriate as there is no missing meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool lists Bult.ai hosting projects, with the specific verb 'List' and resource 'projects'. The purpose context (deploy, inspect, manage) adds clarity and distinguishes from sibling tools that list other resources like services or builds.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions the use case (choose where to deploy, etc.) but does not explicitly specify when to use this tool over alternatives like list-services or list-builds. No exclusion criteria or when-not-to-use guidance provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list-servicesB
Read-only

List services in a Bult project, including app, database, GitHub repository, Docker image, and cloud hosting deployment targets.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe project ID

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, which the description is consistent with. The description adds that the output includes various types, but does not disclose other behaviors (e.g., pagination, permissions). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, front-loaded sentence that efficiently conveys the tool's purpose and scope. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one parameter and annotations, the description is fairly complete. It explains what is listed and the project context, though it omits details like output format or ordering.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with a single parameter description. The description adds context about the output but not about the parameter itself. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists services in a project and enumerates the types (app, database, etc.), setting it apart from siblings like list-builds and list-projects. However, it could be more precise about what constitutes a 'service'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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-builds or list-projects. The description does not mention prerequisites or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list-templatesA
Read-only

List available Bult app and database templates for fast cloud hosting setup and one-click deployments.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description confirms a read operation. No additional behavioral traits (e.g., pagination, rate limits) are disclosed. Description does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the action ('List available...templates'), with no wasted words. It is appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool without output schema, the description sufficiently explains the purpose. Sibling tools provide context. Could be slightly more detailed about return format, but adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the baseline is 4. The description adds context about the type of templates listed (app and database), which is useful beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists available templates for app and database deployment. It uses a specific verb ('List') and resource ('templates'), and distinguishes from siblings like 'apply-template' which applies a template.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for viewing available templates but does not explicitly state when to use this tool over other list tools (e.g., list-projects, list-services) or provide when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update-projectB
Idempotent

Update a Bult project name to keep deployment and hosting workspaces organized.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe project ID
nameYesThe new project name

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare idempotentHint=true, so the description adds no new behavioral info. It does not contradict annotations, but also doesn't disclose any additional behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no redundancy. Could be considered slightly under-specified but remains efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple tool (2 params, no output schema) and good annotations, the description is minimally adequate. It lacks rich context but covers the essential purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters. The description adds no extra meaning beyond the schema, earning the baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Update' and the resource 'project name', distinguishing it from sibling tools like create-project, delete-project, and list-projects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives. The vague phrase 'to keep deployment and hosting workspaces organized' provides no actionable criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update-routeB
Idempotent

Update a Bult route configuration, including public URL path, custom domain, service target, and exposed port.

ParametersJSON Schema
NameRequiredDescriptionDefault
route_idYesThe route ID
service_idYesThe service ID to route traffic to
domainNoCustom domain
pathNoURL path prefix
portYesPort number (1-65535)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare idempotentHint=true, but the description adds no additional behavioral context. It fails to disclose whether the update is partial or full, what happens if the route does not exist, or any side effects. For a mutation tool with annotations, more context is expected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no wasted words. However, it is minimal and misses opportunities to include important behavioral or usage details, making it slightly less than perfect conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (5 parameters, 3 required, no output schema, annotations present), the description lacks critical context such as update behavior (partial vs full), error conditions, and return value. It covers purpose but not comprehensive guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description lists the fields (public URL path, custom domain, service target, exposed port) but does not add meaningful semantics beyond what the schema already provides (e.g., no format hints or relationships).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the verb 'Update' and specifies the resource 'Bult route configuration', listing the elements (public URL path, custom domain, service target, exposed port). It clearly distinguishes from sibling tools like create-route and delete-route.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. It does not mention prerequisites, when-not scenarios, or relation to sibling tools like create-route or delete-route.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update-serviceA
Idempotent

Update a Bult service configuration, including deployment source, Docker image or GitHub repository settings, ports, files, and environment variables.

ParametersJSON Schema
NameRequiredDescriptionDefault
service_idYesThe service ID
nameYesService name
configYesUpdated service configuration

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare idempotentHint=true, indicating safe repetition. The description adds context about what can be updated but does not detail whether the update is a full replace or merge, or what happens to unspecified fields. With annotations present, a score of 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that covers the purpose and key parameters. It is not overly long, but could benefit from a slightly more structured format (e.g., bullet points) to improve readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (3 params, 1 nested object) and lack of output schema, the description is minimally complete. It omits information about return values and does not contextualize usage among many sibling tools, leaving some gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the three parameters. The description adds value beyond the schema by providing concrete examples of what the 'config' object can contain (deployment source, Docker image, GitHub repo settings, ports, files, environment variables), which helps agents understand the parameter's structure.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Update'), resource ('Bult service configuration'), and enumerates specific controllable aspects (deployment source, Docker image, GitHub settings, ports, files, environment variables). This distinguishes it from sibling tools like 'create-service' or 'update-project'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives such as 'create-service', 'deploy-project', or other update tools. It does not specify prerequisites, limitations, or scenarios where another tool would be preferable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update-volumeB
Idempotent

Update a Bult persistent volume name or size for app storage and database hosting needs.

ParametersJSON Schema
NameRequiredDescriptionDefault
volume_idYesThe volume ID
nameYesVolume name
sizeNoVolume size in GB

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already indicate idempotentHint: true, so the description does not need to repeat that. However, the description adds no further behavioral context, such as whether updating the size triggers a resize operation, if there is downtime, or what permissions are required. The description does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 16 words, which is concise and front-loaded. However, it contains a typo ('Bult') that detracts from professionalism. It meets the threshold for being appropriately sized but not flawless.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters (2 required) and no output schema, the description is minimal. It does not explain return values, error conditions, or the effect of updating only one parameter. For a mutation tool, more context about implications (e.g., whether updating size triggers a rebuild) would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameters with respective descriptions, so the burden on the description is low. The description mentions 'name or size' which matches the schema but does not add additional constraints or semantics beyond what is already in the schema (e.g., naming rules, size limits).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Update' and the resource 'persistent volume', specifying that name and size can be updated. It distinguishes from sibling tools like create-volume, delete-volume, and wipe-volume. However, the typo 'Bult' reduces clarity and the phrasing 'app storage and database hosting needs' is somewhat vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a general context of usage ('for app storage and database hosting needs') but does not include explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives among sibling tools. It implies that this tool is for modifying existing volumes, but a beginner might not immediately understand when to choose this over recreating a volume.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wipe-volumeA
Destructive

Irreversibly wipe all data from a Bult persistent volume used by cloud apps or databases.

ParametersJSON Schema
NameRequiredDescriptionDefault
volume_idYesThe volume ID

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide destructiveHint=true. Description adds 'irreversibly' and clarifies data scope, but does not detail what happens to the volume (e.g., remains usable) or impact on running apps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence of 14 words, perfectly front-loaded with action and consequence. No superfluous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple tool with one parameter and annotations, but lacks mention of post-wipe state or required permissions. Could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with 'volume_id' described as 'The volume ID'. Description adds no extra meaning about format or retrieval.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'wipe' and identifies resource 'Bult persistent volume', clearly distinguishing from sibling 'delete-volume' which would remove the volume itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives like 'delete-volume' or 'update-volume'. No when-not-to-use or prerequisites mentioned.

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. Dates show when Glama detected each change.

  1. 24 tool updatesv1.0.1
    • First observedapply-template
    • First observedcontrol-project
    • First observedcontrol-service
    • First observedcreate-project
    • First observedcreate-route
    • First observedcreate-service
    • First observedcreate-volume
    • First observeddelete-project
    • First observeddelete-route
    • First observeddelete-service
    • First observeddelete-volume
    • First observeddeploy-project
    • First observedget-project
    • First observedget-service
    • First observedget-service-logs
    • First observedlist-builds
    • First observedlist-projects
    • First observedlist-services
    • First observedlist-templates
    • First observedupdate-project
    • First observedupdate-route
    • First observedupdate-service
    • First observedupdate-volume
    • First observedwipe-volume

TDQS

A3.8/5.0
Disambiguation5/5

Each tool targets a distinct resource or action: project, service, route, volume, template, build, logs, control, deploy. No overlapping purposes; descriptions clearly differentiate them.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case (e.g., create-project, get-service-logs, wipe-volume). Minor variations like 'apply-template' still adhere to the convention.

Tool Count5/5

24 tools cover the full lifecycle of Bult cloud resources (CRUD + deploy, control, logs, builds, templates). The count is well-scoped for the domain without being excessive.

Completeness5/5

The tool surface provides complete CRUD for projects, services, routes, and volumes, plus essential operational tools (deploy, control, logs, builds, templates). No obvious gaps for managing cloud hosting.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bultcloud/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server