Inspect and control your Northflank projects, services, jobs, and builds from your AI assistant.
Call this server's tools from your browser. Nothing to install.
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.
Get details and status of a single addon. GET /v1/projects/{projectId}/addons/{addonId}.
Addon id (from northflank_list_addons).
Project id.
Get details and status of a single addon. GET /v1/projects/{projectId}/addons/{addonId}.
| Argument | Type | Description |
|---|---|---|
| addonId* | string | Addon id (from northflank_list_addons). |
| projectId* | string | Project id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"addonId"
],
"properties": {
"addonId": {
"type": "string",
"description": "Addon id (from northflank_list_addons)."
},
"projectId": {
"type": "string",
"description": "Project id."
}
}
}Get details of a single job, including build/deploy config and cron schedule. GET /v1/projects/{projectId}/jobs/{jobId}.
| Argument | Type | Description |
|---|---|---|
| jobId* | string | Job id (from northflank_list_jobs). |
| projectId* | string | Project id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"jobId"
],
"properties": {
"jobId": {
"type": "string",
"description": "Job id (from northflank_list_jobs)."
},
"projectId": {
"type": "string",
"description": "Project id."
}
}
}Get details of a single project, including region, cluster and associated services/jobs/addons. GET /v1/projects/{projectId}.
| Argument | Type | Description |
|---|---|---|
| projectId* | string | Project id (from northflank_list_projects). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId"
],
"properties": {
"projectId": {
"type": "string",
"description": "Project id (from northflank_list_projects)."
}
}
}Get details and current status of a single service. GET /v1/projects/{projectId}/services/{serviceId}.
| Argument | Type | Description |
|---|---|---|
| projectId* | string | Project id. |
| serviceId* | string | Service id (from northflank_list_services). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"serviceId"
],
"properties": {
"projectId": {
"type": "string",
"description": "Project id."
},
"serviceId": {
"type": "string",
"description": "Service id (from northflank_list_services)."
}
}
}Get CPU / memory metrics for a service's containers. GET /v1/projects/{projectId}/services/{serviceId}/metrics. Use queryType=single (default) for a current snapshot or queryType=range with duration/startTime/endTime.
| Argument | Type | Description |
|---|---|---|
| time | integer | Point-in-time for queryType=single. |
| endTime | integer | Range end. |
| duration | integer | Range duration in seconds (alternative to startTime/endTime). |
| projectId* | string | Project id. |
| queryType | string | single = point-in-time (default), range = time series. |
| serviceId* | string | Service id. |
| startTime | integer | Range start (unix ms/seconds per API). |
| metricTypes | array | Which metrics to return; defaults to all if omitted. |
List addons (managed databases / services) in a project with their status. GET /v1/projects/{projectId}/addons.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number to access. |
| cursor | string | Cursor from a previous page's pagination.cursor to fetch the next page. |
| per_page | integer | Results per page (max 100). |
| projectId* | string | Project id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId"
],
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number to access.",
"exclusiveMinimum": 0
},
"cursor": {
"type": "string",
"description": "Cursor from a previous page's pagination.cursor to fetch the next page."
},
"per_page": {
"type": "integer",
"maximum": 100,
"description": "Results per page (max 100).",
"exclusiveMinimum": 0
},
"projectId": {
"type": "string",
"description": "Project id."
}
}
}List custom domains for the account (or a team), with verification status. GET /v1/domains (team: GET /v1/teams/{teamId}/domains).
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number to access. |
| cursor | string | Cursor from a previous page's pagination.cursor to fetch the next page. |
| teamId | string | Optional team id to scope to a team's domains. |
| per_page | integer | Results per page (max 100). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number to access.",
"exclusiveMinimum": 0
},
"cursor": {
"type": "string",
"description": "Cursor from a previous page's pagination.cursor to fetch the next page."
},
"teamId": {
"type": "string",
"description": "Optional team id to scope to a team's domains."
},
"per_page": {
"type": "integer",
"maximum": 100,
"description": "Results per page (max 100).",
"exclusiveMinimum": 0
}
}
}List jobs (manual / cron) in a project. GET /v1/projects/{projectId}/jobs.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number to access. |
| cursor | string | Cursor from a previous page's pagination.cursor to fetch the next page. |
| per_page | integer | Results per page (max 100). |
| projectId* | string | Project id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId"
],
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number to access.",
"exclusiveMinimum": 0
},
"cursor": {
"type": "string",
"description": "Cursor from a previous page's pagination.cursor to fetch the next page."
},
"per_page": {
"type": "integer",
"maximum": 100,
"description": "Results per page (max 100).",
"exclusiveMinimum": 0
},
"projectId": {
"type": "string",
"description": "Project id."
}
}
}List projects for the authenticated token (or a specific team). Good first call to discover project ids. GET /v1/projects (team: GET /v1/teams/{teamId}/projects).
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number to access. |
| cursor | string | Cursor from a previous page's pagination.cursor to fetch the next page. |
| teamId | string | Optional team id to scope to a team's projects. |
| per_page | integer | Results per page (max 100). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number to access.",
"exclusiveMinimum": 0
},
"cursor": {
"type": "string",
"description": "Cursor from a previous page's pagination.cursor to fetch the next page."
},
"teamId": {
"type": "string",
"description": "Optional team id to scope to a team's projects."
},
"per_page": {
"type": "integer",
"maximum": 100,
"description": "Results per page (max 100).",
"exclusiveMinimum": 0
}
}
}List a project's secret groups — METADATA ONLY (id, name, type, priority, restrictions). Does NOT return secret values. GET /v1/projects/{projectId}/secrets.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number to access. |
| cursor | string | Cursor from a previous page's pagination.cursor to fetch the next page. |
| per_page | integer | Results per page (max 100). |
| projectId* | string | Project id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId"
],
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number to access.",
"exclusiveMinimum": 0
},
"cursor": {
"type": "string",
"description": "Cursor from a previous page's pagination.cursor to fetch the next page."
},
"per_page": {
"type": "integer",
"maximum": 100,
"description": "Results per page (max 100).",
"exclusiveMinimum": 0
},
"projectId": {
"type": "string",
"description": "Project id."
}
}
}List a build service's build runs / history (branch, sha, status, timestamps). GET /v1/projects/{projectId}/services/{serviceId}/build.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number to access. |
| cursor | string | Cursor from a previous page's pagination.cursor to fetch the next page. |
| per_page | integer | Results per page (max 100). |
| projectId* | string | Project id. |
| serviceId* | string | Service id of a build/combined service. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"serviceId"
],
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number to access.",
"exclusiveMinimum": 0
},
"cursor": {
"type": "string",
"description": "Cursor from a previous page's pagination.cursor to fetch the next page."
},
"per_page": {
"type": "integer",
"maximum": 100,
"description": "Results per page (max 100).",
"exclusiveMinimum": 0
},
"projectId": {
"type": "string",
"description": "Project id."
},
"serviceId": {
"type": "string",
"description": "Service id of a build/combined service."
}
}
}List services in a project (build / deployment / combined) with their build+deployment status. GET /v1/projects/{projectId}/services.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number to access. |
| cursor | string | Cursor from a previous page's pagination.cursor to fetch the next page. |
| per_page | integer | Results per page (max 100). |
| projectId* | string | Project id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId"
],
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number to access.",
"exclusiveMinimum": 0
},
"cursor": {
"type": "string",
"description": "Cursor from a previous page's pagination.cursor to fetch the next page."
},
"per_page": {
"type": "integer",
"maximum": 100,
"description": "Results per page (max 100).",
"exclusiveMinimum": 0
},
"projectId": {
"type": "string",
"description": "Project id."
}
}
}MUTATING: pause a service, scaling it to zero running instances. POST /v1/projects/{projectId}/services/{serviceId}/pause.
| Argument | Type | Description |
|---|---|---|
| projectId* | string | Project id. |
| serviceId* | string | Service id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"serviceId"
],
"properties": {
"projectId": {
"type": "string",
"description": "Project id."
},
"serviceId": {
"type": "string",
"description": "Service id."
}
}
}MUTATING: restart all running containers of a service. POST /v1/projects/{projectId}/services/{serviceId}/restart.
| Argument | Type | Description |
|---|---|---|
| projectId* | string | Project id. |
| serviceId* | string | Service id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"serviceId"
],
"properties": {
"projectId": {
"type": "string",
"description": "Project id."
},
"serviceId": {
"type": "string",
"description": "Service id."
}
}
}MUTATING: resume a paused service. Optionally set the instance count and CI/CD/autoscaling state to restore. POST /v1/projects/{projectId}/services/{serviceId}/resume.
| Argument | Type | Description |
|---|---|---|
| instances | integer | Instances to scale to on resume. |
| projectId* | string | Project id. |
| serviceId* | string | Service id. |
| disabledCD | boolean | Whether CD should be disabled after resume. |
| disabledCI | boolean | Whether CI should be disabled after resume. |
| enableAutoscaling | boolean | Restore autoscaling (defaults to the state captured when paused). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"serviceId"
],
"properties": {
"instances": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Instances to scale to on resume."
},
"projectId": {
"type": "string",
"description": "Project id."
},
"serviceId": {
"type": "string",
"description": "Service id."
},
"disabledCD": {
"type": "boolean",
"description": "Whether CD should be disabled after resume."
},
"disabledCI": {
"type": "boolean",
"description": "Whether CI should be disabled after resume."
},
"enableAutoscaling": {
"type": "boolean",
"description": "Restore autoscaling (defaults to the state captured when paused)."
}
}
}MUTATING: set the number of running instances (replicas) for a service. POST /v1/projects/{projectId}/services/{serviceId}/scale.
| Argument | Type | Description |
|---|---|---|
| instances* | integer | Desired number of instances / replicas. |
| projectId* | string | Project id. |
| serviceId* | string | Service id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"serviceId",
"instances"
],
"properties": {
"instances": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Desired number of instances / replicas."
},
"projectId": {
"type": "string",
"description": "Project id."
},
"serviceId": {
"type": "string",
"description": "Service id."
}
}
}MUTATING: start a new build for a build/combined service. With an empty body it builds the latest commit on the linked branch; optionally target a branch, a specific commit sha, or a pull request. POST /v1/projects/{projectId}/services/{serviceId}/build.
| Argument | Type | Description |
|---|---|---|
| sha | string | Specific commit SHA to build from the branch. |
| branch | string | Branch to build (defaults to the service's linked branch). |
| projectId* | string | Project id. |
| serviceId* | string | Build/combined service id. |
| pullRequestId | string | Build the latest commit of this pull request's branch. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"serviceId"
],
"properties": {
"sha": {
"type": "string",
"description": "Specific commit SHA to build from the branch."
},
"branch": {
"type": "string",
"description": "Branch to build (defaults to the service's linked branch)."
},
"projectId": {
"type": "string",
"description": "Project id."
},
"serviceId": {
"type": "string",
"description": "Build/combined service id."
},
"pullRequestId": {
"type": "string",
"description": "Build the latest commit of this pull request's branch."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"serviceId"
],
"properties": {
"time": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Point-in-time for queryType=single."
},
"endTime": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Range end."
},
"duration": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Range duration in seconds (alternative to startTime/endTime).",
"exclusiveMinimum": 0
},
"projectId": {
"type": "string",
"description": "Project id."
},
"queryType": {
"enum": [
"single",
"range"
],
"type": "string",
"description": "single = point-in-time (default), range = time series."
},
"serviceId": {
"type": "string",
"description": "Service id."
},
"startTime": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Range start (unix ms/seconds per API)."
},
"metricTypes": {
"type": "array",
"items": {
"enum": [
"cpu",
"memory"
],
"type": "string"
},
"description": "Which metrics to return; defaults to all if omitted."
}
}
}