Borrowing it
Nothing to install: this file belongs to OlliMakarova/mcp-metro. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/OlliMakarova/mcp-metro/master/.claude/skills/deploy-mcp-to-remote-server/SKILL.mdgit clone --depth 1 https://github.com/OlliMakarova/mcp-metroWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ollimakarova/mcp-metro/deploy-mcp-to-remote-server)<a href="https://agentmods.dev/skills/ollimakarova/mcp-metro/deploy-mcp-to-remote-server"><img src="https://agentmods.dev/badge/skills/ollimakarova/mcp-metro/deploy-mcp-to-remote-server/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/ollimakarova/mcp-metro/deploy-mcp-to-remote-server"><img src="https://agentmods.dev/badge/skills/ollimakarova/mcp-metro/deploy-mcp-to-remote-server.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00096 | $0.03242 |
| Opus 5 | $0.00048 | $0.01621 |
| Sonnet 5 | $0.00019 | $0.00648 |
| Haiku 4.5 | $0.00010 | $0.00324 |
Grade A, and why
deploy-mcp-to-remote-server scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 165 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Deploy an fa-mcp-sdk MCP server to a remote server (self-contained systemd Docker)
Project-agnostic skill: nothing here is hard-coded to a particular project, server or domain.
The service/container name is derived from the host project's package.json name and the node
version from its .envrc; everything else comes from the config/ files. Copy this whole skill
folder into another fa-mcp-sdk project, fill in config/*.yaml, and it works.
Almost everything is done by scripts. Your job: pick the right subcommand, run it, and report the output to the user clearly (in the user's language). Do not hand-craft SSH or docker commands — the orchestrator encapsulates them.
The one command you run
node .claude/skills/deploy-mcp-to-remote-server/scripts/remote.cjs <subcommand>
| User intent | Subcommand | What it does |
|---|---|---|
| create deploy key / no key | keygen |
Generate a read-only GitHub Deploy Key and print the public part with instructions. |
| deploy / roll out | deploy |
Build the image on the server (context-less) and (re)create the container; wire up the reverse proxy (Caddy or nginx). |
| status / diagnostics | status |
Container, app service, git head, local + public /health, cron, last update log, reverse-proxy vhost. |
| stop | stop |
Stop the container (the in-container auto-update stops with it). |
| start | start |
Start the container again. |
| restart | restart |
Restart just the app service inside the container (fast, no rebuild). |
| change config only / push local.yaml, config.yml | push-config |
Copy the skill's config/local.yaml and config.yml into the running container and restart the app service. Nothing is rebuilt, git is not touched. --container restarts the whole container instead; --no-restart only pushes. Skips the restart when both files are already identical. |
| update now | update |
Run update.cjs --force inside the container (immediate rebuild from the branch). |
| logs | logs [N] |
Last N app-service journal lines (default 200). |
| bootstrap/build logs | bootlog [N] |
Last N first-boot (clone/build) journal lines — use when a fresh deploy is still building. |
| auto-update log / errors | updatelog [N] |
Last auto-update verdict (SUCCESS/FAIL), an [ERROR] scan, and the last update-run log. Use to check whether the once-a-minute rebuild is succeeding or failing. |
| shell into container | shell |
Open an interactive bash shell inside the container. |
| run a command inside | exec -- <cmd> |
Run an arbitrary command inside the container (runs from /; node is at /usr/local/bin/node). |
| uninstall / remove from server | uninstall --yes |
Remove container, image, volume and the reverse-proxy vhost (Caddy block or nginx site). Destructive — needs --yes. |
| raw ssh access | ssh |
Print the ssh command for manual login. |
What ships with it
8 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 165 lines · 96 tokens per session scan A 9126cdf51c78
deploy-mcp-to-remote-server is a skill published in the GitHub repository OlliMakarova/mcp-metro (0 stars, last pushed 1mo ago), licensed MIT. It adds 96 tokens to every session and 3,242 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
azd-deployment
Deploy containerized frontend + backend applications to Azure Container Apps with remote builds, managed identity, and idempotent infrastructure.
openshell-cli
Guide agents through using the OpenShell CLI (openshell) for sandbox management, gateway registration, provider configuration and refresh, policy iteration, settings, service exposure, BYOC workflows, and attached-provider inference. Covers basic through advanced multi-step workflows. Trigger keywords - openshell…
langbot-deploy
Deploy and configure a LangBot instance — Docker / Docker Compose, Kubernetes, the config.yaml model, the Box sandbox runtime, the plugin runtime, and the global API key. Use when installing, deploying, upgrading, or configuring LangBot in production or self-hosted environments. Triggers on "deploy langbot", "langbot…
compute-env-setup
Set up a compute environment on a remote provider so Claude Science jobs can run there. Covers direct SSH/conda hosts, Slurm clusters, container-via-bridge runners, and managed-API providers (Modal, GCP, RunPod). Use when standing up a new provider, porting an env to a different backend, adding a tool that needs its…
azure-cloud-migrate
Assess and migrate cross-cloud workloads to Azure with reports and code conversion. Supports Lambda→Functions, Beanstalk/Heroku/App Engine→App Service, Fargate/Kubernetes/Cloud Run/Spring Boot→Container Apps. WHEN: migrate Lambda to Functions, AWS to Azure, migrate Beanstalk, migrate Heroku, migrate App Engine, Cloud…
atmos-helmfile
Helmfile orchestration: sync/apply/destroy/diff, Kubernetes deployments, varfile generation, EKS integration, source management.