> ## 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_save

> Input, output and examples for the skills_save 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>

Create a skill from its SKILL.md and text files, or replace the same-named skill when replace is true. For a folder with scripts or binary files, zip it and multipart POST it as field `file` to this MCP endpoint URL plus `/upload-skill` instead.

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

**Catalog:** Advanced (`tools_search`, then `tools_call`).

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": {
    "content": {
      "description": "The SKILL.md text, frontmatter included.",
      "type": "string"
    },
    "description": {
      "description": "Optional. Defaults to the description in the SKILL.md frontmatter.",
      "type": "string"
    },
    "files": {
      "description": "Other files of the skill folder, by path relative to it. Replacing a skill replaces all of its files.",
      "items": {
        "additionalProperties": false,
        "properties": {
          "content": {
            "description": "File text, or base64 when encoding is base64.",
            "type": "string"
          },
          "encoding": {
            "description": "Defaults to utf8.",
            "enum": [
              "utf8",
              "base64"
            ],
            "type": "string"
          },
          "path": {
            "description": "Relative path, such as scripts/run.py.",
            "type": "string"
          }
        },
        "required": [
          "path",
          "content"
        ],
        "type": "object"
      },
      "type": "array"
    },
    "name": {
      "description": "Skill name, usually the name in its SKILL.md frontmatter.",
      "type": "string"
    },
    "replace": {
      "description": "Replace the existing skill with this name. Required to overwrite one.",
      "type": "boolean"
    }
  },
  "required": [
    "name",
    "content"
  ],
  "type": "object"
}
```

## Output

The saved Skill and its files. When replacing, the supplied files become the Skill’s full file set.

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.

First discover `skills_save` with `tools_search` and confirm that the live schema permits these arguments.

```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": "tools_call",
    "arguments": {
      "name": "skills_save",
      "arguments": {
        "name": "draft-review",
        "content": "---\nname: draft-review\ndescription: Review a draft for missing sections.\n---\n\nRead the draft and list missing sections without changing it.\n"
      }
    }
  }
}
JSON
```


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