Plinth
by tryplinth.dev in Developer tools
App hosting your agent runs: git, deploys, staging/production, Postgres. Owner approves risky steps.
https://tryplinth.dev/mcp- Tools
- 72
- behind sign-in or payment
- Uptime
- 100%
- last 30 days
- Response time
- 176 ms
- 249 ms slowest 5%
- Last check
- Passed
- 3 h ago, next in 3 h
Reliability
Status and outage history · Atom feed · Watch with other listings
How to connect
Add it to any MCP client that supports remote servers. It asks for sign-in, an API key or payment.
{
"mcpServers": {
"plinth": {
"type": "http",
"url": "https://tryplinth.dev/mcp"
}
}
}72 tools
- account.create
Create a Plinth account for your human owner (or join theirs if their email already has one). Plinth emails them a link to approve; then call account.status with the returned signup_id and poll to collect your token.
- account.status
Finish signup: checks whether the owner approved, and returns your token (once) when they have.
- whoami
Show the account this token belongs to, its policy and projects.
- project.create
Create a project: a git repo plus production and staging environments, each with its own Postgres database. May return pending_approval: the owner is emailed a link to approve; tell them it is waiting, then poll approval.status.
- project.list
List projects with their environments, live releases and URLs.
- project.get
Show one project: git remote, environments, live release per environment, URLs.
- project.delete
Delete a project, its repo, environments and databases. Irreversible. May return pending_approval: the owner is emailed a link to approve; tell them it is waiting, then poll approval.status.
- code.write
Commit files to the project without git: for agents that cannot run git or the CLI (e.g. Claude or ChatGPT in the cloud). Writes and deletes files on a branch (main deploys to staging; other branches get preview environments) and starts the deploy. Send whole files; text as…
- code.list
List files in the project repo (path and size) on a branch or commit.
- code.read
Read one file from the project repo. Text comes back as utf8; binary files as base64.
- git.remote
Get the authenticated git remote URL for pushing. Pushing main deploys staging; any other branch gets a preview environment.
- git.log
Recent commits on a branch.
- git.branches
Branches and their head commits.
- git.revert
Revert a commit on a branch server-side. The new commit deploys like a push.
- env.list
Environments for a project with live release and URL.
- env.secrets.set
Set an environment variable for an environment. Restarts the env so it takes effect.
- env.secrets.list
List environment variable names (values are never returned).
- env.secrets.import
Set many environment variables at once from .env text (KEY=value lines; # comments, quotes and "export" are fine). One restart at the end. Keys starting with VITE_/NEXT_PUBLIC_/PUBLIC_ also reach the build.
- env.secrets.unset
Remove an environment variable.
- deploy
Rebuild and deploy the head of the branch an environment tracks (staging tracks main). Production only changes via promote.
- deploy.status
Releases for an environment, newest first, with status and build log of the latest. Pass log_from (a character offset) to get only the log written since; build_log_length tells you where to continue.
- deploy.cancel
Stop a build that is still running (the latest one in the environment, or a given release id). The live release keeps serving.
- promote
Promote the release running on one environment to another (default staging to production). Applies pending migrations first. May return pending_approval: the owner is emailed a link to approve; tell them it is waiting, then poll approval.status.
- rollback
Point an environment back at its previous release (or a given release id). Does not roll back the database.
- db.query
Run SQL against an environment database. Returns up to 500 rows. On production, reads (SELECT, WITH, SHOW, EXPLAIN) run in a read-only transaction; any write needs owner approval. May return pending_approval: the owner is emailed a link to approve; tell them it is waiting, then…
- db.migrations
Applied and pending migrations (files in migrations/*.sql, applied in name order).
- db.migrate
Apply pending migrations from the live release now (deploys do this automatically). Takes a snapshot first. May return pending_approval: the owner is emailed a link to approve; tell them it is waiting, then poll approval.status.
- db.snapshot
Take a snapshot (pg_dump) of an environment database.
- db.snapshots
List snapshots for an environment. Staging and production get one automatically every night at 03:00 UTC, kept 7 days.
- db.restore
Restore an environment database from a snapshot. Takes a safety snapshot first. Production needs owner approval. May return pending_approval: the owner is emailed a link to approve; tell them it is waiting, then poll approval.status.
- db.connection
Get the DATABASE_URL for an environment (the same one the app receives). Production needs owner approval. May return pending_approval: the owner is emailed a link to approve; tell them it is waiting, then poll approval.status.
- cron.add
Schedule a job: Plinth POSTs to path on the environment at each tick (5-field cron, UTC), with the header x-plinth-cron-secret. Paths under /api/cron/ refuse any other caller. Outside production jobs start paused unless enabled is true. Jobs can also be declared in plinth.json…
- cron.list
Cron jobs on an environment with last run and next run.
- cron.pause
Pause a cron job (it stays defined but does not run).
- cron.resume
Resume a paused cron job.
- cron.remove
Delete a cron job.
- cron.run
Run a cron job now and return its result.
- cron.runs
Recent runs of a cron job.
- domains.connect
Map a domain you own to an environment. Point its DNS at the Plinth host; returns the record to create.
- domains.list
Domains mapped to a project.
Security scan
No findings
We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time |
|---|---|---|---|
| 3 h ago | Passed | 401 | 205 ms |
| 16 h ago | Passed | 401 | 249 ms |
| 29 h ago | Passed | 401 | 269 ms |
| 40 h ago | Passed | 401 | 212 ms |
| 2 days ago | Passed | 401 | 169 ms |
Show 10 older checks
| 3 days ago | Passed | 401 | 215 ms |
| 3 days ago | Passed | 401 | 238 ms |
| 4 days ago | Passed | 401 | 143 ms |
| 4 days ago | Passed | 401 | 178 ms |
| 4 days ago | Passed | 200 | 185 ms |
| 5 days ago | Passed | 200 | 168 ms |
| 5 days ago | Passed | 200 | 170 ms |
| 6 days ago | Passed | 200 | 146 ms |
| 6 days ago | Passed | 200 | 150 ms |
| 7 days ago | Passed | 200 | 135 ms |