Skip to main content
Glama

Corply — Start and run your company

Save an operating subject

upsert_operating_subject

Create or update one durable company-owned subject, including a person, location, product, offering, customer, vendor, contract, equity award, account, or obligation, then freshly resolve the plan. Use a stable externalKey; store decision facts through record_operating_fact, not opaque attributes. Never fabricate personal, immigration, or credential data. Prerequisite: authenticated active company access plus every prerequisite stated above. Canonicality: invokes the shared backend action; trust the returned actual_tool_output and context_engineering instead of adding a state-recovery call. Idempotency: obey the tool-specific retry key or guarantee; if none is stated, inspect refreshed state before retrying. Confirmation boundary: no additional confirmation is needed for this read, reversible save, explicit fact/evidence record, link preparation, plan refresh, or action pre-authorized by a standing founder-configured policy.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
statusYesactive
companyIdNocorply_companies.id. May be omitted only when this connection has exactly one company.
itemLimitYesMaximum items returned per actionable/blocked/waiting section.
attributesNoAllowlisted integration linkage only. Citizenship, visa, tax, ID, health, credential, compensation, and other decision data must be typed facts.
displayNameYes
externalKeyYesStable caller-controlled identity, e.g. founder:<uuid> or product:billing.
subjectTypeYes
linkedUserIdNoOwner/operator-only account link for subject-self private access. Omit to preserve; null to unlink. The target must be an active org member.
questionLimitYesMaximum targeted missing-fact questions returned.
_corply_contextNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedInput schema / properties / _corply_context / description
      Removed value: -"Echo context_engineering.context_session from the prior Corply result."
    • changedInput schema / properties / companyId / description
      Previous value: -"corply_companies.id. May be omitted only when the active organization has exactly one company."New value: +"corply_companies.id. May be omitted only when this connection has exactly one company."
  2. Changed1 schema field changed
    • addedInput schema / properties / _corply_context
      Added value: +{
      +  "additionalProperties": false,
      +  "dependentRequired": {
      +    "receipt": [
      +      "id"
      +    ]
      +  },
      +  "description": "Echo context_engineering.context_session from the prior Corply result.",
      +  "properties": {
      +    "id": {
      +      "maxLength": 200,
      +      "minLength": 16,
      +      "type": "string"
      +    },
      +    "receipt": {
      +      "maxLength": 2048,
      +      "minLength": 16,
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  3. Added

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, but the description adds genuinely non-derivable behavior: the side effect of freshly resolving the plan, the canonicality rule to trust returned actual_tool_output instead of issuing a state-recovery call, and an explicit idempotency/retry protocol. The confirmation-boundary sentence also tells the agent no extra confirmation gate applies to this reversible save.

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

Conciseness3/5

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

The purpose and sibling routing are front-loaded and earn their place, but rear sections drift into templated boilerplate ('every prerequisite stated above' is circular, 'if none is stated, inspect refreshed state before retrying' is vague, and the confirmation-boundary sentence enumerates unrelated operation classes). A dense tool description, but several clauses could be tightened without losing information.

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 mutation tool with 10 parameters (6 required), nested objects, 60% schema coverage, and no output schema, the description supplies the missing behavioral context: side effects, idempotency, and the read-then-retry rule. It stops short of documenting return shape or how the plan refresh manifests to the caller, which is the remaining gap given the absent output schema.

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 60%, so the description must add meaning, and it does: it constrains externalKey to be stable and caller-controlled, and it clarifies that attributes is only for allowlisted integration linkage while decision data must be typed facts. It says nothing about linkedUserId or the itemLimit/questionLimit pagination knobs, which are covered only in 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 opening sentence gives a specific verb pair (create or update) plus the exact resource (a durable company-owned subject) and enumerates the ten subject types that match the subjectType enum. An agent can distinguish this from record_operating_fact, record_operating_event, and record_operating_evidence without opening any schema.

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?

It states a clear routing rule ('store decision facts through record_operating_fact, not opaque attributes'), a key-usage guideline ('Use a stable externalKey'), and a safety exclusion ('Never fabricate personal, immigration, or credential data'). It gives the authentication prerequisite but never explicitly frames when this tool should be preferred over the sibling fact/event/evidence recorders at a workflow level.

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.