Skip to main content
Glama

List listings

list_listings
Read-onlyIdempotent

Public mosaic of live MCP servers, skills, plugins and OKF knowledge bundles. live listings first and the low tail (few stars or no clear license) after them in every order — low=0 leaves the tail out. To walk everything, follow next: without q it is a cursor (next_cursor, keyset on the order's index) and has no ceiling; every listing also has an HTML page at /l/:id and the shards of /sitemap-listings.xml list them all. q runs on a full-text index (FTS5, bm25) kept in the same transaction as every text write. With q and low=0, low_count says how many low listings the filter left out — LIKE with a cap of 200. The query is mapped onto kind/topic/transport filters unless interpret=0.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
qNoFree text over the name, the tagline, the description, the origin identifier and the README excerpt: every word (up to six, 2+ letters, accents ignored) must match; ranked by bm25 with the name weighing most (10), then tagline (5), identifier (3), description (2), README excerpt (1); ties by stars. Kind, topic and transport words become filters. The `low` tail is in the same index.
lowNo`0` leaves the `low` tail out; by default it comes after the `live` listings in every order.
kindNoWhich kind of resource to fetch.
sortNoResult order. Without it, a query is ranked by relevance — bm25 over the full-text index (name 10, tagline 5, identifier 3, description 2, README excerpt 1) multiplied by 1 + 0.05·ln(1 + stars) + 0.1 if pushed in the last 180 days + 0.1 if a README was collected; ties by stars — and a plain listing by arrival.relevancia when q is set, recent otherwise
licenseNoRepository licenses, comma-separated, for example MIT,Apache-2.0. Preserve case.
max_prsNoMaximum open pull requests of a repository with collected activity data.
min_prsNoMinimum open pull requests of a repository with collected activity data.
categoryNoCategory declared by whoever published.
has_codeNoWhether a repository link is available. This does not certify the code.
languageNoRepository code languages, comma-separated. Preserve case, for example Python.
interpretNo`0` disables query understanding and searches the raw string.
min_forksNoMinimum forks of a repository with collected activity data.
min_starsNoMinimum repository stars, from 0 to 999999999.
retry_keyNoOptional retry key, up to 80 ASCII characters; same read for five minutes.
added_sinceNoCatalog arrival on or after YYYY-MM-DD. This is not the original publication date.
pushed_sinceNoLast repository code push on or after YYYY-MM-DD.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • removedInput schema / properties / api_pass
      Removed value: -{
      -  "description": "MAT-only private pass: mat_<32 random hex>_<64 random hex>. Generate and save before buying.",
      -  "type": "string"
      -}
  2. Changed9 schema fields changed
    • addedInput schema / properties / added_since
      Added value: +{
      +  "description": "Catalog arrival on or after YYYY-MM-DD. This is not the original publication date.",
      +  "type": "string"
      +}
    • addedInput schema / properties / has_code
      Added value: +{
      +  "description": "Whether a repository link is available. This does not certify the code.",
      +  "enum": [
      +    "0",
      +    "1"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / language
      Added value: +{
      +  "description": "Repository code languages, comma-separated. Preserve case, for example Python.",
      +  "type": "string"
      +}
    • addedInput schema / properties / license
      Added value: +{
      +  "description": "Repository licenses, comma-separated, for example MIT,Apache-2.0. Preserve case.",
      +  "type": "string"
      +}
    • addedInput schema / properties / max_prs
      Added value: +{
      +  "description": "Maximum open pull requests of a repository with collected activity data.",
      +  "type": "string"
      +}
    • addedInput schema / properties / min_forks
      Added value: +{
      +  "description": "Minimum forks of a repository with collected activity data.",
      +  "type": "string"
      +}
    • addedInput schema / properties / min_prs
      Added value: +{
      +  "description": "Minimum open pull requests of a repository with collected activity data.",
      +  "type": "string"
      +}
    • addedInput schema / properties / min_stars
      Added value: +{
      +  "description": "Minimum repository stars, from 0 to 999999999.",
      +  "type": "string"
      +}
    • addedInput schema / properties / pushed_since
      Added value: +{
      +  "description": "Last repository code push on or after YYYY-MM-DD.",
      +  "type": "string"
      +}
  3. Changed2 schema fields changed
    • addedInput schema / properties / api_pass
      Added value: +{
      +  "description": "MAT-only private pass: mat_<32 random hex>_<64 random hex>. Generate and save before buying.",
      +  "type": "string"
      +}
    • addedInput schema / properties / retry_key
      Added value: +{
      +  "description": "Optional retry key, up to 80 ASCII characters; same read for five minutes.",
      +  "type": "string"
      +}
  4. Changed3 schema fields changed
    • changedInput schema / properties / low / description
      Previous value: -"`1` includes `low` listings in the result. Only valid together with `q`."New value: +"`0` leaves the `low` tail out; by default it comes after the `live` listings in every order."
    • changedInput schema / properties / low / enum
      Previous value: -[
      -  "1"
      -]New value: +[
      +  "0"
      +]
    • changedInput schema / properties / q / description
      Previous value: -"Free text over the name, the tagline, the description, the origin identifier and the README excerpt: every word (up to six, 2+ letters, accents ignored) must match; ranked by bm25 with the name weighing most (10), then tagline (5), identifier (3), description (2), README excerpt (1); ties by stars. Kind, topic and transport words become filters. The `low` tail still uses LIKE."New value: +"Free text over the name, the tagline, the description, the origin identifier and the README excerpt: every word (up to six, 2+ letters, accents ignored) must match; ranked by bm25 with the name weighing most (10), then tagline (5), identifier (3), description (2), README excerpt (1); ties by stars. Kind, topic and transport words become filters. The `low` tail is in the same index."
  5. Changed2 schema fields changed
    • changedInput schema / properties / q / description
      Previous value: -"Free text over the name, the tagline and the description. Kind, topic and transport words become filters."New value: +"Free text over the name, the tagline, the description, the origin identifier and the README excerpt: every word (up to six, 2+ letters, accents ignored) must match; ranked by bm25 with the name weighing most (10), then tagline (5), identifier (3), description (2), README excerpt (1); ties by stars. Kind, topic and transport words become filters. The `low` tail still uses LIKE."
    • changedInput schema / properties / sort / description
      Previous value: -"Result order. Without it, a query is ranked by relevance and a plain listing by arrival."New value: +"Result order. Without it, a query is ranked by relevance — bm25 over the full-text index (name 10, tagline 5, identifier 3, description 2, README excerpt 1) multiplied by 1 + 0.05·ln(1 + stars) + 0.1 if pushed in the last 180 days + 0.1 if a README was collected; ties by stars — and a plain listing by arrival."
  6. Changed3 schema fields changed
    • changedInput schema / properties / sort / default
      Previous value: -"recent"New value: +"relevancia when q is set, recent otherwise"
    • changedInput schema / properties / sort / description
      Previous value: -"Result order."New value: +"Result order. Without it, a query is ranked by relevance and a plain listing by arrival."
    • changedInput schema / properties / sort / enum
      Previous value: -[
      -  "recent",
      -  "likes",
      -  "visits"
      -]New value: +[
      +  "relevancia",
      +  "recent",
      +  "stars",
      +  "likes",
      +  "visits",
      +  "nome"
      +]
  7. Changed2 schema fields changed
    • addedInput schema / properties / interpret
      Added value: +{
      +  "description": "`0` disables query understanding and searches the raw string.",
      +  "enum": [
      +    "0"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / q / description
      Previous value: -"Free text over the name, the tagline and the description."New value: +"Free text over the name, the tagline and the description. Kind, topic and transport words become filters."
  8. Changed9 schema fields changed
    • addedInput schema / properties / category / description
      Added value: +"Category declared by whoever published."
    • addedInput schema / properties / kind / description
      Added value: +"Which kind of resource to fetch."
    • addedInput schema / properties / kind / enum
      Added value: +[
      +  "mcp",
      +  "skill",
      +  "plugin"
      +]
    • addedInput schema / properties / low / description
      Added value: +"`1` includes `low` listings in the result. Only valid together with `q`."
    • addedInput schema / properties / low / enum
      Added value: +[
      +  "1"
      +]
    • addedInput schema / properties / q / description
      Added value: +"Free text over the name, the tagline and the description."
    • addedInput schema / properties / sort / default
      Added value: +"recent"
    • addedInput schema / properties / sort / description
      Added value: +"Result order."
    • addedInput schema / properties / sort / enum
      Added value: +[
      +  "recent",
      +  "likes",
      +  "visits"
      +]
  9. First observed

TDQS

A3.9/5.0
Behavior5/5

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

Annotations only declare the safe-read profile (readOnly, idempotent, non-destructive); the description adds substantial beyond-annotation behavior: live-first ordering with a `low` tail, cursor semantics (`next_cursor`, keyset, no ceiling), per-listing HTML pages and sitemap shards, an FTS5/bm25 index kept in the same write transaction, and `low_count` capping at 200. This is exactly the behavioral context annotations cannot carry.

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 catalog scope is front-loaded and the sentences are dense but information-bearing, covering ordering, traversal, and query mapping without filler. It is on the long side and packs several independent facts into single sentences, but each clause earns its place for an agent that must traverse and filter correctly.

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

Completeness4/5

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

With no output schema, the description compensates by explaining the traversal contract (cursor, no ceiling, low_count, HTML/sitemap alternatives) an agent needs to page results. For a 16-parameter read tool this is close to complete; only explicit sibling routing 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 100%, so all 16 parameters are already documented in the schema; the baseline is 3. The description largely restates that parameter content (low=0, interpret=0) and its most novel semantics — next_cursor, low_count — concern return/traversal behavior rather than parameters, so it adds only marginal parameter-level meaning.

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 opens with a concrete scope — 'Public mosaic of live MCP servers, skills, plugins and OKF knowledge bundles' — which tells an agent exactly what universe of records it operates on and implicitly distinguishes it from narrower siblings like list_mcp_servers or search_bundles. It never states a verb ('list'/'search'), relying on the name and title, so the purpose is clear but not explicitly action-framed.

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?

It gives operational conditions for specific parameters (low=0 to drop the tail, interpret=0 to disable query understanding, follow `next` to walk everything), which implies when to reach for those switches. However, it never names or contrasts a sibling tool (e.g. mcp_index_search, search_bundles, get_listing) or states when NOT to use this tool, so usage is implied rather than guided.

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