MCP · Tool

context

Account-specific reference data — statuses, pipelines, users, tags, custom fields, and the values an agent needs to make valid writes.

Last updated Jul 16, 2026

context returns the account-specific reference data an agent needs before it can build a valid create or update payload. describe tells the agent which fields exist; context tells it which values are valid for this account right now — the user list, the pipeline stages, the contact statuses, the custom fields defined on this CRM.

Signature

{
  "type": "object",
  "properties": {}
}

context takes no arguments.

What it returns

KeyContents
statusesContact statuses configured for this account.
lead_sourcesLead sources available when creating or updating a contact.
call_resultsOutcomes that can be set on a call (e.g. “Reached”, “Left voicemail”).
pipelinesDeal pipelines and their stages, with a default: true flag on the default pipeline.
usersAll users on the account: id, name, role.
tagsTags currently in use on the account.
reasons_lostConfigured reasons for losing a deal (when enabled).
predefined_actionsSaved action templates — name and a days offset for scheduling.
predefined_itemsSaved deal line-items — name, description, cost, price.
schemaCustom-field definitions per entity — name, type, choices, and whether each is mandatory on create.
accountAccount metadata: subscription plan, timezone, seat count.
userThe current user’s defaults — e.g. default_deal_commission_percentage.

The shape of each entry mirrors what’s used elsewhere in the API. Statuses, lead sources, and call results expose a system_id / display_name; reasons lost, predefined actions, and predefined items expose an id / name. Users expose id, first_name, last_name, role. Pipelines expose id, name, type (sales or delivery), default, and nested stages — each stage a { stage, label } pair, where stage is the integer you filter and group deals on.

These same custom fields are on describe(entity) too — as writable custom_fields.<name> fields with their query types, filter/sort flags, and dropdown choices, which is the view to use for querying and writing. The one thing context().schema adds is the mandatory flag.

Example

Calling context() from the agent returns something like:

{
  "statuses": [
    { "system_id": "lead",     "display_name": "Lead" },
    { "system_id": "customer", "display_name": "Customer" }
  ],
  "pipelines": [
    {
      "id": "65f...",
      "name": "Sales",
      "type": "sales",
      "default": true,
      "stages": [
        { "stage": 10, "label": "Qualified" },
        { "stage": 20, "label": "Demo scheduled" }
      ]
    }
  ],
  "users":              [ { "id": "...", "first_name": "Sam", "last_name": "Lee", "role": "owner" } ],
  "tags":               [ "VIP", "Newsletter" ],
  "reasons_lost":       [ { "id": "...", "name": "Price too high" } ],
  "predefined_actions": [ { "id": "...", "name": "Follow up with [Firstname]", "days": 2 } ],
  "schema":             { "contacts": [{ "name": "Birthday", "type": "anniversary", "choices": [], "mandatory": false }] },
  "account":            { "plan": "Business", "timezone": "Europe/Dublin", "seats": 8 },
  "user":               { "default_deal_commission_percentage": 10 }
}

When the agent should call it

Once per session before the first write, and again after the user mentions a stage, status, user, or tag that wasn’t in the previous context payload. This reference data changes only when an account admin edits settings, so there’s no need to refresh it every turn.

Errors

  • Missing server context — the tool requires a resolved account and user. In a properly authorized MCP session this is always populated; an error here usually means the OAuth token has been revoked or expired.

Scope

mcp. context returns account reference data, not records, so it’s available on every authorized MCP session.