Skip to main content
Glama
zenskar

Zenskar MCP Server

Official
by zenskar

updateContract

updateContract

Update an existing contract's details including status, dates, phases, and renewal policy after fetching the original contract via getContractById.

Instructions

Update an existing contract. This is a PUT endpoint — you MUST fetch the contract first with getContractById, then send ALL required fields including phases. Without phases the API returns 500. Copy phases from the GET response (each phase needs name, start_date, end_date at minimum). Status: draft, active, paused, expired, disputed. Renewal: renew_with_default_contract, renew_with_existing, do_not_renew.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
contractIdYesThe unique identifier (UUID) of the contract to update.
nameYesHuman-readable name for the contract.
statusYesContract status: draft, active, paused, or disputed. Cannot set to 'expired' via update.
currencyYesThree-letter ISO 4217 currency code (e.g. USD, EUR, GBP).
start_dateYesContract start date in ISO 8601 format (e.g. 2026-01-01T00:00:00).
customer_idYesUUID of the customer associated with this contract.
descriptionNoDetailed description of the contract terms.
end_dateNoContract end date in ISO 8601 format.
anchor_dateNoReference date for billing cycle calculations.
is_last_day_of_monthNoWhen true, billing cycles always end on the last day of the month.
custom_attributesNoKey-value pairs for organization-specific metadata (e.g. automatic_renewal flag).
phasesNoArray of contract phases. Each phase needs at minimum: name, start_date, end_date. Include pricings array if the phase has pricing. Defaults to empty array if omitted.
renewal_policyNoContract renewal behavior: renew_with_default_contract, renew_with_existing, or do_not_renew.
contract_linkNoURL to external contract document or signed agreement.
bill_parent_customerNoWhen true and customer has a parent relationship, invoices are sent to the parent.
invoice_payer_customer_idNoOptional customer UUID who will receive and pay invoices for this contract.
include_in_renewalNoWhen true, this contract is eligible for renewal processes.
tagsNoList of tags for categorizing and filtering contracts.
sourceNoMetadata about the originating system (e.g. {source_type: 'hubspot', source_id: 'deal_123'}).
__userContextNoInternal user context for multi-tenant authentication and approval workflow
Behavior4/5

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

Discloses important behavioral traits: PUT endpoint, mandatory phases despite not being in the required schema, and specific status limitations. Without annotations, this provides necessary transparency, though it could mention idempotency 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 paragraph that efficiently packs critical warnings and instructions. Each sentence serves a purpose, but it 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 complex tool with 20 parameters and nested objects (phases), the description covers the most critical behavioral details. It doesn't describe return values, but no output schema exists. The guidance is sufficient for most use cases.

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 value by explaining the phases requirement in detail, the status constraint, and renewal policy options. This goes beyond the schema's min/max descriptions.

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 updates an existing contract, distinguishing it from sibling tools like createContract or deleteContract. The verb 'update' plus 'existing contract' is specific and unambiguous.

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

Usage Guidelines5/5

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

Explicitly instructs to fetch the contract first with getContractById, warns that all fields including phases must be sent, and states that omitting phases causes a 500 error. Provides guidance on status values and renewal policies, and notes that 'expired' cannot be set via update.

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

Install Server

Other Tools

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/zenskar/mcp-zenskar'

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