Skip to main content
Glama

publish_service_package

Destructive

Publish a managed-service package version to this organisation's catalogue from its contract document (the twin of ankra services packages publish), so the services one of the organisation's own stack profiles deploys can be set up from the catalogue and connected to applications. Build the document as schema_version 2: name (a DNS label), version (semantic version), publisher_id and profiles.customer from get_service_profile_pin, capability (one of logs, metrics, traces, database, cache, queue, search or object_storage), parameters, secrets and outputs (each an array, may be empty), lifecycle (verify, upgrade, recovery and delete set to stack-profile-verify, stack-profile-upgrade, stack-profile-recovery and stack-profile-delete), and connection: the wire protocol consumers speak (postgres, redis, nats, opensearch, s3, victorialogs or victoriametrics), the engine's Service and port in the instance namespace as endpoints[0] (name primary, with the protocol's URL scheme), the Secret holding its credentials as secret_name and secret_keys, and in fields where each of the protocol's connection fields comes from (kind secret_key with the key, literal with the value, or primary_host / primary_address with no value). Read the profile's manifests or a running instance (get_services, get_secrets) for the Service, port and Secret rather than guessing them. A refused document answers with the path that failed; fix that part and publish again. A published version cannot change: the same name and version with identical content returns it, different content is refused, so a change needs a new version. Publishing makes the package available to set up here; it does not make Ankra operate or qualify it. Requires profiles.write.

Input Schema

NameRequiredDescriptionDefault
packageYesThe package contract document as a JSON object (schema_version 2), at most 256 KiB.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.3/5.0
Behavior4/5

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

Discloses behavior well beyond the annotations: the required permission (profiles.write), the error contract ('a refused document answers with the path that failed'), immutability ('a published version cannot change... different content is refused, so a change needs a new version') and a scope limit (it does not make Ankra operate or qualify it). The immutability statement sits in mild tension with idempotentHint=false, but this is a hint-level nuance rather than a hard contradiction.

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

Conciseness3/5

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

Front-loaded with purpose and every clause is substantive, but the whole thing is one dense run-on paragraph mixing document schema, error handling, immutability and permissions; bulleted or line-broken structure would make the field-by-field contract far easier to consume.

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 complex, nested-schema mutation with no output schema the description is nearly complete: document shape, error behavior, immutability and permissions are all present. It never states what a successful publish returns, which is the one remaining gap since there is no output schema to fall back on.

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

Parameters5/5

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

The single parameter is fully covered by the schema but only trivially described there ('the package contract document... at most 256 KiB'). The description supplies the entire semantic payload: schema_version 2, required fields, the capability and connection protocol enumerations, endpoints/secret_name/secret_keys shape and the secret_key/literal/primary_host field kinds.

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 ('Publish a managed-service package version to this organisation's catalogue from its contract document') and even anchors it to the CLI twin, so an agent can distinguish it from get_service_package / list_service_packages 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 Guidelines4/5

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

Explains the intent (so a stack profile's services can be set up from the catalogue) and names the source tools to consult (get_service_profile_pin, get_services, get_secrets) rather than guessing, plus the profiles.write prerequisite. It does not explicitly compare against sibling publish tools (publish_stack_profile_draft, publish_canvas), so it stops short of full when/when-not routing.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources