Propose or save the Rules

Change the Rules. Only the fields you send change; lists replace the stored list. From an agent this becomes a proposal a person accepts.

rules_upsertOtherRead and write

Behavior

Read-only hint
Not declared
Destructive hint
Not declared
Idempotent hint
Not declared
Open-world hint
Not declared

Parameters

NameTypeRequirementDescription
workspaceIdstringRequiredThe workspace id or slug (from workspace_list).
neverSayarrayOptionalTopics and claims never to make.
claimsNeedProofarrayOptionalClaims that need proof first.
compliancearrayOptionalLegal and platform constraints.
confidentialarrayOptionalNever share these.
requiresApprovalarrayOptionalActions that wait for a person.
notesstringOptionalNuance no list holds (Markdown). Replaces the stored notes.
reasonstringRequiredWhy this change helps, in one or two sentences. Shown to the person who accepts it.

Input JSON Schema

Generated from the registered input schema
{
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "minLength": 1,
      "description": "The workspace id or slug (from workspace_list)."
    },
    "neverSay": {
      "description": "Topics and claims never to make.",
      "maxItems": 60,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 400
      }
    },
    "claimsNeedProof": {
      "description": "Claims that need proof first.",
      "maxItems": 24,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 400
      }
    },
    "compliance": {
      "description": "Legal and platform constraints.",
      "maxItems": 24,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 400
      }
    },
    "confidential": {
      "description": "Never share these.",
      "maxItems": 24,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 400
      }
    },
    "requiresApproval": {
      "description": "Actions that wait for a person.",
      "maxItems": 24,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 400
      }
    },
    "notes": {
      "description": "Nuance no list holds (Markdown). Replaces the stored notes.",
      "type": "string",
      "maxLength": 60000
    },
    "reason": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1000,
      "description": "Why this change helps, in one or two sentences. Shown to the person who accepts it."
    }
  },
  "required": [
    "workspaceId",
    "reason"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Call shape

Use an MCP client rather than sending this JSON directly. The client handles protocol negotiation, sessions, and authentication.

Protocol request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "rules_upsert",
    "arguments": {}
  }
}