Portal MCP Server

Agent-feels-local SSH orchestration MCP server — persistent bash, hash-protected editing, SFTP, tunnels, multi-host orchestration over AsyncSSH

Local serverstdioPython

What is the Portal MCP server?

If you already use Portal, the portal mcp server is the piece that lets your assistant work with it directly. Agent-feels-local SSH orchestration MCP server — persistent bash, hash-protected editing, SFTP, tunnels, multi-host orchestration over AsyncSSH.

What the server does

MCP client 经 stdio(或可选 HTTP)连到 server;14 个工具先过安全 gate + 审计,SSH 工具再走进程内 asyncssh 连接池(跨工具复用同一条 TCP,每 host 可开多条),local_exec / 控制面工具不走 SSH。

Available tools

The toolset is worth reading before you wire it up, because it tells you what the integration is really for:

  • agent — first 的精简工具面**:action / mode 字段合并语义重复的入口,每个工具只提供一条 bash 难以廉价合成的保证,减少 agent 选工具的歧义。工具 schema(name + description + inputSchema)合计约占 ~9k tokens(≈
  • remote_transfer — SFTP 增量短路(size+mtime 或 sha256)+ 进度心跳防 idle 超时 + 批量单点容错
  • remote_job — 后台 submit/poll/cancel/list,给 agent"丢后台、中途思考、随时打断"的能力
  • Client — server stderr 去向

Installation

portal-mcp-server on PyPI is all you need. Most clients run it directly, so configuration is a few lines and a restart.

Credentials and setup notes

Configuration is passed through the environment: GITHUB_TOKEN. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.

Where it fits

Plenty of developer tooling servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Portal's toolset — agent, remote_transfer, remote_job and 1 more — is a fair guide to whether it matches your workflow. It is maintained by TMYTiMidlY; worth a glance at recent repository activity before you build anything load-bearing on it.

We check each listing at SyncDev against the project's documentation before it goes live — if something here drifts out of date, it is a bug worth reporting.

Worth knowing first

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

Available tools

ToolWhat it does
agentfirst 的精简工具面**:action / mode 字段合并语义重复的入口,每个工具只提供一条 bash 难以廉价合成的保证,减少 agent 选工具的歧义。工具 schema(name + description + inputSchema)合计约占 **~9k tokens**(≈ 200k 上下文窗口的 **~4–5%**;tiktoken o200k_base 实测约 8.8k)。
remote_transferSFTP 增量短路(size+mtime 或 sha256)+ 进度心跳防 idle 超时 + 批量单点容错
remote_job后台 submit/poll/cancel/list,给 agent"丢后台、中途思考、随时打断"的能力
Clientserver stderr 去向

How to install the Portal MCP server

{
  "mcpServers": {
    "portal": {
      "command": "uvx",
      "args": ["portal-mcp-server"],
      "env": {
        "GITHUB_TOKEN": "your-value"
      }
    }
  }
}

Add to claude_desktop_config.json, then restart Claude Desktop.

Configuration

VariableDescriptionRequired
GITHUB_TOKENCredential the server authenticates with.Yes

Example prompts to try

  • Use Portal to agent.
  • Use Portal to remote transfer.
  • Use Portal to remote job.

Frequently asked questions

It connects Portal to MCP-compatible AI assistants such as Claude and Cursor, exposing 4 tools (agent, remote_transfer, remote_job, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Portal directly.