Skip to main content
Glama

Issue detail

forgejo_get_issue
Read-onlyIdempotent

Fetch a full issue by number, including description, metadata, labels, and optional comments. Works for pull requests too, since they share the same numbering space.

Instructions

Returns a full issue: description, metadata and, on request, its comments.

Parameters: owner, repo, number (required), include_comments (bool, default true), response_format.

Returns: { number, title, state, author, labels, assignees, body, html_url, comments: [{ author, body, created_at }] }

Also works with a pull request number: issues and PRs share one numbering space in Forgejo. Errors: 404 if the number does not exist in this repository.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
repoNoRepository name. Defaults to FORGEJO_DEFAULT_REPO.
ownerNoRepository owner (user or organisation). Defaults to FORGEJO_DEFAULT_OWNER.
numberYesIssue number as displayed (#42 -> 42).
response_formatNo'markdown' for a readable rendering, 'json' for the full data.markdown
include_commentsNoAlso fetch the comment thread.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observedv1.0.0

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, so safety is covered. The description adds useful behavior: comments are fetched by default, issues and PRs share numbering, and a 404 is returned for missing numbers. This gives clear expectations about non-schema behaviors.

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?

Four short, front-loaded sentences: core purpose, return contract, shared-numbering special case, and error condition. There is no filler and each sentence carries needed information.

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?

Even without an output schema, the description specifies the exact return object shape, default behavior, error semantics, and a non-obvious quirk (PRs and issues share numbering). With read-only annotations and only one required parameter, an agent has enough to call and interpret the tool correctly.

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 covers 100% of parameters, so baseline is 3. The description adds meaning beyond the schema by explaining that 'include_comments' is an on-request behavior and that 'number' can also be a PR number due to shared numbering. It also documents the return shape, which helps interpret response_format.

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 action ('Returns a full issue') and resource, and enumerates the data included (description, metadata, comments). The 'Also works with a pull request number' clause clarifies its broader scope, distinguishing it from pure issue or PR-specific siblings.

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?

Provides clear context: use this tool when you need full issue detail and optionally its comments. It also notes the tool can work for pull request numbers, which helps an agent decide between this and forgejo_get_pull_request, though it does not explicitly name alternatives or exclusions.

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Birdiz/forgejo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server