Skip to main content
Glama

Link a GitHub project to a repository

github_project_link
Idempotent

Links a GitHub project board to a repository so board lookups find it among that repository's boards. Requires board update and repository write access.

Instructions

Link a project board to a repository, so the board lookup finds it among that repository's boards. The viewer must be able to update the board and write to the repository; a board that is already linked is left as it is (changed: false). GitHub links only boards of the repository's own owner, so a board of another user or organization is invalid_argument, before anything is written. A board is named by project: its number, owner/number or its URL, used as it is; any other project is a title, and no project is Roadmap: the open board of that whole title is looked up, never guessed, in owner's boards if owner is given, else in the boards linked to repo, then its organization's, then the viewer's. Needs a token with the project scope; if GitHub reports missing scopes, run gh auth refresh -s project.

Input Schema

NameRequiredDescriptionDefault
repoNoowner/name of the repository to link or unlink; defaults to the working tree's repository (its origin). Also where the board lookup starts.
ownerNoA user or organization login, or "@me": the owner of a numbered board, else the only owner searched for a title.
projectNoThe board, as its number, owner/number or its URL (used as it is; a bare number takes owner, else the owner of repo or of the working tree's repository), or as its title, looked up among open boards (whole title, case-insensitive). Default: the title Roadmap.

Output Schema

NameRequiredDescriptionDefault
repoYesowner/name of the repository.
changedYesfalse when the board was already in the wanted state.
projectYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.7.0

TDQS

A4.3/5.0
Behavior4/5

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

Beyond the annotations it discloses idempotent semantics explicitly ('a board that is already linked is left as it is (changed: false)'), the invalid_argument failure mode for cross-owner boards described as occurring before any write, and the exact title-resolution search order. That is meaningful behavior beyond the supplied hints, though it does not describe what the successful response payload contains (the output schema covers that).

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?

The purpose is front-loaded and nearly every clause carries information, but the body is a single dense run-on chain of semicolon-linked clauses that is hard to parse on first read. Terms like 'a bare number takes owner' and the lookup-order cascade would be clearer as discrete sentences or a short list.

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 3-parameter, zero-required linking tool with an output schema and annotations already present, the description covers the remaining gaps an agent needs: authentication and scope failure recovery, idempotent repeat calls, the same-owner restriction, and how an ambiguous title is resolved.

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, but the description adds genuine meaning: it defines a resolution precedence for ambiguous title lookups (owner's boards, then repo-linked boards, then the organization's, then the viewer's) and states that URL/number forms are used as-is while any other project is treated as a title. That is more than the schema's per-parameter notes.

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 (link a project board to a repository) plus the observable effect: the board lookup finds it among that repository's boards. This distinguishes it clearly from github_project_unlink and github_project_create without the reader needing 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 usage context: the viewer needs update rights on the board and write access to the repo, and a token with the project scope is required, with a remediation step (gh auth refresh -s project) if scopes are missing. It also states the pre-condition that only same-owner boards are valid. It never names the unlink sibling to route the agent explicitly, so it stops 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.