Connect a coding agent (MCP)
Connect Claude Code or another MCP client to a Getman workspace, set the secrets, approve production requests and use the read and write tools.
Watch this in the tutorial: Connect a coding agent (MCP) (6:25)Getman includes a local MCP server. It lets a coding agent read the team’s requests and contracts, run them, and work with change packages. The server runs on your machine and talks to the agent over standard input and output. It needs no account and no AI API key.
Connect Claude Code
-
Install the command-line tool, as described in the CLI reference.
-
Commit a
.mcp.jsonfile at the root of the repository. It has no absolute paths, so it works in every clone:{ "mcpServers": { "getman": { "command": "getman", "args": ["mcp", "--workspace", "getman"] } } } -
Export the secrets that the requests need, in the shell that starts the agent. Secret values are never written to a file:
export GETMAN_VAR_password=… -
Start
claudeat the repository root. Approve the project server once, then run/mcp. It should listgetmanas connected.
To run it headless, without changing your global Claude configuration:
claude -p "What can you do with the getman MCP tools?" \
--mcp-config .mcp.json --strict-mcp-config \
--allowedTools "mcp__getman__list_projects,mcp__getman__list_environments"
Options
| Option | Meaning |
|---|---|
--workspace DIR |
A sync folder, such as getman. Repeatable. This is the recommended mode. |
--project P |
An app-database project, by ID or name. Repeatable. |
--env NAME |
The default environment for tools that run requests. |
--read-only |
Removes the four write tools. |
--allow-mutations |
Skips the per-request approval for production. Use it only in CI. |
--no-secrets |
Does not read secret values. |
--max-body-bytes N |
Cuts response bodies in run output at N bytes. The default is 8192. |
With --workspace and no --project, the server sees only that folder. Without either option, it sees every project in the app database. Tool inputs never take file paths. A workspace is named by its folder, such as workspace:getman.
Secrets
- In workspace mode, the server reads each secret from an environment variable named
GETMAN_VAR_<KEY>. - In app-database mode, it reads secrets from the system keychain.
- No tool output contains a secret value.
list_environmentsshows only key names, whether a variable is secret, and whether it has a value. - Credential-like headers and auth fields appear as
(hidden).
Production approval
A POST, PUT, PATCH or DELETE request to a production environment is not sent on the agent’s word. For each request, the server asks the MCP client to show a confirmation form. The form names the method, the URL, the request and the environment. Only an accepted form sends that one request. A declined or cancelled form is refused. The agent cannot answer the form itself.
A client that does not support the confirmation form gets a refusal. In CI, --allow-mutations skips the question for the whole session.
Read tools
| Tool | What it returns |
|---|---|
list_projects |
The project references, names, folders, change keys and environments. Call it first. |
list_requests |
The tree of collections, folders and requests, with their IDs. |
get_request |
The method, URL, parameters, headers, effective auth, body shape, scripts and examples of one request. |
list_environments |
Environment names and kinds, variable keys, and whether each secret has a value. No values. |
get_contract |
The OpenAPI document, or one operation, such as GET /orders/{id}. |
diff_contract |
Structured changes between two contracts, with severities. |
list_changes |
Change summaries. With consumer, it returns that consumer’s inbox. |
get_change |
The full change package, with its diff, examples, migration notes, evidence and integrations. |
get_evidence |
The evidence entries for one change. |
validate_workspace |
Conflict markers, invalid files and duplicate IDs, each with a fix hint. |
run_requests |
Runs a request, folder or collection. It returns each step’s status, tests and truncated bodies. |
Write tools
These tools work only on workspace folders, and they are removed with --read-only.
| Tool | What it does |
|---|---|
create_change |
Writes a new change file and the contract. It refuses when nothing changed. |
update_change |
Edits a change’s title, summary, migration, state or related IDs. It never edits evidence or integrations. |
verify_change |
Runs the requests of the change and records the run as evidence. Failing runs are recorded too. |
report_integration |
Records a consumer’s status. For verified, it runs the affected requests first. |
Handoff example
- The backend agent, in its own clone, calls
create_change, thenverify_changeinlocal, and returns the reference, such asGT-SHOP-001. - The backend commits and pushes the
changes/andcontracts/files with Git. - The web agent, in its clone, pulls. It calls
list_changeswithconsumer: web, thenget_change, thenrun_requests, thenreport_integrationwithstatus: verified. - After the web team pushes, the backend agent calls
get_changeand sees Integration verified.
The full human version of this is in the team workflow.
Security
- The server reaches only the folders and projects it was given. Unknown references are rejected.
- No tool reads or writes an arbitrary file. There is no shell tool.
run_requestssends only GET, HEAD and OPTIONS requests when the server is read-only.- Runtime variables passed to
run_requestscannot override a variable that forms a request URL, so stored credentials cannot be sent to another host. - API responses, migration notes and examples come from other people and systems. Agents should treat them as data, not as instructions.
- Author names are informational. Nothing verifies who wrote a change or who reported an integration.
Limits
- Each tool call opens its own session, so calls are slower than a long-lived client.
- Change IDs are per clone. Two clones can produce the same number, and
validate_workspacereports it. - The server exposes no MCP resources. Use the tools instead.
- The confirmation form was tested with the MCP SDK client. Claude Code’s display of the form in an interactive session has not been tested.