Skip to main content
Glama

Get project

get_project
Read-onlyIdempotent

Retrieve a project's complete details by ID or identifier, including description, status explanation, and parent, to validate references and understand project context.

Instructions

Read one project in full.

Use it after list_projects when you need the description, the status explanation or the parent of a specific project — or to verify that an id or identifier a user gave you actually resolves.

Returns {id, identifier, name, active, public, parent, status_code, workspace_type, description, status_explanation, created_at, updated_at}. Rich text comes back as markdown raw; html is dropped.

Pitfalls: status_code is one of on_track, at_risk, off_track, not_started, finished, discontinued — an empty status_code means the project has no status set, not "on track". A 404 here means the id/identifier is wrong or the project is archived and invisible to this user; the error hint says which spelling to try next.

For the ids valid inside this project (types, versions, categories, time-entry activities) call get_project_metadata(project_id=...); for its work packages call list_work_packages(project=...).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
id_or_identifierYesNumeric project id (e.g. 7) or the URL identifier (e.g. 'demo-project'). Both are accepted; identifiers come from list_projects, and are the slug in /projects/<identifier>, not the display name.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoNumeric project id; accepted by every project_id parameter.
nameNoDisplay name.
activeNoFalse for archived projects (read-only in the UI).
parentNoParent project, when this is a subproject.
publicNoTrue when visible to users without a membership.
created_atNoISO 8601 UTC timestamp.
identifierNoURL slug from /projects/<identifier>; also accepted wherever an id is.
updated_atNoISO 8601 UTC timestamp.
descriptionNoDescription as markdown (raw); html is dropped.
status_codeNoProject status code, one of: on_track, at_risk, off_track, not_started, finished, discontinued. A code, never a translated label; null means no status has been set.
workspace_typeNoWorkspace kind: 'project', 'program' or 'portfolio'. Pre-17 instances only have 'project'; on 17.x project listings mix all three kinds, so check this before treating a row as a plain project.
status_explanationNoFree-text explanation of status_code, markdown (raw).
Behavior5/5

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

The annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the safety profile is known. The description adds valuable behavioral details: the exact return fields, rich text returned as markdown raw with HTML dropped, the pitfall that an empty status_code means no status set rather than 'on track', and that a 404 indicates a wrong id/identifier or an archived/invisible project with an error hint. These go well beyond the structured annotations.

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?

The description is organized with a clear opening purpose, usage guidance, return format, pitfalls, and pointers to related tools. Each sentence provides essential information, especially the pitfalls section that prevents misinterpretation of status_code and 404 responses. It is detailed but not padded.

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?

The description covers what the tool returns, how to use it, important pitfalls, and how it relates to sibling tools. With an output schema present, the description's list of return fields is redundant but adds clarity. It fully equips an agent to decide when to call this tool and what to expect.

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

Parameters3/5

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

Schema coverage is 100%; the schema already documents that id_or_identifier accepts either a numeric id or URL identifier, with examples and a note about slugs. The description reinforces that identifiers come from list_projects but does not add new semantic detail beyond the schema. Baseline of 3 applies.

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?

The description opens with 'Read one project in full,' which clearly states the action (read) and resource (project). It distinguishes from siblings by specifying that it retrieves a single project by id or identifier, unlike list_projects which lists all projects.

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?

Explicit guidance: 'Use it after list_projects when you need the description, the status explanation or the parent of a specific project — or to verify that an id or identifier a user gave you actually resolves.' It also names alternative tools for related needs: get_project_metadata for internal ids and list_work_packages for work packages.

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

Install Server

Other Tools

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/kar-thik/openproject-mcp'

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