Skip to main content
Glama

Extract endpoints

extract_endpoints

Extract HTTP, GraphQL, and tRPC endpoints from a codebase, showing guards, roles, and permissions that protect them. Supports multiple frameworks and identifies endpoints with missing authentication.

Instructions

HTTP/GraphQL/tRPC endpoints with the guards, roles and permissions that protect them. Supports Express-style routers, NestJS, Next.js, tRPC, FastAPI, Flask, Django (+DRF), Laravel, Spring, ASP.NET Core, Go routers, Rails and GraphQL SDL.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
roleNoOnly endpoints this role may call.
rootYesAbsolute path of the project to analyse (a mounted path such as /workspace when running in Docker).
formatNoOutput format (default markdown).
featureNo
refreshNoRe-scan the project instead of using the cached analysis.
unprotected_onlyNoOnly endpoints with no detected authentication.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It says what is returned (endpoints with protections) but not how the tool behaves: it does not mention that it scans a project, may use caching, or could be resource-intensive. The refresh parameter hints at caching, but the description itself adds little behavioral context.

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 description is a single, focused sentence that front-loads the core purpose before listing supported frameworks. It is concise and information-dense without being verbose, though the long framework list could be considered slightly bulky.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema and annotations, the description does not fully explain return values or edge cases. It covers the primary resource and supported stacks, and the input schema fills some gaps, but the undocumented feature parameter and lack of guidance on cached results or unsupported frameworks make it only moderately complete.

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 83%, so most parameters are already documented in the input schema. The description adds context that endpoints may have guards, roles, and permissions, which enriches the meaning of role and unprotected_only. However, it does not clarify the undocumented 'feature' parameter, and the description mostly reinforces schema information rather than adding significant new semantic detail.

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 description clearly identifies the resource: HTTP/GraphQL/tRPC endpoints along with their guards, roles, and permissions. This distinguishes it from siblings like extract_data_model and extract_access_control. While the action verb 'extract' is not explicitly stated in the description, the tool name and title supply it, making the purpose clear.

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?

The description implies usage contexts by listing supported frameworks (Express, NestJS, Next.js, tRPC, etc.), so an agent can infer when it applies. However, it does not explicitly compare against alternatives like extract_access_control or state when not to use it, leaving some inference required.

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