Skip to main content
Glama

update_company

DestructiveIdempotent

Update one of the authenticated user's companies or pitches in place: move a pitch along the deal pipeline (deal_stage), correct its identity (name, domain, url, tagline, description), attach the deck a founder sent late (deck_url), set the round it's raising (valuation, amount, revenue, discount) or the currency it's in, or change a held position's status. Pass only the fields you're changing; everything else is left alone. Slugs come from list_companies / list_pitches / search_companies. Never creates or deletes anything — promoting a pitch into the portfolio is create_transaction's job, and nothing here removes a company.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoWebsite URL, for a link that isn't the domain's homepage. Pass null to fall back to that homepage; a company with a domain always reports one, so this field never reads as empty.
nameNoCompany name.
slugYesThe company or pitch to update, by slug.
domainNoWebsite domain, normalized on save ("https://acme.com/about" becomes "acme.com"). Pass null to clear.
statusNoStatus of a held position. Only valid on portfolio companies. Marking one `dissolved` writes a dissolution mark and rebuilds its value history, and `exited` closes it out — both change what the portfolio is worth, so confirm with the user first.
relabelNoSet true, once the user has confirmed, to change the currency of a company that already has figures. They keep their numbers and read in the new currency, which changes cost basis and value.
revenueNoAnnual revenue / ARR, in the company's currency. Pass null to clear.
taglineNoOne-line description. Pass null to clear.
currencyNoISO 4217 code the company's rounds, marks and metrics are in (EUR, GBP, CHF…). This relabels figures already recorded rather than converting them, so on a company that has transactions, marks, metrics or round economics it's refused unless `relabel` is true: confirm with the user first. Economics passed in the same call are read in it; otherwise an economics figure with another currency's sign ("€5M") converts into the company's currency.
deck_urlNoLink to the pitch deck. Decks often arrive after the deal does, so this is the usual way one gets attached. Pass null to clear.
deal_stageNoMove a pitch to this pipeline stage. `passed` parks a deal you're declining; `committed` means you've agreed to invest but the wire hasn't landed. Only valid on pipeline pitches and leads — a held position has no deal stage.
descriptionNoThe short plain-English abstract of what the company does. Pass null to clear.
raising_amountNoTotal size of the round being raised, in the company's currency. Pass null to clear.
discount_percentNoDiscount the SAFE or note offers on the next round's price, in percentage points (20 means 20%). Pass null to clear.
raised_previouslyNoTotal raised across all prior rounds, in the company's currency. Pass null to clear.
raised_this_roundNoCommitted so far in this round, in the company's currency. Pass null to clear.
raising_at_valuationNoValuation the current round is being raised at, in the company's currency. Pass null to clear.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / currency / description
      Previous value: -"ISO 4217 code the company's rounds, marks and metrics are in (EUR, GBP, CHF…). This relabels figures already recorded rather than converting them, so confirm with the user first on a company that has transactions, marks or metrics. Economics passed in the same call are read in it; otherwise an economics figure with another currency's sign (\"€5M\") converts into the company's currency."New value: +"ISO 4217 code the company's rounds, marks and metrics are in (EUR, GBP, CHF…). This relabels figures already recorded rather than converting them, so on a company that has transactions, marks, metrics or round economics it's refused unless `relabel` is true: confirm with the user first. Economics passed in the same call are read in it; otherwise an economics figure with another currency's sign (\"€5M\") converts into the company's currency."
    • addedInput schema / properties / relabel
      Added value: +{
      +  "description": "Set true, once the user has confirmed, to change the currency of a company that already has figures. They keep their numbers and read in the new currency, which changes cost basis and value.",
      +  "type": "boolean"
      +}
  2. Changed6 schema fields changed
    • addedInput schema / properties / currency
      Added value: +{
      +  "description": "ISO 4217 code the company's rounds, marks and metrics are in (EUR, GBP, CHF…). This relabels figures already recorded rather than converting them, so confirm with the user first on a company that has transactions, marks or metrics. Economics passed in the same call are read in it; otherwise an economics figure with another currency's sign (\"€5M\") converts into the company's currency.",
      +  "type": "string"
      +}
    • changedInput schema / properties / raised_previously / description
      Previous value: -"Total raised across all prior rounds, USD. Pass null to clear."New value: +"Total raised across all prior rounds, in the company's currency. Pass null to clear."
    • changedInput schema / properties / raised_this_round / description
      Previous value: -"Committed so far in this round, USD. Pass null to clear."New value: +"Committed so far in this round, in the company's currency. Pass null to clear."
    • changedInput schema / properties / raising_amount / description
      Previous value: -"Total size of the round being raised, USD. Pass null to clear."New value: +"Total size of the round being raised, in the company's currency. Pass null to clear."
    • changedInput schema / properties / raising_at_valuation / description
      Previous value: -"Valuation the current round is being raised at, USD. Pass null to clear."New value: +"Valuation the current round is being raised at, in the company's currency. Pass null to clear."
    • changedInput schema / properties / revenue / description
      Previous value: -"Annual revenue / ARR, USD. Pass null to clear."New value: +"Annual revenue / ARR, in the company's currency. Pass null to clear."
  3. Added

TDQS

A4.3/5.0
Behavior4/5

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

With annotations already declaring destructiveHint=true and idempotentHint=true, the description adds the key partial-update contract — "Pass only the fields you're changing; everything else is left alone" — plus the non-creating/non-deleting boundary. It stops short of disclosing how destructiveness actually manifests (null clears a field; currency relabel rewrites cost basis), which is left to the schema.

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?

Front-loaded with the verb and scope, then boundaries and slug provenance; every sentence carries load. The long comma-separated field enumeration in the first sentence partly restates schema-documented fields, which is the one bit of redundancy.

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 17-parameter partial-update tool with annotations but no output schema, the description covers scope, boundaries, the alternative tool, and slug sourcing. What remains unstated (error behavior on invalid combinations, return payload) is minor since update tools rarely need a described return value.

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 all 17 parameters thoroughly, including formats and null semantics; baseline 3 applies. The description adds a useful grouping of fields by intent (identity vs. pipeline vs. round economics), but no format, validation, or edge-case detail beyond what the schema provides.

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?

States a specific verb and resource ("Update one of the authenticated user's companies or pitches in place") and enumerates the concrete classes of change (deal_stage, identity fields, deck_url, round economics, position status). It explicitly distinguishes itself from siblings, naming create_transaction for promotion and stating it never creates, deletes, or removes a company.

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?

Gives explicit when-to-use cases (moving a pitch along the pipeline, correcting identity, attaching a late deck, setting round terms, changing a held position) and names the sibling that owns the adjacent operation (create_transaction for promoting into the portfolio). It also tells the agent where slugs come from (list_companies / list_pitches / search_companies), removing the most common pre-call ambiguity.

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.

Resources