Skip to main content
Glama
netlify

Netlify MCP Server

Official
by netlify

netlify-deploy-services-reader

Read-onlyIdempotent

Read Netlify deploy details by deploy ID, either globally or for a specific site, to inspect deployment status and configuration without changes.

Instructions

Select and run one of the following Netlify read operations (read-only) get-deploy, get-deploy-for-site

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
selectSchemaYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv1.0.1
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • removedInput schema / additionalProperties
      Removed value: -false
    • changedInput schema / properties / selectSchema / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "aiAgentName": {
      -        "type": "string"
      -      },
      -      "llmModelName": {
      -        "type": "string"
      -      },
      -      "operation": {
      -        "const": "get-deploy",
      -        "type": "string"
      -      },
      -      "params": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "deployId": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "deployId"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "operation"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "aiAgentName": {
      -        "type": "string"
      -      },
      -      "llmModelName": {
      -        "type": "string"
      -      },
      -      "operation": {
      -        "const": "get-deploy-for-site",
      -        "type": "string"
      -      },
      -      "params": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "deployId": {
      -            "type": "string"
      -          },
      -          "siteId": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "siteId",
      -          "deployId"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "operation"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "aiAgentName": {
      +        "type": "string"
      +      },
      +      "llmModelName": {
      +        "type": "string"
      +      },
      +      "operation": {
      +        "const": "get-deploy",
      +        "type": "string"
      +      },
      +      "params": {
      +        "properties": {
      +          "deployId": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "deployId"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "operation"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "aiAgentName": {
      +        "type": "string"
      +      },
      +      "llmModelName": {
      +        "type": "string"
      +      },
      +      "operation": {
      +        "const": "get-deploy-for-site",
      +        "type": "string"
      +      },
      +      "params": {
      +        "properties": {
      +          "deployId": {
      +            "type": "string"
      +          },
      +          "siteId": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "siteId",
      +          "deployId"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "operation"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. Addedv1.0.0

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the description's '(read-only)' adds nothing new. It discloses no behavioral traits beyond the annotations, such as auth requirements, scoping, or return shape.

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 tight sentence with the operation list front-loaded and no wasted clauses. The missing punctuation before the operation names slightly hurts readability but not efficiency.

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?

There is no output schema, so the description should ideally hint at what a deploy read returns, and it does not. For a two-branch multiplexer it identifies the branches adequately but leaves return-value and parameter selection context to the schema.

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 0% on a nested anyOf schema, so the description carries the parameter burden. Naming the two operations maps loosely to the 'operation' const values, but the required deployId and siteId parameters are never mentioned, leaving the agent to read the schema for the important detail.

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?

States a specific action (select and run a Netlify read operation) and names the two concrete operations, get-deploy and get-deploy-for-site. It is distinguishable from the sibling updater/reader tools by scope, though it never explains what either operation actually retrieves.

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?

It says to pick one of the two operations but gives no criteria for choosing between get-deploy and get-deploy-for-site, which is the central decision this tool forces. Usage is implied only by the operation names, with no when/when-not guidance.

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