workspace_push
Assemble every file staged in the workspace and write them to a branch via the GitHub Git Data API (blobs, tree, commit, ref). Any file size. Creates the branch off base_branch (or the default branch) when it does not exist. Staged rows are kept after the push (retention), never deleted.
This record as markdown: /tools/io-github-malamutemayhem-unclick-mcp-server/workspace-push.md
What workspace_push does on UnClick
AI agents use workspace_push to create or update resources in UnClick, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your UnClick environment.
| Parameter | Type | Required | Description |
|---|---|---|---|
repo | string | Yes | GitHub repo name. |
owner | string | Yes | GitHub repo owner. |
branch | string | Yes | Target branch to write the files to. |
message | string | — | Commit message. |
base_branch | string | — | Branch to create from when the target does not exist. |
workspace_id | string | Yes | The id returned by workspace_put. |
Parameters from the server's own tool schema.
Why workspace_push is rated Medium
This tool creates or modifies Git branches and commits staged files to a repository, which is a reversible write operation. While it doesn't delete data (staged rows are retained), it does materially change repository state by writing new commits and potentially creating new branches.
From the tool's definition 'write them to a branch via the GitHub Git Data API' and 'Creates the branch off base_branch'. The tool modifies repository state by creating/updating branches and committing files.
Risk signalsBulk/mass operation — affects multiple targets
Attacks that exploit this kind of access
The rule that runs workspace_push safely
PolicyLayer is an MCP gateway: it sits between your AI agents and UnClick, and checks every tool call against a rule you set before the call runs. Nothing changes on the server itself. For workspace_push, this is the rule to start with:
workspace_push stays usable, but capped: an agent stuck in a loop can't make hundreds of changes a minute. Everything else on the server is denied unless you say otherwise.
The button opens the PolicyLayer dashboard: create your workspace, connect UnClick, apply this rule, and every workspace_push call is checked against it from then on.
Questions about workspace_push
Assemble every file staged in the workspace and write them to a branch via the GitHub Git Data API (blobs, tree, commit, ref). Any file size. Creates the branch off base_branch (or the default branch) when it does not exist. Staged rows are kept after the push (retention), never deleted. It is categorised as a Write tool in the UnClick MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.
workspace_push accepts 6 parameters: repo, owner, branch, message, base_branch, workspace_id. Required: repo, owner, branch, workspace_id. The full parameter table on this page comes from the server's own tool schema.
Register the UnClick MCP server in PolicyLayer and add a rule for workspace_push: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches UnClick. Nothing to install.
workspace_push is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.
Yes. Add a rate_limit block to the workspace_push rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for workspace_push. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
workspace_push is provided by the UnClick MCP server (@unclick/mcp-server). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
More on UnClick, and thousands of servers like it.
This server
Across the catalogue