MCP.Market

Rentctl MCP server

by Michael-Drake·io.github.Michael-Drake/rentctl·v1.2.0

Leased dev environments — every server dies when its AI session ends.

B82/100grade B
What users say
No reviews yet
Be the first
Safety scan
B82/100

full report

Adoption
Growing

0 stars48 downloads/wk

Reviews

Write one

Nobody has reviewed Rentctl yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Rentctl tools (4)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • env_down

    Release this session's hold on a project's environment; it stops when no other session holds it.

  • env_ls

    List every broker-owned environment on the machine (live, reconciled inventory).

  • env_sweep

    Reconcile every lease: stop expired/dead, report (or under strict, reclaim) squatters.

  • env_up

    Start (or renew) this checkout's leased dev environment and return its URL.

Public scan report

scanner v0.1.10 · 2026-10-16 · same rubric, same numbers if you re-run it

1 medium
  • Code scan38 source files scanned20/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 17 days ago15/15
  • Maintainer identityregistry namespace matches repository owner6/10

Findings (1)

  • mediumsubprocess with shell=Trueexec.shell-true
    rentctl-1.2.0/src/rentctl/core/runners/process.py: … entry.cmd, shell=True, cwd=entry.cwd, …
Overall 82/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Rentctl compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
82/100
higher than 63% of 48,243 servers
Tools
4
the typical server has 7
Tools that change things
0%
typical: 0%. Fewer write tools means less an agent can break
Downloads a week
48
more than 38% of 12,306 servers with a package

What its tools let an agent do: 4 read

Release history: 2 versions in the registry since 2026-09-03, latest 2026-09-30, typically one every 26 days.

Install Rentctl in Claude Code, Cursor or VS Code

claude mcp add rentctl -- uvx rentctl
Add to Cursor

What the publisher says

From the Rentctl repository's README, as published. We do not edit it. Read it on GitHub

rentctl

<!-- mcp-name: io.github.Michael-Drake/rentctl -->

A dev server should never outlive the work that needed it.

rentctl rents dev environments to your AI coding sessions. Every environment is a lease: it dies when the session ends, when the lease expires, or when you say so — whichever comes first. Cleanup is owned by code, not by an agent remembering to clean up.

Ships as both a CLI (rent) and an MCP server, so an agent can start and stop environments through tools instead of shelling out to a raw npm run dev it will forget about.

Why

An AI coding session starts a dev server. Then the session ends — crashes, is closed, or just moves on — and the server keeps running. By Friday there are six of them, three are on ports you've forgotten, and one is quietly serving stale code that makes a bug look unreproducible.

Telling the agent to clean up doesn't fix this, because the failure mode is the agent not doing what it was told. rentctl makes the cleanup structural: the environment has an expiry, and something other than the agent enforces it.

Install

pip install rentctl

Requires Python 3.12+. macOS and Linux. There is no Windows support and no Windows claim — process-group teardown is the safety-critical mechanism here, and it has no tested Windows equivalent yet.

Enroll a project

A project describes itself in a rentctl.toml at its repo root (a devctl.toml left over from before the rename is still read, so nothing needs renaming to keep working):

[project]
name = "myapp"          # lowercase, no separators — it is used as a filename
runner = "process"

[profiles.default]
cmd = 'npm run dev -- --port "$PORT" --strictPort'
cwd = "frontend"        # repo-relative, never absolute
port_env = "PORT"       # rentctl sets this in the child's environment

Then, from the repo:

rent init

init shows you the exact command it will run, asks you to approve it, claims a block of ports for the project, and wires both the MCP server and the cleanup hooks. Nobody else has to edit anything.

There is no port field. Ports are drawn when a server starts, not written down in a tracked file — so two checkouts of the same repo get different ports instead of fighting, and a config file can't hand out a number the allocator never heard of. Each project owns a contiguous block of 10 ports.

Use

rent up myapp              # start (or renew) — prints the URL and the port
rent down --all --cwd .    # stop everything leased to this directory
rent ls                    # every environment on this machine
rent sweep                 # reconcile: stop what's expired or dead
rent events --summary      # what happened, and which cleanup layer did it
rent sync                  # re-approve a changed rentctl.toml
rent report-kill myapp --note "…"   # "you killed something I was using"

report-kill exists because rentctl cannot tell, on its own, whether a teardown was unwanted — a kill you asked for and a kill you regret look identical from the inside. The report lands in the same append-only log as everything else and is matched to the teardown it disputes, so an unwanted kill becomes a fact on the record rather than an anecdote.

Leases default to 120 minutes and are capped at 480. rent up on a live lease renews it rather than starting a second server.

How cleanup actually happens

Four independent layers, so no single failure leaves an orphan:

leased to that directory.

  1. You ask — rent down.
  2. The session ends — a SessionEnd hook, installed by init, tears down everything

session died without running its hook.

  1. The lease expires — a detached watchdog per lease kills it at expiry, even if the
  1. The next sweep — rent sweep reconciles anything the first three missed.

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Rentctl: common questions

Is Rentctl MCP server safe?
Mostly: it is graded B (82/100). Read the Rentctl safety report
How do I install Rentctl?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Rentctl need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is Rentctl maintained?
The last commit was 37 days ago (2026-09-29). The latest release is v1.2.0.
How does Rentctl compare with other MCP servers?
safety score 82/100 (higher than 63% of 48,243 servers); tools 4 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.