Skip to main content
Glama

Lovie Company Formation

Reopen Cap Table Round

cap_table_reopen_cap_table_round
Destructive

ReopenCapTableRound flips a CLOSED round back to OPEN (status only).

Input Schema

NameRequiredDescriptionDefault
roundIdYesUUID value wrapper.

Output Schema

NameRequiredDescriptionDefault
roundNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / round / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "closedAt": {
      -        "anyOf": [
      -          {
      -            "format": "date-time",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "companyId": {
      -        "anyOf": [
      -          {
      -            "description": "UUID value wrapper.",
      -            "properties": {
      -              "value": {
      -                "format": "uuid",
      -                "type": "string"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "createdAt": {
      -        "anyOf": [
      -          {
      -            "format": "date-time",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "fullyDilutedShares": {
      -        "type": "string"
      -      },
      -      "id": {
      -        "anyOf": [
      -          {
      -            "description": "UUID value wrapper.",
      -            "properties": {
      -              "value": {
      -                "format": "uuid",
      -                "type": "string"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "isPriced": {
      -        "type": "boolean"
      -      },
      -      "name": {
      -        "type": "string"
      -      },
      -      "optionPoolPct": {
      -        "type": "string"
      -      },
      -      "optionPoolShares": {
      -        "type": "string"
      -      },
      -      "postMoneyValuation": {
      -        "type": "string"
      -      },
      -      "preMoneyValuation": {
      -        "type": "string"
      -      },
      -      "pricePerShare": {
      -        "type": "string"
      -      },
      -      "status": {
      -        "enum": [
      -          "CAP_TABLE_ROUND_STATUS_UNSPECIFIED",
      -          "CAP_TABLE_ROUND_STATUS_OPEN",
      -          "CAP_TABLE_ROUND_STATUS_CLOSING",
      -          "CAP_TABLE_ROUND_STATUS_CLOSED"
      -        ],
      -        "type": "string"
      -      },
      -      "totalRaiseTarget": {
      -        "type": "string"
      -      },
      -      "updatedAt": {
      -        "anyOf": [
      -          {
      -            "format": "date-time",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      }
      -    },
      -    "required": [
      -      "companyId"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "closedAt": {
      +        "anyOf": [
      +          {
      +            "format": "date-time",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "companyId": {
      +        "anyOf": [
      +          {
      +            "description": "UUID value wrapper.",
      +            "properties": {
      +              "value": {
      +                "format": "uuid",
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "createdAt": {
      +        "anyOf": [
      +          {
      +            "format": "date-time",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "fullyDilutedShares": {
      +        "type": "string"
      +      },
      +      "id": {
      +        "anyOf": [
      +          {
      +            "description": "UUID value wrapper.",
      +            "properties": {
      +              "value": {
      +                "format": "uuid",
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "isPriced": {
      +        "type": "boolean"
      +      },
      +      "name": {
      +        "type": "string"
      +      },
      +      "optionPoolPct": {
      +        "type": "string"
      +      },
      +      "optionPoolShares": {
      +        "type": "string"
      +      },
      +      "postMoneyValuation": {
      +        "type": "string"
      +      },
      +      "preMoneyValuation": {
      +        "type": "string"
      +      },
      +      "pricePerShare": {
      +        "type": "string"
      +      },
      +      "recorded": {
      +        "type": "boolean"
      +      },
      +      "status": {
      +        "enum": [
      +          "CAP_TABLE_ROUND_STATUS_UNSPECIFIED",
      +          "CAP_TABLE_ROUND_STATUS_OPEN",
      +          "CAP_TABLE_ROUND_STATUS_CLOSING",
      +          "CAP_TABLE_ROUND_STATUS_CLOSED"
      +        ],
      +        "type": "string"
      +      },
      +      "totalRaiseTarget": {
      +        "type": "string"
      +      },
      +      "updatedAt": {
      +        "anyOf": [
      +          {
      +            "format": "date-time",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "required": [
      +      "companyId"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed4 schema fields changed
    • addedOutput schema / properties / round / anyOf
      Added value: +[
      +  {
      +    "properties": {
      +      "closedAt": {
      +        "anyOf": [
      +          {
      +            "format": "date-time",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "companyId": {
      +        "anyOf": [
      +          {
      +            "description": "UUID value wrapper.",
      +            "properties": {
      +              "value": {
      +                "format": "uuid",
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "createdAt": {
      +        "anyOf": [
      +          {
      +            "format": "date-time",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "fullyDilutedShares": {
      +        "type": "string"
      +      },
      +      "id": {
      +        "anyOf": [
      +          {
      +            "description": "UUID value wrapper.",
      +            "properties": {
      +              "value": {
      +                "format": "uuid",
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "isPriced": {
      +        "type": "boolean"
      +      },
      +      "name": {
      +        "type": "string"
      +      },
      +      "optionPoolPct": {
      +        "type": "string"
      +      },
      +      "optionPoolShares": {
      +        "type": "string"
      +      },
      +      "postMoneyValuation": {
      +        "type": "string"
      +      },
      +      "preMoneyValuation": {
      +        "type": "string"
      +      },
      +      "pricePerShare": {
      +        "type": "string"
      +      },
      +      "status": {
      +        "enum": [
      +          "CAP_TABLE_ROUND_STATUS_UNSPECIFIED",
      +          "CAP_TABLE_ROUND_STATUS_OPEN",
      +          "CAP_TABLE_ROUND_STATUS_CLOSING",
      +          "CAP_TABLE_ROUND_STATUS_CLOSED"
      +        ],
      +        "type": "string"
      +      },
      +      "totalRaiseTarget": {
      +        "type": "string"
      +      },
      +      "updatedAt": {
      +        "anyOf": [
      +          {
      +            "format": "date-time",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "required": [
      +      "companyId"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / round / properties
      Removed value: -{
      -  "closedAt": {
      -    "format": "date-time",
      -    "type": "string"
      -  },
      -  "companyId": {
      -    "description": "UUID value wrapper.",
      -    "properties": {
      -      "value": {
      -        "format": "uuid",
      -        "type": "string"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  "createdAt": {
      -    "format": "date-time",
      -    "type": "string"
      -  },
      -  "fullyDilutedShares": {
      -    "type": "string"
      -  },
      -  "id": {
      -    "description": "UUID value wrapper.",
      -    "properties": {
      -      "value": {
      -        "format": "uuid",
      -        "type": "string"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  "isPriced": {
      -    "type": "boolean"
      -  },
      -  "name": {
      -    "type": "string"
      -  },
      -  "optionPoolPct": {
      -    "type": "string"
      -  },
      -  "optionPoolShares": {
      -    "type": "string"
      -  },
      -  "postMoneyValuation": {
      -    "type": "string"
      -  },
      -  "preMoneyValuation": {
      -    "type": "string"
      -  },
      -  "pricePerShare": {
      -    "type": "string"
      -  },
      -  "status": {
      -    "enum": [
      -      "CAP_TABLE_ROUND_STATUS_UNSPECIFIED",
      -      "CAP_TABLE_ROUND_STATUS_OPEN",
      -      "CAP_TABLE_ROUND_STATUS_CLOSING",
      -      "CAP_TABLE_ROUND_STATUS_CLOSED"
      -    ],
      -    "type": "string"
      -  },
      -  "totalRaiseTarget": {
      -    "type": "string"
      -  },
      -  "updatedAt": {
      -    "format": "date-time",
      -    "type": "string"
      -  }
      -}
    • removedOutput schema / properties / round / required
      Removed value: -[
      -  "companyId"
      -]
    • removedOutput schema / properties / round / type
      Removed value: -"object"
  3. First observed

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already supply destructiveHint=true and openWorldHint=false, and the description usefully adds that only the status field is touched, implying no other round data mutates. It does not say what happens when the round is already open, whether reopen affects downstream snapshots/stakeholders, or what authorization is required. There is mild tension between 'status only' and destructiveHint=true that is never reconciled.

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?

One short, front-loaded sentence with no filler; the operation and constraint appear immediately. It is arguably too terse for a state-changing tool, but nothing is wasted.

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?

An output schema exists and there is one required parameter with full coverage, so little else is needed. Still, for a mutation advertised as destructive, the absence of any note on preconditions or side effects leaves a gap.

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% and the single roundId parameter is documented as a UUID value wrapper in the schema, so the schema carries the burden. The description adds no information about the identifier or its format, so baseline 3 applies.

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 verb and resource plus an exact state transition: 'flips a CLOSED round back to OPEN'. The parenthetical '(status only)' narrows scope precisely. It does not name how it differs from close_cap_table_round or update_cap_table_round, so sibling differentiation is left implicit.

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?

'Reopen ... CLOSED round' implies the precondition (round must be closed) and '(status only)' hints that field edits belong to update_cap_table_round, but no alternative is named and no exclusion is stated. The agent must infer the routing rather than being told it.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.