Hosting for AI agents: your AI client deploys Docker apps to live HTTPS URLs over MCP.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Your Fiskmas API token (the raw token; a 'Bearer ' prefix is also accepted). Create a free account at https://fiskmas.dev - the same token is your docker login for registry.fiskmas.dev.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Poll onboarding state for an email (pending | active | unknown). Use after create_account while waiting for the human to verify.
Poll onboarding state for an email (pending | active | unknown). Use after create_account while waiting for the human to verify.
| Argument | Type | Description |
|---|---|---|
| email* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"email"
],
"properties": {
"email": {
"type": "string"
}
},
"additionalProperties": false
}Start onboarding: require an email, create a pending account, and email a human verify link. Does NOT return an API token. The human must click the link; the verify page shows the token once. Then configure Authorization: Bearer <token> on this MCP client (also docker login -u <token> registry.fiskmas.dev). If you already have a token, call whoami instead.
| Argument | Type | Description |
|---|---|---|
| email* | string | |
| display_name | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"email"
],
"properties": {
"email": {
"type": "string"
},
"display_name": {
"type": "string"
}
},
"additionalProperties": false
}Create a project and reserve <slug>-app.fiskmas.dev. Slug must match ^[a-z0-9][a-z0-9-]{1,48}$ and is not reserved. Subject to the plan's running-project quota (Free: 1, Plus: 5) — on quota the error tells the human how to upgrade or free a slot.
| Argument | Type | Description |
|---|---|---|
| name | string | |
| slug | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"name": {
"type": "string"
},
"slug": {
"type": "string"
}
},
"additionalProperties": false
}Delete the caller's account. Stops and removes all projects (containers, routes, MariaDB) first, then deletes the account. Refuses to leave orphaned runtimes.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Stop and delete a project. Its slug goes into quarantine for 7 days: you may re-use it immediately, other accounts get a 409 until it is freed.
| Argument | Type | Description |
|---|---|---|
| project | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"project": {
"type": "string"
}
},
"additionalProperties": false
}Pull an image by digest and run one container with the plan's cpu/memory caps (Free: 256 MB / 0.2 CPU, Plus: 512 MB / 1 CPU). Only registry.fiskmas.dev images are accepted. Rate-limited to 1 deploy per 5 minutes per account (429 with a retry-seconds hint); use restart_project for a transient crash - it does not count against the limit. Re-deploying a running project is always allowed; starting a second one on Free is blocked until one stops.
| Argument | Type | Description |
|---|---|---|
| image | string | |
| project | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"image": {
"type": "string"
},
"project": {
"type": "string"
}
},
"additionalProperties": false
}Return recent container log lines. `tail` = line count (plan default 200; plan max 2000), `since` = time window in seconds (plan window: free 24 h, plus 7 d — logs are live-pod streams, not stored history). When both are given, `since` wins.
| Argument | Type | Description |
|---|---|---|
| tail | number | |
| since | number | |
| project | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"tail": {
"type": "number"
},
"since": {
"type": "number"
},
"project": {
"type": "string"
}
},
"additionalProperties": false
}Fetch a single project by id or slug.
| Argument | Type | Description |
|---|---|---|
| project | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"project": {
"type": "string"
}
},
"additionalProperties": false
}Return the bytes of a platform skill by name.
| Argument | Type | Description |
|---|---|---|
| name | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"name": {
"type": "string"
}
},
"additionalProperties": false
}Account-wide or per-project stats for debugging: live CPU/mem vs the plan caps (Free: 256 MB / 0.2 CPU, Plus: 512 MB / 1 CPU) and deploy history. Omit `project` for all of the caller's projects; pass a project id or slug NaNalso returns `resources.history` — per-project CPU/mem time series over the window (sampled every ~30 s on the k3s platform; absent on stacks without the metrics collector).
| Argument | Type | Description |
|---|---|---|
| since | number | |
| project | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"since": {
"type": "number"
},
"project": {
"type": "string"
}
},
"additionalProperties": false
}Return project status, url, image digest, and last deploy error.
| Argument | Type | Description |
|---|---|---|
| project | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"project": {
"type": "string"
}
},
"additionalProperties": false
}List a project's env keys with masked values (never returns full secrets).
| Argument | Type | Description |
|---|---|---|
| project | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"project": {
"type": "string"
}
},
"additionalProperties": false
}List the caller's projects with status and URL.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}List the platform skills available to the caller.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Re-issue the API token for an existing account. Provide the email the account was registered with; Fiskmås emails a fresh one-time verify link to that address. The human clicks it; the verify page shows the new token once (old tokens are revoked immediately). This is the self-service recovery path when a token was lost, rotated, or is being rejected as "invalid or expired". It does not create a new account — for a brand-new account use create_account. Rate-limited: a few requests per hour per email.
| Argument | Type | Description |
|---|---|---|
| email* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"email"
],
"properties": {
"email": {
"type": "string"
}
},
"additionalProperties": false
}Restart a running project's container. Recreates the pod, re-running the injected-DB resolver gate and the app's storage probes, and waits for readiness: a failed start returns a named error (e.g. an unresolvable DB host) and a plain retry usually clears a transient DNS drop. Not rate-limited. Env changes are NOT picked up by a restart - redeploy instead.
| Argument | Type | Description |
|---|---|---|
| project | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"project": {
"type": "string"
}
},
"additionalProperties": false
}Report a problem with the Fiskmås toolset so it can be fixed. Use it when a tool errored or misbehaved, you got stuck and can't proceed, or the instructions/skill were unclear. Do NOT use it for praise. kind=bug means it broke, kind=suggestion means it was unclear or could be better, kind=other is anything else that didn't work. Name the `tool` and, if relevant, the `project`. At most one call per session.
| Argument | Type | Description |
|---|---|---|
| kind* | string | |
| tool | string | |
| message* | string | |
| project | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"message",
"kind"
],
"properties": {
"kind": {
"type": "string"
},
"tool": {
"type": "string"
},
"message": {
"type": "string"
},
"project": {
"type": "string"
}
},
"additionalProperties": false
}Set environment variables on a project. They take effect on the next deploy_project: a restart does NOT re-apply env.
| Argument | Type | Description |
|---|---|---|
| env | object | |
| project | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"env": {
"type": "object",
"additionalProperties": {}
},
"project": {
"type": "string"
}
},
"additionalProperties": false
}Start a stopped project's container. Waits until it is ready; a pod that fails to become ready returns a named error.
| Argument | Type | Description |
|---|---|---|
| project | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"project": {
"type": "string"
}
},
"additionalProperties": false
}Stop a running project's container (keep the image).
| Argument | Type | Description |
|---|---|---|
| project | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"project": {
"type": "string"
}
},
"additionalProperties": false
}Return the identity of the current token holder (account + provider) plus its subscription plan (free | plus) and the plan's limits: max running projects, per-project memory/CPU caps, log windows, and the project-database fair-use guide. Free plans include an upgrade_url for Plus ($9.99/mo: 5 projects, 512 MB / 1 CPU per project, always-on).
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}