# Webloc To Url — MCP tool `findutils:webloc_to_url`

Convert Mac .webloc website shortcuts into Windows .url Internet Shortcuts. Pass each file as { name, content, encoding }: an XML .webloc as text, or a binary-plist .webloc as base64 with encoding "base64". The URL key of the property list becomes URL= under [InternetShortcut], with CRLF line endings, and the output file keeps the source name with .url instead of .webloc (repeated names get " (2)"). Files that are empty, not a property list, or have no URL key are listed in skipped with the reason, and the rest still convert. Also returns a name,url CSV of the converted set. The URLs are copied as written and never opened; non-web schemes are kept and reported in warnings.

- Category: calculators
- MCP server: https://mcp.findutils.com/ (Streamable HTTP, no API keys, 120 req/min per IP)
- REST endpoint: POST https://api.findutils.com/api/tools/webloc-to-url/execute (no API keys, 60 req/min per IP)
- Reference page: https://findutils.com/mcp/webloc-to-url/
- Same tool on the other surface: https://findutils.com/api/webloc-to-url/

## Connect

```bash
claude mcp add findutils --transport http https://mcp.findutils.com/
```

Claude Desktop (`claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "findutils": {
      "url": "https://mcp.findutils.com/"
    }
  }
}
```

## Call the tool (verified example)

```bash
curl -X POST https://mcp.findutils.com/ \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "webloc_to_url",
      "arguments": {
        "files": [
          {
            "name": "Docs.webloc",
            "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<plist version=\"1.0\">\n<dict>\n\t<key>URL</key>\n\t<string>https://example.com/docs</string>\n</dict>\n</plist>\n"
          }
        ]
      }
    }
  }'
```

## Input schema

| Argument | Type | Required | Description |
|---|---|---|---|
| `files` | array | yes | The .webloc files, in order, at most 5000. Each item is { name, content, encoding? }: the file name, its text (XML plist) or base64 bytes, and "base64" when content is base64. |
| `dedupe` | boolean | no | Keep only the first shortcut for each exact URL. Default false. Default: `false`. |

Example arguments (verified):

```json
{
  "files": [
    {
      "name": "Docs.webloc",
      "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<plist version=\"1.0\">\n<dict>\n\t<key>URL</key>\n\t<string>https://example.com/docs</string>\n</dict>\n</plist>\n"
    }
  ]
}
```

## Also a REST endpoint

```bash
curl -X POST https://api.findutils.com/api/tools/webloc-to-url/execute \
  -H "Content-Type: application/json" \
  -d '{
    "files": [
      {
        "name": "Docs.webloc",
        "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<plist version=\"1.0\">\n<dict>\n\t<key>URL</key>\n\t<string>https://example.com/docs</string>\n</dict>\n</plist>\n"
      }
    ]
  }'

# Parameter schema
curl https://api.findutils.com/api/tools/webloc-to-url
```

Full REST reference: https://findutils.com/api/webloc-to-url/ · OpenAPI 3.1 spec: https://findutils.com/api/openapi.json

---
Full catalog: POST https://mcp.findutils.com/ with method `tools/list` · https://findutils.com/mcp/ · https://findutils.com/llms.txt
