approve_postApprove post
Approve the current content revision for its selected profile.
Authorization and permissions
Requires a valid delegated OAuth token and access to the selected workspace.
- OAuth scope
mcp:approve- Workspace requirement
- Authorized workspace and current membership required
Profile owner or workspace approver permission.
Input schema
{
"additionalProperties": false,
"properties": {
"expected_revision": {
"description": "Expected revision.",
"minimum": 1,
"type": "integer"
},
"post_id": {
"description": "Public post sqid.",
"maxLength": 32,
"minLength": 1,
"type": "string"
},
"team_id": {
"description": "Consented workspace ID.",
"minimum": 1,
"type": "integer"
}
},
"required": [
"team_id",
"post_id",
"expected_revision"
],
"type": "object"
}Result schema
{
"additionalProperties": false,
"properties": {
"approval_id": {
"description": "Approval id.",
"minimum": 1,
"type": "integer"
},
"content_revision": {
"description": "Content revision.",
"type": "integer"
},
"post_id": {
"description": "Post id.",
"type": "string"
}
},
"required": [
"post_id",
"approval_id",
"content_revision"
],
"type": "object"
}Example arguments
{
"expected_revision": 3,
"post_id": "P7k2Lm9Q",
"team_id": 42
}Example result
{
"approval_id": 884,
"content_revision": 3,
"post_id": "P7k2Lm9Q"
}Errors and retry
The connection is limited to 120 tool calls per user per minute and AI tools to 30 calls per user per hour. Invalid or cross-workspace identifiers return not found; revoked membership/scope returns permission denied; invalid input and stale versions return validation errors. Existing product limits still apply; there is no separate MCP subscription quota.
Request metadata (actor, connection, workspace, tool, outcome, duration, and correlation ID) is logged; arguments and results are not. Retry reads freely. Retry a mutation only when marked idempotent; otherwise read current state before deciding whether to repeat it.
Effects, limits, and source
Workspace roles, subscription and AI usage limits, approval rules, and server rate limits are enforced at call time. Rate-limit responses identify when to retry; scheduled work returns state rather than holding the request open.
services.approvals.approve_target