Skip to main content
Glama
PyEye Server

PyEye Server

by okeefeco

find_flask_blueprints

Locate all Flask blueprints in a Python project and optionally limit the search to the main project, all configured namespaces, or a specific namespace.

Instructions

Find all Flask blueprints in the project.

Args: scope: Search scope (default: this tool's scope_defaults entry in the project config, else scope_defaults.global, else "main"): - "main": Only the main project (default for plugins) - "all": Include configured namespaces - "namespace:name": Specific namespace

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

Input Schema

NameRequiredDescriptionDefault
scopeNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.0.0

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full burden; 'Find' implies a non-destructive read but this is never stated. The genuinely valuable disclosure is the default-resolution chain for scope (tool config → global config → 'main'), which an agent could not obtain from the schema, though recursion depth, error behavior, and result shape are left unaddressed.

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 purpose is front-loaded in a single sentence, and the argument block is compact. The parenthetical default-resolution chain is wordy but each clause conveys a real fallback step, so little is wasted.

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 one-optional-parameter discovery tool with an output schema that already documents return values, the description supplies purpose and scope semantics without needing to describe the response. Nothing essential for a correct invocation is missing.

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 description coverage is 0%, so the description must compensate, and it does partly by enumerating the meaning of 'main', 'all', and 'namespace:name'. However, the schema also permits an array of strings and null, a form the description never explains, leaving an agent to guess how a list of scopes is interpreted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence names a specific verb and resource ('Find all Flask blueprints in the project'), which is immediately understandable. It does not distinguish itself from sibling discovery tools such as find_flask_routes or find_flask_views, but the resource noun is distinct enough that confusion is unlikely.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the scope documentation tells the agent how to widen or narrow the search, which is a form of guidance. There is no explicit statement of when to prefer this tool over siblings or when not to use it, so the agent must infer that it is the blueprint-specific counterpart of find_flask_routes.

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