MCP Tools
Context & Resources

get_relevant_context

Search the team's context library and return the most relevant chunks for a prompt. With a project_id, the first call also returns the project's brief. Use it to write on-brand content yourself (with include_brand_foundation: true) or to answer questions about the company — not before create_content with instructions, which gathers context automatically.

Parameters

NameTypeRequiredDefaultDescription
promptstringYes—Search prompt describing the topic / question you want context on. Be specific (e.g. "competitor X's pricing model" rather than "competitors").
project_iduuidNo—Optional project UUID (from list_projects). Additive: ALSO searches that project's context alongside your general library — not an exclusive filter.
collection_idsinteger[]No—Optional context collection IDs (from list_context_collections). Additive: ALSO searches those collections alongside your general library — not an exclusive filter.
context_rag_idsuuid[]No—Optional list of previously-returned chunk IDs to exclude (for pagination — pass back the context_rag_ids from a prior call).
dimension_option_idsinteger[]No—Optional targeting dimension OPTION IDs (from list_targeting_dimensions) to scope the search by audience / persona / industry / etc.
include_brand_foundationbooleanNo—Set true to also include the team's Brand Foundation in the response. Default false.
include_project_briefbooleanNotrueDefault true. When project_id is given, also return that project's brief as a top-level project_brief block. Leave true on the first call for a project in a conversation; set false on later calls for the same project so the brief isn't re-sent. Ignored when project_id is omitted.
_frontend_realtime_keystringNo—For frontend progress updates only. Do not use from MCP clients.
include_only_mebooleanNofalseDefault false: only Team items are searched. Set true to also search your own Only me items, including Only me calls; never another member's. Calls filed in Calls come back only when that Calls collection's id is in collection_ids, or through their project; on its own, true returns none of them. Only me results carry audience: only_me. If you then write what you read into a team-visible document, you are asked first.
callsobjectNo—Also search the team's calls. Optional filters: date_from / date_to (YYYY-MM-DD or ISO 8601, compared with the call's own date), kinds, companies. Pass {} for every call you may use. Only Team calls unless include_only_me is true. Fields: date_from, date_to (YYYY-MM-DD), kinds (customer, external, team_meeting, one_on_one, recorded) and companies.

Input Schema

{
  "type": "object",
  "required": [
    "prompt"
  ],
  "properties": {
    "calls": {
      "type": "object",
      "properties": {
        "kinds": {
          "type": "array",
          "items": {
            "enum": [
              "customer",
              "external",
              "team_meeting",
              "one_on_one",
              "recorded"
            ],
            "type": "string"
          },
          "description": "Only these kinds."
        },
        "date_to": {
          "type": "string",
          "description": "Up to this date (YYYY-MM-DD)."
        },
        "companies": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Only these companies."
        },
        "date_from": {
          "type": "string",
          "description": "From this date (YYYY-MM-DD)."
        }
      },
      "description": "Also search the team's calls. Optional filters: date_from / date_to (YYYY-MM-DD or ISO 8601, compared with the call's own date), kinds, companies. Pass {} for every call you may use. Only Team calls unless include_only_me is true.",
      "additionalProperties": false
    },
    "prompt": {
      "type": "string",
      "description": "Search prompt describing the topic / question you want context on. Be specific (e.g. \"competitor X's pricing model\" rather than \"competitors\")."
    },
    "project_id": {
      "type": "string",
      "format": "uuid",
      "description": "Optional project UUID (from list_projects). Additive: ALSO searches that project's context alongside your general library — not an exclusive filter."
    },
    "collection_ids": {
      "type": "array",
      "items": {
        "type": "integer"
      },
      "description": "Optional context collection IDs (from list_context_collections). Additive: ALSO searches those collections alongside your general library — not an exclusive filter."
    },
    "context_rag_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "Optional list of previously-returned chunk IDs to exclude (for pagination — pass back the context_rag_ids from a prior call)."
    },
    "include_only_me": {
      "type": "boolean",
      "default": false,
      "description": "Default false: only Team items are searched. Set true to also search your own Only me items, including Only me calls; never another member's. Calls filed in Calls come back only when that Calls collection's id is in collection_ids, or through their project; on its own, true returns none of them. Only me results carry audience: only_me. If you then write what you read into a team-visible document, you are asked first."
    },
    "dimension_option_ids": {
      "type": "array",
      "items": {
        "type": "integer"
      },
      "description": "Optional targeting dimension OPTION IDs (from list_targeting_dimensions) to scope the search by audience / persona / industry / etc."
    },
    "include_project_brief": {
      "type": "boolean",
      "default": true,
      "description": "Default true. When project_id is given, also return that project's brief as a top-level project_brief block. Leave true on the first call for a project in a conversation; set false on later calls for the same project so the brief isn't re-sent. Ignored when project_id is omitted."
    },
    "_frontend_realtime_key": {
      "type": "string",
      "description": "For frontend progress updates only. Do not use from MCP clients."
    },
    "include_brand_foundation": {
      "type": "boolean",
      "description": "Set true to also include the team's Brand Foundation in the response. Default false."
    }
  }
}

Output Schema

{
  "type": "object",
  "properties": {
    "sources": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "context_item_id",
          "context_rag_ids"
        ],
        "properties": {
          "audience": {
            "enum": [
              "team",
              "only_me"
            ],
            "type": "string",
            "description": "Who can see this item: team, or only_me (yours alone; returned only when include_only_me is true)."
          },
          "is_stale": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "True when this item is flagged as out of date — treat its claims with caution and prefer a fresher source."
          },
          "link_url": {
            "type": [
              "string",
              "null"
            ],
            "description": "Deep-link that opens this item in the Marcora web app."
          },
          "project_id": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          },
          "source_url": {
            "type": "string",
            "description": "Original external page URL. Present only for webpage items."
          },
          "content_type": {
            "type": [
              "string",
              "null"
            ]
          },
          "last_updated": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Unix ms timestamp of the item's last update."
          },
          "collection_id": {
            "type": [
              "integer",
              "null"
            ]
          },
          "context_item_id": {
            "type": "string",
            "format": "uuid"
          },
          "context_rag_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "The chunk IDs in this response that belong to this item."
          },
          "content_category": {
            "type": [
              "string",
              "null"
            ],
            "description": "How this item is classified for grounding: company_authoritative (the team's own source of truth), reference_material, or unclassified. Authoritative sources outrank reference material when they disagree."
          },
          "context_item_name": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "description": "One entry per parent context item the returned chunks came from."
    },
    "retrieval": {
      "type": "object",
      "properties": {
        "project_id": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "team_scope": {
          "type": "string"
        },
        "collection_ids": {
          "type": "array",
          "items": {
            "type": "integer"
          }
        },
        "returned_count": {
          "type": "integer",
          "description": "Number of context chunks returned."
        },
        "dimension_option_ids": {
          "type": "array",
          "items": {
            "type": "integer"
          }
        },
        "excluded_context_rag_ids": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "description": "Echo of the search scope this response was produced under."
    },
    "project_brief": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "truncated": {
          "type": "boolean",
          "description": "True when content_intro is an excerpt and the full body must be fetched with get_content."
        },
        "content_id": {
          "type": "string",
          "format": "uuid"
        },
        "read_first": {
          "type": "string",
          "description": "Imperative instruction stating why the brief must be read before working in this project, including the content_id to fetch."
        },
        "word_count": {
          "type": "integer",
          "description": "Word count of the full brief body."
        },
        "content_intro": {
          "type": "string",
          "description": "The brief's body, in full when short, otherwise its opening ~400 words."
        }
      },
      "description": "Present only when project_id is given, include_project_brief is true (the default) and the project has a brief; absent otherwise. The same block get_project returns: the project's authoritative statement of premise, scope and structural decisions. READ IT FIRST: the context chunks in this response may be older than it or contradict it. content_intro is an excerpt (the full body when the brief is short, otherwise the opening ~400 words with truncated: true); pass content_id to get_content for the full text."
    },
    "context_rag_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "All chunk IDs returned. Pass back in context_rag_ids to exclude from future searches (pagination)."
    },
    "brand_foundation": {
      "type": "object",
      "properties": {
        "elements": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "brand_voice": {
              "type": "string"
            },
            "writing_style": {
              "type": "string"
            },
            "company_overview": {
              "type": "string"
            },
            "writing_examples": {
              "type": "string"
            }
          }
        },
        "included": {
          "type": "boolean"
        },
        "link_url": {
          "type": "string",
          "description": "Deep-link to the Brand Foundation tab in the Marcora web app (present only when included)."
        }
      },
      "description": "Always present. elements is null unless include_brand_foundation is true."
    },
    "message_for_user": {
      "type": "string",
      "description": "Present only with workspace_status \"empty\": plain text written to the user, saying the workspace is empty and offering to set it up. Pass it on in your reply as it is. It is an offer: save nothing without their OK"
    },
    "relevant_context": {
      "type": "string",
      "description": "Ready-to-use markdown context packet assembled from the matched chunks."
    },
    "brand_foundation_build": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "description": "queued or building"
        },
        "message": {
          "type": "string",
          "description": "What to tell the user"
        }
      },
      "description": "Present only while Marcora is building the team's blank Brand Foundation sections from a website: {status, message}; status is queued or building. The blank sections are in progress, not empty: tell the user what message says and don't offer to draft them meanwhile. Absent otherwise"
    }
  }
}

Instructions

get_relevant_context searches the team's context library and returns the passages most relevant to a given prompt, assembled into a ready-to-use markdown packet. Alongside the packet it returns a structured sources array so an MCP client can cite and deep-link each source without follow-up lookups, a retrieval object echoing the search scope, (optionally) the team's Brand Foundation, and, when you pass a project_id, that project's brief.

How results are ranked: each passage is scored on its own and against the whole document it belongs to, and the two scores are blended; weak matches are dropped, so fewer than 10 can come back. dimension_option_ids lean the ranking toward the chosen audience, persona or industry. It searches the reference library plus the project, collections and shared collections the user can access.

When to use it:

  • The user wants writing grounded in their team's brand or company context (a blog post, email, social post, landing page, press release, ad or messaging), including "write it and save it in Marcora": call it with include_brand_foundation: true, write it yourself from what it returns, then save it with create_content content if asked to.
  • The user asks about their own company, product, positioning, launches or competitors ("what do we have on competitor X?"): call it and answer from their context.
  • Before saving text you wrote yourself through the content parameter of create_content / update_content: those store it verbatim and consult no context.

When not to use it:

  • Before create_content with instructions (used only when the user asks Marcora to write it, a blueprint is used, or a plan is being fulfilled): Marcora gathers the context itself.
  • For brand voice, company overview, writing style or writing examples on their own: relevancy search never returns Brand Foundation. Use get_brand_foundation, or set include_brand_foundation: true.

Only me items: by default only Team items are searched. With include_only_me: true the user's own Only me items, including Only me calls, are searched too, never another member's. Calls filed in Calls come back only when that Calls collection's id is in collection_ids, or through their project; on its own, include_only_me: true returns none of them. A Team call filed in a private project or private collection reads as Only me for AI apps: its source carries audience: "only_me". If you then write material from an Only me source into a team-visible document, the write is refused until the user agrees.

Calls window: the optional calls parameter adds calls to the search: { date_from, date_to, kinds, companies }, every field optional. Dates are YYYY-MM-DD or ISO 8601 and are compared with the call's own date; kinds come from customer, external, team_meeting, one_on_one and recorded; {} means every call you may use. Each call carries its date, kind and company in its heading. Only Team calls come back, never a teammate's Only me call; include_only_me: true adds your own Only me calls. Leaving calls out changes nothing.

Important — additive scoping: collection_ids and project_id BROADEN the search; they add those items on top of the general reference library, they do NOT restrict results to only that collection/project. (Same semantics as project context.)

Working inside a project? The first call returns its brief. When you pass project_id and the project has a brief, the response carries a top-level project_brief block as its first key: the project's authoritative statement of premise, scope and the structural decisions already taken. It is the same block get_project returns. Read it before drafting, revising, assessing or critiquing anything in that project. The chunks in the same response may be older than the brief or contradict it, and the brief wins. When truncated is true, call get_content with its content_id for the full text. The brief is stored as a document, not as a context item, so relevancy search can never surface it. This block is the only way it reaches you from this tool.

Tip — the brief on the first call only: include_project_brief defaults to true, so just omit it on the first call for a project. On later calls for the same project in the same conversation, set it false so the brief isn't re-sent. If you already have the brief (you called get_project for that project, or your environment already gave it to you), treat the first call as done and pass false.

Set include_brand_foundation: true to also receive the team's Brand Foundation (company overview, brand voice, writing style, writing examples) in the same response — a one-stop fetch of everything you need to write on-brand yourself with your own model. Use this whenever you are composing content to save via the content parameter of create_content or update_content (those paths store text verbatim and consult no context). You don't need it when handing off to create_content with instructions — that path pulls Brand Foundation in automatically.

Tip — bundle Brand Foundation on the first call: Default the first get_relevant_context call of a conversation to include_brand_foundation: true. Brand Foundation is always-on foundational context that relevancy scoring never surfaces on its own; pulling it in once, up front, means the agent has the team's company overview and brand voice on hand for the rest of the session — useful even when just answering a question. On subsequent calls in the same conversation, set it false/omit so it isn't re-sent each time.

For Brand Foundation specifically (brand voice, company overview, writing style, writing examples), relevancy search will not return those elements — use get_brand_foundation, or include_brand_foundation: true above. A "what is our brand voice?" question can't be answered from relevancy chunks alone.

Response Shape

Top-level keys: project_brief (only with a project_id whose project has a brief, and only when include_project_brief is true, which is the default; it comes first), relevant_context, brand_foundation, retrieval, context_rag_ids, sources. (The old top-level context_item_ids is removed. Each source now carries its own context_item_id.)

Top-Level Fields

Field Type Description
project_brief object Present only when project_id is given, include_project_brief is true (the default) and the project has a brief. Absent otherwise. See below.
relevant_context string Ready-to-use markdown context packet assembled from the matched chunks.
context_rag_ids uuid[] All chunk IDs returned. Pass back in context_rag_ids to exclude on the next page (pagination).
brand_foundation object Always present. See below.
retrieval object Echo of the search scope this response was produced under. See below.
sources object[] One entry per parent context item the returned chunks came from. See below.
message_for_user string Present only with workspace_status: "empty": plain text written to the user, saying the workspace is empty and offering to set it up. Pass it on in your reply as it is. It is an offer: save nothing without their OK.
brand_foundation_build object Present only while Marcora is building the team's blank Brand Foundation sections from a website ({status, message}; status is queued or building). The blank sections are in progress, not empty: relay message, don't call them empty or offer to draft them meanwhile, and suggest the user look again in about a minute. Absent when no build is running.

project_brief Object

Same shape as get_project's project_brief.

Field Type Description
content_id uuid The brief document's UUID. Pass to get_content for the full text.
name string The brief's title.
word_count integer Word count of the full brief body.
content_intro string The full body when the brief is 600 words or fewer; otherwise its opening 400 words.
truncated boolean True when content_intro is an excerpt. Call get_content for the full body.
read_first string An instruction to read the brief before working in the project, naming the content_id to fetch.

brand_foundation Object

Field Type Description
included boolean True only when include_brand_foundation: true was passed.
elements object | null Null unless included. When present: company_overview, brand_voice, writing_style, writing_examples (all strings).
link_url string Deep-link to the Brand Foundation tab in the Marcora web app. Present only when included.

retrieval Object

Field Type Description
team_scope string Always authenticated_user_active_team.
project_id uuid | null Echo of the project_id input.
collection_ids integer[] Echo of the collection_ids input.
dimension_option_ids integer[] Echo of the dimension_option_ids input.
excluded_context_rag_ids uuid[] Echo of the context_rag_ids input (the exclusions).
returned_count integer Number of context chunks returned.

sources[] — Each Entry

Field Type Description
context_item_id uuid The parent context item's ID.
context_item_name string | null The item's name.
content_type string | null One of: file, manual, webpage, canvas, deliverable, integration_data, call_transcript.
content_category string | null How the item is classified for grounding: company_authoritative (the team's own source of truth), reference_material, or unclassified. Authoritative sources outrank reference material when they disagree.
is_stale boolean | null True when the item is flagged as out of date. Treat its claims with caution and prefer a fresher source.
audience team | only_me only_me marks a source that is private to its owner, including a Team call filed in a private project or private collection. Ask the user before putting its text in anything the team can see.
link_url string | null Deep-link that opens this item in the Marcora web app. Present for every source.
source_url string The original external page URL. Present only for webpage items; omitted for all other types.
collection_id integer | null The collection the item belongs to, if any.
project_id uuid | null The project the item belongs to, if any.
last_updated integer | null Unix-ms timestamp of the item's last update (null if never updated).
context_rag_ids uuid[] The chunk IDs in THIS response that came from this item. The union across all sources equals the top-level context_rag_ids.

Citing sources: every returned chunk is attributed to exactly one entry in sources (the per-source context_rag_ids partition the top-level set). Use link_url to deep-link any source into the Marcora app; for webpage items, source_url is the original external page.

Errors when you pass project_id

Error Meaning What to do
Project not found The project doesn't exist, or belongs to a team other than your active team. Check list_projects, or set_active_team if the project is in another team.
You are not a member of project <id> The project is private and you are not one of its members. Ask a project member to add you, or search without project_id.

Neither error returns any context or brief.

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.

Examples

Retrieve context on a topic and cite sources

Search for relevant context on competitor pricing and get back structured source attribution.

Input
{
  "prompt": "What do we have on competitor X's pricing?"
}
Output
{
  "relevant_context": "## Competitor X Pricing\n\nCompetitor X offers three tiers...",
  "context_rag_ids": [
    "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  ],
  "brand_foundation": {
    "included": false,
    "elements": null
  },
  "retrieval": {
    "team_scope": "authenticated_user_active_team",
    "project_id": null,
    "collection_ids": [],
    "dimension_option_ids": [],
    "excluded_context_rag_ids": [],
    "returned_count": 1
  },
  "sources": [
    {
      "context_item_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "context_item_name": "Competitor Battlecard Q2",
      "content_type": "file",
      "link_url": "https://app.marcora.ai/context/f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "collection_id": null,
      "project_id": null,
      "last_updated": 1717200000000,
      "context_rag_ids": [
        "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
      ]
    }
  ]
}

Pull positioning with Brand Foundation included

Fetch healthcare positioning context AND the team's Brand Foundation in a single call for on-brand drafting.

Input
{
  "prompt": "Pull our healthcare positioning",
  "include_brand_foundation": true
}
Output
{
  "relevant_context": "## Healthcare Positioning\n\nOur platform is purpose-built for...",
  "context_rag_ids": [
    "b2c3d4e5-f6a7-8901-bcde-f12345678901"
  ],
  "brand_foundation": {
    "included": true,
    "elements": {
      "company_overview": "Marcora is a B2B marketing platform...",
      "brand_voice": "Confident, direct, jargon-free",
      "writing_style": "Active voice, second person, short sentences",
      "writing_examples": "See example 1..."
    },
    "link_url": "https://app.marcora.ai/brand-foundation"
  },
  "retrieval": {
    "team_scope": "authenticated_user_active_team",
    "project_id": null,
    "collection_ids": [],
    "dimension_option_ids": [],
    "excluded_context_rag_ids": [],
    "returned_count": 1
  },
  "sources": [
    {
      "context_item_id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
      "context_item_name": "Healthcare Vertical Positioning",
      "content_type": "manual",
      "link_url": "https://app.marcora.ai/context/c3d4e5f6-a7b8-9012-cdef-123456789012",
      "collection_id": 42,
      "project_id": null,
      "last_updated": 1717200000000,
      "context_rag_ids": [
        "b2c3d4e5-f6a7-8901-bcde-f12345678901"
      ]
    }
  ]
}

Paginate for more context on the same topic

Pass the prior call's context_rag_ids back to get additional chunks without repeating what was already returned.

Input
{
  "prompt": "More context on healthcare positioning",
  "context_rag_ids": [
    "b2c3d4e5-f6a7-8901-bcde-f12345678901"
  ]
}
Output
{
  "relevant_context": "## Additional Healthcare Context\n\nFurther detail on...",
  "context_rag_ids": [
    "d4e5f6a7-b8c9-0123-defa-234567890123"
  ],
  "brand_foundation": {
    "included": false,
    "elements": null
  },
  "retrieval": {
    "team_scope": "authenticated_user_active_team",
    "project_id": null,
    "collection_ids": [],
    "dimension_option_ids": [],
    "excluded_context_rag_ids": [
      "b2c3d4e5-f6a7-8901-bcde-f12345678901"
    ],
    "returned_count": 1
  },
  "sources": [
    {
      "context_item_id": "e5f6a7b8-c9d0-1234-efab-345678901234",
      "context_item_name": "Healthcare Case Studies 2025",
      "content_type": "file",
      "link_url": "https://app.marcora.ai/context/e5f6a7b8-c9d0-1234-efab-345678901234",
      "collection_id": 42,
      "project_id": null,
      "last_updated": 1717200000000,
      "context_rag_ids": [
        "d4e5f6a7-b8c9-0123-defa-234567890123"
      ]
    }
  ]
}

Search inside a project (the first call returns its brief)

Pass a project_id to add that project's context to the search. The first call for the project also returns its brief as the first key; set include_project_brief to false on later calls for the same project.

Input
{
  "prompt": "What have we decided about launch pricing?",
  "project_id": "7c1e2a9b-4d3f-4b8e-9a2c-5f6d7e8a9b01"
}
Output
{
  "project_brief": {
    "content_id": "3f9a1c2e-8b7d-4e6f-a5c4-1d2e3f4a5b6c",
    "name": "Q4 Launch Brief",
    "word_count": 1180,
    "content_intro": "# Q4 Launch Brief\n\n## Premise\nWe lead with the integration story, not price...",
    "truncated": true,
    "read_first": "This project has a brief. It states the premise, the facts, and the structural decisions already made. Work produced without reading it is likely to contradict decisions already taken. The content_intro below is only the opening excerpt. Call get_content with content_id 3f9a1c2e-8b7d-4e6f-a5c4-1d2e3f4a5b6c to read it in full before drafting, revising, or critiquing anything in this project."
  },
  "relevant_context": "## Pricing notes\n\nThe launch keeps current list prices...",
  "context_rag_ids": [
    "e5f6a7b8-c9d0-1234-efab-345678901234"
  ],
  "brand_foundation": {
    "included": false,
    "elements": null
  },
  "retrieval": {
    "team_scope": "authenticated_user_active_team",
    "project_id": "7c1e2a9b-4d3f-4b8e-9a2c-5f6d7e8a9b01",
    "collection_ids": [],
    "dimension_option_ids": [],
    "excluded_context_rag_ids": [],
    "returned_count": 1
  },
  "sources": [
    {
      "context_item_id": "a7b8c9d0-e1f2-3456-abcd-567890123456",
      "context_item_name": "Launch pricing notes",
      "content_type": "manual",
      "content_category": "company_authoritative",
      "is_stale": false,
      "link_url": "https://app.marcora.ai/project/7c1e2a9b-4d3f-4b8e-9a2c-5f6d7e8a9b01?tab=context&contextItem=a7b8c9d0-e1f2-3456-abcd-567890123456",
      "collection_id": null,
      "project_id": "7c1e2a9b-4d3f-4b8e-9a2c-5f6d7e8a9b01",
      "last_updated": 1790000000000,
      "context_rag_ids": [
        "e5f6a7b8-c9d0-1234-efab-345678901234"
      ]
    }
  ]
}
Scroll to Top