Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,548Letters: 14Defects: 1,324counted 3 min ago
teppi

Server definition

Hash
sha256:ea454f95fc17d0fa8ddedf67a3659da0651b79a0d4c7b696468a659394adfa9d
What it is
What a remote MCP server returned when asked what it offers: 8 tools

The blob, as servednamed by its sha256

{ "instructions": "Manage the user's servers through Termalin: hosts_list shows the reachable servers, ssh_exec runs a command, sftp_list/read/write handle files. Servers are reached keylessly through the user's Termalin Connectors.", "tools": [ { "description": "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().", "inputSchema": { "additionalProperties": false, "properties": { "allowWrites": { "description": "Allow a non-read statement (full-access keys only; default false)", "type": "boolean" }, "database": { "description": "Database name (for sqlite: the .db file path)", "type": "string" }, "engine": { "description": "Database engine on that server (default postgres)", "enum": [ "postgres", "mysql", "mariadb", "redis", "mongodb", "sqlite" ], "type": "string" }, "host": { "description": "Server id from hosts_list", "type": "string" }, "query": { "description": "The statement / command / expression to run", "type": "string" }, "timeoutSeconds": { "description": "Max seconds to wait (default 60). Calls longer than about 90 seconds are usually cut off by the network before they answer — run long jobs in the background instead.", "type": "number" }, "username": { "description": "SSH login user (defaults to the tunnel's user, else root)", "type": "string" } }, "required": [ "host", "query" ], "type": "object" }, "name": "data_query", "outputSchema": null }, { "description": "List the tables / collections / keys of a database on one of your servers — passwordless, over the same local-client path as data_query.", "inputSchema": { "additionalProperties": false, "properties": { "database": { "description": "Database name (for sqlite: the .db file path)", "type": "string" }, "engine": { "description": "Database engine on that server (default postgres)", "enum": [ "postgres", "mysql", "mariadb", "redis", "mongodb", "sqlite" ], "type": "string" }, "host": { "description": "Server id from hosts_list", "type": "string" }, "username": { "description": "SSH login user (defaults to the tunnel's user, else root)", "type": "string" } }, "required": [ "host" ], "type": "object" }, "name": "data_tables", "outputSchema": null }, { "description": "Generate a strong random password — handy when creating a user or setting a password on a server. Returns the password only; nothing is stored.", "inputSchema": { "additionalProperties": false, "properties": { "length": { "description": "length (default 20, 8-128)", "type": "integer" } }, "type": "object" }, "name": "generate_password", "outputSchema": null }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "name": "hosts_list", "outputSchema": null }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "host": { "description": "Server id from hosts_list", "type": "string" }, "path": { "description": "Directory to list (default the login home, \".\")", "type": "string" }, "username": { "description": "Login user (defaults to the tunnel's user, else root)", "type": "string" } }, "required": [ "host" ], "type": "object" }, "name": "sftp_list", "outputSchema": null }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "host": { "description": "Server id from hosts_list", "type": "string" }, "path": { "description": "Absolute or home-relative file path", "type": "string" }, "username": { "description": "Login user (defaults to the tunnel's user, else root)", "type": "string" } }, "required": [ "host", "path" ], "type": "object" }, "name": "sftp_read", "outputSchema": null }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "content": { "description": "UTF-8 text to write", "type": "string" }, "host": { "description": "Server id from hosts_list", "type": "string" }, "path": { "description": "Destination file path (created or overwritten)", "type": "string" }, "username": { "description": "Login user (defaults to the tunnel's user, else root)", "type": "string" } }, "required": [ "host", "path", "content" ], "type": "object" }, "name": "sftp_write", "outputSchema": null }, { "description": "Run a single shell command on one of your servers and return its combined output and exit code. Runs keyless over Termalin's tunnel — no SSH key, and the server needs no open inbound port. Each call is a fresh shell (cd does not persist — chain with &&). Keep a call under about 90 seconds: for anything longer, start it in the background (nohup … > log 2>&1 &) and check on it with later calls.", "inputSchema": { "additionalProperties": false, "properties": { "command": { "description": "Shell command to execute", "type": "string" }, "host": { "description": "Server id from hosts_list", "type": "string" }, "timeoutSeconds": { "description": "Max seconds to wait (default 60). Calls longer than about 90 seconds are usually cut off by the network before they answer — run long jobs in the background instead.", "type": "number" }, "username": { "description": "Login user (defaults to the tunnel's user, else root)", "type": "string" } }, "required": [ "host", "command" ], "type": "object" }, "name": "ssh_exec", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:ea454f95fc17d0fa8ddedf67a3659da0651b79a0d4c7b696468a659394adfa9d | sha256sum