Skip to main content
Glama

Get context

get_context
Read-only

Single-call bounded context for reasoning about a record. Defaults to an ACCOUNT (pass account_id, or type='account' + id) — returns the account row (ARR + lifecycle + renewal), active/recently-canceled subscriptions, last 90 days of subscription_events, open opportunities by type, account_contacts (champion highlighted), recent touches/signals, open tasks (overdue first), and notes. For any OTHER record type (contact, opportunity, subscription, task, or a custom object) pass type + id to get the record plus its related records. Prefer this over individual search_* calls when the user asks 'tell me about ' or anything similarly broad. context_coverage reports each section as complete, truncated, unavailable, or unknown; missing/failed sections are not evidence of absence, and bounded lists must not be called exhaustive. For an exact LinkedIn profile match use type='contact' + linkedin_url; an ambiguous match returns candidates: ask the user which one, then pass that candidate's id as id with the same linkedin_url. Use type='linkedin_conversation' to list only your permitted LinkedIn conversations (who each is with, no message text), add id to explicitly read one, or add linkedin_thread_id from a LinkedIn messaging-thread page to open exactly that conversation. The gated type='linkedin_thread_identity' verifies an exact LinkedIn thread/header participant through your own active connection; it returns a public profile mapping only, with no messages or CRM records.

When to use: When the user asks anything broad about a record ('tell me about Acme', 'what's the state of this deal?'). Defaults to an account (pass account_id); pass type + id for contacts, opportunities, subscriptions, tasks, or custom objects. Prefer this over multiple search_* calls. Use structural contact links and recent touches for people context.

Example: Tell me everything about Acme.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoThe record's id — a uuid from a previous read/search.
typeNoRecord type: account (default), contact, opportunity, subscription, task, or a custom object key.
account_idNoAlias for {type:'account', id} — the account's uuid.
linkedin_urlNoExact LinkedIn profile URL; only with type='contact'. Never resolves by name.
linkedin_member_idNoWith type='linkedin_thread_identity', or type='linkedin_conversation' plus linkedin_thread_id for an owner-only verified header match: exact case-sensitive internal member ID from the rendered one-to-one conversation header, matching ACoA followed by 35 letters, digits, underscores or hyphens.
linkedin_thread_idNoExact opaque thread route segment from a linkedin.com/messaging/thread/<id>/ page, after one URI percent-decoding pass: at most 1024 characters matching [A-Za-z0-9_-]+ with up to two trailing equals signs. Preserve case and padding; never decode Base64 or URNs. With type='linkedin_conversation' it opens only your permitted conversation with exactly this thread id; with type='linkedin_thread_identity' it also needs linkedin_member_id.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteNo
foundNo
reasonNo
contextNo
web_urlNo
context_coverageNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, but the description goes well beyond them: it warns that context_coverage may mark sections complete/truncated/unavailable/unknown, that missing sections are not evidence of absence, that bounded lists must not be called exhaustive, and that the linkedin_thread_identity type is gated and returns only a public profile mapping. These are non-obvious behavioral caveats an agent would otherwise guess wrong.

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?

It is front-loaded with the default behavior, which is good, but the 'When to use' section largely restates the opening paragraph ('Defaults to an account' and 'Prefer this over search_*' both appear twice), and the LinkedIn branches make the block long. The content earns its place individually, but the duplication costs structure points.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter, multi-mode, read-only tool with an output schema already covering return values, the description supplies the routing logic, the per-type behavior, the ambiguity-handling flow, and the coverage caveats. Nothing an agent needs to invoke it correctly is missing.

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%, so the schema already documents all six parameters, but the description adds real semantic value: account_id as an alias for {type:'account', id}, that linkedin_url never resolves by name and returns candidates on ambiguity, and the multi-step flows for linkedin_conversation and linkedin_thread_identity.

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 gives a specific verb and resource ('Single-call bounded context for reasoning about a record') and enumerates exactly what comes back for the default account case (account row with ARR/lifecycle/renewal, subscriptions, 90 days of subscription_events, open opportunities, contacts, touches, tasks, notes). It also clearly distinguishes itself from siblings by naming search_* as the alternative it replaces.

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?

It explicitly states when to use it ('When the user asks anything broad about a record'), names the alternative ('Prefer this over individual search_* calls'), and gives a concrete trigger example ('tell me everything about Acme'). Per-type routing (account_id vs type+id) and the LinkedIn special cases are also spelled out.

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