Skip to main content
Glama

Ptally

See a project

get_project
Read-onlyIdempotent

Fetch a project by project_reference from the self-host store. Optional version_reference pins to a specific version of that project (a version from another project is a tool error); otherwise the latest live (published or approved) version is used, or the latest non-archived version of any status if none is live. Returns { project_reference, version_reference, version, name, description, status, summary, created_at, updated_at, project_url, version_url, latest_draft, clipped_collections, next_steps, model }. The model is a summary for reading, never a file to hand back. Every collection step is stamped with __context (total_rows, shown_rows, columns, shape, truncated, patchable; an empty table gets total_rows: 0, columns: [], patchable: true): tables of up to 100 rows are shown whole and can be changed with patch_version; bigger ones are clipped, listed in clipped_collections, and can only change by the user downloading the model from version_url, you amending it, and the user uploading it. latest_draft is the newest draft version (null if none) — patches go there, so call get_project again with its version_reference before patching. Follow next_steps and tell the user which route applies before making changes. All other model content — input.format, steps, expressions, output — is returned verbatim so an LLM caller can understand what the project does and how to build a valid input payload. Precursor to run_quote and patch_version.

Input Schema

NameRequiredDescriptionDefault
project_referenceYesUUID of the project to fetch.
version_referenceNoOptional. Specific version UUID of this project; defaults to the latest live version, or the latest non-archived version of any status if none are live.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Far beyond the readOnly/idempotent annotations, the description discloses version fallback resolution (live, then any non-archived status), that a foreign version_reference is a tool error, the 100-row clipping threshold, which collections become patchable versus download-amend-upload only, and that the returned model is a reading summary and not a file. These are exactly the operational traits an agent needs to avoid misuse.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core action and the version rule are front-loaded, and every later sentence carries load because there is no output schema to defer to. The enumerated return-field list and the dense parenthetical describing __context keys make it heavy to parse, but nothing is truly redundant.

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?

With no output schema, the description fully carries the return contract: field names, the meaning of latest_draft, the clipping/patchable distinction, and what content is returned verbatim for building input payloads. For a read tool feeding run_quote and patch_version, nothing an agent needs in order to call it and interpret the result is missing.

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 real meaning the schema does not: the cross-project constraint on version_reference (a tool error), the ordered fallback chain when it is omitted, and the fact that patches land on latest_draft. The only shortfall is that project_reference itself gets no added semantics beyond the schema's UUID note.

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 first clause gives a specific verb and resource ('Fetch a project by `project_reference` from the self-host store') and immediately scopes it against the plural sibling by explaining the version-resolution behavior. An agent can tell this apart from get_projects, run_quote, and patch_version without opening any 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?

It explicitly positions the tool as a 'precursor to run_quote and patch_version' and gives a concrete follow-up loop ('call get_project again with its version_reference before patching'). It also instructs the agent to surface next_steps and the applicable route to the user before mutating. What it lacks is an explicit when-not or a direct comparison to get_projects for listing, so it falls just short of a full routing statement.

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