← WebMCP Directory

Tool tree

approval.hazelpipercreative.com

Productivity & BusinessTools verified
Website
Approval Desk
Explore capabilities
    list_pending_approvalsAnswer

    List every deliverable staged on the approval desk and waiting on a human, with who it is for, what kind of work it is, and what it is blocked on. Read only.

    View tool JSON
    {
      "name": "list_pending_approvals",
      "kind": "answer",
      "impl": "imperative",
      "description": "List every deliverable staged on the approval desk and waiting on a human, with who it is for, what kind of work it is, and what it is blocked on. Read only.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "staged",
              "changes_proposed",
              "approved",
              "declined",
              "all"
            ],
            "description": "Filter by status. Defaults to everything still waiting on a person."
          }
        }
      }
    }
    open_deliverableAction

    Open one staged deliverable on the page so the person at the desk and the agent are looking at the same thing. Returns its full text, proposed revisions and queued variants.

    View tool JSON
    {
      "name": "open_deliverable",
      "kind": "act",
      "impl": "imperative",
      "description": "Open one staged deliverable on the page so the person at the desk and the agent are looking at the same thing. Returns its full text, proposed revisions and queued variants.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "deliverableId": {
            "type": "string",
            "description": "For example HP-1041."
          }
        },
        "required": [
          "deliverableId"
        ]
      }
    }
    propose_revisionAction

    Propose a change to a staged deliverable. The change is written into the page as a visible suggestion next to the original. It never overwrites the draft and it never publishes anything.

    View tool JSON
    {
      "name": "propose_revision",
      "kind": "act",
      "impl": "imperative",
      "description": "Propose a change to a staged deliverable. The change is written into the page as a visible suggestion next to the original. It never overwrites the draft and it never publishes anything.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "deliverableId": {
            "type": "string"
          },
          "proposedText": {
            "type": "string",
            "description": "The full replacement text being proposed."
          },
          "rationale": {
            "type": "string",
            "description": "One line on why this is better. Shown to the human."
          }
        },
        "required": [
          "deliverableId",
          "proposedText"
        ]
      }
    }
    queue_variantAction

    Queue an alternate version of a deliverable so a human can compare options side by side. Stacking variants is free; choosing between them is a human act.

    View tool JSON
    {
      "name": "queue_variant",
      "kind": "act",
      "impl": "imperative",
      "description": "Queue an alternate version of a deliverable so a human can compare options side by side. Stacking variants is free; choosing between them is a human act.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "deliverableId": {
            "type": "string"
          },
          "label": {
            "type": "string",
            "description": "Short name for this option, for example \"warmer\" or \"shorter\"."
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "deliverableId",
          "label",
          "text"
        ]
      }
    }
    request_approvalSensitive Action

    Ask the person at the desk to approve or decline a staged deliverable. This renders a real decision on the page and resolves only when a human clicks it. The agent cannot satisfy this itself, and a script-generated click is refused.

    View tool JSON
    {
      "name": "request_approval",
      "kind": "transact",
      "impl": "imperative",
      "description": "Ask the person at the desk to approve or decline a staged deliverable. This renders a real decision on the page and resolves only when a human clicks it. The agent cannot satisfy this itself, and a script-generated click is refused.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "deliverableId": {
            "type": "string"
          },
          "note": {
            "type": "string",
            "description": "Optional context shown to the human above the decision."
          }
        },
        "required": [
          "deliverableId"
        ]
      }
    }
    check_approval_statusAnswer

    Report what has been approved, what was declined, and what is still sitting on the desk waiting on a person. Read only.

    View tool JSON
    {
      "name": "check_approval_status",
      "kind": "answer",
      "impl": "imperative",
      "description": "Report what has been approved, what was declined, and what is still sitting on the desk waiting on a person. Read only.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "deliverableId": {
            "type": "string",
            "description": "Omit to get the whole desk."
          }
        }
      }
    }
    list_servicesAnswer

    List what HazelPiper Creative actually sells: the recurring Marketing Partnership tiers, and project work across Brand Development, AI Systems and Operations, and Executive Experiences. Includes what is never in scope. Read only.

    View tool JSON
    {
      "name": "list_services",
      "kind": "answer",
      "impl": "imperative",
      "description": "List what HazelPiper Creative actually sells: the recurring Marketing Partnership tiers, and project work across Brand Development, AI Systems and Operations, and Executive Experiences. Includes what is never in scope. Read only.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "kind": {
            "type": "string",
            "enum": [
              "recurring",
              "project",
              "all"
            ],
            "description": "Defaults to all."
          }
        }
      }
    }
    scope_engagementAction

    Turn a described need into a real scope: which tier fits, what is included, what is deliberately excluded, and roughly when it could start. Does not commit to anything.

    View tool JSON
    {
      "name": "scope_engagement",
      "kind": "act",
      "impl": "imperative",
      "description": "Turn a described need into a real scope: which tier fits, what is included, what is deliberately excluded, and roughly when it could start. Does not commit to anything.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "need": {
            "type": "string",
            "description": "What the prospect says they need, in their own words."
          },
          "channels": {
            "type": "integer",
            "minimum": 1,
            "maximum": 4,
            "description": "How many channels they want run."
          },
          "wantsOutbound": {
            "type": "boolean",
            "description": "Whether they want managed outbound and CRM work."
          },
          "wantsBrandWork": {
            "type": "boolean",
            "description": "Whether identity or messaging work is part of it."
          }
        },
        "required": [
          "need"
        ]
      }
    }
    estimate_quoteAction

    Build a real number from the published rate card: a monthly figure and a one-time figure, itemised. Not a contact form and not a guess.

    View tool JSON
    {
      "name": "estimate_quote",
      "kind": "act",
      "impl": "imperative",
      "description": "Build a real number from the published rate card: a monthly figure and a one-time figure, itemised. Not a contact form and not a guess.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "tierId": {
            "type": "string",
            "enum": [
              "base",
              "foundation",
              "growth",
              "strategic"
            ]
          },
          "addOnIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Add-on ids from list_services."
          },
          "onboardingBandId": {
            "type": "string",
            "enum": [
              "documented",
              "completed",
              "built"
            ]
          },
          "projectIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Project tier ids from list_services."
          }
        },
        "required": [
          "tierId"
        ]
      }
    }
    check_availabilityAnswer

    Report actual open capacity: how many retainer slots are open, when project work could start, and which intro call slots are still free. Read only, so an agent cannot promise a slot that is already gone.

    View tool JSON
    {
      "name": "check_availability",
      "kind": "answer",
      "impl": "imperative",
      "description": "Report actual open capacity: how many retainer slots are open, when project work could start, and which intro call slots are still free. Read only, so an agent cannot promise a slot that is already gone.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
    draft_engagement_letterAction

    Write an engagement letter from a scope and put it on the approval desk as a staged deliverable. It is a draft in a queue. It is not sent, and it cannot be sent without a human approving it here.

    View tool JSON
    {
      "name": "draft_engagement_letter",
      "kind": "act",
      "impl": "imperative",
      "description": "Write an engagement letter from a scope and put it on the approval desk as a staged deliverable. It is a draft in a queue. It is not sent, and it cannot be sent without a human approving it here.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "organisation": {
            "type": "string",
            "description": "Prospect organisation name."
          },
          "tierId": {
            "type": "string",
            "enum": [
              "base",
              "foundation",
              "growth",
              "strategic"
            ]
          },
          "addOnIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "startMonth": {
            "type": "string",
            "description": "For example \"October 2026\"."
          }
        },
        "required": [
          "organisation",
          "tierId"
        ]
      }
    }
    book_intro_callSensitive Action

    Hold an intro call slot. The slot is only taken once a human confirms it on the page, so an agent can propose a time but cannot put anything on the calendar by itself.

    View tool JSON
    {
      "name": "book_intro_call",
      "kind": "transact",
      "impl": "imperative",
      "description": "Hold an intro call slot. The slot is only taken once a human confirms it on the page, so an agent can propose a time but cannot put anything on the calendar by itself.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "slotId": {
            "type": "string",
            "description": "Slot id from check_availability."
          },
          "name": {
            "type": "string"
          },
          "organisation": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "context": {
            "type": "string",
            "description": "One line on what they want to talk about."
          }
        },
        "required": [
          "slotId",
          "name",
          "organisation"
        ]
      }
    }
    withdraw_approval_requestAction

    Withdraw the approval request that is currently waiting on a person, before they decide. Exists only while a decision is pending. This closes the request without approving it. Nothing can approve on a person's behalf.

    View tool JSON
    {
      "name": "withdraw_approval_request",
      "kind": "act",
      "impl": "imperative",
      "description": "Withdraw the approval request that is currently waiting on a person, before they decide. Exists only while a decision is pending. This closes the request without approving it. Nothing can approve on a person's behalf.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string",
            "description": "One line on why the request is being taken back. Shown to the human."
          }
        }
      }
    }