merjax_create_deploy_token
Mint a short-lived, repository-scoped HTTPS clone credential (a deploy token) for a sandbox or CI box that has no PAT. By default it returns NO token: {id, exchangeUrl, exchangeExpiresAt, gitConfig, url}. Run the gitConfig lines right before the first clone/fetch (the URL is single-use and dies in 60 s) and git fetches the token itself, so it never enters your transcript. Read-only by default; read_only: false asks for push access and is granted only if you have write access. Expires in 2 h by default (expires_in_hours, max 24). Needs owner / collaborator / team / org access to the repo (public read is not enough) and 'repo' scope. Audit-logged. Pass token_id (an id this tool returned) for a fresh exchange URL for the same grant; each exchange rotates the secret. deliver: "token" returns a read-only secret in the result instead (refused for push access: a push-capable secret in an agent's transcript outlives the run). Revoke the grant with merjax_revoke_token {type: "deploy", id}.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| title | No | Where the token will be used (default 'agent clone (MCP)') | |
| deliver | No | "exchange" (default): a single-use 60 s URL git's credential helper spends — the secret never appears here. "token": a read-only secret in this result (refused with read_only: false). | |
| token_id | No | A fresh exchange URL for this existing grant (one you created) instead of a new grant. | |
| read_only | No | Default true. false = clone AND push (requires write access). | |
| expires_in_hours | No | Lifetime in hours (default 2, max 24, min 5 minutes) |