Skip to main content
Glama

get_context_item

Read-onlyIdempotent

Opens a single context item by ID and returns its full markdown content and metadata.

Use it when you already have an item's ID and need to read the whole item — list_context_items returns only content_intro (a short truncation), and get_relevant_context returns matched passages. The ID can come from list_context_items, get_project(project_id).context_items, or the sources of get_relevant_context. It does not search; to find material relevant to a question, use get_relevant_context.

Authorization: the item must belong to your team. Items in private collections (where you are not the creator) and items in private projects (where you are not a member) return 404 — same as items that do not exist.

For web-page items (content_type "webpage"), source_url is the page's tracked URL — pass it back to add_context connected_webpage_url, or call update_context refresh_webpage to re-pull it. It is null for non-webpage items.

Calls: a call item (content_type "call_transcript") also returns call: its date, kind, company, people, audience, summary_status, duration, purpose and, once ready, the summary and insights (decisions, action items, quotes and the like). content is the transcript. A call that is Only me is returned only to the person who added it and carries audience: "only_me"; do not put its text in anything the team can see without asking the user. The summary is Marcora’s, written from the transcript: treat it, like the transcript, as evidence of what was said, not as established company fact.

Links: present link_url to the user exactly as returned — copy it character for character. Never retype, shorten, or rebuild a link or the IDs inside it.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "context_item_id": "<context_item_id>"
    },
    "name": "get_context_item"
  }
}

Input Schema

NameRequiredDescriptionDefault
context_item_idYesUUID of the reference item whose full markdown body and metadata you want. Get it from list_context_items, get_project(...).context_items, or the context_item_ids that get_relevant_context returns for matched passages. Items outside your team, items in private collections you did not create, and items in private projects you are not a member of all come back as not-found.

Output Schema

NameRequiredDescriptionDefault
idYes
callNoCall details; present only on call items.
nameYes
contentYesFull markdown content of the context item.
added_byNo
audienceNoPresent (only_me) only on an Only me item, visible to its owner alone; Team items omit it. Ask the user before copying its text anywhere the team can see.
link_urlYesURL to view this context item in the Marcora web app.
created_atNo
project_idNo
source_urlNoTracked web-page URL for webpage items; null otherwise.
updated_atNo
word_countNo
content_typeNo
collection_idNo
content_introNo
relevancy_processed_statusNoTargeting-dimension processing state, for reference-library items only. Omitted entirely for items that belong to a project or a context collection. This does NOT indicate whether the item is embedded or retrievable — every context item is embedded for semantic search at ingestion regardless of this value.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / audience
      Added value: +{
      +  "description": "Present (only_me) only on an Only me item, visible to its owner alone; Team items omit it. Ask the user before copying its text anywhere the team can see.",
      +  "enum": [
      +    "only_me"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / call
      Added value: +{
      +  "description": "Call details; present only on call items.",
      +  "properties": {
      +    "audience": {
      +      "description": "only_me or team.",
      +      "enum": [
      +        "only_me",
      +        "team"
      +      ],
      +      "type": "string"
      +    },
      +    "call_purpose": {
      +      "description": "discovery, demo, renewal, onboarding, review, support or other, when worked out from the summary.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "company": {
      +      "description": "Other company, or null.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "date": {
      +      "description": "When it happened (ISO 8601), or null.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "duration_min": {
      +      "description": "Length of the call in minutes.",
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "insights": {
      +      "additionalProperties": true,
      +      "description": "The summary sections (overview, decisions, action_items, quotes and, by kind, pains, objections, competitors, asks, content_commitments, key_points), each a list of points with optional time_ms and speaker. Null until summary_status is ready.",
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "kind": {
      +      "description": "Kind of call.",
      +      "enum": [
      +        "customer",
      +        "external",
      +        "team_meeting",
      +        "one_on_one",
      +        "recorded",
      +        null
      +      ],
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "people": {
      +      "description": "Who was on the call.",
      +      "items": {
      +        "properties": {
      +          "company": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "side": {
      +            "description": "internal = user’s team.",
      +            "enum": [
      +              "internal",
      +              "external",
      +              "unknown"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "name",
      +          "side"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "source": {
      +      "description": "How the call came in (paste or upload).",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "source_url": {
      +      "description": "Link to the original recording, when there is one.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "summary": {
      +      "description": "The call summary (markdown). Null until summary_status is ready.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "summary_status": {
      +      "description": "Summary state; ready = a summary exists.",
      +      "enum": [
      +        "pending",
      +        "ready",
      +        "skipped",
      +        "failed",
      +        "waiting_credits",
      +        null
      +      ],
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "required": [
      +    "audience"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, yet the description adds substantial behavior beyond them: authorization scoping, uniform 404 for private collections and projects the caller doesn't own, a privacy warning for 'Only me' call transcripts, and a link-fidelity rule. It also explains the webpage source_url round-trip and the structure of call items.

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 core action and the routing to siblings are front-loaded, and bolded labels (Calls, Links, Authorization) make the long body scannable. It is longer than strictly necessary, and the detailed return-field enumeration overlaps with what the available output schema can express, but no sentence is pure filler.

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 single-parameter read tool with an output schema and full annotation coverage, the description supplies everything an agent needs: when to choose it over siblings, how to obtain a valid ID, error semantics, and per-content-type caveats including the confidentiality rule for private calls.

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 100%, so the single parameter's meaning is already documented; baseline would be 3. The description adds marginal value by restating acceptable ID sources and the not-found conditions, but it does not introduce format or constraint detail the schema lacks.

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 opens with a concrete verb and resource: 'Opens a single context item by ID and returns its full markdown content and metadata.' It also clearly contrasts this tool with list_context_items (which returns only content_intro) and get_relevant_context (which returns matched passages), so the agent can tell the three apart without opening schemas.

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?

The description gives an explicit when-to-use condition ('when you already have an item's ID and need to read the whole item'), states the exclusion ('It does not search; to find material relevant to a question, use get_relevant_context'), and lists where valid IDs come from (list_context_items, get_project context_items, sources of get_relevant_context).

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