Set up with your agent
Your coding agent already knows your project: its routes, its deploy config, its cron jobs. Connect it to Pingwell and it can read the project, propose the monitoring that fits, create it once you agree, and add the heartbeat pings to your code.
Open your project in the agent and say:
Set up Pingwell for this project.
Connect your agent
Every client connects to the same server:
https://mcp.pingwell.dev/mcp
The first time, your browser opens Pingwell. Sign in, or create an account, pick the workspace the agent may manage, or create a new one, and approve. The agent gets access to that one workspace and nothing else.
Claude Code
claude mcp add --transport http pingwell https://mcp.pingwell.dev/mcp
Then run /mcp in Claude Code and choose pingwell to sign in.
Cursor
Add Pingwell to Cursor, or add it to .cursor/mcp.json yourself:
{
"mcpServers": {
"pingwell": { "url": "https://mcp.pingwell.dev/mcp" }
}
}
Claude and Claude Desktop
Open Settings → Connectors → Add custom connector, name it Pingwell and paste the server URL.
ChatGPT
With developer mode on, open Settings → Connectors → Create, name it Pingwell and paste the server URL. ChatGPT signs in through the same approval screen.
CI and headless agents
An agent that cannot open a browser uses a workspace API key instead. Create one under Settings → API keys and send it as a bearer token:
claude mcp add --transport http pingwell https://mcp.pingwell.dev/mcp \
--header "Authorization: Bearer $PINGWELL_API_KEY"
An API key acts as an admin of its workspace. Keep it in your secret store, never in the repository.
What happens during a setup
- It reads the workspace. The agent learns your plan, what it allows and what already exists, so it never proposes something the plan refuses.
- It reads the project. Health routes and the production URL become monitors. Scheduled jobs (Vercel crons, GitHub Actions schedules, crontab, node-cron, Celery beat, Sidekiq-cron, Kubernetes CronJobs, systemd timers, the Laravel scheduler) become heartbeats.
- It proposes. You see each monitor, heartbeat, status page and alert channel before anything is created. Change what you like.
- It creates. Through the same API the panel uses, with the same validation and plan limits.
- It wires the pings. Each job gets a request to its ping URL at the end of a successful run. The URL comes from an environment variable, and the agent tells you where to set it.
- It handles your domain. On Pro and Unlimited, the agent sets your status page’s custom domain and gives you the two DNS records. If it can also reach your DNS provider, through a Cloudflare or other DNS MCP server, it creates them and waits until the domain is live.
Nothing is deleted without you. A delete returns a link you open in Pingwell to confirm it.
The setup skill
Agents that support skills set up better with ours. It lists where each framework keeps its schedules, gives ping snippets for each stack, and keeps credentials out of your code. For Claude Code:
mkdir -p .claude/skills/pingwell-setup
curl -fsSL https://pingwell.dev/agent/SKILL.md -o .claude/skills/pingwell-setup/SKILL.md
Other agents can read the same file at pingwell.dev/agent/SKILL.md. The whole documentation is also available as plain text for agents at /llms-full.txt.
Revoke access
Every connected agent is listed under Settings → Connected agents, with when it last acted. Revoking one ends its access at once. Removing a person from the workspace also ends the access of every agent they connected.