MCP 服务器

termalin-web

in.termal/termalin-web
云与基础设施 开发者工具 公开且可连接 MCP 2026-07-28

此 MCP 可以做什么

Connects to servers through keyless tunnels to execute shell commands, query databases, and read or write files.

data_query
Run a database query on one of your servers — passwordless. It executes the engine's own client on the host over Termalin's keyless tunnel, using the database's local trust (Postgres peer auth via `sudo -u postgres`, MySQL/MariaDB unix-socket via `sudo mysql`, redis-cli, mongosh, sqlite3) — so no database password is needed or stored anywhere. Read-only by default: only SELECT/SHOW-style statements run unless allowWrites is set (full-access keys only). SQL engines return CSV/TSV with a header. For MongoDB pass a shell expression, e.g. db.products.find({}).limit(20).toArray().
可能执行破坏性操作
输入模式
{'type': 'object', 'required': ['host', 'query'], 'properties': {'host': {'type': 'string', 'description': 'Server id from hosts_list'}, 'query': {'type': 'string', 'description': 'The statement / command / expression to run'}, 'engine': {'enum': ['postgres', 'mysql', 'mariadb', 'redis', 'mongodb', 'sqlite'], 'type': 'string', 'description': 'Database engine on that server (default postgres)'}, 'database': {'type': 'string', 'description': 'Database name (for sqlite: the .db file path)'}, 'username': {'type': 'string', 'description': "SSH login user (defaults to the tunnel's user, else root)"}, 'allowWrites': {'type': 'boolean', 'description': 'Allow a non-read statement (full-access keys only; default false)'}, 'timeoutSeconds': {'type': 'number', 'description': 'Max seconds to wait (default 60, up to 300)'}}, 'additionalProperties': False}
data_tables
List the tables / collections / keys of a database on one of your servers — passwordless, over the same local-client path as data_query.
只读 幂等
输入模式
{'type': 'object', 'required': ['host'], 'properties': {'host': {'type': 'string', 'description': 'Server id from hosts_list'}, 'engine': {'enum': ['postgres', 'mysql', 'mariadb', 'redis', 'mongodb', 'sqlite'], 'type': 'string', 'description': 'Database engine on that server (default postgres)'}, 'database': {'type': 'string', 'description': 'Database name (for sqlite: the .db file path)'}, 'username': {'type': 'string', 'description': "SSH login user (defaults to the tunnel's user, else root)"}}, 'additionalProperties': False}
generate_password
Generate a strong random password — handy when creating a user or setting a password on a server. Returns the password only; nothing is stored.
只读
输入模式
{'type': 'object', 'properties': {'length': {'type': 'integer', 'description': 'length (default 20, 8-128)'}}, 'additionalProperties': False}
hosts_list
List the servers reachable through Termalin (your tunnel agents). Returns id, name, whether the server is online, and the default login user. Use the id with ssh_exec.
只读 幂等
输入模式
{'type': 'object', 'properties': {}, 'additionalProperties': False}
sftp_list
List a directory on one of your servers over SFTP. Returns each entry's name, whether it's a directory, size and modified time. Runs keyless over Termalin's tunnel, like ssh_exec.
只读 幂等
输入模式
{'type': 'object', 'required': ['host'], 'properties': {'host': {'type': 'string', 'description': 'Server id from hosts_list'}, 'path': {'type': 'string', 'description': 'Directory to list (default the login home, ".")'}, 'username': {'type': 'string', 'description': "Login user (defaults to the tunnel's user, else root)"}}, 'additionalProperties': False}
sftp_read
Read a text file from one of your servers over SFTP and return its contents. Files over 512 KB or non-text (binary) files are refused — use ssh_exec (e.g. sed/tail) for those.
只读 幂等
输入模式
{'type': 'object', 'required': ['host', 'path'], 'properties': {'host': {'type': 'string', 'description': 'Server id from hosts_list'}, 'path': {'type': 'string', 'description': 'Absolute or home-relative file path'}, 'username': {'type': 'string', 'description': "Login user (defaults to the tunnel's user, else root)"}}, 'additionalProperties': False}
sftp_write
Create or overwrite a text file on one of your servers over SFTP. 'content' is written as UTF-8. Capped at 512 KB; for binary uploads use a terminal/scp instead.
可能执行破坏性操作 幂等
输入模式
{'type': 'object', 'required': ['host', 'path', 'content'], 'properties': {'host': {'type': 'string', 'description': 'Server id from hosts_list'}, 'path': {'type': 'string', 'description': 'Destination file path (created or overwritten)'}, 'content': {'type': 'string', 'description': 'UTF-8 text to write'}, 'username': {'type': 'string', 'description': "Login user (defaults to the tunnel's user, else root)"}}, 'additionalProperties': False}
ssh_exec
Run a single shell command on one of your servers and return its combined output. Runs keyless over Termalin's tunnel — no SSH key, and the server needs no open inbound port.
可能执行破坏性操作
输入模式
{'type': 'object', 'required': ['host', 'command'], 'properties': {'host': {'type': 'string', 'description': 'Server id from hosts_list'}, 'command': {'type': 'string', 'description': 'Shell command to execute'}, 'username': {'type': 'string', 'description': "Login user (defaults to the tunnel's user, else root)"}, 'timeoutSeconds': {'type': 'number', 'description': 'Max seconds to wait (default 60, up to 300)'}}, 'additionalProperties': False}
已添加
data_tables
2026年9月17日 12:39
已添加
data_query
2026年9月17日 12:39
已添加
sftp_write
2026年9月17日 12:39
已添加
sftp_read
2026年9月17日 12:39
已添加
sftp_list
2026年9月17日 12:39
已添加
ssh_exec
2026年9月17日 12:39
已添加
generate_password
2026年9月17日 12:39
已添加
hosts_list
2026年9月17日 12:39