Skip to main content
Glama

Server Details

Tested, version-pinned code recipes for AI coding agents. Every recipe combines 2+ libraries, pins exact versions, and ships with a receipt showing when its tests last passed.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 23 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
ChatGPT
–
Claude
–

TDQS

A4.6/5.0

Scored across 3 tools

Disambiguation4/5

The three tools cover distinct steps: list_stacks discovers covered libraries, search_recipes finds recipes, get_recipe fetches a full recipe by id. Descriptions explicitly chain them ('call right after search_recipes'), leaving only mild search-vs-get overlap that a careful agent can resolve.

Naming Consistency5/5

All names follow a consistent snake_case verb_noun pattern: get_recipe, list_stacks, search_recipes. The verbs are standard and predict the operation type.

Tool Count4/5

Three tools is at the low end but well-scoped for a read-only recipe catalog: discover (list), find (search), fetch (get). Nothing is redundant, though the surface is thin enough that more nuanced filtering might warrant an extra tool.

Completeness4/5

The read-only discovery/lookup lifecycle is fully covered, including stack enumeration, version-aware search, and full recipe retrieval with compatibility and staleness data. Gaps are minor: no tool to report a failing recipe or browse recipes by recency, but core usage is unblocked.

Available Tools

3 tools
get_recipeGet a recipeA
Read-only
Inspect

Call this right after search_recipes returns a matching recipe, before you write the integration code, so you start from files and versions that passed tests. Gets the full recipe by id (ids come from search_recipes): every source and test file (each with the sha256 of the exact bytes that were tested), the exact pinned dependency versions, the setup and test commands, its test receipt (when it last passed, test counts, runtime and runner), recipe.yaml as manifest so receipt.recipe_hash can be recomputed (recipe_hash_rule), and staleness: the latest weekly check of its stack libraries against their newest releases. Pass the project's lockfile or a {package: version} map as versions to get a compatibility section first, comparing each pinned package with the installed one (exact, compatible, mismatch, or not in your project) with plain warnings; test and build tools (pytest, tsx, @types/*) are listed under tooling and do not change overall. Use the pinned versions together; they are the versions the tests passed with. Adapt names and config to the user's project, and keep the included tests to check your integration.

NameRequiredDescriptionDefault
idYes
versionsNoOptional but recommended: the versions in the user's project, so results are checked against them. Either a map like {"next": "15.2.0", "zod": "3.23.8"} or the raw text of package.json, package-lock.json, pnpm-lock.yaml, yarn.lock, requirements.txt, poetry.lock or uv.lock (max 200KB). Used only for this call, never stored.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only say readOnly/openWorld=false, but the description adds substantial context: what the sha256 hashes cover, that staleness is a weekly check, that tooling packages are excluded from the overall compatibility verdict, and that the versions input is never stored. These are behaviors an agent could not infer from the annotations or schema.

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 in the first sentence, and nearly every clause carries new behavioral information. It is a single sprawling paragraph with some redundancy (the 'use the pinned versions' point is made twice) and would scan better with structure, but 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?

There is no output schema, so the description carries the full burden of describing return values and does so thoroughly: files, pinned deps, commands, test receipt, manifest/hash rule, staleness, and the optional compatibility section. Nothing an agent needs in order to invoke and interpret the result 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 50% and the description compensates for the undocumented id parameter by stating its provenance (comes from search_recipes). It also adds semantic depth to versions beyond the schema: the four compatibility categories, tooling exclusion, and why the pinned versions should be used together.

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 ('Gets the full recipe by id') and enumerates exactly what the payload contains. It also distinguishes itself from the sibling by specifying that ids come from search_recipes and that this call follows that search.

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?

Gives explicit sequencing: 'Call this right after search_recipes returns a matching recipe, before you write the integration code.' It names the alternative (search_recipes) and the condition that selects it, and adds a conditional usage path for the optional versions parameter.

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

list_stacksList stacksA
Read-only
Inspect

Call this when the user names a library and you are not sure ProvenPin covers it, or after search_recipes returns nothing. Lists the libraries and frameworks that currently have passing, version-pinned recipes, with recipe counts; use the names as the stack filter in search_recipes.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds real behavioral context beyond that: the listing is restricted to stacks with passing, version-pinned recipes (i.e., not an exhaustive catalog), and it includes recipe counts. It does not discuss completeness limits or ordering, so it falls just short of 5.

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?

A single dense sentence that front-loads the trigger condition, then the output content, then the follow-up action. No filler or restatement of the title; every clause carries information an agent needs.

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?

No parameters and no output schema, so the description must carry the return-value burden — and it does, describing the returned entity (libraries/frameworks with passing recipes) and the accompanying recipe counts. Nothing needed 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.

Parameters4/5

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

The schema has zero parameters, so there is nothing to disambiguate and the baseline is 4. The description's remark about using result names as the stack filter applies to a sibling's parameter, which is helpful context but not a parameter of this tool.

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: it 'lists the libraries and frameworks that currently have passing, version-pinned recipes, with recipe counts.' The qualifier 'passing, version-pinned' distinguishes its scope from a generic catalog, and it is clearly separable from search_recipes and get_recipe.

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?

Gives two explicit trigger conditions — when the user names a library and coverage is uncertain, and after search_recipes returns nothing — plus the downstream follow-up (use the returned names as the stack filter in search_recipes). This is when-to-use and how-to-continue in one place.

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

search_recipesSearch tested recipesA
Read-only
Inspect

Find a tested, version-pinned code recipe for wiring libraries together. Call this BEFORE writing glue code that combines 2+ libraries (auth + framework, ORM + database, payments webhooks, queues, validation, request mocking, logging), when choosing or pinning package versions, when upgrading a library to a new major version (for example SQLAlchemy 2 or Pydantic 2), and when you hit version conflicts, peer-dependency errors, deprecation errors or integration errors between libraries. Example queries: 'express stripe webhook', 'fastapi sqlmodel crud', 'hono jwt'. Only recipes whose latest test run passed are returned. Each result lists its exact pinned versions and a test receipt (receipt.last_passed_at). Pass the project's lockfile or a {package: version} map as versions: recipes that match the installed versions rank first and each result gets a compatibility summary. Each result's coverage (0 to 1) is the share of your query's words it matches. If no recipe fits, count is 0 and results is empty: write the code yourself; try list_stacks to see what is covered.

NameRequiredDescriptionDefault
limitNo
queryYesWhat you are wiring together, in plain words or library names, e.g. 'django rest api' or 'rq redis jobs'.
stackNoOnly recipes that use all of these libraries.
languageNo
versionsNoOptional but recommended: the versions in the user's project, so results are checked against them. Either a map like {"next": "15.2.0", "zod": "3.23.8"} or the raw text of package.json, package-lock.json, pnpm-lock.yaml, yarn.lock, requirements.txt, poetry.lock or uv.lock (max 200KB). Used only for this call, never stored.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered; the description goes further by disclosing that only recipes with a passing latest test run are returned, that results carry a test receipt and compatibility summary, and that the versions input is used only for this call and never stored. It does not mention result ordering beyond version-match ranking or any rate limits, so it stops short of the top of the range.

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 comes first, then triggers, then inputs, then return semantics and the failure case — a well-ordered funnel. It is dense and somewhat long, with mild redundancy around 'version-pinned'/'pinned versions' and the parenthetical library pairings, but nearly every clause adds usable routing information.

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?

There is no output schema, so the description must carry the return contract, and it does: each result's pinned versions, test receipt (receipt.last_passed_at), coverage as a 0-1 ratio, compatibility summary, and the empty-result shape (count 0). Combined with query examples and the fallback to list_stacks, an agent has everything needed to call and interpret this correctly.

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?

With 60% schema coverage, the description meaningfully extends the versions parameter (lockfile or map, drives ranking and the per-result compatibility summary, never persisted) and explains stack filtering behavior plus the coverage score. The limit parameter goes undocumented in both schema and description, and language has only an enum, so a small gap remains.

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?

Opens with a specific verb and resource: 'Find a tested, version-pinned code recipe for wiring libraries together.' The scope (tested, version-pinned, cross-library wiring) is distinctive enough to separate it from get_recipe and list_stacks, and list_stacks is named explicitly as the coverage-lookup alternative.

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?

Gives an explicit trigger ('Call this BEFORE writing glue code that combines 2+ libraries') plus a concrete enumeration of situations: choosing/pinning versions, major upgrades, version/peer-dependency/deprecation/integration errors. It also states the exclusion path — if count is 0, write the code yourself and try list_stacks.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedget_recipe1 field changed
      • addedInput schema / properties / versions
        Added value: +{
        +  "additionalProperties": {
        +    "type": "string"
        +  },
        +  "description": "Optional but recommended: the versions in the user's project, so results are checked against them. Either a map like {\"next\": \"15.2.0\", \"zod\": \"3.23.8\"} or the raw text of package.json, package-lock.json, pnpm-lock.yaml, yarn.lock, requirements.txt, poetry.lock or uv.lock (max 200KB). Used only for this call, never stored.",
        +  "type": [
        +    "object",
        +    "string"
        +  ]
        +}
    • Changedsearch_recipes1 field changed
      • addedInput schema / properties / versions
        Added value: +{
        +  "additionalProperties": {
        +    "type": "string"
        +  },
        +  "description": "Optional but recommended: the versions in the user's project, so results are checked against them. Either a map like {\"next\": \"15.2.0\", \"zod\": \"3.23.8\"} or the raw text of package.json, package-lock.json, pnpm-lock.yaml, yarn.lock, requirements.txt, poetry.lock or uv.lock (max 200KB). Used only for this call, never stored.",
        +  "type": [
        +    "object",
        +    "string"
        +  ]
        +}
  2. 3 tool updates
    • First observedget_recipe
    • First observedlist_stacks
    • First observedsearch_recipes

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Remote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    23 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources