Control Server files, Git and jobs from Claude or ChatGPT
Outcome: create/read/delete a file, commit locally, exchange stdin/EOF, read output and stop a disposable job. First complete MCP setup. This uses server:self Server management permission, separately from Agent operations.
Step 1 — verify the product and MCP connection
Start after Server installation and Claude/ChatGPT connection. On the Server shell:
Select DataRelay Link in Claude or ChatGPT and ask:
File, Git and process operations use the OS account configured for the product. This tutorial uses /tmp/drlink-mcp-tutorial; substitute your approved workspace if different. command-exec grants that account’s command authority; an initial working directory is not a filesystem sandbox.
Step 2 — verify the dedicated identity and rule
Assume mcp-lab is already OAuth-connected; substitute your actual dedicated identity. Server REPL:
Expect first two policy tests ALLOW, final DENY unless another Rule broadens access. File existence is separate. Upload/download need separately reviewed file-upload/file-download grants.
Step 3 — file round trip
First confirm the tutorial directory is not used by another task. Create it with the normal product MCP tool. If it already belongs to another workflow, choose a unique name and update the Rule’s path as well.
JSON below describes MCP tool calls, not shell commands. Ask either client to use these tools. Pick a unique file if note.txt already exists.
Decode base64 where indicated by the response schema and compare the original content. Do not report a failed call as a successful file operation.
Step 4 — disposable local Git
Use the dedicated directory from Step 3, containing only the tutorial note and not an existing repository. Initialize only there; add only that note. Do not edit global Git configuration.
Require completed state, exit_status=0 and the resulting commit. Remote push additionally needs an approved remote, network access, that OS account’s Git credentials and user authorization. MCP OAuth is not GitHub authentication. Choose the intended remote and verify its permissions before pushing.
Step 5 — asynchronous stdin, EOF and output cursors
Inspect running, READY and the job_id; send input within 60 seconds. Substitute the actual job ID and stdout.next_cursor (6 after READY in this example). Use the actual Python path if needed.
Expect accepted_bytes=28, input_closed=true, ECHO:DRLink documentation sample and final exit_status=0. If still running, continue with new cursors. If timed out, preserve the failure and create a fresh disposable job before retrying.
Step 6 — stop only your own job and clean up
A stopped job can report completed with a negative signal exit status, distinct from normal exit 0. Stop only the returned tutorial job. Let the owning operator review/remove the disposable .git directory; never remove an unrelated repository.
Review show ai-access-log identity mcp-lab in Server REPL. Retire the Rule with reviewed unset ai-access mcp-lab-server when no longer needed. Do not reset shared AI Access or certificates.
This tutorial targets the Server itself; no Agent enrollment or SSH/RDP Remote Service is required.Last modified on October 29, 2026