Skip to main content
Glama

RelayLink

Share notebook text (opens a draft)

notebook_share

Build a RelayLink package from chosen notebook entries and open it as a draft to one of the user's contacts. The recipient receives only the entries named and the covering note — never the notebook itself, the revision history, the journal, the working preferences or anything else in the project. NOTHING IS SENT: this returns a preview for the user to approve or rewrite, and confirm_send after their explicit approval is what delivers it, with every ordinary rule — accepted contact, blocks, the sacred human note — applying unchanged. Which entries and which revisions went is recorded, so a later private edit cannot change what somebody already received. There is no length to keep to: a short selection travels as the package's briefing and a long one as its message, so an entry of any size the notebook accepts can be sent as written — whoami says the longest message this account's plan allows, and only a selection past THAT is refused, with the number. Never shorten the user's own writing to make it fit. One exception worth knowing before a first approach: a first message to somebody who has no account yet must be a briefing, so a long share needs an existing contact. This is the user's RelayLink notebook, for material they are keeping: use it when they name RelayLink or their notebook, when they are continuing work already kept here, or when they pick a RelayLink entry. A durable fact ABOUT them — how they like to be worked with, what they are working on — is memory_add's instead, and a project-scoped preference or one with an end date is this notebook's. A bare "add a task" or "save this note" may be meant for another connected app, and a destination they name outright is always the destination. If more than one place is plausible and nothing settles it, ask once, then stay with the answer for the rest of the task.

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": {
      "entryIds": "<entryIds>",
      "to": "<to>",
      "note": "<note>",
      "ask": "<ask>"
    },
    "name": "notebook_share"
  }
}

Input Schema

NameRequiredDescriptionDefault
toYesThe recipient's email address, or the name of an accepted contact resolved by draft_package's rules.
askYesWhat the sender wants back, one sentence.
noteYesThe sender's own words to the recipient, at most 2000 characters. A proposal — the user must approve or rewrite it before anything is sent.
topicNoA few words naming the thread. Defaults to the first entry's title.
urgencyNoUrgency hint: none | when_convenient | this_week | today.when_convenient
entryIdsYesThe entry_ids to include, at most 8. Their current text goes into the briefing.
responseShapeNoShape of the wanted response: opinion | decision | review | info | fyi.opinion

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only say readOnly=false, destructive=false, idempotent=false, openWorld=false; the description supplies the substance the agent actually needs: nothing is sent, a preview is returned, confirm_send after explicit user approval is what delivers, contact/block rules still apply, and the sent selection is frozen against later private edits. It also discloses the first-message-to-a-non-contact constraint and the length refusal behavior with its error signal.

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?

Purpose and the send/no-send distinction are front-loaded, which is good, but the description runs long with rhetorical padding ('the sacred human note', 'Never shorten the user's own writing to make it fit') and a dense run-on length-rule paragraph. The information is mostly load-bearing, but it could be trimmed by a third without losing routing value.

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

Completeness4/5

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

With 7 parameters, 4 required, no output schema, and annotations that say little, the description covers the crucial workflow (draft → preview → confirm_send), the recipient-eligibility rules, and the length failure mode. It stops short of describing what the preview payload contains or the semantics of topic/urgency/responseShape, which leaves minor gaps for a non-idempotent draft-creating tool.

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 carries the baseline, but the description adds real meaning: entryIds are snapshotted at share time, the note length ceiling is governed by whoami's plan limit rather than the 2000-char field, and the 'to' target changes behavior when the recipient has no account yet (must be a briefing). It says nothing about topic, urgency, or responseShape beyond the schema.

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?

Opens with a specific verb and resource: 'Build a RelayLink package from chosen notebook entries and open it as a draft to one of the user's contacts.' It explicitly differentiates itself from confirm_send (which actually delivers), memory_add, and notebook_share_fact, so an agent can route correctly without opening a schema.

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?

Gives explicit positive triggers ('when they name RelayLink or their notebook', 'continuing work already kept here', 'pick a RelayLink entry') and explicit exclusions ('A durable fact ABOUT them ... is memory_add's instead'; a bare 'add a task' may belong to another app; 'a destination they name outright is always the destination'). It even supplies a disambiguation protocol: ask once, then stay with the answer.

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