Skip to main content
Glama

list_projects

Read-onlyIdempotent

List your projects. Each item is {projectId, code, name, apiStatus, dataStatus, language, customerId, customerEmail, platformCode, platformName}. Use this to find the project a request is about, before other tools. platformCode is the shop's e-commerce platform (shopify, magento_2, woocommerce, ...) when the control panel reports one; setup and available integrations differ by it. Call this FIRST when you don't know which project to act on, or when another tool returns project_id_required. Let the user pick, then pass the chosen projectId to the other tools. When you own a single project you usually don't need this — the other tools infer it. Pass query to search projects by name, code, or owner email. Note: if the call returns an EMPTY list, do not assume there are no projects — some accounts only return projects that MATCH a search term, so ask the user what to look for (a project name/code or the owner's email) and retry with a query. A broad search may be capped, so keep the query specific. apiStatus GRANTED = active; REVOKED/OVERLIMIT projects are listed too so the user sees them. After the user picks, the usual next step is get_import_status for that projectId.

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": "list_projects"
  }
}

Input Schema

NameRequiredDescriptionDefault
queryNoOptional search term to filter projects by name, code, or owner email.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, but the description adds non-obvious behavior the annotations cannot: an empty list does not mean no projects exist, some accounts only return matches for a search term, and broad searches are capped. It also explains that apiStatus GRANTED means active and that REVOKED/OVERLIMIT projects are still listed so the user can see them.

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 critical routing instruction is front-loaded and the field list is compact and useful. It is on the long side with some repetition around the empty-list case, but nearly every sentence carries operational value for a first-step discovery tool.

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 one optional parameter, no output schema, and simple read-only semantics, the description covers everything an agent needs: return shape, when to call, when to skip, error-recovery path, and the recommended next tool. Nothing material 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 goes further by tying `query` to a recovery strategy (retry with a name/code/owner email after an empty result) and warning that broad searches are capped, so queries should stay specific. That is meaning beyond the schema's one-line property description.

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 opening line states a specific verb and resource ("List your projects") and immediately enumerates the returned item fields, so the agent knows exactly what comes back. It also implicitly separates itself from get_project_profile by framing this as the discovery step rather than a detail fetch.

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 routing rules: call this FIRST when the project is unknown, call it when another tool returns project_id_required, and skip it when the account owns a single project because other tools infer it. It also prescribes the post-call workflow (let the user pick, then pass projectId, then get_import_status), which is as complete as guidance gets.

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