← WebMCP Directory

Tool tree

cherry-wine.vercel.app

AI & AgentsTools verified
Website
Cherry hands one goal to several agents at once, each in its own workspace on your computer, and checks what comes back. Codex execution is captured. Claude Code and local models are labelled…
Explore capabilities

    page: Every page

    read_cherry_contextAnswer

    Read the current Cherry state: active workspace, missions with states, pending approvals, latest verification, and what action is valid next.

    View tool JSON
    {
      "name": "read_cherry_context",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read the current Cherry state: active workspace, missions with states, pending approvals, latest verification, and what action is valid next.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      },
      "page": "/"
    }
    list_cherry_capabilitiesAnswer

    List which WebMCP tools are active now, and which surface and state each other tool needs.

    View tool JSON
    {
      "name": "list_cherry_capabilities",
      "kind": "answer",
      "impl": "imperative",
      "description": "List which WebMCP tools are active now, and which surface and state each other tool needs.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      },
      "page": "/"
    }
    get_cherry_statusAnswer

    Lightweight status probe: current product state, active workspace/mission ids, counts, and which tools are callable right now. Read-only and always available.

    View tool JSON
    {
      "name": "get_cherry_status",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lightweight status probe: current product state, active workspace/mission ids, counts, and which tools are callable right now. Read-only and always available.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      },
      "page": "/"
    }
    introduce_agentAction

    Introduce yourself by name. The attached agent is auto-assigned to the active workspace and mission — there is nothing to create or configure. The name only labels the session for the human; it grants no authority: approvals, trust, and memory stay human-only.

    View tool JSON
    {
      "name": "introduce_agent",
      "kind": "act",
      "impl": "imperative",
      "description": "Introduce yourself by name. The attached agent is auto-assigned to the active workspace and mission — there is nothing to create or configure. The name only labels the session for the human; it grants no authority: approvals, trust, and memory stay human-only.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "How the human should see you, e.g. \"ChatGPT\" or \"Claude — research\"."
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    list_skillsAnswer

    Read the cross-workspace skill library with status, exact revision, approval hash, sample label, and install readiness. Pages with offset and nextOffset. For sample=false, installReady records a live human decision. sample=true is a labelled synthetic reference state and never proof of a user decision.

    View tool JSON
    {
      "name": "list_skills",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read the cross-workspace skill library with status, exact revision, approval hash, sample label, and install readiness. Pages with offset and nextOffset. For sample=false, installReady records a live human decision. sample=true is a labelled synthetic reference state and never proof of a user decision.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "all",
              "approved"
            ],
            "description": "Optional filter: 'approved' returns only install-ready skills (default 'all')"
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "Skip this many skills; pass the previous nextOffset to read the next page (default 0)"
          }
        },
        "required": [],
        "additionalProperties": false
      },
      "page": "/"
    }
    recommend_skillsAction

    Rank helpful skills with explainable lexical matching and no hidden model call. Results include exact revision, approval hash, and sample label. sample=true is a synthetic reference state, not proof of a live human approval.

    View tool JSON
    {
      "name": "recommend_skills",
      "kind": "act",
      "impl": "imperative",
      "description": "Rank helpful skills with explainable lexical matching and no hidden model call. Results include exact revision, approval hash, and sample label. sample=true is a synthetic reference state, not proof of a live human approval.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "task": {
            "type": "string",
            "description": "What the agent is trying to do right now"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5,
            "description": "Max results (default 3, max 5)"
          }
        },
        "required": [
          "task"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    get_skillAnswer

    Read one skill with bounded source citations. format 'summary' (default) returns its contract. Live files require a human approval at the exact current revision. Labelled samples report sample=true and approvalKind='synthetic-sample-state'; that state is not proof of a live decision.

    View tool JSON
    {
      "name": "get_skill",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read one skill with bounded source citations. format 'summary' (default) returns its contract. Live files require a human approval at the exact current revision. Labelled samples report sample=true and approvalKind='synthetic-sample-state'; that state is not proof of a live decision.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "skillId": {
            "type": "string",
            "description": "Skill id from list_skills or recommend_skills"
          },
          "format": {
            "type": "string",
            "enum": [
              "summary",
              "skill-md",
              "agents-md",
              "claude-md"
            ],
            "description": "'summary' | 'skill-md' | 'agents-md' | 'claude-md' (default 'summary')"
          },
          "part": {
            "type": "integer",
            "minimum": 1,
            "description": "File formats are delivered in bounded parts; request part 1..totalParts (default 1)"
          }
        },
        "required": [
          "skillId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    start_apprenticeshipAction

    Start a fresh apprenticeship in one call: a DRAFT mission, plus a local workspace when there is none active or when newWorkspace is true. workspaceName names a workspace this call creates; it never switches to an existing one, so pass newWorkspace:true to get a separate space. The result always reports workspaceCreated and the workspace actually in use. Never loads a source — lesson loading stays behind the explicit rights check in load_lesson.

    View tool JSON
    {
      "name": "start_apprenticeship",
      "kind": "act",
      "impl": "imperative",
      "description": "Start a fresh apprenticeship in one call: a DRAFT mission, plus a local workspace when there is none active or when newWorkspace is true. workspaceName names a workspace this call creates; it never switches to an existing one, so pass newWorkspace:true to get a separate space. The result always reports workspaceCreated and the workspace actually in use. Never loads a source — lesson loading stays behind the explicit rights check in load_lesson.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspaceName": {
            "type": "string",
            "description": "Names a workspace this call creates. Applies only to a newly created workspace; it never renames or selects an existing one. Default \"My apprenticeship\"."
          },
          "newWorkspace": {
            "type": "boolean",
            "description": "Create and activate a separate workspace even though one is already active. Existing spaces and their data are left untouched."
          },
          "title": {
            "type": "string",
            "description": "Mission title (default \"Learn a lesson and prove it\")"
          },
          "objective": {
            "type": "string",
            "description": "What the finished skill should achieve"
          },
          "definitionOfDone": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Acceptance checklist"
          }
        },
        "required": [],
        "additionalProperties": false
      },
      "page": "/"
    }
    create_workspaceAction

    Create a new local Cherry workspace. All data stays in this browser unless the user exports it.

    View tool JSON
    {
      "name": "create_workspace",
      "kind": "act",
      "impl": "imperative",
      "description": "Create a new local Cherry workspace. All data stays in this browser unless the user exports it.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Workspace name, 1-120 chars"
          },
          "description": {
            "type": "string",
            "description": "Optional description"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    create_missionAction

    Create a mission in the active workspace with an objective and a definition of done. The mission starts in DRAFT.

    View tool JSON
    {
      "name": "create_mission",
      "kind": "act",
      "impl": "imperative",
      "description": "Create a mission in the active workspace with an objective and a definition of done. The mission starts in DRAFT.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "objective": {
            "type": "string"
          },
          "definitionOfDone": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Checklist of acceptance statements"
          },
          "riskLevel": {
            "type": "string",
            "enum": [
              "low",
              "medium",
              "high"
            ]
          }
        },
        "required": [
          "title",
          "objective",
          "definitionOfDone"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    load_starter_libraryAction

    Install the labelled starter library into this browser so recommend_skills and get_skill have something real to return. These are shipped reference methods, not skills this person approved: every entry reports sample=true and approvalKind synthetic-sample-state. Use it when list_skills or recommend_skills come back empty.

    View tool JSON
    {
      "name": "load_starter_library",
      "kind": "act",
      "impl": "imperative",
      "description": "Install the labelled starter library into this browser so recommend_skills and get_skill have something real to return. These are shipped reference methods, not skills this person approved: every entry reports sample=true and approvalKind synthetic-sample-state. Use it when list_skills or recommend_skills come back empty.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      },
      "page": "/"
    }
    install_catalog_skillAction

    Install one skill from the preloaded catalog of third-party Agent Skills into this browser. The upstream SKILL.md is imported as a lesson and run through the ordinary derivation, so the result is a DRAFT with citations back to the source repo — not an approved method. Attribution and license travel with the text. Creates a workspace first if this browser has none. Find ids with recommend_skills.

    View tool JSON
    {
      "name": "install_catalog_skill",
      "kind": "act",
      "impl": "imperative",
      "description": "Install one skill from the preloaded catalog of third-party Agent Skills into this browser. The upstream SKILL.md is imported as a lesson and run through the ordinary derivation, so the result is a DRAFT with citations back to the source repo — not an approved method. Attribution and license travel with the text. Creates a workspace first if this browser has none. Find ids with recommend_skills.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "catalogId": {
            "type": "string",
            "description": "Catalog id from recommend_skills, e.g. \"workflows/screen-reader-testing\""
          },
          "workspaceName": {
            "type": "string",
            "description": "Name for the workspace, only used if one has to be created"
          }
        },
        "required": [
          "catalogId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }