> ## Documentation Index
> Fetch the complete documentation index at: https://docs.melso.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Melso product MCP: https://melso.ai/api/mcp (OAuth; one company per grant). REST: https://melso.ai. Documentation-search MCP: https://docs.melso.ai/mcp. The docs search server does not act on customer accounts.
>
> Use the live tool schema and respect company membership. Ask the person to authorize the exact fiscal document version in the signed-in app. A professional prepares and files included returns after authorization; AI does not file alone. A prepared file or approval receipt is not evidence of filing. Never claim completion from an accepted Task or Run. Keep credentials out of chat and logs. Agents features are internal or by private invitation.

# skills

> Input, output and examples for the skills MCP tool.

<Info>Melso Agents is available only internally or by private invitation. Agents-specific features require existing access. For the autónomo fiscal service, see [Get started](/essentials/quickstart).</Info>

Read and manage the company's skills, which Runs install next to Melso's built-in skills: scope company means every Run gets one, scope areas only Runs of Tasks in its area\_ids. search and install reach skills.sh, GitHub and ClawHub; install follows the source until someone edits the skill here. delete removes a skill from every Run. To save a skill from its SKILL.md text, find skills\_save with tools\_search. Each action accepts only its own fields (\* required): list; get(id\*); search(query\*); install(source\*, area\_ids, on\_conflict); update(id\*, area\_ids, auto\_update, from\_source, scope); delete(id\*).

**Availability:** Autónomo / Empresa / Agents invitation.

**Catalog:** Core (`tools/list`).

The live catalog is authoritative: company type, membership, plan, connected apps and execution context can narrow this contract. [Understand access](/mcp/permissions).

## Input

### Agents / Autónomo / Company schema

```json theme={null}
{
  "additionalProperties": false,
  "properties": {
    "action": {
      "enum": [
        "list",
        "get",
        "search",
        "install",
        "update",
        "delete"
      ],
      "type": "string"
    },
    "area_ids": {
      "description": "Area UUIDs. Only Runs of Tasks in these Areas get the skill.",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "auto_update": {
      "description": "Follow the skill's source: install its updates daily.",
      "type": "boolean"
    },
    "from_source": {
      "description": "Install the latest version from the skill's source now.",
      "type": "boolean"
    },
    "id": {
      "description": "Skill UUID or name.",
      "type": "string"
    },
    "on_conflict": {
      "description": "When a skill with that name exists. Defaults to fail.",
      "enum": [
        "fail",
        "overwrite",
        "rename",
        "skip"
      ],
      "type": "string"
    },
    "query": {
      "description": "What the skill should do, at least 2 characters.",
      "type": "string"
    },
    "scope": {
      "description": "company: every Run gets it. areas: only Runs of Tasks in area_ids.",
      "enum": [
        "company",
        "areas"
      ],
      "type": "string"
    },
    "source": {
      "description": "The skill's URL, owner/repo@skill, or an `npx skills add` command naming one skill.",
      "type": "string"
    }
  },
  "required": [
    "action"
  ],
  "type": "object"
}
```

## Actions

The family schema combines fields for discovery. Each action accepts only its own fields below; add `action` when calling the family.

<AccordionGroup>
  <Accordion title="delete">
    Delete a skill. Runs stop receiving it.

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "id": {
          "description": "Skill UUID or name.",
          "type": "string"
        }
      },
      "required": [
        "id"
      ],
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="get">
    Read one skill: its SKILL.md, its text files, and the path and size of each binary file.

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "id": {
          "description": "Skill UUID or name.",
          "type": "string"
        }
      },
      "required": [
        "id"
      ],
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="install">
    Install a published skill, binary files included, from a skills.sh, GitHub or ClawHub URL, owner/repo\@skill, or a pasted `npx skills add` command (read, never run). It follows its source: updates install automatically until someone edits it here. The whole company gets it unless area\_ids is set.

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "area_ids": {
          "description": "Area ids (from areas list). Only Runs of Tasks in these Areas get the skill.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "on_conflict": {
          "description": "When a skill with that name exists. Defaults to fail.",
          "enum": [
            "fail",
            "overwrite",
            "rename",
            "skip"
          ],
          "type": "string"
        },
        "source": {
          "description": "The skill's URL, owner/repo@skill, or an `npx skills add` command naming one skill.",
          "type": "string"
        }
      },
      "required": [
        "source"
      ],
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list">
    List the company's skills. scope company means every Run gets one; scope areas means only Runs of Tasks in its area\_ids do. config.origin shows where one came from and whether it follows that source.

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="search">
    Search skills.sh for published skills. Each result has its install URL, install count and security audit verdict.

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "query": {
          "description": "What the skill should do, at least 2 characters.",
          "type": "string"
        }
      },
      "required": [
        "query"
      ],
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="update">
    Install the latest version of a skill from its source (from\_source; this also discards edits made here and resumes updates), turn following its source on or off (auto\_update), or change who gets it (scope).

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "area_ids": {
          "description": "Area ids (from areas list). Only Runs of Tasks in these Areas get the skill.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "auto_update": {
          "description": "Follow the skill's source: install its updates daily.",
          "type": "boolean"
        },
        "from_source": {
          "description": "Install the latest version from the skill's source now.",
          "type": "boolean"
        },
        "id": {
          "description": "Skill UUID or name.",
          "type": "string"
        },
        "scope": {
          "description": "company: every Run gets it. areas: only Runs of Tasks in area_ids.",
          "enum": [
            "company",
            "areas"
          ],
          "type": "string"
        }
      },
      "required": [
        "id"
      ],
      "type": "object"
    }
    ```
  </Accordion>
</AccordionGroup>

## Output

Skill search results, a Skill’s metadata/content, or the installed/updated/deleted result for the selected action.

The result uses MCP `content` blocks; JSON payloads are encoded in text and may also appear in `structuredContent`. Check `isError` before reading a success payload. The server does not currently declare an `outputSchema`, so treat additional fields as extensible. [Result handling](/mcp/results).

## Example

Use an OAuth access token issued for this MCP resource (a Run token for Run-only tools). Replace example identifiers with values from your own account. Write actions change data.

```bash theme={null}
curl --fail-with-body https://melso.ai/api/mcp \
  -H "Authorization: Bearer $MELSO_MCP_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  --data-binary @- <<'JSON'
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "skills",
    "arguments": {
      "action": "list"
    }
  }
}
JSON
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.