Skip to main content
Glama

Grafizum Command Center

Read projects, one project, its status or progress

get_project
Read-onlyIdempotent

Read projects, not their tasks. With no project_id: every granted project with its task counts (the portfolio). With project_id: that project's full row. Add view "status" for its health and history, or "progress" for its progress numbers.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "get_project"
  }
}

Input Schema

NameRequiredDescriptionDefault
viewNostatus: health and history; progress: progress numbers. Needs project_id.
project_idNoThe project to read; omit it to list every granted project.

Output Schema

NameRequiredDescriptionDefault
dataYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • addedInput schema / properties / project_id / description
      Added value: +"The project to read; omit it to list every granted project."
    • addedInput schema / properties / view
      Added value: +{
      +  "description": "status: health and history; progress: progress numbers. Needs project_id.",
      +  "enum": [
      +    "status",
      +    "progress"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / required
      Removed value: -[
      -  "project_id"
      -]
    • removedOutput schema / properties / data / additionalProperties
      Removed value: -true
    • addedOutput schema / properties / data / anyOf
      Added value: +[
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "blocked_tasks": {
      +        "type": "number"
      +      },
      +      "description": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "done_tasks": {
      +        "type": "number"
      +      },
      +      "icon": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "id": {
      +        "type": "string"
      +      },
      +      "in_progress_tasks": {
      +        "type": "number"
      +      },
      +      "name": {
      +        "type": "string"
      +      },
      +      "next_due": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "open_tasks": {
      +        "type": "number"
      +      },
      +      "review_tasks": {
      +        "type": "number"
      +      },
      +      "slug": {
      +        "type": "string"
      +      },
      +      "total_tasks": {
      +        "type": "number"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "items": {
      +      "$ref": "#/properties/data/anyOf/0"
      +    },
      +    "type": "array"
      +  }
      +]
    • removedOutput schema / properties / data / properties
      Removed value: -{
      -  "blocked_tasks": {
      -    "type": "number"
      -  },
      -  "description": {
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "done_tasks": {
      -    "type": "number"
      -  },
      -  "icon": {
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "id": {
      -    "type": "string"
      -  },
      -  "in_progress_tasks": {
      -    "type": "number"
      -  },
      -  "name": {
      -    "type": "string"
      -  },
      -  "next_due": {
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "open_tasks": {
      -    "type": "number"
      -  },
      -  "review_tasks": {
      -    "type": "number"
      -  },
      -  "slug": {
      -    "type": "string"
      -  },
      -  "total_tasks": {
      -    "type": "number"
      -  }
      -}
    • removedOutput schema / properties / data / type
      Removed value: -"object"
  2. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so safety needs no restating. The description adds behavior the annotations cannot: that results are limited to granted (permission-scoped) projects, that the portfolio variant includes task counts, and that the single-record variant returns the full row. It does not mention pagination or size limits, which is a minor gap for a listing mode.

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?

Three tight sentences, front-loaded with the scope exclusion, then the two modes, then the view variants. No filler and no repetition of annotation facts.

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 an output schema present, the description does not need to enumerate return fields, and it correctly spends its space on mode selection, permission scoping, and view semantics. Nothing an agent needs to call this correctly is absent.

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% and both parameters carry descriptions, so the schema already explains project_id omission and the status/progress enum meanings. The description adds the portfolio-level consequence (task counts per project) that the schema does not state, but otherwise largely mirrors the schema wording.

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?

"Read projects, not their tasks" states a specific verb and resource and explicitly carves out the boundary against the task-oriented siblings. The following two sentences enumerate the two calling modes (no project_id -> portfolio, with project_id -> single full row), so an agent can predict the result shape before opening 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?

It is clear when to pass project_id (single record) versus omit it (portfolio), and the view values are tied to the concrete choice of adding status or progress. What is missing is a negative case or a named alternative for the closely related listing use case, but the mode-based routing is unambiguous.

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.