Sixteen Bridges
Server Details
Bubbles: save chat context once, use it in ChatGPT, Claude, Gemini, Grok, Perplexity and Cursor.
- Status
- Healthy
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 9 tools
Each tool targets a distinct resource+action: reading (get_bubble), listing (list_bubbles, list_deleted_bubbles, list_shares), and mutating (save_bubble, update_bubble, delete_bubble, restore_bubble, share_bubbles). The list_* variants are clearly separated by scope (active bubbles, trash, shares), and the descriptions reinforce boundaries, e.g. list_bubbles explicitly tells the agent to follow up with get_bubble. No two tools can plausibly be confused for one another.
Every tool follows a strict verb_noun snake_case pattern (get_, list_, save_, update_, delete_, restore_, share_), with plurals used consistently for collection operations and singular for single-resource operations. No camelCase or stylistic mixing.
Nine tools is well within the ideal range and each maps to a real operation in the bubble lifecycle or sharing/trash workflow. Nothing feels padded or missing from a count perspective.
Full CRUD is covered for bubbles, plus trash lifecycle (delete/restore/list_deleted) and sharing. The notable gap is on the share side: there is no way to revoke/unshare or to decline a received share, and no permanent-delete purge, though most core workflows are reachable.
Available Tools
9 toolsdelete_bubbleDelete a bubbleADestructiveIdempotentInspect
Move a bubble to the trash. It can be restored with restore_bubble for 7 days, then it is deleted for good. Ask the user first.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The bubble's id, from list_bubbles |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint and idempotentHint, but the description adds information they cannot convey: the deletion is reversible for exactly 7 days, becomes permanent afterward, and requires user confirmation before the call. That lifecycle and consent detail is exactly the context a destructive operation needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each carrying distinct information: what happens, how it can be undone and when it becomes irreversible, and the consent requirement. The most important fact (it goes to trash, not gone) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one required parameter, full schema coverage, no output schema, and annotations covering the safety profile, the description fills the remaining gaps: reversibility window, permanence, and confirmation. Nothing an agent needs before calling is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single id parameter is documented in the schema as coming from list_bubbles, including its pattern. The description adds nothing about the parameter, which is fine given the schema does the work, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Move a bubble to the trash') rather than the vague 'delete' implied by the name, which immediately clarifies that this is a soft delete. It also names the inverse sibling restore_bubble, so an agent can distinguish the two without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Ask the user first' is an explicit behavioral prerequisite for invoking the tool, and naming restore_bubble as the recovery path tells the agent when this tool is and isn't the right choice. It stops short of a full when-not clause (e.g. when to use update_bubble instead), so it lands just below the top.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bubbleRead a bubbleARead-onlyIdempotentInspect
Read one bubble: a short header, then its content (Markdown). A long bubble comes in pages of 30000 characters; the reply ends with the offset to read next.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The bubble's id, from list_bubbles | |
| offset | No | Character to start from (default 0) | |
| max_chars | No | Characters to return (default 30000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive behavior, so the description focuses on what the annotations can't say: the response shape (header then Markdown content), the 30000-character page size, and the trailing next-offset. It stops short of naming the pagination field or saying what the header contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The core purpose is front-loaded and the paging caveat follows logically, so an agent can stop reading after the first sentence for most calls.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining the return value, and it does so at a useful level (header plus content, page size, next offset). It is not fully complete because the actual field names of the header and of the returned offset are left unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so id, offset, and max_chars are already documented with patterns, defaults, and bounds. The description only restates the default page size, adding no new syntax or constraints beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Read one bubble') and immediately characterizes what a bubble is (short header plus Markdown content). It is clearly distinguishable from list_bubbles, which returns many bubbles, and from the mutation siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The paging sentence tells the agent exactly how to continue a partial read ('the reply ends with the offset to read next'), which is real usage guidance for the most common follow-up case. It does not, however, explicitly say when to prefer this over list_bubbles or note that the id comes from list_bubbles (that hint lives only in the schema).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_bubblesList bubblesARead-onlyIdempotentInspect
List the user's bubbles, newest first: id, title, source, size, date and a one-line preview, plus how many of their allowance are used. Pass query to search titles and contents. Start here, then read only the bubbles you need with get_bubble.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many to return (default 20) | |
| query | No | Words to search for in titles and contents | |
| cursor | No | From a previous reply's `More:` line, for the next page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered; the description adds real behavioral context beyond them: newest-first ordering, the concrete fields returned, the allowance-usage count, and the 'More:' cursor pagination convention. It stops short of stating limits (e.g. max 50 per page, default 20) or what an empty/allowance-exhausted result looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste: the purpose and return shape come first, then the search and next-step guidance. Every clause carries information an agent needs to decide or act.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the returned fields and the ordering, and it covers pagination and the natural follow-up tool. Nothing essential for correctly invoking or chaining this call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with limit, query and cursor all documented in the schema including defaults and bounds. The description's notes on `query` ('search titles and contents') and the cursor ('More:' line) largely restate the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List the user's bubbles') and immediately enumerates the exact return shape (id, title, source, size, date, preview, allowance usage) and ordering ('newest first'). This is far more than a restatement of the title and lets an agent distinguish it from get_bubble or list_deleted_bubbles without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: 'Start here, then read only the bubbles you need with get_bubble' names the alternative and the condition that selects it, and 'Pass `query` to search titles and contents' tells when to use the search mode. The only gap is that it never mentions the deleted/share siblings (list_deleted_bubbles, list_shares), which an agent could confuse with this listing tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_deleted_bubblesList the trashARead-onlyIdempotentInspect
List bubbles deleted in the last 7 days, newest first, with when each stops being restorable.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/non-destructive, so safety is covered. The description adds genuinely useful behavior beyond that: a 7-day retention window, newest-first ordering, and that each item carries a restorability deadline. It does not describe pagination or result size limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; scope, ordering, and the expiry field all land in one pass. Nothing repeats the title or the annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must hint at the return shape, which it does via 'newest first' and 'when each stops being restorable'. Minor gap: it never mentions what identifying fields each entry has (name/id), which an agent needs to chain into restore_bubble.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline is 4 and there is nothing for the description to compensate for. The description instead spends its words on output semantics rather than wasting space on nonexistent inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (list bubbles) narrowed by a clear scope qualifier ('deleted in the last 7 days'), which implicitly separates it from the sibling list_bubbles for active items. It also discloses ordering and an extra field, though it never names the sibling alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: this is the trash-view counterpart to list_bubbles and the natural precursor to restore_bubble or delete_bubble, but the description never says so. An agent must infer the when-to-use from the term 'deleted' alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_bubbleRestore a bubbleAIdempotentInspect
Bring a bubble back from the trash (ids from list_deleted_bubbles).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The bubble's id, from list_deleted_bubbles |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds that the operation targets trashed items, but says nothing about what happens on an id that isn't in the trash, whether restore fails or is a no-op, or whether the restored bubble overwrites anything.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the action and scoped by the source of the ids. No filler whatsoever.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation with annotations covering idempotency and destructiveness and no output schema, the description is essentially sufficient. The only missing piece is edge-case behavior (invalid or non-trashed id), which is minor at this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single required parameter with 100% schema coverage, and the schema already states 'The bubble's id, from list_deleted_bubbles'. The description's parenthetical merely repeats that provenance, adding no new meaning about format or behavior beyond the pattern in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('bring back' / restore) and resource ('a bubble') with the scope qualifier 'from the trash', which clearly separates it from delete_bubble and update_bubble. It does not explicitly name a sibling as an alternative, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'from the trash (ids from list_deleted_bubbles)' tells the agent the precondition (the bubble must be trashed) and the tool that supplies valid ids, which is concrete routing guidance. No explicit when-not or failure-case guidance (e.g., what if the id isn't deleted), keeping it below 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_bubbleSave a bubbleAInspect
Save new context as a bubble (Markdown, up to 120-character title). Use a short, specific title. Set source to the app you are. Returns the new bubble's id.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional: where it came from, e.g. the chat's name | |
| title | Yes | ||
| source | No | The AI app saving it (default api) | |
| content | Yes | The text to keep, in Markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (non-destructive, non-idempotent, closed-world), so the bar is lower. The description adds useful behavior — the Markdown format, the 120-character title limit, and that the new bubble's id is returned — but it does not warn that repeated calls create duplicates, which is the practical consequence of idempotentHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action, then guidance, then the return value. Nearly zero waste; only the title-length restatement slightly overlaps the schema's maxLength.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A simple four-parameter create tool with annotations covering safety and an explicit statement of the return value, so no output schema is needed. Minor gaps are the absence of duplicate-creation behavior and any content-size or format caveats.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so the baseline is 3. The description adds light guidance beyond the schema ("short, specific title", "set source to the app you are") and correctly notes source semantics, but it never mentions `label` or `content` beyond the format note, so it does not fully compensate for the uncovered quarter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Save new context as a bubble") and the word "new" signals creation rather than modification. It is distinguishable from most siblings by name, but it never explicitly contrasts with update_bubble, which is the closest alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Save new context" implies the usage condition (you have new content worth keeping) and "Set `source` to the app you are" is invocation guidance, but there is no explicit when-to-use/when-not or routing to update_bubble for existing bubbles. Guidance is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_bubbleUpdate a bubbleADestructiveInspect
Change a bubble's title, replace its content, or add to the end of it with append (no need to send the whole bubble again).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The bubble's id, from list_bubbles | |
| title | No | A new title | |
| append | No | Text to add at the end, after a blank line | |
| content | No | New content, replacing all of it |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false, and readOnlyHint=false, so the safety profile is structured. The description adds the replace-vs-append behavioral contrast beyond the schema, but does not warn that `content` wipes all prior content irreversibly or note any permission/lookup requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the mutation scope and resolves the key ambiguity (append vs. full replace) with a parenthetical. Zero wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Four fully documented parameters, annotations covering safety, and no output schema to explain — the description is sufficient to invoke correctly. It could be stronger by clarifying the save_bubble relationship or that the operation is not idempotent, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented, including that `append` inserts after a blank line. The description's only added nuance is that a partial update is permitted for `append`, which is marginal over the schema — baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Change a bubble's title, replace its content, or add to the end of it') and enumerates the three mutation modes. It is clearly separable from get_bubble/list_bubbles/delete_bubble, but it never distinguishes itself from save_bubble, the sibling most likely to be confused with an update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical 'no need to send the whole bubble again' gives a useful decision rule for choosing `append` over `content`. However, there is no guidance on when to call this at all versus save_bubble or restore_bubble, so usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
- First observed
delete_bubble - First observed
get_bubble - First observed
list_bubbles - First observed
list_deleted_bubbles - First observed
list_shares - First observed
restore_bubble - First observed
save_bubble - First observed
share_bubbles - First observed
update_bubble
Related MCP Connectors
One memory for you and your AI agents, shared by ChatGPT, Claude, Gemini, Grok, Codex and Cursor.
Shared memory across ChatGPT, Claude, Cursor, and Gemini. OAuth 2.1 context & supersession.
Stop re-explaining yourself to AI. Save knowledge once, use it in every conversation.
Shared memory for AI tools: save once, recall word for word from Claude, ChatGPT, Codex or Gemini.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceEnables AI coding assistants like Claude Code, Cursor, and Codex to share chat logs, terminal history, and session context with each other. Eliminates the need to re-explain context when switching between different AI coding tools.2MIT
- AlicenseNot gradedqualityAmaintenanceUniversal context, rules & handoff bridge for AI coding tools (Cursor, Claude Code, GitHub Copilot, Cline, Antigravity, Windsurf).264 npm6MIT
- AlicenseAqualityCmaintenanceOne context engine for every AI. Persistent context from GitHub, Notion, and your decisions, delivered to Claude, ChatGPT, Cursor, VS Code, Gemini, and any MCP-compatible client.93AGPL 3.0

MyAITwin MCPofficial
FlicenseNot gradedqualityBmaintenancePersonal RAG database and semantic search built from inside your AI chat. Store knowledge, voice, and skills; Claude and ChatGPT create work that sounds like you.-
Glama MCP Gateway
Add one secure layer between your agents and this server.