What it does
Read one thing found by search_context, as plain text. Takes the connection_id and ref from a hit — refs are the provider's own handle and are not guessable, with two exceptions worth knowing because they save a search: a GitHub ref is "owner/repo#123" for an issue or PR and "owner/repo:path/to/file" for a file, and a Slack ref is "channelId:messageTs". Reading a Slack ref returns the whole thread, not the one message. If this refuses with a scope message, the human narrowed that connection's consent — say which app needs reconnecting rather than retrying.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
connection_id | string | Required | From a search_context hit, or list_connections |
ref | string | Required | The hit's ref |
Annotations
The hints the server sends with this tool. A host reads them to decide whether to ask you before a call.
- Read-only
readOnlyHint: true - Changes nothing.
- Destructive
destructiveHint: false - Only adds or reads; nothing already there is removed or overwritten.
- Idempotent
idempotentHint: — - Doesn't apply: the tool changes nothing.
- Open world
openWorldHint: true - Reaches outside Done, into an app you connected.
Which tokens can call it
A connection made with OAuth has full access. A token from Settings → Agent access → Extra MCP tokens can be narrowed, and a narrowed token never sees beyond its project or workspace.
- Full accessAllowed
- Read-only tokenAllowed
- Single-project tokenRefused
- Single-workspace tokenRefused
Try it
With Done connected, ask your assistant something like:
“Read the GitHub issue the bug task points to.”
Connect Done to your assistant
One MCP endpoint per account, over OAuth or a token. Step-by-step setup for each client: