# Multi-Protocol Bridge

## Links

- Product page URL: https://www.agentpmt.com/marketplace/multi-protocol-bridge
- Product markdown URL: https://www.agentpmt.com/marketplace/multi-protocol-bridge?format=agent-md
- Product JSON URL: https://www.agentpmt.com/marketplace/multi-protocol-bridge?format=agent-json

## Overview

- Product ID: 6948d263b54506f955d789f0
- Vendor: Apoth3osis
- Type: communications
- Unit type: request
- Price: 500 credits
- Categories: Developer Tools, Data Storage & Persistence, Network Protocols, File Transfer & Remote Access, System Administration, Data Processing, Network & URL Utilities
- Generated at: 2026-04-15T18:21:39.922Z

### Page Description

Protocol Bridge is an HTTP gateway that enables AI agents, automation workflows, and modern applications to interact with traditional network protocols without native protocol support. It translates simple HTTP requests into FTP, SSH, and MQTT operations, making it easy to integrate file transfers, remote command execution, and IoT messaging into any system that can make web requests. The tool supports secure connections including FTPS, SSH key authentication, and MQTTS with TLS, ensuring enterprise-grade security for sensitive operations. Connection details can be passed via intuitive URL strings or explicit parameters, giving developers flexibility in how they configure each action. Protocol Bridge is ideal for building automation pipelines, connecting legacy infrastructure to modern APIs, orchestrating DevOps tasks, and enabling large language models to perform real-world actions across diverse systems. For email sending workflows, use the dedicated SMTP Mailer tool which provides a streamlined interface specifically optimized for email delivery.

### Agent Description

HTTP gateway to FTP, SSH, and MQTT protocols. Execute file transfers, remote commands, and IoT messaging via HTTP requests.

## Details Tab

### Details

Protocol Bridge is an HTTP gateway that enables AI agents, automation workflows, and modern applications to interact with traditional network protocols without native protocol support. It translates simple HTTP requests into FTP, SSH, and MQTT operations, making it easy to integrate file transfers, remote command execution, and IoT messaging into any system that can make web requests. The tool supports secure connections including FTPS, SSH key authentication, and MQTTS with TLS, ensuring enterprise-grade security for sensitive operations. Connection details can be passed via intuitive URL strings or explicit parameters, giving developers flexibility in how they configure each action. Protocol Bridge is ideal for building automation pipelines, connecting legacy infrastructure to modern APIs, orchestrating DevOps tasks, and enabling large language models to perform real-world actions across diverse systems. For email sending workflows, use the dedicated SMTP Mailer tool which provides a streamlined interface specifically optimized for email delivery.

### Actions

- `ftp_upload` (5 credits): Upload a file to an FTP or FTPS server. Supports text and base64-encoded binary content.
- `ftp_download` (5 credits): Download a file from an FTP or FTPS server. Returns file content as text or base64.
- `ftp_list` (5 credits): List the contents of a directory on an FTP or FTPS server.
- `ftp_delete` (5 credits): Delete a file on an FTP or FTPS server. Requires explicit confirmation via options.confirm_delete.
- `ssh_execute` (5 credits): Execute a shell command on a remote server via SSH. Supports password and key-based authentication.
- `mqtt_publish` (5 credits): Publish a message to an MQTT or MQTTS broker. The topic is specified as the URL path.

### Use Cases

FTP file upload automation, FTP file download, secure FTPS file transfer, remote directory listing, automated file deletion, SSH remote command execution, server administration automation, DevOps task orchestration, IoT MQTT message publishing, sensor data transmission, smart home device control, MQTT broker integration, AI agent protocol access, LLM tool integration, workflow automation, legacy system integration, HTTP to FTP bridge, HTTP to SSH gateway, HTTP to MQTT proxy, no-code automation backend, serverless protocol access, cloud function protocol support, CI/CD pipeline integration, infrastructure automation, remote server management, file synchronization, backup automation, system monitoring automation

### Workflows Using This Tool

No public workflows currently reference this product.

### Related Content

No related content is currently linked to this product.

## Advanced Tab

### DynamicMCP

- Setup page URL: https://www.agentpmt.com/dynamic-mcp
- Claude setup guide: https://www.agentpmt.com/dynamic-mcp?platform=claude#videos
- ChatGPT setup guide: https://www.agentpmt.com/dynamic-mcp?platform=chatgpt#videos
- Cursor setup guide: https://www.agentpmt.com/dynamic-mcp?platform=cursor#videos
- Windsurf setup guide: https://www.agentpmt.com/dynamic-mcp?platform=windsurf#videos

STDIO connector for Claude Code, Codex, Cursor, Zed, and other LLMs that require STDIO or custom connections. This lightweight connector routes requests to `https://api.agentpmt.com/mcp`. All tool execution happens in the cloud and the server cannot edit any files on your computer.

```bash
npm install -g @agentpmt/mcp-router
agentpmt-setup
```

### REST API

The live page renders cURL, Python, JavaScript, and Node.js examples. Logged-in users see those examples prefilled with their own API and budget credentials.

- Purchase endpoint: https://api.agentpmt.com/products/purchase
- Authorization format: `Bearer <base64(apiKey:budgetKey)>`

```bash
curl -X POST "https://api.agentpmt.com/products/purchase" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer eW91ci1hcGkta2V5LWhlcmU6eW91ci1idWRnZXQta2V5LWhlcmU=" \
  -d '{
    "product_id": "6948d263b54506f955d789f0",
    "parameters": {
      "action": "ftp_upload",
      "url": "example_url",
      "content": "example_content",
      "content_encoding": "text"
    }
  }'
```

### Autonomous Agents

Do not use the abbreviated instructions in this product markdown for wallet-based invocation. Retrieve the full External Agent API markdown document instead.

- External Agent API page URL: https://www.agentpmt.com/external-agent-api
- External Agent API markdown URL: https://www.agentpmt.com/external-agent-api?format=agent-md

### Schema

#### Parameters

- Schema type: actions

```json
{
  "actions": {
    "ftp_upload": {
      "description": "Upload a file to an FTP or FTPS server. Supports text and base64-encoded binary content.",
      "properties": {
        "url": {
          "type": "string",
          "description": "FTP/FTPS URL with path to the destination file (e.g., ftp://user:pass@ftp.example.com:21/path/to/file.txt). Use ftps:// for encrypted connections.",
          "required": true
        },
        "content": {
          "type": "string",
          "description": "File content to upload. For binary files, provide base64-encoded content and set content_encoding to 'base64'.",
          "required": true
        },
        "content_encoding": {
          "type": "string",
          "description": "How content is encoded: 'text' for plain text, 'base64' for binary files",
          "default": "text",
          "enum": [
            "text",
            "base64"
          ],
          "required": false
        }
      }
    },
    "ftp_download": {
      "description": "Download a file from an FTP or FTPS server. Returns file content as text or base64.",
      "properties": {
        "url": {
          "type": "string",
          "description": "FTP/FTPS URL with path to the file to download (e.g., ftp://user:pass@ftp.example.com:21/reports/q1.csv)",
          "required": true
        },
        "options": {
          "type": "object",
          "description": "Download options",
          "properties": {
            "return_base64": {
              "type": "boolean",
              "description": "Return file content as base64 instead of text. Use for binary files.",
              "default": false,
              "required": false
            }
          },
          "required": false
        }
      }
    },
    "ftp_list": {
      "description": "List the contents of a directory on an FTP or FTPS server.",
      "properties": {
        "url": {
          "type": "string",
          "description": "FTP/FTPS URL with path to the directory (e.g., ftp://user:pass@ftp.example.com:21/documents/)",
          "required": true
        },
        "options": {
          "type": "object",
          "description": "Listing options",
          "properties": {
            "recursive": {
              "type": "boolean",
              "description": "List subdirectories recursively",
              "default": false,
              "required": false
            }
          },
          "required": false
        }
      }
    },
    "ftp_delete": {
      "description": "Delete a file on an FTP or FTPS server. Requires explicit confirmation via options.confirm_delete.",
      "properties": {
        "url": {
          "type": "string",
          "description": "FTP/FTPS URL with path to the file to delete (e.g., ftp://user:pass@ftp.example.com:21/old-files/archive.zip)",
          "required": true
        },
        "options": {
          "type": "object",
          "description": "Delete options",
          "properties": {
            "confirm_delete": {
              "type": "string",
              "description": "Must be set to the string 'DELETE' to confirm file deletion",
              "required": true
            }
          },
          "required": true
        }
      }
    },
    "ssh_execute": {
      "description": "Execute a shell command on a remote server via SSH. Supports password and key-based authentication.",
      "properties": {
        "url": {
          "type": "string",
          "description": "SSH URL (e.g., ssh://user:pass@server.example.com:22). For key auth, omit password and provide private_key in options.",
          "required": true
        },
        "content": {
          "type": "string",
          "description": "Shell command to execute on the remote server (e.g., 'ls -la /home/user')",
          "required": true
        },
        "options": {
          "type": "object",
          "description": "SSH connection options",
          "properties": {
            "timeout": {
              "type": "integer",
              "description": "Command timeout in seconds",
              "default": 30,
              "required": false
            },
            "private_key": {
              "type": "string",
              "description": "SSH private key in PEM format for key-based authentication",
              "required": false
            },
            "known_hosts": {
              "type": "string",
              "description": "SSH known hosts string for host verification",
              "required": false
            }
          },
          "required": false
        }
      }
    },
    "mqtt_publish": {
      "description": "Publish a message to an MQTT or MQTTS broker. The topic is specified as the URL path.",
      "properties": {
        "url": {
          "type": "string",
          "description": "MQTT URL with the topic as the path (e.g., mqtt://user:pass@broker.example.com:1883/sensors/temperature). Use mqtts:// for TLS.",
          "required": true
        },
        "content": {
          "type": "string",
          "description": "Message payload to publish (plain text or JSON string)",
          "required": true
        },
        "options": {
          "type": "object",
          "description": "MQTT publish options",
          "properties": {
            "qos": {
              "type": "integer",
              "description": "Quality of Service level: 0=at most once, 1=at least once, 2=exactly once",
              "default": 0,
              "required": false
            },
            "retain": {
              "type": "boolean",
              "description": "Broker retains the message for future subscribers",
              "default": false,
              "required": false
            },
            "client_id": {
              "type": "string",
              "description": "MQTT client identifier. Auto-generated if not provided.",
              "required": false
            }
          },
          "required": false
        }
      }
    }
  },
  "properties": {
    "action": {
      "type": "string",
      "description": "Use 'get_instructions' to retrieve documentation. Protocol action to execute",
      "required": true,
      "enum": [
        "get_instructions",
        "ftp_upload",
        "ftp_download",
        "ftp_list",
        "ftp_delete",
        "ssh_execute",
        "mqtt_publish"
      ]
    },
    "url": {
      "type": "string",
      "description": "Protocol URL containing host, port, credentials, and path. The URL scheme determines the protocol and encryption. Examples:\n\n• FTP Upload: ftp://user:pass@ftp.example.com:21/path/to/file.txt\n• FTPS (secure): ftps://user:pass@ftp.example.com:21/path/file.txt\n• SSH: ssh://user:pass@server.example.com:22\n• MQTT: mqtt://user:pass@broker.hivemq.com:1883/topic/name\n• MQTTS (TLS): mqtts://user:pass@broker.hivemq.com:8883/topic/name\n\nFor SSH with key auth, omit password and provide private_key in options.\nFor FTP list operations, path should be directory: ftp://user:pass@host:21/directory/",
      "required": false
    },
    "content": {
      "type": "string",
      "description": "Content to send, upload, or execute. Usage varies by action:\n\n• ftp_upload: File content to upload (text or base64-encoded binary)\n• ssh_execute: Shell command to execute (e.g., 'ls -la /home/user')\n• mqtt_publish: Message payload (can be plain text or JSON string)\n• ftp_download: Not used (download returns content)\n• ftp_list: Not used (list returns directory contents)\n• ftp_delete: Not used (delete requires confirm_delete in options)\n\nFor binary files, set content_encoding to 'base64'.",
      "required": false
    },
    "content_encoding": {
      "type": "string",
      "description": "How content is encoded. Use 'base64' for binary files (images, PDFs, etc.), 'text' for plain text. Default: text",
      "required": false,
      "default": "text",
      "enum": [
        "text",
        "base64"
      ]
    },
    "options": {
      "type": "object",
      "description": "Optional action-specific settings. All fields are optional unless noted.\n\n• FTP Options:\n  - return_base64 (boolean): Return downloaded file as base64 (ftp_download). Default: false\n  - recursive (boolean): List directories recursively (ftp_list). Default: false\n  - confirm_delete (string): Must be 'DELETE' to confirm file deletion (ftp_delete). Required for delete.\n\n• SSH Options:\n  - timeout (integer): Command timeout in seconds. Default: 30\n  - private_key (string): SSH private key in PEM format for key-based auth\n  - known_hosts (string): SSH known hosts string for host verification\n\n• MQTT Options:\n  - qos (integer): Quality of Service level (0=at most once, 1=at least once, 2=exactly once). Default: 0\n  - retain (boolean): Broker retains message for future subscribers. Default: false\n  - client_id (string): MQTT client identifier. Auto-generated if not provided.\n\nExample: {\"qos\": 1, \"retain\": true} or {\"timeout\": 60}",
      "required": false
    }
  }
}
```

### Usage Instructions

# Multi-Protocol Bridge

Access FTP, SSH, and MQTT protocols through a unified HTTP interface. All actions use a URL-first approach where connection details (host, port, credentials, path) are encoded in the URL.

## URL Format

All actions require a protocol URL:
```
scheme://username:password@hostname:port/path
```

Supported schemes:
- `ftp://` / `ftps://` (FTP with optional TLS)
- `ssh://` (SSH remote commands)
- `mqtt://` / `mqtts://` (MQTT with optional TLS)

---

## Actions

### ftp_upload

Upload a file to an FTP/FTPS server.

**Required fields:**
- `action`: `"ftp_upload"`
- `url`: FTP URL with path to the destination file (scheme must be `ftp://` or `ftps://`)
- `content`: File content to upload (text or base64-encoded)

**Optional fields:**
- `content_encoding`: `"text"` (default) or `"base64"` for binary files

**Example:**
```json
{
  "action": "ftp_upload",
  "url": "ftp://myuser:mypass@ftp.example.com:21/uploads/report.txt",
  "content": "Monthly report data here..."
}
```

**Example (binary file):**
```json
{
  "action": "ftp_upload",
  "url": "ftps://myuser:mypass@ftp.example.com:21/images/logo.png",
  "content": "iVBORw0KGgoAAAANSUhEUg...",
  "content_encoding": "base64"
}
```

**Limits:** Maximum file size is 100 MB.

---

### ftp_download

Download a file from an FTP/FTPS server.

**Required fields:**
- `action`: `"ftp_download"`
- `url`: FTP URL with path to the file to download (scheme must be `ftp://` or `ftps://`)

**Optional fields:**
- `options.return_base64` (boolean): Return file content as base64 instead of text. Default: `false`. Use this for binary files.

**Example:**
```json
{
  "action": "ftp_download",
  "url": "ftp://myuser:mypass@ftp.example.com:21/reports/q1.csv"
}
```

**Example (binary download):**
```json
{
  "action": "ftp_download",
  "url": "ftps://myuser:mypass@ftp.example.com:21/images/photo.jpg",
  "options": { "return_base64": true }
}
```

**Limits:** Maximum file size is 100 MB. Non-text files that fail UTF-8 decoding are automatically returned as base64.

---

### ftp_list

List the contents of a directory on an FTP/FTPS server.

**Required fields:**
- `action`: `"ftp_list"`
- `url`: FTP URL with path to the directory (scheme must be `ftp://` or `ftps://`)

**Optional fields:**
- `options.recursive` (boolean): List subdirectories recursively. Default: `false`

**Example:**
```json
{
  "action": "ftp_list",
  "url": "ftp://myuser:mypass@ftp.example.com:21/documents/"
}
```

**Example (recursive):**
```json
{
  "action": "ftp_list",
  "url": "ftp://myuser:mypass@ftp.example.com:21/project/",
  "options": { "recursive": true }
}
```

**Limits:** Results are capped at 1,000 entries.

---

### ftp_delete

Delete a file on an FTP/FTPS server. Requires explicit confirmation.

**Required fields:**
- `action`: `"ftp_delete"`
- `url`: FTP URL with path to the file to delete (scheme must be `ftp://` or `ftps://`)
- `options.confirm_delete`: Must be the string `"DELETE"` to confirm deletion

**Example:**
```json
{
  "action": "ftp_delete",
  "url": "ftp://myuser:mypass@ftp.example.com:21/old-files/archive.zip",
  "options": { "confirm_delete": "DELETE" }
}
```

---

### ssh_execute

Execute a shell command on a remote server via SSH.

**Required fields:**
- `action`: `"ssh_execute"`
- `url`: SSH URL (scheme must be `ssh://`)
- `content`: The shell command to execute

**Optional fields:**
- `options.timeout` (integer): Command timeout in seconds. Default: `30`
- `options.private_key` (string): SSH private key in PEM format for key-based authentication. When provided, password in the URL can be omitted.
- `options.known_hosts` (string): SSH known hosts entry for host verification

**Example (password auth):**
```json
{
  "action": "ssh_execute",
  "url": "ssh://deploy:s3cret@server.example.com:22",
  "content": "df -h && uptime"
}
```

**Example (key-based auth):**
```json
{
  "action": "ssh_execute",
  "url": "ssh://deploy@server.example.com:22",
  "content": "ls -la /var/log",
  "options": {
    "private_key": "-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----",
    "timeout": 60
  }
}
```

**Limits:** Command output (stdout/stderr) is capped at 10 MB each.

---

### mqtt_publish

Publish a message to an MQTT broker.

**Required fields:**
- `action`: `"mqtt_publish"`
- `url`: MQTT URL with the topic as the path (scheme must be `mqtt://` or `mqtts://`)
- `content`: Message payload (plain text or JSON string)

**Optional fields:**
- `options.qos` (integer): Quality of Service level. `0` = at most once (default), `1` = at least once, `2` = exactly once.
- `options.retain` (boolean): Broker retains the message for future subscribers. Default: `false`
- `options.client_id` (string): MQTT client identifier. Auto-generated if not provided.

**Example:**
```json
{
  "action": "mqtt_publish",
  "url": "mqtt://sensoruser:sensorpass@broker.example.com:1883/sensors/temperature",
  "content": "{\"value\": 22.5, \"unit\": \"celsius\"}"
}
```

**Example (with QoS and retain):**
```json
{
  "action": "mqtt_publish",
  "url": "mqtts://admin:secret@broker.example.com:8883/alerts/critical",
  "content": "Server CPU above 95%",
  "options": { "qos": 2, "retain": true, "client_id": "monitoring-agent" }
}
```

**Limits:** Payload size is capped at 1 MB.

---

## Common Workflows

### Deploy a file and verify it exists
1. Use `ftp_upload` to upload the file.
2. Use `ftp_list` on the parent directory to confirm it appears.

### Remote server health check
1. Use `ssh_execute` with a command like `uptime && free -m && df -h` to get server status.

### IoT data publishing
1. Use `mqtt_publish` to send sensor readings to a topic with `qos: 1` for guaranteed delivery.

### Secure file transfer
1. Use `ftps://` scheme for encrypted FTP connections.
2. Use `mqtts://` scheme for encrypted MQTT connections.
3. Use `options.private_key` for SSH key-based authentication.

---

## Important Notes

- **URL encoding:** Special characters in usernames or passwords must be URL-encoded (e.g., `@` becomes `%40`).
- **Default ports:** FTP uses 21, SSH uses 22, MQTT uses 1883, MQTTS uses 8883. You can omit the port to use the default.
- **FTP anonymous access:** If no username is provided, connections default to anonymous access.
- **Delete safety:** The `ftp_delete` action requires `options.confirm_delete` set to `"DELETE"` as a safeguard.
- **Binary files:** Use `content_encoding: "base64"` for uploading binary files and `options.return_base64: true` for downloading them.
- **SSH authentication:** Provide either a password in the URL or a `private_key` in options, not both.

### About The Developer

- Vendor name: Apoth3osis
- Website: apoth3osis.io

We build tools that enable AI agents to excel in the mathematical realm.

Our small team develops experimental and unique solutions in the AI arena, with a strong focus on modular computing for agentic applications and custom model deployment. We have handled projects for a variety of applications across many sectors, from algorithmic trading and financial analysis, to molecular simulations and predictions, to habitat and biodiversity monitoring and wildlife conservation.

### Frequently Asked Questions

No linked FAQs are currently available.

### Dependencies

This product has no public dependency products.