Skip to main content
Glama

Get instance info

get_instance_info
Read-onlyIdempotent

Check the OpenProject connection and report version, limits, authenticated user, and supported features. Call it first when requests fail or before using version-gated parameters.

Instructions

Check the OpenProject connection and report what this instance supports.

Call this first when anything fails in an unexplained way, when the user asks "am I connected / who am I", or before using a version-gated parameter. It is the server's connection test: it authenticates on every call rather than answering from cache.

Returns the core version and instance name, the attachment size ceiling (maximum_attachment_file_size_bytes), the page sizes the instance offers, the authenticated user {id, name, login, admin}, and features — the probe result telling you whether internal comments, emoji reactions and project favorites exist here, and which time-entry filter spelling this version uses.

Pitfalls: features describes the server version, not this user's permissions — a supported feature can still 403. A failure here is the actionable one: 401 means the API key is wrong or revoked, a network error means the URL, DNS, proxy or TLS trust is wrong; both come back with a hint naming the environment variable to fix.

For per-project ids (types, statuses, priorities, versions, categories, activities) use get_project_metadata; for what the current user may do use list_permissions.

Input Schema

NameRequiredDescriptionDefault

No arguments

Output Schema

NameRequiredDescriptionDefault
api_urlNo
featuresYes
core_versionNo
current_userYes
instance_nameNo
per_page_optionsNo
maximum_attachment_file_size_bytesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed59 schema fields changedv0.4.0
    • removedOutput schema / description
      Removed value: -"Connection test result plus what this instance supports."
    • removedOutput schema / properties / api_url / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / api_url / default
      Removed value: -null
    • removedOutput schema / properties / api_url / description
      Removed value: -"API base URL this server talks to."
    • addedOutput schema / properties / api_url / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / core_version / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / core_version / default
      Removed value: -null
    • removedOutput schema / properties / core_version / description
      Removed value: -"OpenProject core version, e.g. '17.7.1'."
    • addedOutput schema / properties / core_version / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / current_user / description
      Removed value: -"Who this server is authenticated as."
    • removedOutput schema / properties / current_user / properties / admin / anyOf
      Removed value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / current_user / properties / admin / default
      Removed value: -null
    • removedOutput schema / properties / current_user / properties / admin / description
      Removed value: -"True for instance administrators; null when not disclosed."
    • addedOutput schema / properties / current_user / properties / admin / type
      Added value: +[
      +  "boolean",
      +  "null"
      +]
    • removedOutput schema / properties / current_user / properties / email / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / current_user / properties / email / default
      Removed value: -null
    • removedOutput schema / properties / current_user / properties / email / description
      Removed value: -"Mail address, when the API exposes it."
    • addedOutput schema / properties / current_user / properties / email / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / current_user / properties / id / anyOf
      Removed value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / current_user / properties / id / default
      Removed value: -null
    • removedOutput schema / properties / current_user / properties / id / description
      Removed value: -"Numeric user id."
    • addedOutput schema / properties / current_user / properties / id / type
      Added value: +[
      +  "integer",
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / current_user / properties / login / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / current_user / properties / login / default
      Removed value: -null
    • removedOutput schema / properties / current_user / properties / login / description
      Removed value: -"Login handle."
    • addedOutput schema / properties / current_user / properties / login / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / current_user / properties / name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / current_user / properties / name / default
      Removed value: -null
    • removedOutput schema / properties / current_user / properties / name / description
      Removed value: -"Display name."
    • addedOutput schema / properties / current_user / properties / name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / features / description
      Removed value: -"Probed feature availability; read it before using gated params."
    • removedOutput schema / properties / features / properties / capabilities_context_prefix / default
      Removed value: -null
    • removedOutput schema / properties / features / properties / capabilities_context_prefix / description
      Removed value: -"Project context prefix for the capabilities API."
    • removedOutput schema / properties / features / properties / core_version / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / features / properties / core_version / default
      Removed value: -null
    • removedOutput schema / properties / features / properties / core_version / description
      Removed value: -"OpenProject core version string, e.g. '17.7.1'."
    • addedOutput schema / properties / features / properties / core_version / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / features / properties / instance_name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / features / properties / instance_name / default
      Removed value: -null
    • removedOutput schema / properties / features / properties / instance_name / description
      Removed value: -"Configured instance name."
    • addedOutput schema / properties / features / properties / instance_name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / features / properties / notes / description
      Removed value: -"Degradation markers for anything undetectable."
    • removedOutput schema / properties / features / properties / supports_emoji_reactions / default
      Removed value: -false
    • removedOutput schema / properties / features / properties / supports_emoji_reactions / description
      Removed value: -"Emoji reactions on activities; OpenProject >= 16."
    • removedOutput schema / properties / features / properties / supports_internal_comments / default
      Removed value: -false
    • removedOutput schema / properties / features / properties / supports_internal_comments / description
      Removed value: -"Internal (private) work-package comments; OpenProject >= 16."
    • removedOutput schema / properties / features / properties / supports_project_favorites / default
      Removed value: -false
    • removedOutput schema / properties / features / properties / supports_project_favorites / description
      Removed value: -"Project favorite endpoints; OpenProject >= 17."
    • removedOutput schema / properties / features / properties / time_entry_work_package_filter / default
      Removed value: -null
    • removedOutput schema / properties / features / properties / time_entry_work_package_filter / description
      Removed value: -"Filter name for scoping time entries to a work package."
    • removedOutput schema / properties / instance_name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / instance_name / default
      Removed value: -null
    • removedOutput schema / properties / instance_name / description
      Removed value: -"Configured instance name."
    • addedOutput schema / properties / instance_name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / maximum_attachment_file_size_bytes / anyOf
      Removed value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / maximum_attachment_file_size_bytes / default
      Removed value: -null
    • removedOutput schema / properties / maximum_attachment_file_size_bytes / description
      Removed value: -"Upload ceiling; upload_attachment pre-flights against it."
    • addedOutput schema / properties / maximum_attachment_file_size_bytes / type
      Added value: +[
      +  "integer",
      +  "null"
      +]
    • removedOutput schema / properties / per_page_options / description
      Removed value: -"Page sizes the instance offers; the largest is the effective page_size cap."
  2. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only cover the read-only/idempotent profile; the description adds far more — that every call actually authenticates instead of answering from cache, what fields come back (attachment ceiling, page sizes, authenticated user, feature probes), and that `features` reflects server version, not the caller's permissions. It even maps failure modes (401 = bad/revoked key, network error = URL/DNS/proxy/TLS) to hints naming the environment variable, which is exactly the behavioral context annotations cannot carry.

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?

Front-loaded with the usage trigger, then the return summary, then a labeled 'Pitfalls' block, then sibling routing. Despite its length, each paragraph carries a distinct, non-repeated payload (triggers, outputs, failure meanings, alternatives), so nothing is wasted.

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

Completeness5/5

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

For a zero-param diagnostic tool with an output schema, this is complete: it covers when to call, what is returned, how to interpret the feature probes, and how to diagnose failures. An agent needs nothing else to invoke it correctly or act on the result.

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?

Zero parameters, so the baseline is 4 and there are no parameter semantics to add. The description does characterize the return payload (instance name, version, feature probes), which is useful but partially redundant given an output schema exists.

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?

Opens with a specific verb+resource: checks the OpenProject connection and reports what the instance supports. It explicitly delineates scope against siblings by routing per-project metadata to `get_project_metadata` and user capabilities to `list_permissions`, so an agent can place it precisely in the tool set.

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

Usage Guidelines5/5

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

Gives explicit triggers: call first on unexplained failures, when the user asks 'am I connected / who am I', and before using a version-gated parameter. It also names the alternatives for adjacent needs, which covers the when-not cases by redirection.

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