Skip to main content
Glama

get_portal_url

Read-only

Build the Ankra portal (web UI) URL for a page, so you can hand the user a clickable link to what you are talking about: a cluster's overview, stacks, add-ons, operations, nodes, a pod or Deployment, an application, a pipeline run, a stack profile, an AI ticket, an alert, a CVE, credentials, tokens, settings and more. Pass page and the identifiers that page needs (ids come from the other tools' results; clusters are addressed by cluster_id, stacks and add-ons by name, workloads by namespace and name). The URL carries the organisation, so it opens in the right one. Offer the link whenever you report on a resource or ask the user to review, approve, or change something in the UI. Reads nothing and changes nothing.

Input Schema

NameRequiredDescriptionDefault
nameNoKubernetes object name (pages pod, deployment, stateful_set, daemon_set, job, cron_job).
pageYesWhich portal page to link to.
cve_idNoCVE id such as CVE-2024-3094 (page cve).
run_idNoRun id (pages pipeline_run, agent_run).
alert_idNoAlert rule id (page alert).
namespaceNoKubernetes namespace (pages pod, deployment, stateful_set, daemon_set, job, cron_job).
node_nameNoKubernetes node name (page kubernetes_node).
ticket_idNoAI board ticket id (page ticket).
addon_nameNoAdd-on name as installed on the cluster (page addon).
cluster_idNoCluster id (UUID) from list_clusters. Defaults to the conversation's cluster when it has one.
profile_idNoStack profile id (page stack_profile).
stack_nameNoStack name (page stack).
proposal_idNoCluster access policy proposal id (page cluster_access_policy, optional).
operation_idNoOperation id (pages cluster_operation, operation).
repository_idNoPipeline repository id (page pipeline_run).
application_idNoApplication id (pages application, application_pipelines, application_deployments).
conversation_idNoAI chat conversation id (page ai_chat, optional).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / page / enum
      Previous value: -[
      -  "dashboard",
      -  "activity",
      -  "clusters",
      -  "cluster_create",
      -  "cluster_overview",
      -  "cluster_stacks",
      -  "stack",
      -  "cluster_addons",
      -  "addon",
      -  "cluster_resources",
      -  "cluster_operations",
      -  "cluster_operation",
      -  "operation",
      -  "cluster_nodes",
      -  "node_groups",
      -  "kubernetes_node",
      -  "namespaces",
      -  "pods",
      -  "pod",
      -  "deployment",
      -  "stateful_set",
      -  "daemon_set",
      -  "job",
      -  "cron_job",
      -  "cluster_events",
      -  "cluster_logs",
      -  "cluster_metrics",
      -  "cluster_security",
      -  "cluster_backups",
      -  "cluster_settings",
      -  "applications",
      -  "application",
      -  "application_pipelines",
      -  "application_deployments",
      -  "pipeline_run",
      -  "stack_profiles",
      -  "stack_profile",
      -  "addon_catalog",
      -  "credentials",
      -  "api_tokens",
      -  "service_tokens",
      -  "members",
      -  "organisation_settings",
      -  "organisation_secrets",
      -  "cluster_access_policy",
      -  "dns_settings",
      -  "backup_settings",
      -  "ai_chat",
      -  "ai_board",
      -  "ticket",
      -  "ai_agents",
      -  "agent_run",
      -  "ai_inbox",
      -  "alerts",
      -  "alert",
      -  "security",
      -  "security_findings",
      -  "cve",
      -  "cost"
      -]New value: +[
      +  "dashboard",
      +  "activity",
      +  "clusters",
      +  "cluster_create",
      +  "cluster_overview",
      +  "cluster_stacks",
      +  "stack",
      +  "cluster_addons",
      +  "addon",
      +  "cluster_resources",
      +  "cluster_operations",
      +  "cluster_operation",
      +  "operation",
      +  "cluster_nodes",
      +  "node_groups",
      +  "kubernetes_node",
      +  "namespaces",
      +  "pods",
      +  "pod",
      +  "deployment",
      +  "stateful_set",
      +  "daemon_set",
      +  "job",
      +  "cron_job",
      +  "cluster_events",
      +  "cluster_logs",
      +  "cluster_metrics",
      +  "cluster_security",
      +  "cluster_backups",
      +  "cluster_settings",
      +  "applications",
      +  "application",
      +  "application_pipelines",
      +  "application_deployments",
      +  "pipeline_run",
      +  "stack_profiles",
      +  "stack_profile",
      +  "addon_catalog",
      +  "credentials",
      +  "api_tokens",
      +  "service_tokens",
      +  "members",
      +  "organisation_settings",
      +  "organisation_secrets",
      +  "cluster_access_policy",
      +  "dns_settings",
      +  "backup_settings",
      +  "ai_chat",
      +  "ai_board",
      +  "ticket",
      +  "ai_agents",
      +  "agent_run",
      +  "ai_inbox",
      +  "ai_connections",
      +  "alerts",
      +  "alert",
      +  "security",
      +  "security_findings",
      +  "cve",
      +  "cost"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / page / enum
      Previous value: -[
      -  "dashboard",
      -  "activity",
      -  "clusters",
      -  "cluster_create",
      -  "cluster_overview",
      -  "cluster_stacks",
      -  "stack",
      -  "cluster_addons",
      -  "addon",
      -  "cluster_resources",
      -  "cluster_operations",
      -  "cluster_operation",
      -  "operation",
      -  "cluster_nodes",
      -  "node_groups",
      -  "kubernetes_node",
      -  "namespaces",
      -  "pods",
      -  "pod",
      -  "deployment",
      -  "stateful_set",
      -  "daemon_set",
      -  "job",
      -  "cron_job",
      -  "cluster_events",
      -  "cluster_logs",
      -  "cluster_metrics",
      -  "cluster_security",
      -  "cluster_backups",
      -  "cluster_settings",
      -  "applications",
      -  "application",
      -  "application_pipelines",
      -  "application_deployments",
      -  "pipeline_run",
      -  "stack_profiles",
      -  "stack_profile",
      -  "addon_catalog",
      -  "credentials",
      -  "api_tokens",
      -  "service_tokens",
      -  "members",
      -  "organisation_settings",
      -  "cluster_access_policy",
      -  "dns_settings",
      -  "backup_settings",
      -  "ai_chat",
      -  "ai_board",
      -  "ticket",
      -  "ai_agents",
      -  "agent_run",
      -  "ai_inbox",
      -  "alerts",
      -  "alert",
      -  "security",
      -  "security_findings",
      -  "cve",
      -  "cost"
      -]New value: +[
      +  "dashboard",
      +  "activity",
      +  "clusters",
      +  "cluster_create",
      +  "cluster_overview",
      +  "cluster_stacks",
      +  "stack",
      +  "cluster_addons",
      +  "addon",
      +  "cluster_resources",
      +  "cluster_operations",
      +  "cluster_operation",
      +  "operation",
      +  "cluster_nodes",
      +  "node_groups",
      +  "kubernetes_node",
      +  "namespaces",
      +  "pods",
      +  "pod",
      +  "deployment",
      +  "stateful_set",
      +  "daemon_set",
      +  "job",
      +  "cron_job",
      +  "cluster_events",
      +  "cluster_logs",
      +  "cluster_metrics",
      +  "cluster_security",
      +  "cluster_backups",
      +  "cluster_settings",
      +  "applications",
      +  "application",
      +  "application_pipelines",
      +  "application_deployments",
      +  "pipeline_run",
      +  "stack_profiles",
      +  "stack_profile",
      +  "addon_catalog",
      +  "credentials",
      +  "api_tokens",
      +  "service_tokens",
      +  "members",
      +  "organisation_settings",
      +  "organisation_secrets",
      +  "cluster_access_policy",
      +  "dns_settings",
      +  "backup_settings",
      +  "ai_chat",
      +  "ai_board",
      +  "ticket",
      +  "ai_agents",
      +  "agent_run",
      +  "ai_inbox",
      +  "alerts",
      +  "alert",
      +  "security",
      +  "security_findings",
      +  "cve",
      +  "cost"
      +]
  3. Changed2 schema fields changed
    • changedInput schema / properties / page / enum
      Previous value: -[
      -  "dashboard",
      -  "activity",
      -  "clusters",
      -  "cluster_create",
      -  "cluster_overview",
      -  "cluster_stacks",
      -  "stack",
      -  "cluster_addons",
      -  "addon",
      -  "cluster_resources",
      -  "cluster_operations",
      -  "cluster_operation",
      -  "operation",
      -  "cluster_nodes",
      -  "node_groups",
      -  "kubernetes_node",
      -  "namespaces",
      -  "pods",
      -  "pod",
      -  "deployment",
      -  "stateful_set",
      -  "daemon_set",
      -  "job",
      -  "cron_job",
      -  "cluster_events",
      -  "cluster_logs",
      -  "cluster_metrics",
      -  "cluster_security",
      -  "cluster_backups",
      -  "cluster_settings",
      -  "applications",
      -  "application",
      -  "application_pipelines",
      -  "application_deployments",
      -  "pipeline_run",
      -  "stack_profiles",
      -  "stack_profile",
      -  "addon_catalog",
      -  "credentials",
      -  "api_tokens",
      -  "service_tokens",
      -  "members",
      -  "organisation_settings",
      -  "dns_settings",
      -  "backup_settings",
      -  "ai_chat",
      -  "ai_board",
      -  "ticket",
      -  "ai_agents",
      -  "agent_run",
      -  "ai_inbox",
      -  "alerts",
      -  "alert",
      -  "security",
      -  "security_findings",
      -  "cve",
      -  "cost"
      -]New value: +[
      +  "dashboard",
      +  "activity",
      +  "clusters",
      +  "cluster_create",
      +  "cluster_overview",
      +  "cluster_stacks",
      +  "stack",
      +  "cluster_addons",
      +  "addon",
      +  "cluster_resources",
      +  "cluster_operations",
      +  "cluster_operation",
      +  "operation",
      +  "cluster_nodes",
      +  "node_groups",
      +  "kubernetes_node",
      +  "namespaces",
      +  "pods",
      +  "pod",
      +  "deployment",
      +  "stateful_set",
      +  "daemon_set",
      +  "job",
      +  "cron_job",
      +  "cluster_events",
      +  "cluster_logs",
      +  "cluster_metrics",
      +  "cluster_security",
      +  "cluster_backups",
      +  "cluster_settings",
      +  "applications",
      +  "application",
      +  "application_pipelines",
      +  "application_deployments",
      +  "pipeline_run",
      +  "stack_profiles",
      +  "stack_profile",
      +  "addon_catalog",
      +  "credentials",
      +  "api_tokens",
      +  "service_tokens",
      +  "members",
      +  "organisation_settings",
      +  "cluster_access_policy",
      +  "dns_settings",
      +  "backup_settings",
      +  "ai_chat",
      +  "ai_board",
      +  "ticket",
      +  "ai_agents",
      +  "agent_run",
      +  "ai_inbox",
      +  "alerts",
      +  "alert",
      +  "security",
      +  "security_findings",
      +  "cve",
      +  "cost"
      +]
    • addedInput schema / properties / proposal_id
      Added value: +{
      +  "description": "Cluster access policy proposal id (page cluster_access_policy, optional).",
      +  "type": "string"
      +}
  4. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description reinforces this with 'Reads nothing and changes nothing,' so there is no contradiction. It adds genuinely new behavioral context: the URL is organisation-scoped ('opens in the right one') and ids must be sourced from other tools' results rather than being invented.

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?

Purpose and usage are front-loaded, but the long mid-sentence enumeration of page types ('a cluster's overview, stacks, add-ons, operations, nodes...') largely restates the enum already present in the schema. The definition is otherwise tight at four sentences.

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 17-parameter URL builder with no output schema, the description explains what is produced (a URL), what it encodes (organisation), and which identifiers each page family needs. The only gap is what happens when a required identifier for a given page is omitted.

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 schema already maps each parameter to its pages; the baseline is 3. The description adds value beyond that by stating where identifiers come from ('ids come from the other tools' results') and grouping the addressing scheme (cluster_id vs. name vs. namespace+name), which helps the agent assemble calls correctly.

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 — 'Build the Ankra portal (web UI) URL for a page' — and immediately clarifies the output is a clickable link the agent can hand to the user. It is clearly distinguished from the many read tools in the sibling list by the closing 'Reads nothing and changes nothing.'

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 an explicit positive trigger: 'Offer the link whenever you report on a resource or ask the user to review, approve, or change something in the UI.' It also implicitly rules out using this for data retrieval. It does not name a specific alternative tool to use for reads, which keeps it short of a 5.

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