{"apiVersion":"v1","directorySlug":"methe-mcp-b346fe1a45","title":"Git Diff Patcher Bridge","description":"Git Diff Patcher Bridge connects ChatGPT to a local GDP Desktop session or a seeded Demo Workspace. ChatGPT can inspect repository context, read allowed files, search text, diagnose unified diffs with Patch Doctor, and queue patch proposals for local review. The bridge never applies, commits, pushes, resets, cleans, deletes, rolls back, or runs terminal commands on its own. All repository-changing actions remain under the user’s control inside GDP Desktop.","pageUrl":"https://www.mcpbundles.com/skills/methe-mcp-b346fe1a45","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.methe.tech/gdp/mcp","hostedMcpUrl":null,"toolCount":69,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"tech.methe/methe-mcp-b346fe1a45","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"inspect_caller_identity","description":"Returns a privacy-bounded diagnostic projection of the authenticated hosted MCP caller context. Raw tokens, account IDs, conversation IDs, MCP session IDs, node IDs and workspace IDs are never returned. The result is server-derived and grants no repository, claim, Assignment, Lane, Segment or execution authority.","inputSchema":{"type":"object","properties":{"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Inspect MCP caller identity","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"inspect_caller_identity","displayName":"Inspect MCP caller identity"},{"name":"inspect_server","description":"Returns privacy-bounded server identity, effective catalog identity, canonical policy identity, protocol capabilities and non-secret limits. The connected GDP Desktop remains the authoritative executor.","inputSchema":{"type":"object","properties":{"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Inspect MCP server","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"inspect_server","displayName":"Inspect MCP server"},{"name":"search_tools","description":"Searches only the caller-effective MCP descriptor catalog using deterministic name, title, description and input-schema matches. It discovers capabilities without invoking them or expanding authority.","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","maxLength":500,"minLength":1},"max_results":{"type":"integer","default":8,"maximum":20,"minimum":1},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Search MCP tools","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"search_tools","displayName":"Search MCP tools"},{"name":"inspect_tool","description":"Returns one exact caller-effective tool descriptor, schemas, annotations, execution policy, authority summary and invocation UI. It never invokes the inspected capability.","inputSchema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","pattern":"^[a-z0-9_.-]+$","maxLength":128,"minLength":1},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Inspect MCP tool","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"inspect_tool","displayName":"Inspect MCP tool"},{"name":"inspect_authority","description":"Separates runtime installation, effective visibility, static policy, open-repository target readiness, user consent and downstream availability for one exact MCP tool. It never invokes the tool or grants authority.","inputSchema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","pattern":"^[a-z0-9_.-]+$","maxLength":128,"minLength":1},"repo_id":{"type":"string"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Inspect MCP authority","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"inspect_authority","displayName":"Inspect MCP authority"},{"name":"inspect_limits","description":"Returns non-secret server limits and, optionally, one effective tool schema and execution-class limits. It does not reserve capacity or bypass quotas.","inputSchema":{"type":"object","properties":{"name":{"type":"string","pattern":"^[a-z0-9_.-]+$","maxLength":128,"minLength":1},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Inspect MCP limits","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"inspect_limits","displayName":"Inspect MCP limits"},{"name":"explain_policy_decision","description":"Explains whether one exact tool request satisfies static visibility, policy and target preconditions. It does not validate every argument, obtain consent, invoke the tool or guarantee execution.","inputSchema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","pattern":"^[a-z0-9_.-]+$","maxLength":128,"minLength":1},"repo_id":{"type":"string"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Explain MCP policy decision","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"explain_policy_decision","displayName":"Explain MCP policy decision"},{"name":"explain_error","description":"Classifies bounded caller-supplied error text into retry, reconciliation and effect-uncertainty guidance. It does not read private logs, expose hidden reasoning or retry the failed call.","inputSchema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","maxLength":4000,"minLength":1},"tool_name":{"type":"string","pattern":"^[a-z0-9_.-]+$","maxLength":128,"minLength":1},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Explain MCP error","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"explain_error","displayName":"Explain MCP error"},{"name":"validate_tool_call","description":"Validates one proposed call against the caller-effective descriptor, bounded JSON schema, catalog precondition, static execution policy and exact open-repository target. It does not invoke or queue the proposed tool, obtain consent, reserve capacity or grant authority.","inputSchema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","pattern":"^[a-z0-9_.-]+$","maxLength":128,"minLength":1},"arguments":{"type":"object","additionalProperties":true},"catalog_sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Validate MCP Tool Call","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"validate_tool_call","displayName":"Validate MCP Tool Call"},{"name":"preview_tool_call","description":"Produces a deterministic static effect preview after the same bounded validation used by validate_tool_call. It never invokes the target, writes a queue or journal, contacts an external system, obtains approval or claims that predicted effects occurred.","inputSchema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","pattern":"^[a-z0-9_.-]+$","maxLength":128,"minLength":1},"arguments":{"type":"object","additionalProperties":true},"catalog_sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Preview MCP Tool Call","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"preview_tool_call","displayName":"Preview MCP Tool Call"},{"name":"compile_invocation_plan","description":"Compiles up to 12 explicit caller-provided calls into one deterministic ordered no-execution plan with validation, previews, blockers and stop conditions. It preserves caller order and never invokes a step, queues work, obtains approval or grants authority.","inputSchema":{"type":"object","required":["calls"],"properties":{"goal":{"type":"string","maxLength":2000},"calls":{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string","pattern":"^[a-z0-9_.-]+$","maxLength":128,"minLength":1},"arguments":{"type":"object","additionalProperties":true}},"additionalProperties":false},"maxItems":12,"minItems":1},"catalog_sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Compile MCP Invocation Plan","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"compile_invocation_plan","displayName":"Compile MCP Invocation Plan"},{"name":"list_gdp_nodes","description":"Lists up to 100 non-revoked GDP execution nodes owned by the authenticated account, including bounded opaque workspace IDs, labels and active state reported by each Desktop. Local paths, installation identity, credentials, raw capabilities and client-instance identity are never exposed. This hosted control-plane read does not queue repository work.","inputSchema":{"type":"object","properties":{"execution_context":{"type":"string","maxLength":2048,"minLength":100},"include_diagnostics":{"type":"boolean"},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"List GDP execution nodes","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_gdp_nodes","displayName":"List GDP execution nodes"},{"name":"get_selected_gdp_node","description":"Reads the execution-node and workspace selection stored for the current trusted MCP conversation. During the exact-token shadow cohort only, if the client provides no trusted conversation, MCP session or shadow handle and exactly one eligible node exists, this read may return that node statelessly with no workspace and no persisted selection. Conversation identity is never accepted from model-provided arguments. This hosted read does not mutate the queue, execute work or grant enforced routing a","inputSchema":{"type":"object","properties":{"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Get selected GDP execution node","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_selected_gdp_node","displayName":"Get selected GDP execution node"},{"name":"select_gdp_node","description":"Stores one active account-owned GDP execution node and, when needed, one opaque open workspace as a scoped conversation selection. A sole workspace is selected automatically in global selection mode; multiple workspaces require workspace_id there. During the exact-token shadow cohort only, a client with no trusted conversation, MCP session or shadow handle may observe the sole eligible node statelessly when exactly one exists; that path persists no selection and rejects workspace_id. Scoped shad","inputSchema":{"type":"object","required":["node_id"],"properties":{"node_id":{"type":"string","pattern":"^node_[a-f0-9]{32}$"},"workspace_id":{"type":"string","pattern":"^ws_[a-f0-9]{32}$"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"create_execution_context":{"type":"boolean"},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Select GDP execution node","logicalName":"select_gdp_node","displayName":"Select GDP execution node","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"suggest_file_pack","description":"Standalone planning fallback when inspect_task_context is unavailable or file/check/queue context is intentionally not needed. Do not call it immediately before inspect_task_context because that compound tool already includes the deterministic file pack. This is read-only planning metadata.","inputSchema":{"type":"object","properties":{"max_paths":{"type":"number"},"task_text":{"type":"string"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Suggest file pack","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"suggest_file_pack","displayName":"Suggest file pack"},{"name":"inspect_operation","description":"Reads one exact typed operation identity from bounded local journal evidence. This forwards a read-only selected-repository request to GDP Desktop and never verifies, retries, cancels or mutates work.","inputSchema":{"type":"object","required":["operation_id"],"properties":{"repo_id":{"type":"string"},"max_events":{"type":"integer","default":50,"maximum":100,"minimum":1},"operation_id":{"type":"string","pattern":"^(incoming|suggestion|run|task):[A-Za-z0-9][A-Za-z0-9._:-]{0,199}$","maxLength":210,"minLength":3},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Inspect GDP operation","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"inspect_operation","displayName":"Inspect GDP operation"},{"name":"inspect_task_context","description":"Returns one bounded task snapshot containing repository summary, a deterministic file pack, selected file contents and optional GDP check/queue summaries. Prefer this over several separate discovery calls at the start of a coding task.","inputSchema":{"type":"object","required":["task_text"],"properties":{"paths":{"type":"array","items":{"type":"string"}},"repo_id":{"type":"string"},"max_paths":{"type":"number","default":8,"maximum":12,"minimum":1},"task_text":{"type":"string"},"include_files":{"type":"boolean","default":true},"include_checks":{"type":"boolean","default":true},"include_queues":{"type":"boolean","default":true},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Inspect task context","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"inspect_task_context","displayName":"Inspect task context"},{"name":"inspect_restart_requirements","description":"Classify explicit repository-relative changed paths into bounded restart, reconnect, cache-invalidation and Browser Companion reload requirements, together with content-free runtime freshness counters. This is advisory and read-only: it cannot restart GDP Desktop, reconnect the gateway, reload the extension, clear caches or prove lifecycle completion.","inputSchema":{"type":"object","required":["changed_paths"],"properties":{"changed_paths":{"type":"array","items":{"type":"string","maxLength":4096,"minLength":1},"maxItems":100,"minItems":1},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Inspect Restart Requirements","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"inspect_restart_requirements","displayName":"Inspect Restart Requirements"},{"name":"inspect_continuity","description":"Reads the selected repository's GDP-owned durable Lane, current Segment, ancestry and latest semantic checkpoint without creating genealogy or granting execution authority.","inputSchema":{"type":"object","properties":{"lane_id":{"type":"string","maxLength":200},"repo_id":{"type":"string","maxLength":80},"task_id":{"type":"string","maxLength":200},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Inspect GDP Continuity","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"inspect_continuity","displayName":"Inspect GDP Continuity"},{"name":"resume_context","description":"Resumes one durable GDP Lane and returns bounded browserless hydration. With explicit bootstrap_if_missing=true, a trusted hosted provider session may establish the first Task/Lane/Segment. A newly attested provider chat may create one continue Segment under the same Lane. Lineage never carries stale repository, credential, claim, lease or approval authority.","inputSchema":{"type":"object","properties":{"role":{"type":"string","maxLength":300},"lane_id":{"type":"string","maxLength":200},"repo_id":{"type":"string","maxLength":80},"task_id":{"type":"string","maxLength":200},"task_title":{"type":"string","maxLength":200},"next_action":{"type":"string","maxLength":1000},"current_goal":{"type":"string","maxLength":1200},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"acceptance_criteria":{"type":"array","items":{"type":"string","maxLength":500},"maxItems":20},"bootstrap_if_missing":{"type":"boolean","default":false},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Resume GDP Context","logicalName":"resume_context","displayName":"Resume GDP Context","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"complete_context","description":"Terminalizes one exact actorless Browserless Lane-owned Task from the current trusted hosted provider Segment's latest semantic checkpoint. It grants no Browser, command, patch or repository authority. This is a compatibility/convenience path: a fresh trusted hosted provider chat may self-rebind, and the named latest checkpoint may belong to the new current Segment or one of its ancestors. It is not required for liveness when checkpoint_context exposes the task_completion marker path.","inputSchema":{"type":"object","required":["lane_id","task_id","checkpoint_id"],"properties":{"reason":{"type":"string","maxLength":600},"lane_id":{"type":"string","maxLength":200},"repo_id":{"type":"string","maxLength":80},"task_id":{"type":"string","maxLength":200},"checkpoint_id":{"type":"string","maxLength":220},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Complete GDP Context","logicalName":"complete_context","displayName":"Complete GDP Context","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"recall_context","description":"Reads retained continuity detail on demand without dumping the whole historical conversation. Current kinds expose bounded semantic checkpoints or Segment ancestry.","inputSchema":{"type":"object","properties":{"kind":{"enum":["checkpoints","checkpoint","ancestry"],"type":"string","default":"checkpoints"},"limit":{"type":"integer","default":20,"maximum":100,"minimum":1},"lane_id":{"type":"string","maxLength":200},"repo_id":{"type":"string","maxLength":80},"task_id":{"type":"string","maxLength":200},"checkpoint_id":{"type":"string","maxLength":220},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Recall GDP Context","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"recall_context","displayName":"Recall GDP Context"},{"name":"request_git_publication","description":"Create one durable local publication request for exact selected repository paths. GDP captures trusted local HEAD, branch, upstream, file SHA and staged-index evidence itself. The request is rejected when a selected path is not a current commit-safe change or when an unrelated path is already staged. This tool never stages, commits, pushes, force-pushes or executes shell commands; GDP Desktop retains later execution authority and must revalidate the snapshot before any Git write.","inputSchema":{"type":"object","required":["paths"],"properties":{"paths":{"type":"array","items":{"type":"string","maxLength":4096,"minLength":1},"maxItems":40,"minItems":1,"uniqueItems":true},"action":{"enum":["commit","commit_push"],"type":"string","default":"commit_push"},"repo_id":{"type":"string","maxLength":80},"incoming_id":{"type":"string","maxLength":200},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"client_submission_id":{"type":"string","maxLength":200},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Request Selective Git Publication","logicalName":"request_git_publication","displayName":"Request Selective Git Publication","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"build_proof_obligations","description":"Freeze explicit caller-defined success criteria against one exact operation identity. Read-only: it does not verify, satisfy, execute or mutate any obligation.","inputSchema":{"type":"object","required":["operation_id","criteria"],"properties":{"repo_id":{"type":"string"},"criteria":{"type":"array","items":{"type":"object","required":["key","description"],"properties":{"key":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$","maxLength":80,"minLength":1}},"additionalProperties":false},"maxItems":24,"minItems":1},"operation_id":{"type":"string","pattern":"^(incoming|suggestion|run|task):[A-Za-z0-9][A-Za-z0-9._:-]{0,199}$","maxLength":210,"minLength":3},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Build GDP Proof Obligations","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"build_proof_obligations","displayName":"Build GDP Proof Obligations"},{"name":"inspect_agora","description":"Reads bounded cursor-relative GDP Agora coordination state for the selected repository, including relevant threads, posts, attention and active path or symbol claims. This is read-only.","inputSchema":{"type":"object","properties":{"limit":{"type":"number"},"paths":{"type":"array","items":{"type":"string"},"maxItems":40},"repo_id":{"type":"string"},"symbols":{"type":"array","items":{"type":"string"},"maxItems":40},"max_bytes":{"type":"number"},"thread_id":{"type":"string"},"after_sequence":{"type":"number"},"include_resolved":{"type":"boolean"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Inspect GDP Agora","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"inspect_agora","displayName":"Inspect GDP Agora"},{"name":"inspect_agora_commons","description":"Reads the selected repository’s isolated low-stakes Commons conversations, persistent AI actor profiles and deterministic response invitations. Commons is excluded from task evidence, claims, Chronicle and Newsroom. This read-only tool does not generate speech or mutate state.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","default":10,"maximum":20,"minimum":1},"repo_id":{"type":"string"},"actor_id":{"type":"string","maxLength":200},"max_bytes":{"type":"integer","default":16384,"maximum":32768,"minimum":1024},"thread_id":{"type":"string","maxLength":200},"after_sequence":{"type":"number","minimum":0},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Inspect Agora Commons","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"inspect_agora_commons","displayName":"Inspect Agora Commons"},{"name":"inspect_workspace_chronicle","description":"Reads a workspace-wide cursor-relative story over durable Agora threads, current task state, attention items and the short-lived GDP pulse. Chronicle is a read model over Agora, not a second source of truth.","inputSchema":{"type":"object","properties":{"max_bytes":{"type":"number"},"task_limit":{"type":"number"},"event_limit":{"type":"number"},"pulse_limit":{"type":"number"},"include_pulse":{"type":"boolean"},"after_sequence":{"type":"number"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"after_pulse_sequence":{"type":"number"},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Inspect Agora Chronicle","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"inspect_workspace_chronicle","displayName":"Inspect Agora Chronicle"},{"name":"await_workspace_chronicle","description":"Waits briefly for a fresh workspace Chronicle story delta. This is a bounded read-only wait and cannot mutate Agora, execute commands or modify repositories.","inputSchema":{"type":"object","properties":{"max_bytes":{"type":"number"},"task_limit":{"type":"number"},"event_limit":{"type":"number"},"pulse_limit":{"type":"number"},"include_pulse":{"type":"boolean"},"after_sequence":{"type":"number"},"timeout_seconds":{"type":"number"},"poll_interval_ms":{"type":"number"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"after_pulse_sequence":{"type":"number"},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Await Agora Chronicle","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"await_workspace_chronicle","displayName":"Await Agora Chronicle"},{"name":"inspect_newsroom","description":"Classifies evidence-linked product-news candidates from the durable Agora Chronicle. This deterministic read-only editorial projection reports public readiness, claim scope, warnings and recommended formats. It does not generate final marketing copy, save drafts, post to Agora or publish externally.","inputSchema":{"type":"object","properties":{"audience":{"enum":["all","internal","public"],"type":"string","default":"all"},"min_score":{"type":"integer","default":0,"maximum":100,"minimum":0},"after_sequence":{"type":"integer","minimum":0},"candidate_limit":{"type":"integer","default":20,"maximum":100,"minimum":1},"story_max_bytes":{"type":"integer","default":65536,"maximum":131072,"minimum":4096},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Inspect Agora Newsroom","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"inspect_newsroom","displayName":"Inspect Agora Newsroom"},{"name":"compose_newsroom_draft","description":"Composes one exact candidate returned by inspect_newsroom into a deterministic bounded draft for the internal wire, X, LinkedIn or release notes. Public channels fail closed unless the candidate is public-ready, and release-status wording stays tied to explicit evidence. The hosted gateway only forwards this read-only request to the connected GDP Desktop; it does not save drafts, mutate Agora, call a model or publish externally.","inputSchema":{"type":"object","required":["candidate_id","channel"],"properties":{"channel":{"enum":["internal_wire","x","linkedin","release_note"],"type":"string"},"language":{"enum":["en","tr"],"type":"string","default":"en"},"max_chars":{"type":"integer","maximum":4000,"minimum":120},"candidate_id":{"type":"string","maxLength":220,"minLength":1},"after_sequence":{"type":"integer","default":0,"minimum":0},"story_max_bytes":{"type":"integer","default":65536,"maximum":131072,"minimum":4096},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Compose Agora Newsroom Draft","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"compose_newsroom_draft","displayName":"Compose Agora Newsroom Draft"},{"name":"inspect_wire","description":"Read friendly evidence-linked product stories derived from Agora Newsroom. This is presentation-only and cannot create evidence or publish.","inputSchema":{"type":"object","properties":{"audience":{"enum":["all","internal","public"],"type":"string","default":"all"},"language":{"enum":["tr","en"],"type":"string","default":"tr"},"story_limit":{"type":"integer","default":20,"maximum":100,"minimum":1},"after_sequence":{"type":"integer","default":0,"minimum":0},"story_max_bytes":{"type":"integer","default":65536,"maximum":131072,"minimum":4096},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Inspect GDP Wire","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"inspect_wire","displayName":"Inspect GDP Wire"},{"name":"compose_wire_story","description":"Compose one exact Wire story into a bounded human-readable draft. Public formats fail closed without public-ready evidence and nothing is saved or published.","inputSchema":{"type":"object","required":["story_id","format_name"],"properties":{"language":{"enum":["tr","en"],"type":"string","default":"tr"},"story_id":{"type":"string","maxLength":260,"minLength":1},"max_chars":{"type":"integer","maximum":4000,"minimum":160},"format_name":{"enum":["feed_story","behind_the_scenes","social_caption","short_video_script"],"type":"string"},"after_sequence":{"type":"integer","default":0,"minimum":0},"story_max_bytes":{"type":"integer","default":65536,"maximum":131072,"minimum":4096},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Compose GDP Wire Story","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"compose_wire_story","displayName":"Compose GDP Wire Story"},{"name":"record_wire_story","description":"Persist original AI-written presentation copy for one exact current Newsroom candidate. GDP re-resolves the candidate and supplies certainty, claim scope, public readiness and evidence itself; caller prose cannot upgrade those facts. This writes only the private internal Wire presentation ledger and never posts to Agora, changes repository state, approves public copy, schedules content or publishes externally.","inputSchema":{"type":"object","required":["candidate_id","headline","plain_summary"],"properties":{"hook":{"type":"string","maxLength":240},"headline":{"type":"string","maxLength":300,"minLength":1},"language":{"enum":["tr","en"],"type":"string","default":"tr"},"next_action":{"type":"string","maxLength":700},"candidate_id":{"type":"string","maxLength":220,"minLength":1},"writer_label":{"type":"string","maxLength":80},"plain_summary":{"type":"string","maxLength":1200,"minLength":1},"why_it_matters":{"type":"string","maxLength":800},"idempotency_key":{"type":"string","maxLength":200},"story_max_bytes":{"type":"integer","default":65536,"maximum":131072,"minimum":4096},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Record GDP Wire Story","logicalName":"record_wire_story","displayName":"Record GDP Wire Story","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"repo_summary","description":"Returns a compact summary of the selected GDP repository when a local GDP session is connected.","inputSchema":{"type":"object","properties":{"repo_id":{"type":"string"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Repository summary","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"repo_summary","displayName":"Repository summary"},{"name":"list_repos","description":"Lists repositories currently open as GDP tabs. Use repo_id as the stable session target id; tab_index is only the current visual tab order.","inputSchema":{"type":"object","properties":{"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"List open repositories","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_repos","displayName":"List open repositories"},{"name":"open_repo_tab","description":"Asks the connected GDP Desktop to create or reuse one unselected blank repository tab through the native UI queue. It accepts no repository path or filesystem argument. The immediate result proves admission only; physical execution is separately observable through Desktop-owned durable repo-tab receipts.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"title":"Open blank repository tab","logicalName":"open_repo_tab","displayName":"Open blank repository tab","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"open_chatgpt_tab","description":"Create one background ChatGPT tab from an exact live GDP Browser source identity. No URL, Send, clipboard or arbitrary navigation authority is exposed.","inputSchema":{"type":"object","required":["target"],"properties":{"target":{"type":"object","required":["provider","browser_instance_id","host_tab_id","webcontents_generation","observation_sequence"],"properties":{"provider":{"enum":["chatgpt"],"type":"string"},"host_tab_id":{"type":"string","maxLength":200,"minLength":1},"browser_instance_id":{"type":"string","maxLength":200,"minLength":1},"observation_sequence":{"type":"integer","minimum":1},"webcontents_generation":{"type":"integer","minimum":1}},"additionalProperties":false}},"additionalProperties":false},"title":"Open ChatGPT Browser Tab","logicalName":"open_chatgpt_tab","displayName":"Open ChatGPT Browser Tab","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"git_status","description":"Returns branch and working tree status for the selected GDP repository.","inputSchema":{"type":"object","properties":{"repo_id":{"type":"string"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Git status","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"git_status","displayName":"Git status"},{"name":"git_diff","description":"Returns the current diff for the selected GDP repository or selected paths.","inputSchema":{"type":"object","properties":{"path":{"type":"string"},"repo_id":{"type":"string"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Git diff","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"git_diff","displayName":"Git diff"},{"name":"list_files","description":"Lists files inside the selected GDP repository with optional pattern filtering.","inputSchema":{"type":"object","properties":{"pattern":{"type":"string"},"repo_id":{"type":"string"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"List files","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_files","displayName":"List files"},{"name":"read_file","description":"Reads an allowed repository-relative file from the selected GDP repository.","inputSchema":{"type":"object","required":["path"],"properties":{"path":{"type":"string"},"repo_id":{"type":"string"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Read file","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"read_file","displayName":"Read file"},{"name":"read_image","description":"Reads one safe repository-relative PNG or JPEG from the selected GDP repository and returns native typed image content. The tool can read ignored or untracked workspace images, but rejects absolute paths, traversal, symlinks, GDP internal state and sensitive locations. It is available only when explicitly enabled by the connected GDP Desktop session.","inputSchema":{"type":"object","required":["path"],"properties":{"path":{"type":"string"},"repo_id":{"type":"string"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Read image","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"read_image","displayName":"Read image"},{"name":"inspect_image","description":"Validates one safe repository-relative PNG or JPEG and returns metadata only, without native image content or Base64. Ignored and untracked workspace images are allowed within the same safety limits as read_image. The tool is available only when explicitly enabled by the connected GDP Desktop session.","inputSchema":{"type":"object","required":["path"],"properties":{"path":{"type":"string"},"repo_id":{"type":"string"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Inspect image metadata","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"inspect_image","displayName":"Inspect image metadata"},{"name":"read_images","description":"Reads an explicitly enabled ordered batch of up to 10 safe repository-relative PNG or JPEG files as native typed image content. The batch is all-or-nothing, rejects duplicate normalized paths, preserves order and enforces aggregate byte, pixel and result-size limits.","inputSchema":{"type":"object","required":["paths"],"properties":{"paths":{"type":"array","items":{"type":"string"},"maxItems":10,"minItems":1},"repo_id":{"type":"string"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Read images","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"read_images","displayName":"Read images"},{"name":"read_files","description":"Reads multiple allowed repository-relative files from the selected GDP repository in one call, using GDP's configured per-file size limit.","inputSchema":{"type":"object","required":["paths"],"properties":{"paths":{"type":"array","items":{"type":"string"}},"repo_id":{"type":"string"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Read files","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"read_files","displayName":"Read files"},{"name":"read_folder","description":"Reads a repository-relative folder as a bounded context bundle, using GDP ignore settings and the configured per-file size limit.","inputSchema":{"type":"object","required":["path"],"properties":{"path":{"type":"string"},"repo_id":{"type":"string"},"max_depth":{"type":"number"},"recursive":{"type":"boolean"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Read folder","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"read_folder","displayName":"Read folder"},{"name":"read_context","description":"Returns a repository or feature-area context pack with a tree, readable files, skipped-file reasons, and suggested follow-up tools.","inputSchema":{"type":"object","properties":{"path":{"type":"string"},"repo_id":{"type":"string"},"max_depth":{"type":"number"},"tree_only":{"type":"boolean"},"include_files":{"type":"boolean"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Read context","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"read_context","displayName":"Read context"},{"name":"search_repo","description":"Fallback discovery after known-file bulk reads are insufficient. Runs one required query and up to four additional_queries in one bounded read-only gateway call.","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string"},"repo_id":{"type":"string"},"max_results":{"type":"number"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"additional_queries":{"type":"array","items":{"type":"string"},"maxItems":4},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Search repository","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"search_repo","displayName":"Search repository"},{"name":"doctor_patch","description":"Standalone non-queueing diagnosis only. submit_patch already runs Patch Doctor preflight internally, so do not call doctor_patch before a normal submit_patch. Use this tool when a patch needs diagnosis or repair without queueing, or after a patch preflight failure.","inputSchema":{"type":"object","required":["patch"],"properties":{"patch":{"type":"string"},"repo_id":{"type":"string"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Diagnose patch","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"doctor_patch","displayName":"Diagnose patch"},{"name":"list_incoming_patches","description":"One-shot detail view for exact queued patch items. list_check_runs already includes incoming queue counts; after submit_patch, use await_gdp_cycle instead of repeatedly calling this tool. It never returns raw patch text.","inputSchema":{"type":"object","properties":{"repo_id":{"type":"string"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"List incoming patches","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_incoming_patches","displayName":"List incoming patches"},{"name":"list_check_runs","description":"Lists Auto-Terminal runs with bounded privacy-masked latest-output and latest-failure previews plus compact content-free suggestion and incoming-review state. The same response includes branch, HEAD and working-tree status; do not call repo_summary or git_status unless diff statistics or an explicitly fresh status read is required. Prefer this before separate read_check_run_output, list_suggested_checks or list_incoming_patches calls. After queueing work, use await_gdp_cycle instead of repeatedl","inputSchema":{"type":"object","properties":{"repo_id":{"type":"string"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"List check runs","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_check_runs","displayName":"List check runs"},{"name":"list_suggested_checks","description":"One-shot detail view for exact Auto-Terminal suggestion items. list_check_runs already includes suggestion status and counts; after submit_patch or submit_suggested_checks, use await_gdp_cycle instead of repeatedly calling this tool. It is read-only.","inputSchema":{"type":"object","properties":{"repo_id":{"type":"string"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"List suggested checks","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_suggested_checks","displayName":"List suggested checks"},{"name":"read_check_run_output","description":"Reads stdout, stderr and metadata for one Auto-Terminal command the GDP user already ran locally. It never executes commands.","inputSchema":{"type":"object","required":["run_id"],"properties":{"run_id":{"type":"string"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Read check run output","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"read_check_run_output","displayName":"Read check run output"},{"name":"list_activity_feed","description":"Lists recent GDP bridge operational events. This is read-only activity metadata, not hidden model reasoning, and it cannot execute commands or modify files.","inputSchema":{"type":"object","properties":{"repo_id":{"type":"string"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"List activity feed","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_activity_feed","displayName":"List activity feed"},{"name":"await_gdp_cycle","description":"Waits briefly for fresh GDP Desktop automation evidence after a submitted patch or suggested check. This is read-only: it cannot apply patches, run commands, click browser Send or modify files.","inputSchema":{"type":"object","properties":{"repo_id":{"type":"string"},"after_run_id":{"type":"string"},"timeout_seconds":{"type":"number"},"poll_interval_ms":{"type":"number"},"after_incoming_id":{"type":"string"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"after_suggestion_id":{"type":"string"},"after_agora_sequence":{"type":"number"},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Await GDP cycle","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"await_gdp_cycle","displayName":"Await GDP cycle"},{"name":"submit_suggested_checks","description":"Queues one bundle of standalone checks or measurements not tied to a newly submitted patch. Put all related standalone commands in the same checks array and one gateway call; do not make one submit_suggested_checks call per command. Put patch-specific checks in submit_patch.verification_plan instead. The bridge stores suggestions only; GDP Desktop keeps terminal execution authority local.","inputSchema":{"type":"object","required":["checks"],"properties":{"checks":{"type":"array","items":{"type":"object","required":["title","command"],"properties":{"cwd":{"type":"string"},"risk":{"type":"string"},"command":{"type":"array","items":{"type":"string"}},"purpose":{"type":"string"},"run_after":{"type":"string"},"expected_result":{"type":"string"},"timeout_seconds":{"type":"number"},"network_required":{"type":"boolean"},"expected_to_modify_files":{"type":"boolean"}},"additionalProperties":false}},"source":{"type":"string"},"repo_id":{"type":"string"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"client_submission_id":{"type":"string"},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Submit suggested checks","logicalName":"submit_suggested_checks","displayName":"Submit suggested checks","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"submit_reviewer_reply","description":"Parses a reviewer reply against a Context Export packet and queues any detected unified diff through GDP Patch Intake for local review. This does not call external services, run commands or apply patches.","inputSchema":{"type":"object","required":["context_packet","reply_text"],"properties":{"goal":{"type":"string"},"state":{"type":"object"},"limits":{"type":"object"},"repo_id":{"type":"string"},"reply_text":{"type":"string"},"context_packet":{"type":"object"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"client_submission_id":{"type":"string"},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Submit reviewer reply","logicalName":"submit_reviewer_reply","displayName":"Submit reviewer reply","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"render_patch_intake","description":"Renders a ChatGPT Plugins UI widget for GDP patch diagnosis or queue status.","inputSchema":{"type":"object","properties":{"head":{"type":"string"},"paths":{"type":"array","items":{"type":"string"}},"branch":{"type":"string"},"queued":{"type":"boolean"},"report":{"type":"string"},"applied":{"type":"boolean"},"summary":{"type":"string"},"repo_path":{"type":"string"},"preflight_status":{"type":"string"},"preflight_actions":{"type":"array","items":{"type":"string"}},"authority_boundary":{"type":"string"}},"additionalProperties":false},"title":"Render patch intake","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"render_patch_intake","displayName":"Render patch intake"},{"name":"read_image_region","description":"Returns one bounded raw-pixel crop from a safe repository PNG/JPEG as native PNG content. The source is never modified and EXIF orientation is not applied implicitly.","inputSchema":{"type":"object","required":["path","x","y","width","height"],"properties":{"x":{"type":"integer","minimum":0},"y":{"type":"integer","minimum":0},"path":{"type":"string"},"width":{"type":"integer","minimum":1},"height":{"type":"integer","minimum":1},"repo_id":{"type":"string"},"output_width":{"type":"integer","minimum":1},"output_height":{"type":"integer","minimum":1},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Read image region","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"read_image_region","displayName":"Read image region"},{"name":"compare_images","description":"Compares two safe repository PNG/JPEG files without implicit resizing and returns deterministic hash, dimension, pixel, alpha, MAE/RMSE and perceptual metrics.","inputSchema":{"type":"object","required":["left_path","right_path"],"properties":{"repo_id":{"type":"string"},"left_path":{"type":"string"},"right_path":{"type":"string"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Compare images","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"compare_images","displayName":"Compare images"},{"name":"list_images","description":"Returns a bounded cursor-paginated content-free repository image inventory with Git state, validation, dimensions, hashes and duplicate groups.","inputSchema":{"type":"object","properties":{"cursor":{"type":"string"},"prefix":{"type":"string"},"repo_id":{"type":"string"},"max_items":{"type":"integer","maximum":200,"minimum":1},"max_width":{"type":"integer","minimum":1},"min_width":{"type":"integer","minimum":1},"extensions":{"type":"array","items":{"type":"string"},"maxItems":10},"max_height":{"type":"integer","minimum":1},"mime_types":{"type":"array","items":{"enum":["image/png","image/jpeg"],"type":"string"},"maxItems":2},"min_height":{"type":"integer","minimum":1},"aspect_ratio":{"type":"string"},"duplicate_only":{"type":"boolean"},"include_ignored":{"type":"boolean"},"include_tracked":{"type":"boolean"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"include_untracked":{"type":"boolean"},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"List images","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_images","displayName":"List images"},{"name":"capture_page_image","description":"Captures one GDP Desktop allowlisted loopback HTTP page through an isolated exact-origin browser boundary and returns native PNG content without repository writes.","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string"},"repo_id":{"type":"string"},"delay_ms":{"type":"integer","maximum":5000,"minimum":0},"color_scheme":{"enum":["light","dark"],"type":"string"},"viewport_width":{"type":"integer","maximum":3840,"minimum":320},"viewport_height":{"type":"integer","maximum":2160,"minimum":200},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"device_scale_factor":{"type":"integer","maximum":2,"minimum":1},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Capture local page image","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"capture_page_image","displayName":"Capture local page image"},{"name":"submit_image_asset","description":"Validates and stages one image in private GDP state, then creates a durable local review item. Repository files are not modified until explicit GDP Desktop apply.","inputSchema":{"type":"object","required":["target_path"],"properties":{"repo_id":{"type":"string"},"operation":{"enum":["create","replace"],"type":"string"},"overwrite":{"type":"boolean"},"data_base64":{"type":"string","maxLength":27962028},"source_path":{"type":"string"},"target_path":{"type":"string"},"source_repo_id":{"type":"string"},"idempotency_key":{"type":"string","maxLength":200},"source_metadata":{"type":"object"},"execution_context":{"type":"string","maxLength":2048,"minLength":100},"__gdp_shadow_conversation_handle":{"type":"string","pattern":"^gdpconv_[a-f0-9]{32}$"}},"additionalProperties":false},"title":"Submit image asset for review","logicalName":"submit_image_asset","displayName":"Submit image asset for review","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Git-Diff-Patcher-Bridge&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3AubWV0aGUudGVjaC9nZHAvbWNwIn0%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Git-Diff-Patcher-Bridge%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.methe.tech%2Fgdp%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Git-Diff-Patcher-Bridge%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.methe.tech%2Fgdp%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Git+Diff+Patcher+Bridge&connectorUrl=https%3A%2F%2Fmcp.methe.tech%2Fgdp%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Git-Diff-Patcher-Bridge\" --url \"https://mcp.methe.tech/gdp/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/methe-mcp-b346fe1a45","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/methe-mcp-b346fe1a45/tools/{tool}","mcpServerUrl":"https://mcp.methe.tech/gdp/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/methe-mcp-b346fe1a45?live=1"}