Skip to main content
Glama

ChatGPT Context Bridge

Private, draft-only tooling for staging ChatGPT or Codex conversations into reviewable Homebase markdown, Notion draft payloads, and image-generation asset manifests.

What It Does

  • Parses official ChatGPT conversations.json exports and manual markdown chat captures.

  • Redacts secrets and common personal contact data before writing staged records.

  • Classifies staged conversations into Homebase-style destinations.

  • Exposes MCP tools for ChatGPT/Codex clients.

  • Bundles Codex skills and OpenAI skill copies for reusable agent behavior.

  • Appends audit events for every staging write operation.

  • Writes only under CONTEXT_BRIDGE_DATA_DIR; it does not mutate Notion or Homebase canon.

Related MCP server: Ruminer Browser Agent

Install

npm install
npm run build
npm test
npm run verify

Optional environment:

Copy-Item .env.example .env.local
$env:CONTEXT_BRIDGE_DATA_DIR = "C:\Users\built\Documents\Codex\context-bridge-data"
$env:CONTEXT_BRIDGE_IMPORT_ROOTS = "C:\Users\built\Downloads,C:\Users\built\Documents"

CLI

npm run cli -- stage --source .\tests\fixtures\conversations.json --tags chatgpt,homebase
npm run cli -- search --query bridge
npm run cli -- homebase --id <staged-chat-id>
npm run cli -- notion --id <staged-chat-id>
npm run cli -- image --source .\image.png --source-kind local_file --chat-id <staged-chat-id>
npm run cli -- generate-image --prompt "A clean visual system diagram"

MCP Tools

  • stage_chat: read an export/markdown file, redact, classify, and write staging artifacts.

  • search_context: search staged records.

  • summarize_thread: inspect one staged chat summary.

  • propose_homebase_note: create a staged Homebase markdown draft.

  • propose_notion_page: create a staged Notion payload.

  • register_image_asset: record image prompt/source/rights metadata and optionally copy a local image into staging.

  • generate_image_asset: generate an OpenAI image into staging and return the local file path. Requires OPENAI_API_KEY.

Codex Plugin

The plugin bundle lives in plugin/ and includes:

  • .codex-plugin/plugin.json

  • .mcp.json

  • skills/context-bridge-ingest

  • skills/context-bridge-routing

For local testing from the package root, build first, then point a local plugin marketplace at the plugin folder or copy the package as a whole so plugin/scripts/context-bridge-mcp.mjs can find dist/index.js.

ChatGPT Apps SDK Connector

Use the phrase "ChatGPT Apps SDK connector backed by this MCP server" for the ChatGPT side. The local Codex plugin is separate from a ChatGPT app connector.

  • Local MCP development can use stdio or http://127.0.0.1:<PORT>/mcp.

  • ChatGPT developer-mode connection should use a reachable HTTPS /mcp endpoint.

  • Authenticated or customer-specific use should add OAuth 2.1 or scoped bearer-token auth, server-side scope enforcement, and audit review.

  • v0.1 deliberately exposes staging tools only; any future canonical write tool must be a separate tool with explicit human confirmation.

OpenAI Skills

OpenAI skill copies live in openai-skills/. They are intentionally small wrappers around the MCP tool contract:

  • context-bridge-ingest

  • context-bridge-routing

Official OpenAI docs support Skills for gpt-5.5. Treat gpt-5.5-pro as MCP/tool-capable but not Skills-capable unless OpenAI documentation changes.

Safety Boundaries

  • No browser scraping in v0.1.

  • No live sync in v0.1.

  • No Notion mutation in v0.1.

  • No Homebase canonical writes in v0.1.

  • No image publication in v0.1; generated images stay in staging until reviewed.

  • Staged Notion payloads include a direct-fetch verification reminder because Notion search can lag or miss items.

  • Prompt-injection content inside imported chats is treated as staged source text, not executable routing authority.

Verification

The test suite covers parsers, staging, duplicate imports, redaction, path traversal, prompt-injection containment, every MCP handler, plugin packaging, and one acceptance path from source chat to Homebase and Notion drafts.

Available Tools

7 tools
generate_image_assetGenerate Image AssetA

Generate an image with OpenAI image generation, save it into Context Bridge staging, and return the local staged file path plus manifest metadata. Requires OPENAI_API_KEY. Does not publish media.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoGenerated image size.1024x1024
modelNoOpenAI GPT image model to use.gpt-image-1.5
promptYesText prompt for OpenAI image generation.
qualityNoGenerated image quality.auto
backgroundNoBackground handling for supported formats.auto
moderationNoContent moderation level for GPT image models.auto
output_formatNoFile format to save in staging.png
source_chat_idNoOptional staged chat ID associated with the generated image.
response_formatNoOutput format: markdown or json.markdown
usage_rights_noteNoUsage rights or publication review note.
suggested_homebase_folderNoSuggested Homebase media folder.

TDQS

A4.2/5.0
Behavior4/5

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

The description adds meaningful context beyond annotations: it reveals an external dependency (OPENAI_API_KEY), clarifies the side effect of saving to staging, and states 'Does not publish media.' These details complement the annotations (readOnlyHint=false, destructiveHint=false) without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the core action, and every clause adds relevant information. No redundancy or filler.

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?

For a tool with 11 parameters and no output schema, the description covers the core purpose, key side effects, and dependencies. It could elaborate on failure modes or return format, but the strong schema and annotations mitigate the need for more detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides detailed descriptions for all 11 parameters (100% coverage), so the description adds limited value for parameter semantics. The mention of returning a local path and manifest metadata provides slight extra context but does not significantly enhance understanding of individual parameters.

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 clearly states the tool's function: generating an image via OpenAI, saving it to Context Bridge staging, and returning a local path plus manifest metadata. It also differentiates from siblings by explicitly noting it does not publish media, distinguishing it from publishing/registration tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on what the tool does and highlights the environment requirement (OPENAI_API_KEY). It implies when to use this tool versus publishing tools, but does not explicitly name alternative siblings like register_image_asset for registering existing assets, leaving a small gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

propose_homebase_notePropose Homebase NoteA
Idempotent

Create a staged Homebase markdown draft and suggested canonical path for one staged chat. Draft-only; no Homebase repo writes.

ParametersJSON Schema
NameRequiredDescriptionDefault
staged_chat_idYesID returned by stage_chat or search_context.
response_formatNoOutput format: markdown or json.markdown

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate not read-only, idempotent, and not destructive. The description adds valuable context that this is draft-only and performs no Homebase repo writes, clarifying the intended behavior beyond the raw annotations. It does not contradict any annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences are packed with essential information: what it creates, for whom, and that it's draft-only. No fluff or redundant wording.

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?

For a simple 2-parameter tool with no output schema, the description is nearly complete. It explains the purpose, scope, and behavior, though it could explicitly state the return format (though response_format param implies it).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (staged_chat_id, response_format) are already documented. The description adds no further parameter-specific detail, so baseline 3 is appropriate.

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 clearly states the tool creates a staged Homebase markdown draft and suggested canonical path for one staged chat. It uses a specific verb ('Create') and resource ('staged Homebase markdown draft'), and the context 'one staged chat' distinguishes it from sibling tools like propose_notion_page or stage_chat.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: for a staged chat and when only a draft is needed, with 'Draft-only; no Homebase repo writes' clarifying scope. However, it does not explicitly name alternatives or exclusion criteria, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

propose_notion_pagePropose Notion PageA
Idempotent

Create a staged Notion payload with verification notes for one staged chat. Draft-only; no Notion API calls or page mutations.

ParametersJSON Schema
NameRequiredDescriptionDefault
staged_chat_idYesID returned by stage_chat or search_context.
response_formatNoOutput format: markdown or json.markdown

TDQS

A4.2/5.0
Behavior4/5

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

Annotations include idempotentHint=true and destructiveHint=false; description adds crucial context that this is draft-only with no Notion API calls or page mutations, clarifying that any side effects are local payload creation only. This goes beyond what annotations alone convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single concise sentence, front-loaded with the verb and purpose. No wasted words, and it includes the key safety qualifier ('Draft-only') in the same sentence.

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?

Given the tool's moderate complexity and full schema coverage, the description conveys the main purpose and critical constraints. It lacks an explicit statement of the return value, but the response_format parameter implies the output format, and the tool name/content fill the gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover both parameters (staged_chat_id and response_format) at 100%, so the description doesn't need to add parameter details. It references 'one staged chat' which aligns with staged_chat_id but adds no new semantic meaning.

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 states a specific action ('Create a staged Notion payload') with a clear resource and scope ('for one staged chat'). It also distinguishes from siblings by indicating draft-only and no API calls, differentiating from propose_homebase_note.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context: it should be used when you have a staged chat and want a payload. However, it does not explicitly mention when not to use it or alternatives like propose_homebase_note, so it falls short of full exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

register_image_assetRegister Image AssetA
Idempotent

Stage image-generation artifacts by recording prompt, source chat, usage-rights note, and optional local copied asset. Does not publish media.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptNoPrompt or generation context for the image.
sourceYesLocal image path or http(s) URL.
source_kindYesWhether source is a local file or URL.
source_chat_idNoOptional staged chat ID associated with the image.
response_formatNoOutput format: markdown or json.markdown
usage_rights_noteNoUsage rights or publication review note.
suggested_homebase_folderNoSuggested Homebase media folder.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already cover readOnly=false, destructive=false, and idempotent=true. The description adds a useful constraint ('Does not publish media') but does not explain the actual side effects of staging (e.g., where records are stored, whether files are copied) or any prerequisites. It adds some context but not rich behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the action ('Stage image-generation artifacts'), and every clause earns its place. The second sentence provides a clear boundary without wasted words.

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

Completeness3/5

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

With 7 parameters, 2 enums, and no output schema, the description is minimal. It covers the purpose and a key constraint but omits operational context such as how response_format affects output, what 'staging' entails (e.g., database write, file copy), and when to use it in a workflow. It is adequate but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. However, the description introduces the ambiguous phrase 'optional local copied asset' that does not map cleanly to any schema parameter (likely referring to 'source' or 'suggested_homebase_folder'), and it only lists a subset of fields. This could confuse an agent selecting parameters, and the description adds little value 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?

The description clearly states the tool's purpose: to stage image-generation artifacts by recording prompt, source chat, usage-rights note, and optional local copied asset. It explicitly differentiates from publishing by stating 'Does not publish media,' which distinguishes it from sibling tools like generate_image_asset and propose_notion_page.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for recording/staging image artifacts before publication, but it does not explicitly state when to use this tool versus alternatives such as generate_image_asset or propose_notion_page. It gives clear context ('stage', 'does not publish') but no explicit alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_contextSearch Staged ContextA
Read-onlyIdempotent

Search private Context Bridge staging records. Read-only. Returns staged chat IDs, titles, summaries, and draft paths when present.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum staged records to return.
queryNoSearch staged chat titles, tags, and summaries.
offsetNoNumber of matching records to skip.
response_formatNoOutput format: markdown or json.markdown

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, and the description adds that the tool is private and returns specific fields, which is useful behavioral context beyond what annotations provide. There is no contradiction, and the description enriches understanding of the search scope.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, front-loaded with the core action ('Search private Context Bridge staging records') and includes only necessary detail about return values. Every word earns its place.

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?

For a simple filtered search tool with no output schema, the description adequately conveys purpose and return structure. It complements the well-documented schema by explaining what is returned, making the tool understandable in context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover 100% of parameters, so the schema already fully explains all four parameters (limit, query, offset, response_format). The description adds no additional parameter-level detail, so the baseline score of 3 is appropriate.

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 clearly states the verb 'Search' and the resource 'private Context Bridge staging records', and specifies the returned fields (chat IDs, titles, summaries, draft paths). This distinguishes it from sibling tools like stage_chat or summarize_thread, which create or process context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly indicates this tool is for searching staged records and is read-only, providing context that differentiates it from sibling tools that create or modify data. However, it does not explicitly mention when not to use it or name specific alternatives, so it falls short of a full explicit exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stage_chatStage Chat ExportA
Idempotent

Read a local ChatGPT export JSON or manual markdown chat file, redact sensitive values, classify it, and write only staging artifacts. Does not write to Homebase or Notion.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoPrivate routing tags to attach to staged records.
source_pathYesPath to a ChatGPT conversations.json export or manual markdown chat file.
source_typeNoParser to use. auto chooses JSON or markdown from file extension.auto
allow_overwriteNoWhether to overwrite an existing staged record with the same source hash.
redaction_levelNostandard redacts secrets/contact data; strict also redacts street addresses.standard
response_formatNoOutput format: markdown or json.markdown

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate write (readOnlyHint=false), idempotent (idempotentHint=true), and non-destructive (destructiveHint=false). The description adds valuable context about reading local files, redaction, classification, and the staging-only write scope, which enriches the agent's understanding without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core action, and contains no redundant or superfluous information. Every phrase contributes to understanding the tool's function and scope.

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?

Given 6 parameters, no output schema, and complexity around redaction/classification, the description covers the main workflow and exclusions. It does not elaborate on classification details or artifact specifics, but with good annotations, this is sufficiently complete for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all parameters are well documented in the input schema. The description gives a general overview but does not add specific parameter details beyond what the schema already provides. It meets the baseline but does not go further.

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 clearly states the tool reads local chat export files, redacts sensitive values, classifies them, and writes staging artifacts. It explicitly distinguishes itself from siblings by noting it does not write to Homebase or Notion, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool: for staging chat data without writing to Homebase or Notion. It implies when not to use (when final writes are needed) and explicitly mentions the exclusion. However, it does not name alternative sibling tools explicitly, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

summarize_threadSummarize Staged ThreadA
Read-onlyIdempotent

Return the deterministic summary, action candidates, and risk notes for one staged chat ID. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
staged_chat_idYesID returned by stage_chat or search_context.
response_formatNoOutput format: markdown or json.markdown

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds 'deterministic' (consistent with idempotency) and enumerates the return contents (summary, action candidates, risk notes), providing behavioral detail beyond the safety annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with a clear verb and object. Every word earns its place; there is no redundancy or padding.

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 no output schema, the description compensates by listing the three return components (summary, action candidates, risk notes). Combined with good annotations and simple 2-param schema, it is adequately complete for a read-only tool, though it doesn't describe output formatting details beyond the response_format parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for both staged_chat_id and response_format. The description does not add new parameter-level meaning, only reuses 'staged chat ID' in the text, so it meets the baseline but adds no extra value.

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 clearly states the verb 'Return' and specifies the exact resource: 'deterministic summary, action candidates, and risk notes for one staged chat ID.' It is distinct from sibling tools like stage_chat (which likely creates) and propose_homebase_note (which proposes content).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it operates on a 'staged chat ID' from stage_chat or search_context, implying it is used after those tools. However, it does not explicitly name alternatives or state when not to use it, stopping short of full exclusion guidance.

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.

  1. 7 tool updatesv0.1.0
    • First observedgenerate_image_asset
    • First observedpropose_homebase_note
    • First observedpropose_notion_page
    • First observedregister_image_asset
    • First observedsearch_context
    • First observedstage_chat
    • First observedsummarize_thread

TDQS

A3.9/5.0

Scored across 7 tools

Disambiguation4/5

Most tools target distinct resources and actions: search, stage, summarize, propose for different targets, and image generation/registration. The only mild overlap is between generate_image_asset and register_image_asset, but their descriptions clarify one creates new images while the other records existing artifacts.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case (e.g., search_context, stage_chat, propose_notion_page). There are no mixed conventions or vague verbs, making the naming predictable and clear.

Tool Count5/5

With 7 tools, the count is well within the ideal 3-15 range for a domain-specific bridge. Each tool serves a distinct purpose in the staging workflow, and none feel redundant.

Completeness2/5

The workflow appears to produce drafts and staged artifacts but lacks any publish/commit operation to actually push to Homebase or Notion. Additionally, there are no update or delete tools for staged records, creating dead ends and leaving the lifecycle incomplete.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers