Skip to main content
Glama

Detect an existing app's stack

detect_stack
Read-only

Work out which services an existing app runs on, from its files, a public GitHub repo, or its live website. From an AI coding app, read the project yourself and pass the files that say the most: package.json (or requirements.txt, pyproject.toml, Gemfile, go.mod, pubspec.yaml, Podfile), .env.example (names only, never secret values), and deploy configs (vercel.json, netlify.toml, fly.toml, render.yaml, .do/app.yaml, wrangler.toml, firebase.json, Dockerfile). Returns each catalogue vendor found with its evidence and confidence, services the catalogue can't price yet, frameworks and platforms. Rules only; nothing is stored. Then call audit_stack with the services (and their plans, if the user knows them).

Input Schema

NameRequiredDescriptionDefault
urlNoThe live website, to read its hosting headers and the scripts it loads.
repoNoPublic GitHub repo: owner/name or its github.com address.
textNoPasted text, e.g. a package.json or a list of services, when there are no file names.
filesNo

Output Schema

NameRequiredDescriptionDefault
dataYesThe tool result. Its shape depends on the tool.
staleYes
caveatsYesShow to the user word for word.
sourcesYes
confidenceYes
assumptionsYesUsage and pricing assumptions behind the numbers.
disclosuresYesAlways includes the neutrality note: no vendor pays for a place in the answer. Link its url when you mention how Kong Reviews is paid.
generated_atYes
engine_versionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / disclosures / description
      Added value: +"Always includes the neutrality note: no vendor pays for a place in the answer. Link its url when you mention how Kong Reviews is paid."
  2. Added

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds meaningful behavior beyond that: detection is rules-only, nothing is stored, and secrets should never be passed — but it says nothing about rate limits or how live-site probing behaves.

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?

Purpose is front-loaded in the first sentence and every subsequent clause is useful. It is a dense single paragraph, so it is slightly harder to scan than a structured list would be, but there is little waste.

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?

An output schema exists, yet the description still sketches what comes back — catalogue vendors with evidence and confidence, unpriced services, frameworks and platforms — plus the concrete next step. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%, and the description goes well beyond it by enumerating which files matter (package.json, requirements.txt, .env.example, deploy configs) and constraining .env.example to names only. This gives an agent actionable selection guidance the schema does not.

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?

States a specific verb and resource: work out which services an existing app runs on, from files, a repo, or a live site. It also distinguishes itself from audit_stack by positioning this as the detection step that feeds it.

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?

Gives clear invocation guidance: from an AI coding app, read the project yourself and pass the highest-signal files, then call audit_stack with the detected services. It lacks an explicit when-not-to-use or alternative-tool exclusion, so it falls just short of a 5.

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