{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_53xqubys26tk","handle":"portal-mcp-server","url":"https://wellknown.network/agents/portal-mcp-server","links":{"self":"https://wellknown.network/agents/portal-mcp-server/record.json","html":"https://wellknown.network/agents/portal-mcp-server","markdown":"https://wellknown.network/agents/portal-mcp-server/record.md","api":"https://wellknown.network/api/v1/agents/portal-mcp-server","status":"https://wellknown.network/api/v1/agents/portal-mcp-server/status","claim":"https://wellknown.network/agents/portal-mcp-server/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/portal-mcp-server/claim.json","badge":"https://wellknown.network/agents/portal-mcp-server/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/portal-mcp-server/history","tools":"https://wellknown.network/api/v1/agents/portal-mcp-server/tools"},"ard":{"identifier":"urn:air::server:portal-mcp-server","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"portal-mcp-server","summary":"Agent-feels-local SSH orchestration MCP server — persistent bash, hash-protected editing, SFTP, tunnels, multi-host orchestration over AsyncSSH","description":"<div align=\"center\">\n\n# portal-mcp-server\n\n**面向 coding agent 的 SSH orchestration MCP server**\n\n让 Claude Code、Copilot CLI、Cursor 等 agent 操作远端机器就像操作本地：持久 bash 会话、hash 保护的远端文件编辑、SFTP 文件传输、SSH 隧道、多机编排。基于 [AsyncSSH](https://github.com/ronf/asyncssh) + [FastMCP](https://modelcontextprotocol.io/)，连接池在 server 进程内跨工具复用，Windows / macOS / Linux 性能一致。\n\n[![PyPI](https://img.shields.io/pypi/v/portal-mcp-server)](https://pypi.org/project/portal-mcp-server/)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/TMYTiMidlY/portal-mcp-server/blob/main/LICENSE)\n[![Python](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org/)\n[![MCP](https://img.shields.io/badge/MCP-compatible-brightgreen)](https://modelcontextprotocol.io/)\n\n📖 [Repository & full docs](https://github.com/TMYTiMidlY/portal-mcp-server) ｜ 🇬🇧 [English README](https://github.com/TMYTiMidlY/portal-mcp-server/blob/main/README.en.md)\n\n</div>\n\n---\n\n## <a id=\"overview\"></a>简介\n\nportal-mcp-server 的设计围绕三条理念：**工具少而正交**（只保留 bash 难以廉价合成的保证）、**单步可介入**（agent 一步一调用、读真实输出再决策，长任务丢后台）、**凭据统一**（所有连接走同一条进程内认证路径，明文不进 LLM）——展开见 [设计理念](https://github.com/TMYTiMidlY/portal-mcp-server#design-principles)。\n\n`portal-mcp-server` fork 自 [`jaguar999paw-droid/ssh-shell-mcp`](https://github.com/jaguar999paw-droid/ssh-shell-mcp)（Apache 2.0）：底层 SSH/asyncssh 引擎、连接池、tunnel 管理、多机编排算法、安全策略沿用上游模块。上层重新设计了一套面向 agent 的 portal 工具——围绕\"持久 bash 会话 + 一次性 exec + 后台 job\"三条执行路径，外加 hash 保护的远端文件编辑、结构化搜索、SFTP 传输、隧道、审计等原语。其中远端文件编辑（`remote_read` / `remote_patch`）的双层 hash 校验算法参考 [`tumf/mcp-text-editor`](https://github.com/tumf/mcp-text-editor)（MIT），并针对 SFTP 重写。\n\n完整衍生关系与算法引用见 [`NOTICE`](https://github.com/TMYTiMidlY/portal-mcp-server/blob/main/NOTICE) 与 [安全](https://github.com/TMYTiMidlY/portal-mcp-server#security) 章节。\n\n## <a id=\"highlights\"></a>项目特色\n\n- **跨工具连接复用**：所有 portal 工具共享同一进程内的 asyncssh 连接池；一次握手长期复用，单次调用摊销到 channel 创建（~10–30 ms）。\n- **Windows 上同样快**：不依赖 OpenSSH `ControlMaster`，连接池是纯 Python 对象，三大平台获得一致的复用性能。\n- *…","publisher":{"name":"TMYTiMidlY","url":null},"homepage":"https://github.com/TMYTiMidlY/portal-mcp-server#readme","repository":"https://github.com/TMYTiMidlY/portal-mcp-server/releases","version":"4.0.3","license":"Apache License\n                                   Version 2.0, …","protocols":["mcp"],"tags":["ai-agents","asyncssh","claude","copilot","devops","mcp","mcp-server","orchestration","remote","ssh"],"pricing":null,"endpoints":[{"url":"pypi:portal-mcp-server","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"automation.orchestration","name":"Agent Orchestration","confidence":1,"provenance":"declared"},{"slug":"dev.version-control","name":"Version Control","confidence":0.825,"provenance":"derived"},{"slug":"dev.terminal","name":"Terminal & Shell","confidence":0.745,"provenance":"derived"}],"categories":["automation","dev"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"portal-mcp-server","registry":"pypi","observedAt":"2026-10-28T20:22:52.721Z","publishedAt":"2026-09-23T20:52:57.034371Z","latestVersion":"4.0.3"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"portal-mcp-server","url":"https://pypi.org/project/portal-mcp-server/","firstSeenAt":"2026-09-10T10:23:33.626Z","fetchedAt":"2026-10-28T20:20:51.151Z","normalizedAt":"2026-10-28T20:20:51.151Z"}]},"firstSeenAt":"2026-09-10T10:23:33.626Z","updatedAt":"2026-10-28T20:22:52.721Z"}