Skip to main content
Glama

Move context to my other AI

send_context

Move context your person chooses from this app to another AI app of theirs that's connected to Oyeh (for example from ChatGPT to Claude), so they don't have to explain it again there. Only when your person asks, and only what they said to send: your person names what goes, in their own words. Don't offer a list of things they could send or choose for them; if what they want to send is unclear, ask them. Before sending, show them the items as you wrote them up. Each item is a short title and what the other app should know (a project's state, a plan, a preference, a fact about them). Up to 12 items. One document can go with the items or on its own. If your person asks you to write something up as a document for their other app, send it as document: a .md, .txt or .csv file name and its full text, up to 64 KB (show your person the document first). If they want to send a PDF or Word file they have (.pdf, .docx, or a .md, .txt or .csv file), pass it as file if this app lets you; otherwise set upload_link to true and give your person the one-time link it returns, to pick the file in their browser (it works for 30 minutes). A file can be up to 10.0 MB with up to 256 KB of text, and no pictures in it (Oyeh refuses pictures, including ones inside a PDF or Word file, and macros, scripts and embedded files). The other app reads the full text and your person can download the file there. Never passwords, keys, card numbers or ID numbers: Oyeh refuses those. The other app picks it up when your person asks it to, within 3 days, and take_back_context undoes it until then.

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": {
      "to": "<to>",
      "words": "<words>"
    },
    "name": "send_context"
  }
}

Input Schema

NameRequiredDescriptionDefault
toYesWhich of your person's apps gets it: chatgpt, claude, gemini, cursor, muse, perplexity, copilot (Microsoft Copilot), poe, other, or any (every other app they use with Oyeh)
fileNoA PDF, Word, .md, .txt or .csv file your person has in this chat, if this app can pass files
itemsNoWhat your person said to send, written up as items. Leave out only when you send a document
wordsYesYour person's own words asking for this, as they said them
documentNoA text document you wrote up for the other app to read, if your person asked for one
upload_linkNotrue to get a one-time upload link for your person to pick the file in their browser, when this app can't pass the file

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / document / description
      Previous value: -"A text document for the other app to read, if your person asked for one"New value: +"A text document you wrote up for the other app to read, if your person asked for one"
    • addedInput schema / properties / file
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "A PDF, Word, .md, .txt or .csv file your person has in this chat, if this app can pass files",
      +  "properties": {
      +    "download_url": {
      +      "description": "Temporary download URL for the file (ChatGPT fills this)",
      +      "maxLength": 16384,
      +      "type": "string"
      +    },
      +    "file_id": {
      +      "description": "The platform's file id (ChatGPT fills this)",
      +      "maxLength": 1000,
      +      "type": "string"
      +    },
      +    "file_name": {
      +      "description": "The file's name, if known",
      +      "maxLength": 1000,
      +      "type": "string"
      +    },
      +    "mime_type": {
      +      "description": "The file's MIME type, if known",
      +      "maxLength": 200,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "download_url",
      +    "file_id"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / properties / upload_link
      Added value: +{
      +  "description": "true to get a one-time upload link for your person to pick the file in their browser, when this app can't pass the file",
      +  "type": "boolean"
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / items / description
      Previous value: -"The pieces your person chose. Leave out only when you send a document"New value: +"What your person said to send, written up as items. Leave out only when you send a document"
  3. Changed2 schema fields changed
    • changedInput schema / properties / to / description
      Previous value: -"Which of your person's apps gets it: chatgpt, claude, gemini, cursor, muse, perplexity, copilot (Microsoft Copilot), other, or any (every other app they use with Oyeh)"New value: +"Which of your person's apps gets it: chatgpt, claude, gemini, cursor, muse, perplexity, copilot (Microsoft Copilot), poe, other, or any (every other app they use with Oyeh)"
    • changedInput schema / properties / to / enum
      Previous value: -[
      -  "chatgpt",
      -  "claude",
      -  "gemini",
      -  "cursor",
      -  "muse",
      -  "perplexity",
      -  "copilot",
      -  "other",
      -  "any"
      -]New value: +[
      +  "chatgpt",
      +  "claude",
      +  "gemini",
      +  "cursor",
      +  "muse",
      +  "perplexity",
      +  "copilot",
      +  "poe",
      +  "other",
      +  "any"
      +]
  4. Changed2 schema fields changed
    • changedInput schema / properties / to / description
      Previous value: -"Which of your person's apps gets it: chatgpt, claude, gemini, cursor, muse, other, or any (every other app they use with Oyeh)"New value: +"Which of your person's apps gets it: chatgpt, claude, gemini, cursor, muse, perplexity, copilot (Microsoft Copilot), other, or any (every other app they use with Oyeh)"
    • changedInput schema / properties / to / enum
      Previous value: -[
      -  "chatgpt",
      -  "claude",
      -  "gemini",
      -  "cursor",
      -  "muse",
      -  "other",
      -  "any"
      -]New value: +[
      +  "chatgpt",
      +  "claude",
      +  "gemini",
      +  "cursor",
      +  "muse",
      +  "perplexity",
      +  "copilot",
      +  "other",
      +  "any"
      +]
  5. Changed4 schema fields changed
    • addedInput schema / properties / document
      Added value: +{
      +  "description": "A text document for the other app to read, if your person asked for one",
      +  "properties": {
      +    "filename": {
      +      "description": "The file name, ending .md, .txt or .csv, e.g. project.md",
      +      "maxLength": 150,
      +      "type": "string"
      +    },
      +    "text": {
      +      "description": "The document's full text, up to 64 KB",
      +      "maxLength": 262144,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "filename",
      +    "text"
      +  ],
      +  "type": "object"
      +}
    • changedInput schema / properties / items / description
      Previous value: -"The pieces your person chose"New value: +"The pieces your person chose. Leave out only when you send a document"
    • removedInput schema / properties / items / minItems
      Removed value: -1
    • changedInput schema / required
      Previous value: -[
      -  "to",
      -  "items",
      -  "words"
      -]New value: +[
      +  "to",
      +  "words"
      +]
  6. Added

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations (readOnly=false, openWorld=true, idempotent=false, destructive=false) it discloses a consent gate, a mandatory preview-before-send step, hard limits (12 items, 64 KB document, 10 MB file / 256 KB text), content refusals (passwords, keys, card numbers, ID numbers, images, macros), and a 3-day pickup window. That is substantially more than the annotations convey and directly shapes correct invocation.

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?

Purpose is front-loaded in the first sentence and nearly every clause carries an operative constraint, so length is justified by tool complexity. The main weakness is structure: the constraints arrive as one dense run-on block rather than being grouped by parameter, which makes the file/document/upload_link rules harder to scan.

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?

With six parameters including two nested objects and no output schema, the description still covers the outcome the agent needs (the other app picks it up within 3 days, the upload link is one-time and valid 30 minutes, take_back_context reverses it). Nothing material about calling this tool correctly is left unstated.

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 baseline is 3, but the description adds decision logic the schema cannot express: what counts as an item (a short title plus what the other app should know), when to omit items in favour of a document, when to pass file versus setting upload_link=true, and the 30-minute lifetime of the returned link. The size and content constraints on file and document are partly restated from maxLength values, which keeps it from a 5.

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 — moving context from this app to another connected AI app — and gives a worked example (ChatGPT to Claude). It implicitly separates itself from the siblings pick_up_context, take_back_context and context_status by describing the send side and explicitly naming take_back_context as the undo path.

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 states the trigger condition ('Only when your person asks, and only what they said to send') and a clear prohibition ('Don't offer a list of things they could send or choose for them; if what they want to send is unclear, ask them'). It also routes the agent to the alternative path for undoing ('take_back_context undoes it until then') and tells it when to use file vs document vs upload_link.

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