Skip to main content
Glama

Northflank MCP by usefulapi

Server Details

Inspect and control your Northflank projects, services, jobs, and builds from your AI assistant.

Ownership verified
Status
Healthy
Uptime
76.8% over 73 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

TDQS

A3.7/5.0

Scored across 17 tools

Disambiguation5/5

Every tool pairs a distinct resource with a distinct action (get_service vs get_service_metrics vs list_service_builds vs trigger_service_build), and the service-lifecycle verbs (pause/resume/restart/scale) are clearly differentiated.

Naming Consistency5/5

All 17 tools follow a uniform northflank_verb_noun snake_case pattern with consistent verb choices (get_/list_/pause_/resume_/restart_/scale_/trigger_).

Tool Count4/5

17 tools is slightly heavy but justified by the broad PaaS domain (projects, services, jobs, addons, domains, secrets), and each tool targets a distinct resource rather than redundant variants.

Completeness3/5

Read coverage is broad, but the set is nearly read-only plus a handful of service mutations; there is no create/update/delete for projects, services, jobs, or addons, and secret/domain operations are list-only, leaving notable provisioning and teardown gaps.

Available Tools

17 tools
northflank_get_addonGet addonB
Read-only
Inspect

Get details and status of a single addon. GET /v1/projects/{projectId}/addons/{addonId}.

NameRequiredDescriptionDefault
addonIdYesAddon id (from northflank_list_addons).
projectIdYesProject id.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already tells the agent this is a safe, non-mutating read, and the description adds no behavioral context beyond restating that it fetches one resource. No mention of permissions, error behavior when the addon is missing, or what 'status' entails. It at least does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, with the purpose stated first and the endpoint path appended as a secondary detail. Nothing needs trimming.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read tool with full schema coverage this is close to adequate, but with no output schema the description should say more about what 'details and status' returns. As written, an agent knows what it fetches but not what shape to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: addonId documents its source (northflank_list_addons) and projectId is described. The description adds no format or constraint detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get') and resource ('addon') with scope narrowed to a single item, which separates it from the list-style siblings such as northflank_list_addons. It does not explicitly contrast itself with the other northflank_get_* tools, but the resource noun is distinctive enough that an agent can route correctly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use guidance, no prerequisites, and never names an alternative tool. The most useful hint, that addonId comes from northflank_list_addons, lives only in the schema, not the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

northflank_get_jobGet jobA
Read-only
Inspect

Get details of a single job, including build/deploy config and cron schedule. GET /v1/projects/{projectId}/jobs/{jobId}.

NameRequiredDescriptionDefault
jobIdYesJob id (from northflank_list_jobs).
projectIdYesProject id.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already tells the agent this is a safe read. The description adds useful context that the response covers build/deploy config and cron schedule, but says nothing about auth, error behavior for missing jobs, or response shape beyond that summary.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the core purpose front-loaded and no filler; the endpoint is appended as supporting detail rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-param read-only fetch with full schema coverage and readOnlyHint, the description is nearly complete; calling out the returned fields partially compensates for the missing output schema. Only error/not-found behavior is unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already ties jobId back to northflank_list_jobs. The description adds no parameter-level meaning beyond the REST path template GET /v1/projects/{projectId}/jobs/{jobId}, which merely restates the two required params. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get details of a single job') and enumerates the payload contents (build/deploy config, cron schedule). It implicitly contrasts with northflank_list_jobs via 'single job', but never names the alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: fetch details for one job once you have a jobId, as referenced by the parameter description. There is no explicit when-to-use versus northflank_list_jobs or when-not guidance, nor any note about prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

northflank_get_projectGet projectB
Read-only
Inspect

Get details of a single project, including region, cluster and associated services/jobs/addons. GET /v1/projects/{projectId}.

NameRequiredDescriptionDefault
projectIdYesProject id (from northflank_list_projects).

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already establishes this as a safe read, so the description's main added value is enumerating the returned content. It says nothing about permissions required, error behavior for an unknown projectId, or the exact shape/richness of the nested response.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with the resource and its contents front-loaded. The trailing REST endpoint is marginally useful for callers who think in terms of the API, but it is the least valuable part of the definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of describing returns, and it does so by listing region, cluster, and associated services/jobs/addons. That is adequate for a single-parameter read tool, though the nesting and depth of those associated resources is left unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the projectId schema description already points back to northflank_list_projects as the source of the id. The description adds the REST path (GET /v1/projects/{projectId}) but no extra semantics for the parameter, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (get) and resource (a single project) and enumerates what the result contains (region, cluster, associated services/jobs/addons). The word 'single' implicitly separates it from northflank_list_projects, but no sibling is named explicitly, so differentiation is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no exclusion of alternatives, and no mention of when to prefer sibling tools like northflank_get_service or northflank_get_addon instead. The intended scenario is only weakly implied by 'a single project'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

northflank_get_serviceGet serviceA
Read-only
Inspect

Get details and current status of a single service. GET /v1/projects/{projectId}/services/{serviceId}.

NameRequiredDescriptionDefault
projectIdYesProject id.
serviceIdYesService id (from northflank_list_services).

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already establishes this as a safe read. The description adds a little value by noting the return includes 'current status' and by disclosing the underlying REST path, but says nothing about permissions, error cases, or freshness of the status.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, purpose first, endpoint second — zero padding and well front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read tool with full schema coverage and a readOnlyHint, nothing critical is missing; the description plus schema is sufficient to call it correctly. It only lacks guidance on where the ids come from and what the response contains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented, including the pointer that serviceId comes from northflank_list_services. The REST path in the description restates the parameter positions but adds no new semantic detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get') and resource ('details and current status of a single service'), which cleanly separates it from the list_services sibling by scope. It does not name the sibling explicitly, but 'single service' does the disambiguation work.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the description — retrieve one service's details/status — but there is no explicit when-to-use, when-not, or named alternative (e.g., use list_services to find the id first, or get_service_metrics for metrics). The agent must infer routing from the sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

northflank_get_service_metricsGet service metricsA
Read-only
Inspect

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.

NameRequiredDescriptionDefault
timeNoPoint-in-time for queryType=single.
endTimeNoRange end.
durationNoRange duration in seconds (alternative to startTime/endTime).
projectIdYesProject id.
queryTypeNosingle = point-in-time (default), range = time series.
serviceIdYesService id.
startTimeNoRange start (unix ms/seconds per API).
metricTypesNoWhich metrics to return; defaults to all if omitted.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already establishes this as a safe read, lowering the bar. The description contributes the default value of queryType and the parameter family required for range mode, but says nothing about data retention, sampling resolution, rate limits, or auth/scope requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, with purpose followed by usage guidance. The raw REST path GET /v1/projects/{projectId}/services/{serviceId}/metrics is arguably redundant for an MCP caller and is the one element that does not earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description ideally would say what the metrics payload looks like (units, series shape, container grouping), and it does not. Its coverage of inputs and modes is adequate, so it is viable but leaves the return side undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all eight parameters are already documented in the schema, making 3 the baseline. The description restates the queryType modes and their companion parameters but adds no unit clarification (the schema's 'unix ms/seconds per API' ambiguity on time/startTime is left unresolved).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb (Get) and resource (CPU / memory metrics) with explicit scope (a service's containers), which cleanly separates it from sibling readers like northflank_get_service or northflank_get_job. An agent can identify the tool without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete mode-selection guidance: queryType=single (default) for a current snapshot, queryType=range with duration/startTime/endTime for a time series. It does not, however, state when to call this tool versus sibling tools or any prerequisites, so it stops short of full when/when-not coverage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

northflank_list_addonsList addonsB
Read-only
Inspect

List addons (managed databases / services) in a project with their status. GET /v1/projects/{projectId}/addons.

NameRequiredDescriptionDefault
pageNoPage number to access.
cursorNoCursor from a previous page's pagination.cursor to fetch the next page.
per_pageNoResults per page (max 100).
projectIdYesProject id.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true so the safety profile is covered. The description adds the underlying GET endpoint and notes that status is included in results, but says nothing about pagination behavior or result shape beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence of purpose plus the endpoint path, front-loaded with the important scoping information. Nothing is padded or repetitive.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description only hints that results carry a status. For a paginated list endpoint it could note what fields come back, but for a simple read tool this is minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so page, cursor, per_page, and projectId are fully documented in the schema. The description only restates project scoping and adds no syntax or format detail beyond it; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (addons), and clarifies what an addon is ('managed databases / services') while scoping it to a project. It does not explicitly contrast with northflank_list_services, but the parenthetical disambiguates enough to identify it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance and no exclusions or alternatives (e.g., get_addon for a single resource, list_services for non-addon workloads). Usage is only implied by the project scoping.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

northflank_list_domainsList domainsA
Read-only
Inspect

List custom domains for the account (or a team), with verification status. GET /v1/domains (team: GET /v1/teams/{teamId}/domains).

NameRequiredDescriptionDefault
pageNoPage number to access.
cursorNoCursor from a previous page's pagination.cursor to fetch the next page.
teamIdNoOptional team id to scope to a team's domains.
per_pageNoResults per page (max 100).

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds useful context by disclosing that results carry verification status and by naming the underlying REST endpoints, but it says nothing about pagination behavior or ordering beyond what the schema implies.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence states the resource, scope, and returned fields, followed by endpoint paths in parentheses. It is efficient, though the raw endpoint strings are of marginal value to an agent that already has the tool and schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list tool with 100% schema coverage and annotations covering safety, the description is nearly sufficient. It conveys scope and returned content; only richer output/pagination expectations would make it fully complete, and those are minor for a simple list operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (page, cursor, teamId, per_page) are already documented in the schema. The description only restates the account/team scope that teamId covers, adding no new syntax or constraint detail. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List custom domains') plus the scope (account or team) and a bonus detail about returned content ('with verification status'). No sibling covers domains, so an agent can identify this tool's unique purpose immediately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when each scope applies by pairing 'account (or a team)' with the two endpoint variants, which gives some routing signal. However, it never states when not to use this tool or how it relates to any alternative, so usage is only implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

northflank_list_jobsList jobsB
Read-only
Inspect

List jobs (manual / cron) in a project. GET /v1/projects/{projectId}/jobs.

NameRequiredDescriptionDefault
pageNoPage number to access.
cursorNoCursor from a previous page's pagination.cursor to fetch the next page.
per_pageNoResults per page (max 100).
projectIdYesProject id.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already declares this is a safe read, so the description's burden is reduced. It adds the job-type distinction (manual/cron) and the underlying endpoint, but says nothing about pagination behavior despite cursor/page/per_page parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the operation and scope. The trailing HTTP endpoint is mildly redundant but compact and harmless.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a paginated list tool with no output schema, the description covers purpose and safety adequately but is silent on pagination semantics (cursor vs page), which matters for correct invocation. It is minimally viable rather than complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so pagination and projectId parameters are fully documented in the schema. The description's 'in a project' merely restates the projectId requirement and adds no syntax or format detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (jobs), scoped to a project, and clarifies the job subtypes (manual/cron). It is distinguishable from sibling northflank_get_job by being a listing operation, though it does not explicitly call out that contrast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, prerequisites, or alternatives are given. The scoping phrase 'in a project' implies context but nothing directs the agent to this tool over northflank_get_job or other list siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

northflank_list_projectsList projectsA
Read-only
Inspect

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).

NameRequiredDescriptionDefault
pageNoPage number to access.
cursorNoCursor from a previous page's pagination.cursor to fetch the next page.
teamIdNoOptional team id to scope to a team's projects.
per_pageNoResults per page (max 100).

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds real value beyond that: it clarifies that listing is scoped to the authenticated token unless a team is supplied, and exposes the underlying REST routes (with the alternate team path), helping an agent predict behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the core purpose front-loaded before the usage hint and endpoint detail. The raw REST paths are slightly redundant for an MCP caller, but they remain short and are placed last.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless-required, read-only list tool with a fully described schema and no output schema, the definition is nearly complete: it covers scope, purpose and first-call usage. It only omits any hint about the shape of returned project records/pagination, which is a minor gap given cursor and per_page are already in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so page, cursor, per_page and teamId are each documented in the schema, establishing the baseline of 3. The description only restates the team-scoping effect of teamId and adds no format or pagination semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("List projects") plus the scoping variants (authenticated token vs a specific team), which cleanly separates it from the singular northflank_get_project sibling. It does not explicitly distinguish itself from the many other list_* siblings, but the resource name carries that distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Good first call to discover project ids" gives clear situational guidance for when to reach for this tool, and the team-scoping note tells the agent how to narrow results. It stops short of naming the alternative (northflank_get_project) for retrieving a single project, so no explicit when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

northflank_list_secret_groupsList secret groupsA
Read-only
Inspect

List a project's secret groups — METADATA ONLY (id, name, type, priority, restrictions). Does NOT return secret values. GET /v1/projects/{projectId}/secrets.

NameRequiredDescriptionDefault
pageNoPage number to access.
cursorNoCursor from a previous page's pagination.cursor to fetch the next page.
per_pageNoResults per page (max 100).
projectIdYesProject id.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds genuinely useful context beyond that: it returns METADATA ONLY, explicitly does NOT return secret values, and names the underlying endpoint. The 'does not return secret values' disclosure is the kind of expectation-management that matters here and is not in the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the critical constraint (metadata only, no secret values) emphasized in caps, plus the endpoint. Every clause earns its place; nothing redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must describe the return shape — and it does, enumerating the metadata fields (id, name, type, priority, restrictions). Pagination is fully covered by the schema. Nearly complete; it could note ordering but that is minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so page, cursor, per_page, and projectId are all documented in the schema. The description adds no param syntax or format detail beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('a project's secret groups'), scoped to a project, which is enough to distinguish it from the sibling list/get tools for addons, jobs, projects, and services. An agent knows exactly what this returns without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied — you call it to enumerate a project's secret groups — but the description names no alternatives, no prerequisites, and no when-not condition (e.g., to read actual secret values the agent must look elsewhere). Adequate but with a clear gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

northflank_list_service_buildsList service buildsA
Read-only
Inspect

List a build service's build runs / history (branch, sha, status, timestamps). GET /v1/projects/{projectId}/services/{serviceId}/build.

NameRequiredDescriptionDefault
pageNoPage number to access.
cursorNoCursor from a previous page's pagination.cursor to fetch the next page.
per_pageNoResults per page (max 100).
projectIdYesProject id.
serviceIdYesService id of a build/combined service.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description usefully adds the shape of what comes back (branch, sha, status, timestamps) and the underlying GET endpoint, which matters because no output schema exists. It stops short of describing ordering or pagination behavior, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the return content front-loaded and zero filler. The URL template marginally restates the required path parameters but is conventional and cheap.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list tool with no output schema, the description compensates by naming the returned fields, and the annotations carry the safety profile. It is complete enough to call correctly, though it leaves pagination strategy undiscussed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters (page, cursor, per_page, projectId, serviceId) are already documented in the schema. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (List) and resource (a build service's build runs / history) and enumerates the returned fields (branch, sha, status, timestamps), so an agent knows exactly what it produces. It does not explicitly name a sibling like northflank_trigger_service_build to contrast against, which keeps it from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the verb 'List' and the history framing, but there is no explicit when-to-use guidance or contrast with adjacent tools such as northflank_trigger_service_build (start a build) or northflank_get_service. No exclusions or prerequisites are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

northflank_list_servicesList servicesA
Read-only
Inspect

List services in a project (build / deployment / combined) with their build+deployment status. GET /v1/projects/{projectId}/services.

NameRequiredDescriptionDefault
pageNoPage number to access.
cursorNoCursor from a previous page's pagination.cursor to fetch the next page.
per_pageNoResults per page (max 100).
projectIdYesProject id.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already tells the agent this is a safe read. The description adds the concrete endpoint and the fact that results carry build+deployment status, but says nothing about pagination behavior beyond what the schema documents. Adds some value over annotations, hence a 3.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly packed sentences: one states what is listed and returned, the second gives the endpoint. Nothing is wasted and the essential scoping is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list tool with full schema coverage and annotations declaring safety, the description is nearly complete; it even notes the returned status fields. Lacking only an explicit alternative/comparison note to feel fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all four parameters (page, cursor, per_page, projectId) are already described in the schema. The description adds no parameter-level syntax or format detail. Baseline 3 is correct when the schema carries the full burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (services), scopes it to a project, names the service kinds (build/deployment/combined), and describes the returned payload (build+deployment status). This cleanly distinguishes it from the singular northflank_get_service sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the name and scope but the description never says when to prefer this over northflank_get_service or northflank_list_service_builds, nor any prerequisites. Adequate but no explicit routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

northflank_pause_servicePause service (mutates infra)B
Destructive
Inspect

MUTATING: pause a service, scaling it to zero running instances. POST /v1/projects/{projectId}/services/{serviceId}/pause.

NameRequiredDescriptionDefault
projectIdYesProject id.
serviceIdYesService id.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and the title flags infrastructure mutation, so the safety profile is covered. The description adds the specific mechanism (scale to zero instances), which is useful, but says nothing about reversibility, whether configuration/state is preserved, or that resume_service is the inverse. With annotations carrying the main burden, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with the mutation warning and effect front-loaded. The raw endpoint string is somewhat redundant metadata but is not disruptive and gives useful API context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter mutation with no output schema, the essentials are present: mutation warning, behavioral effect, and endpoint. Missing only reversibility/preservation notes, which are minor for this operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for both parameters (projectId, serviceId), so the schema fully documents them. The description only implies them via the endpoint path and adds no format or constraint detail. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (pause) and resource (service), plus the concrete effect of 'scaling it to zero running instances', which distinguishes it from siblings like resume_service, restart_service, and scale_service. It doesn't explicitly name those siblings, so it falls just short of the top score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance and no named alternative. The implicit intent (stop running instances) can be inferred from the effect statement, but the agent gets no criteria for choosing pause over scale_service or restart_service.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

northflank_restart_serviceRestart service (mutates infra)A
Destructive
Inspect

MUTATING: restart all running containers of a service. POST /v1/projects/{projectId}/services/{serviceId}/restart.

NameRequiredDescriptionDefault
projectIdYesProject id.
serviceIdYesService id.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and the title flags 'mutates infra', so the safety profile is covered structurally. The description adds useful scope — that ALL running containers are restarted, not a rolling/partial operation — but says nothing about downtime, async behavior, or whether the operation is safe to repeat.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the mutation warning and the core action, with no filler. The trailing endpoint URL is slightly redundant for an agent that just needs to call the tool, but it is compact and harmless.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-param, no-output-schema, destructive operation, the description covers the action and scope but omits operational context an agent may need — expected downtime, whether the call is synchronous, or any permission prerequisites. Adequate but with clear gaps for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for both required params (projectId, serviceId), so the schema carries parameter documentation. The description adds no parameter-level detail such as accepted ID formats or defaults, which is the expected baseline when the schema already documents everything.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (restart) and resource (all running containers of a service), plus the exact API endpoint. This is clearly distinguishable from siblings like pause_service, resume_service, and scale_service, so an agent can pick it without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it (you want a service's containers restarted) but gives no explicit guidance versus the adjacent operations — e.g. when to restart instead of pause/resume, or whether this is appropriate for zero-downtime scenarios. Usage is inferable but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

northflank_resume_serviceResume service (mutates infra)A
Destructive
Inspect

MUTATING: resume a paused service. Optionally set the instance count and CI/CD/autoscaling state to restore. POST /v1/projects/{projectId}/services/{serviceId}/resume.

NameRequiredDescriptionDefault
instancesNoInstances to scale to on resume.
projectIdYesProject id.
serviceIdYesService id.
disabledCDNoWhether CD should be disabled after resume.
disabledCINoWhether CI should be disabled after resume.
enableAutoscalingNoRestore autoscaling (defaults to the state captured when paused).

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The destructiveHint annotation only flags that mutation occurs; the description adds substantive context: the operation is a resume, the supplied fields restore CI/CD and autoscaling state, and it names the underlying endpoint. It does not spell out permission requirements or side effects on dependent resources, so it stops short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, mutation flag front-loaded, endpoint last. No filler or redundant restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description is not obliged to explain return values, and it covers mutation semantics and optional restore behavior. Missing only the practical caveats (permissions, effect on running workloads) that would make it fully self-sufficient for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each of the six parameters is already documented. The description only summarizes that instance count and CI/CD/autoscaling state can be restored, adding framing but no per-parameter detail beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('resume a paused service') and prefixes it with 'MUTATING' to flag the operation class. An agent can distinguish this from sibling northflank_pause_service without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies usage by specifying that the service must be paused, but offers no explicit when-to-use guidance versus siblings like northflank_restart_service or northflank_scale_service, which also affect running state. Some inference is required to avoid routing errors.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

northflank_scale_serviceScale service (mutates infra)A
Destructive
Inspect

MUTATING: set the number of running instances (replicas) for a service. POST /v1/projects/{projectId}/services/{serviceId}/scale.

NameRequiredDescriptionDefault
instancesYesDesired number of instances / replicas.
projectIdYesProject id.
serviceIdYesService id.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The 'MUTATING' prefix and the endpoint reinforce the mutation, but annotations already declare destructiveHint=true, so the safety profile is covered structurally. The description does not disclose meaningful traits beyond that – e.g., that setting instances to 0 effectively stops the service, whether existing instances are drained gracefully, or whether the change is reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the mutation warning so the risk is the first thing the agent reads. Nothing extraneous; every clause carries signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-required-param mutation with full schema coverage and no output schema, the definition covers purpose and mutation adequately. It misses operationally relevant context such as the consequence of scaling to 0 and any disruption, which would matter for a destructive infra tool, but the destructiveHint annotation partly compensates.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters (projectId, serviceId, instances) are already documented in the schema, and the description adds no syntax, format, or semantic detail beyond restating 'instances/replicas'. Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('set') and resource ('number of running instances (replicas) for a service'), clarifying the exact effect. This clearly distinguishes it from siblings like restart_service, pause_service, and resume_service, which the agent can rule out without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the name and purpose – an agent can infer this is for changing replica count – but there is no explicit when-to-use guidance or mention of alternatives such as pause_service (temporary stop) or restart_service. The absence of any condition distinguishing scaling from those siblings is a real gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

northflank_trigger_service_buildTrigger service build (mutates infra)A
Destructive
Inspect

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.

NameRequiredDescriptionDefault
shaNoSpecific commit SHA to build from the branch.
branchNoBranch to build (defaults to the service's linked branch).
projectIdYesProject id.
serviceIdYesBuild/combined service id.
pullRequestIdNoBuild the latest commit of this pull request's branch.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and the title says it mutates infra, so the safety profile is covered. The description reinforces this with 'MUTATING' and adds useful default behavior (empty body builds the latest commit on the linked branch), but says nothing about whether the build is queued asynchronously, what the response returns, or required permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with the mutating warning front-loaded, followed by the default and override behavior. The trailing REST path is mildly redundant but serves as an orienting detail rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a trigger tool with no output schema, the description covers the default behavior and all optional targeting modes adequately, and annotations carry the destructive signal. It falls short on return-value expectations (e.g., a build id for later polling) and any required authorization context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description goes slightly beyond the schema by framing sha/branch/pullRequestId as optional alternative targeting selectors and explaining that an empty body falls back to the linked branch's latest commit, which clarifies how the optional parameters interact.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'start a new build for a build/combined service', and flags it as MUTATING up front. The action is clearly distinguishable from the sibling lifecycle tools (pause/restart/resume/scale), though no sibling is named explicitly for contrast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: an agent can infer you call this to kick off a build. There is no guidance on when not to use it, no mention of checking existing builds via northflank_list_service_builds first, and no prerequisites or permission notes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.