logs · service_runtime · deployment_events
Debug a 502 from the logs
Why is checkout returning 502s?
Reads the API's logs and pod restarts, and lines the errors up against the last rollout's events before it suggests anything.
AI AGENTS / MCP SERVER, CLI AND TERRAFORM
Hakopod ships an MCP server, so Claude Code, Cursor or any MCP client can read your logs, find which commit is live, plan a fix, deploy it and roll it back. Each key covers one project and environment, expires, and does only what you allow.
Ships in every open-source (Apache-2.0) self-hosted release. Releases are evaluation alphas, and the HTTP endpoint isn't offered on shared Hakopod Cloud.
Add hakopod mcp to your MCP client's config. It speaks MCP
over stdio, so Claude Code, Cursor and any other MCP client start it like
a local server and get Hakopod's tools.
Self-hosted installs also serve Streamable HTTP MCP at
/api/v1/mcp, authenticated with a static bearer key, for
agents that can't run a local process.
curl | sh or npm.
Windows works through npm.
hakopod login and approve one project
and environment.
.mcp.json entry into your project
and ask your agent what's running.
{
"mcpServers": {
"hakopod": {
"command": "hakopod",
"args": ["mcp", "--project", "demo", "--environment", "development"]
}
}
} # Linux or macOS. On Windows: npm i -g @hakopod/cli
curl -fsSL https://hakopod.com/scripts/cli.sh | sh
# Approve one project and environment in your browser
hakopod login --api-url https://control.example.com \
--project demo --environment development
Out of the box, an agent can read everything it needs to diagnose a
problem and plan a change, and nothing else. Every action that changes
something sits behind a flag you add to the hakopod mcp
command.
applications, application List apps, then read one app's service health, jobs and replicas. services, service Service configuration, health and the image-to-commit build mapping. service_runtime Pods, readiness, restarts, events, and CPU and memory use. logs Live logs plus stored history that survives restarts and rollouts. provenance Which Git commit and CI run built each running image digest. deployment, deployment_events A rollout, its events and how it recovered. domains Custom-domain routing, ownership checks and target hostnames. plan Validate a config change and return the diff. Never deploys. detect_framework Suggest a build recipe from package.json and lockfile names. api_operations, api_call Browse and call the API contract. Read-only unless you add --allow-write. --allow-deploy Deploy a reviewed plan, cancel a rollout, roll back to an earlier release. --allow-write Write through api_call across the generic API operations. --allow-sql Read-only SQL on managed databases, capped at 20 s, 1,000 rows and 1 MiB. --allow-sql-write SQL writes, on top of --allow-sql and a separately approved write grant. --allow-exec Run a command in a pod, with a 20 s limit. --allow-terminal Open an interactive container terminal, together with --allow-exec. --allow-credentials Read resource credentials when the key holds that grant too. --installation --allow-admin A separate installation-wide connection for admin operations and host terminals. The key needs the matching permission as well. A flag on its own grants nothing.
Ask in plain words and the agent picks the tools. These are example prompts, not recorded sessions; the answers depend on your apps and the access you grant.
logs · service_runtime · deployment_events
Why is checkout returning 502s?
Reads the API's logs and pod restarts, and lines the errors up against the last rollout's events before it suggests anything.
provenance · services
What commit is running in production right now?
Maps each running image digest to the Git commit and CI run that built it. Unknown commits come back as unknown, never as a guess.
plan · deploy · needs --allow-deploy
Point DATABASE_URL at the new primary and deploy it.
Writes the change, gets back a diff you can read, and deploys that exact plan once you say go. Then it follows the rollout to the end.
rollback · needs --allow-deploy
The 14:05 deploy broke sign-in. Roll it back.
Returns the app to any earlier successful release. Database migrations aren't reversed, so the agent should check those with you.
database_query · needs --allow-sql
How many orders failed in the last hour?
Runs read-only SQL against your managed PostgreSQL, capped at 20 seconds, 1,000 rows and 1 MiB, and answers from the result.
Dashboard button
Copy fix prompt
On a failing deploy or a security advisory, one click copies a brief you paste into Claude Code, Cursor or any coding agent.
It's as safe as the key you hand it, and Hakopod keys are narrow. Each one is scoped to a single project and environment, expires, lists its permissions and can be revoked at any time.
How Hakopod handles security ↗A project key is bound to a single project and environment. Installation admin is a separate, explicit connection.
Keys carry an expiry and an explicit permission list, and you can revoke one at any time.
A write needs both the MCP flag and the matching permission on the key. A flag never widens a key.
The admin wildcard doesn't grant pod exec or SQL. Audit keeps a hash of each command that runs.
Login, MFA and OAuth consent stay human-only, so an agent can't approve its own access.
The agent talks to Hakopod's API. It never receives Kubernetes credentials.
About 282 of Hakopod's 329 API operations. The ones left out include login, MFA and OAuth consent, which stay human-only.
Your installation publishes the contract at
/api/v1/openapi.json. Agents list operations with
api_operations, scripts use hakopod api operations
and hakopod api call, and each listing shows the permission
an operation needs before you call it. Admin operations need a separate
--installation --allow-admin connection.
Yes. The same API sits behind a CLI, a Terraform provider and a GitHub Action, so scripts and pipelines can do what your agent does.
CLI / LINUX, MACOS, WINDOWS
Install with curl | sh or npm i -g @hakopod/cli. It covers the whole loop, from init to managed-database
create, resize, switchover, import, restore and query.
login init validate plan deploy --dir status rollback cancel resume logs --follow terminal exec services networks projects nodes keys audit certificates database previews api mcp TERRAFORM REGISTRY / V0.1.1
Declare projects, virtual networks, applications and secrets with four
resources: hakopod_project,
hakopod_virtual_network, hakopod_application
and hakopod_secret. terraform plan shows the change;
apply deploys it as one revision.
GITHUB MARKETPLACE
Deploy from a workflow with hakopod/deploy@v1 and an expiring
CI key stored in your repository secrets. Builds run in your own GitHub
Actions or GitLab CI, never on the Hakopod API host.
Connect with the default tools, ask your agent what's running and why
it broke, and add --allow-deploy once you trust the answers.