プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Ftp Ssh MCP

作者:Chris221バージョン 1.0.3i★ –iパソコンで動く
レジストリ名io.github.Chris221/ftp-ssh-mcp

インストール

概要

作者による説明(英語の原文)

Work with a remote host over FTP/FTPS/SFTP, SSH, and MySQL.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: データベース・データセット

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • レジストリには、入力が必要なキーは載っていません。

必要なもの

  • npmNode.jsのインストール(npxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "ftp-ssh": {
      "command": "npx",
      "args": [
        "-y",
        "ftp-ssh-mcp"
      ]
    }
  }
}

ターミナルでこれを実行します

claude mcp add ftp-ssh -- npx -y ftp-ssh-mcp

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "ftp-ssh": {
      "command": "npx",
      "args": [
        "-y",
        "ftp-ssh-mcp"
      ]
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "ftp-ssh": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "ftp-ssh-mcp"
      ]
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント Chris221 で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

データベース・データセットのほかのサーバーとの比較i

  • このカテゴリのほかの952件のうち0%よりスターが多い
  • このカテゴリのほかの952件のうち42%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの952件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Ftp Ssh MCPは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(1.0.3)がレジストリに届いたのは44 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。

代わりに使えるものは?

同じカテゴリには:Supabase, MongoDB MCP Server, Elasticsearch MCP Server

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Supabase

作者:supabase

MCP server for interacting with the Supabase platform

パソコンでもクラウドでも★ 2,993Apache-2.0今日更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

ftp-ssh-mcp

An MCP server for working with a single remote host over FTP, FTPS, SFTP, and SSH — the kind of host a typical shared-hosting plan or a plain VPS gives you, not a cloud provider's API. It groups its tools into three capability classes: file transfer (list, upload, download, mkdir, delete), shell execution over SSH, and a MySQL query wrapper that also runs over SSH. File transfer is the only capability enabled by default — shell execution and database access are both opt-in and stay off until you explicitly turn them on. Treat those two as equally dangerous: mysql_query runs arbitrary SQL on a production database and can escape to a shell, so it is not the milder of the pair.

Install

Published to npm and run with npx — there is nothing to clone or build. Requires Node 20 or newer. Works on Windows, macOS and Linux.

1. Add it to your MCP client

On Windows, use the `cmd /c` form shown for each client below. Most clients spawn command directly rather than through a shell, and npx on Windows is a .cmd shim that cannot be executed that way — the server simply fails to start, usually with no useful error. Treat this as the rule on Windows, not an edge case.

Claude Code — .mcp.json in the project root

{

"mcpServers": { "remote": { "command": "npx", "args": ["-y", "ftp-ssh-mcp@1"] } } }

Windows:

{

"mcpServers": { "remote": { "command": "cmd", "args": ["/c", "npx", "-y", "ftp-ssh-mcp@1"] } } }

Claude Desktop — claude_desktop_config.json

OSPath
Windows%APPDATA%\Claude\claude_desktop_config.json
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Linux~/.config/Claude/claude_desktop_config.json

Same mcpServers shape as Claude Code. Claude Desktop has no project directory, so set MCP_ENV_FILE to an absolute path — see step 2.

Cursor — .cursor/mcp.json (project) or ~/.cursor/mcp.json (global)

Same mcpServers shape as Claude Code.

VS Code — .vscode/mcp.json (workspace), or MCP: Open User Configuration for global

VS Code uses servers, not mcpServers:

{

"servers": { "remote": { "command": "npx", "args": ["-y", "ftp-ssh-mcp@1"] } } }

Codex CLI — ~/.codex/config.toml , or .codex/config.toml in a trusted project

Codex uses TOML with a snake_case mcp_servers table:

[mcp_servers.remote]

command = "npx" args = ["-y", "ftp-ssh-mcp@1"]

Windows:

[mcp_servers.remote]

command = "cmd" args = ["/c", "npx", "-y", "ftp-ssh-mcp@1"]

Or add it from the shell: codex mcp add remote -- npx -y ftp-ssh-mcp@1

2. Point it at a host

Create a .env file in your project root. The server reads it from the working directory, which is the project root for project-scoped clients:

REMOTE_HOST=ftp.example.com

REMOTE_USER=deploy REMOTE_PASSWORD=your-password REMOTE_BASE_DIR=/home/deploy/public_html

That is enough for the six file tools over FTPS. Keep this file out of version control — add .env and .env.* to .gitignore. Getting credentials out of a tracked config file is the reason the server reads .env at all.

If your client has no project directory (Claude Desktop), or you want several servers against different accounts, point each at its own file instead:

{

"mcpServers": { "prod": { "command": "npx", "args": ["-y", "ftp-ssh-mcp@1"], "env": { "MCP_ENV_FILE": "/absolute/path/to/.env.prod" } } } }

A fuller setup, adding shell execution and database access — both off unless you opt in:

REMOTE_HOST=example.com

REMOTE_USER=deploy REMOTE_PASSWORD=your-password REMOTE_BASE_DIR=/home/deploy/public_html

Pin the host key. Without this, any host key is accepted — see Security.

SSH_HOST_FINGERPRINT=SHA256:your-fingerprint-here SSH_PORT=22 SSH_BASE_DIR=/home/deploy SSH_ALLOW_EXEC=true SSH_ALLOWED_CMDS=@basic,@node

Runs the mysql client on the host over SSH. At least as dangerous as

SSH_ALLOW_EXEC — read the Security section before enabling.

DB_USER=deploy_dbuser DB_PASSWORD=your-db-password DB_NAME=deploy_db

Off by default; required for file_delete.

REMOTE_ALLOW_DELETE=true

See .env.example for every variable and Configuration below for what each does.

3. Check it before you rely on it
npx -y ftp-ssh-mcp@1 --selftest

Run it from the directory holding your .env. It resolves configuration, registers tools and prints a one-line summary — without opening a connection — then exits. Use it to confirm the right capabilities came up before wiring the server into a client:

ftp-ssh-mcp 1.0.1 selftest OK. env=.env, transport=ftp, host=example.com,

capabilities=[files, ssh, mysql], tools=[file_list, file_upload, ...]

It exits non-zero with a message naming the missing variable if configuration is incomplete. See Troubleshooting.

Options
OptionDoes
--selftestResolve the configuration, print the tools it would register, and exit. Opens no connection.
-q, --quietDrop the informational startup warnings.
-v, --versionPrint the version and exit.
-h, --helpPrint usage and exit.

--version and --help answer before any configuration is read, so they work on a machine with nothing set up yet. Both print to stdout; everything else the server says goes to stderr, because stdout is the JSON-RPC channel.

--quiet silences the warnings about a missing DB_PASSWORD, an MCP_CAPABILITIES entry that registered no tools, and a relative base directory. It deliberately does not silence the two that say your security posture is weaker than you might assume — an unverified host key, or path confinement switched off. A flag set once in a client's config file is never looked at again, so those stay visible until you fix them, which is the only silence worth having.

Capabilities

A capability's tools are only registered when it is both configured (its required variables are set) and, if MCP_CAPABILITIES restricts the set, named in that list.

CapabilityToolsEnabled when
filesfile_list, file_upload, file_upload_dir, file_download, file_mkdir, file_deleteAn FTP or SSH profile is configured. file_delete additionally requires REMOTE_ALLOW_DELETE=true; all writes require REMOTE_READONLY to be unset or false.
sshssh_execAn SSH profile is configured with SSH_BASE_DIR set and SSH_ALLOW_EXEC=true.
mysqlmysql_queryAn SSH profile is configured, and DB_USER and DB_NAME are both set. DB_USER must be set explicitly — it does not inherit REMOTE_USER — so the capability cannot switch itself on. Blocked entirely by REMOTE_READONLY=true. DB_PASSWORD is not required — see below.

The files tools are transport-neutral: they work over whichever transport FILE_TRANSPORT selects (ftp or sftp), and each call can override the transport for that one call if both profiles are configured. mysql_query is a convenience wrapper, not a database driver — it pipes SQL over SSH to the mysql client already installed on the host (mysql --user=... --database=... --table, with the SQL sent on stdin), then parses the CLI's table output. There is no connection pooling and no parameterised-query support. It exists because most shared hosts will not accept a database connection from outside the host itself; if you need a real client-side database integration, use one instead of mysql_query. Enable it with the same caution as `ssh_exec`, not less — see Security.

Configuration

Every setting is resolved from environment variables in this order: a profile-specific variable (FTP_* or SSH_*) first, then the shared REMOTE_* fallback, then a built-in default. Two independent profiles exist — FTP and SSH — and you may configure either, both, or neither in isolation (though at least one is required to start).

Variables are normally read from process environment, but the server also loads a .env file from the current working directory before resolving configuration, so credentials can live outside the MCP client's own (often tracked) config file. A real environment variable already set takes precedence over the .env file. Point at a different file with MCP_ENV_FILE — a leading ~ is expanded to your home directory, a relative value is resolved against the working directory, and a set-but-unreadable one fails startup rather than silently falling back to .env and loading different credentials than the ones you named. The `.env` parser does not support inline comments — KEY=value # note treats everything after = as the value, including # note, so keep comments on their own line.

Secret inheritance

Non-secret settings (HOST, USER, BASE_DIR) fall back to REMOTE_* freely. Secrets (PASSWORD, PRIVATE_KEY, PASSPHRASE) fall back to REMOTE_PASSWORD **only when the profile does not set its own *_USER**. A profile that names its own user is declaring a distinct identity, and sending that identity a password meant for a different account causes repeated authentication failures — on many shared hosts, enough failures trip brute-force protection and lock the account out at the host level. If FTP_USER (or SSH_USER) is set, its password must be set explicitly too.

Variables
VariableDefaultNotes
REMOTE_HOST—Shared host, used when a profile does not set its own.
REMOTE_USER—Shared user.
REMOTE_PASSWORD—Shared secret. Only inherited by a profile with no *_USER of its own.
REMOTE_BASE_DIR—Shared base directory that remote paths are confined to. A leading ~ is expanded to the account's login directory — see below.
FTP_HOSTinherits REMOTE_HOST
FTP_PORT21
FTP_USERinherits REMOTE_USER
FTP_PASSWORDsee secret inheritance
FTP_BASE_DIRinherits REMOTE_BASE_DIR, then SSH_BASE_DIRBase directory the files tools are confined to on this transport. Accepts ~ or ~/ .
FTP_SECURITYftpsftps (explicit TLS), ftp (plaintext), or ftps-implicit.
FTP_TLS_REJECT_UNAUTHORIZEDtrueSet false to accept a self-signed or otherwise unverifiable certificate.
FTP_TIMEOUT_MS30000
SSH_HOSTinherits REMOTE_HOST
SSH_PORT22
SSH_USERinherits REMOTE_USER
SSH_PASSWORDsee secret inheritancePassword auth. Can be combined with a key; the server will try both.
SSH_PRIVATE_KEYsee secret inheritanceLocal path to a private key. A leading ~ is expanded.
SSH_PASSPHRASEsee secret inheritancePassphrase for SSH_PRIVATE_KEY.
SSH_HOST_FINGERPRINTinherits REMOTE_HOST_FINGERPRINTSHA-256 host key fingerprint to pin. Accepts the SHA256: form or a bare hex digest. Not a secret, so it inherits freely. Unset means any host key is accepted, and the server warns at startup. See Security below.

| `SSH_BASE_DIR

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く