MCP profiles¶
Profiles select the tools available on one external MCP connection.
Choose a profile¶
- Start with a project file using workspace or observed_workspace, which can import,
edit and publish through one connection. Choose
workspacefor 5-tool exact text editing, orobserved_workspacefor 7-tool structural AST observation and atomic multi-edit bundling. - Work with a target ID using editor, unobserved or observed. These profiles combine editing with checkpointing and replay.
- Separate editing from lifecycle work using delegated editors and full. Choose how much context the delegate can read and which edit form it can submit.
- Use observed editor v2 for structural delegation with an explicit snapshot envelope and compact commit receipts.
- Consult the Profile Compatibility & Deployment Matrix for OS, Docker configurations, and runtime dependency support across all profiles.
The shared tool specification defines the underlying arguments, receipts and errors. Strict observation is a service setting. When it is enabled, unobserved writes are rejected even if the selected profile exposes a submission tool. The workspace profile also refuses startup with strict observation enabled.
Startup selection¶
Set PATCHDIFF_MCP_PROFILE before starting python -m app.mcp.external_adapter.
An unset variable selects observed_workspace. An unknown value prevents startup. Restart
the MCP session to change its profile. Trusted embeddings may construct
ExternalMCPAdapter(profile="observed"). Agents cannot override it in a request.
The same immutable profile controls both tools/list and tools/call.
Tool catalog¶
| Profile | Count | Advertised and callable tools |
|---|---|---|
editor |
7 | patchdiff_read_target, patchdiff_find_occurrences, patchdiff_observe_scope, patchdiff_submit_edits, patchdiff_submit_observed_operations, patchdiff_save, patchdiff_replay |
unobserved |
5 | patchdiff_read_target, patchdiff_find_occurrences, patchdiff_submit_edits, patchdiff_save, patchdiff_replay |
observed |
6 | patchdiff_read_target, patchdiff_find_occurrences, patchdiff_observe_scope, patchdiff_submit_observed_operations, patchdiff_save, patchdiff_replay |
observed_editor (delegated role) |
4 | patchdiff_read_target, patchdiff_find_occurrences, patchdiff_observe_scope, patchdiff_submit_observed_operations |
unobserved_editor |
3 | patchdiff_read_target, patchdiff_find_occurrences, patchdiff_submit_edits |
hybrid_editor |
1 | patchdiff_submit_edits |
observed_v2 |
5 | patchdiff_read_target, patchdiff_find_occurrences, patchdiff_list_scopes, patchdiff_observe_scopes, patchdiff_commit_bundle |
workspace |
5 | patchdiff_initialize_target, patchdiff_read_target, patchdiff_find_occurrences, patchdiff_submit_edits, patchdiff_save |
observed_workspace (default) |
7 | patchdiff_initialize_target, patchdiff_read_target, patchdiff_find_occurrences, patchdiff_list_scopes, patchdiff_observe_scopes, patchdiff_commit_bundle, patchdiff_save |
full (trusted lifecycle) |
18 | Complete registry, including initialization, SAVE, export, audit and replay |