Skip to main content
Glama

Company stack

company_stack
Read-onlyIdempotent

Tools a company publicly uses according to usedby, strongest proof first, each with its proof level (job-post signals last) and source page. Each listed line carries its proof level, strongest first: quote the per-level mix next to any total. A line whose source.method is SUBPROCESSOR_LIST is listed as a sub-processor by the company, never a described use. Name only the companies and tools returned in listed. Each claim separates relationship meaning from proof strength. Cite claim.url and its original claim.source.url when available. Report limitations and null as unknown. Capture and verification dates are checks, never adoption or source publication dates. Do not infer current contract, spend or deployment; no calibrated confidence score is provided. firstPublicProof is an upper bound for on_or_before; job_post does not establish usage start. It dates the relationship; binding to the selected source is unverified. Adoption needs an explicit source statement. MCP may return fewer rows to fit its byte budget; keep filters and options on continuation. For enumeration pass pagination.nextOffset with pagination.snapshot (REST: follow pagination.next), and restart at offset 0 if the snapshot expires.

Input Schema

NameRequiredDescriptionDefault
limitNoRows to list (default 25, max 100). MCP may return fewer rows to fit its response budget; follow pagination.nextOffset and snapshot.
offsetNoZero-based list offset within 200 public rows, or 10000 with an explicitly granted data:bulk bearer credential. nextOffset=null can mean the public cap; inspect truncated. Bulk access: contact@usedby.ai.
companyYesCompany slug, name or website, e.g. 'stripe', 'Klarna', 'notion.so'.
snapshotNoPass pagination.snapshot on later pages. Restart if it expired.

Output Schema

NameRequiredDescriptionDefault
errorNoSet when the input matched nothing, was invalid, or the answer could not be returned.
notesNoHow to read this answer.
toolsNo
sourceYesThe usedby page to cite: quote with a link to source.url.
companyNoThe company, with its usedby page.
messageNoWhat went wrong, with the next step, when error is set.
signalsNoJob-post lines, the weakest proof.
paginationNoList continuation; next is the REST URL for the same cached snapshot.
latestCheckNoLatest verification or capture of a public line.
suggestionsNoClose matches to ask again with, when error is not_found.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changed
    • changedInput schema / properties / limit / description
      Previous value: -"Rows to list (default 25, max 100). The usedby page has the full list."New value: +"Rows to list (default 25, max 100). MCP may return fewer rows to fit its response budget; follow pagination.nextOffset and snapshot."
    • changedOutput schema / properties / error / description
      Previous value: -"Set only when the input matched nothing or was invalid."New value: +"Set when the input matched nothing, was invalid, or the answer could not be returned."
    • addedOutput schema / properties / tools / properties / listed / items / properties / claim / properties / citation
      Added value: +{
      +  "description": "Entity-pair citation with the matching claim and primary source URLs; never substitute a neighboring row.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / tools / properties / listed / items / properties / claim / properties / dates / properties / firstPublicProof / description
      Previous value: -"Upper bound of when the line became public: never an adoption date."New value: +"Relationship-level date: on_or_before is an upper bound; job_post does not date usage start; stated means what the source explicitly states. Binding to the selected source is unverified."
    • addedOutput schema / properties / tools / properties / listed / items / properties / claim / properties / dates / properties / firstPublicProofScope
      Added value: +{
      +  "const": "relationship",
      +  "type": "string"
      +}
    • addedOutput schema / properties / tools / properties / listed / items / properties / claim / properties / dates / properties / firstPublicProofSourceBinding
      Added value: +{
      +  "const": "unverified",
      +  "type": "string"
      +}
    • addedOutput schema / properties / tools / properties / listed / items / properties / claim / properties / dates / properties / sourcePublishedAtStatus
      Added value: +{
      +  "const": "unknown",
      +  "type": "string"
      +}
    • changedOutput schema / properties / tools / properties / listed / items / properties / claim / properties / source / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "evidenceId": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "excerpt": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "snapshot": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": {},
      -            "properties": {
      -              "hash": {
      -                "anyOf": [
      -                  {
      -                    "type": "string"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ]
      -              },
      -              "url": {
      -                "type": "string"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "url": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "evidenceId": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "excerpt": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "snapshot": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": {},
      +            "properties": {
      +              "hash": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "url": {
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "snapshotStatus": {
      +        "enum": [
      +          "public_snapshot_available",
      +          "no_public_snapshot_exposed"
      +        ],
      +        "type": "string"
      +      },
      +      "url": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / tools / properties / listed / items / properties / firstPublicProof / description
      Previous value: -"Upper bound of when the line became public: never an adoption date."New value: +"Relationship-level date: on_or_before is an upper bound; job_post does not date usage start; stated means what the source explicitly states. Binding to the selected source is unverified."
  2. Changed1 schema field changed
    • addedOutput schema / properties / tools / properties / listed / items / properties / claim
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Canonical public relationship provenance. Null means unknown; dates and proof do not establish current deployment.",
      +  "properties": {
      +    "dates": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "firstPublicProof": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": {},
      +              "properties": {
      +                "date": {
      +                  "type": "string"
      +                },
      +                "kind": {
      +                  "enum": [
      +                    "on_or_before",
      +                    "job_post",
      +                    "stated"
      +                  ],
      +                  "type": "string"
      +                }
      +              },
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Upper bound of when the line became public: never an adoption date."
      +        },
      +        "firstSeenAt": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "lastSeenAt": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "sourcePublishedAt": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "freshness": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "capturedAt": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "lastVerifiedAt": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "id": {
      +      "type": "string"
      +    },
      +    "limitations": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "proof": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "level": {
      +          "description": "Proof level, strongest first: CONFIRMED, DECLARED (the company states it), OBSERVED, SIGNAL (a job post, the weakest).",
      +          "enum": [
      +            "CONFIRMED",
      +            "DECLARED",
      +            "OBSERVED",
      +            "SIGNAL"
      +          ],
      +          "type": "string"
      +        },
      +        "method": {
      +          "anyOf": [
      +            {
      +              "enum": [
      +                "CASE_STUDY",
      +                "TESTIMONIAL",
      +                "PRESS",
      +                "DECLARED",
      +                "SUBPROCESSOR_LIST",
      +                "LOGO_WALL",
      +                "MANUAL",
      +                "DOMAIN_RECORD",
      +                "REPO_CONFIG",
      +                "JOB_POST"
      +              ],
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "relationship": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "label": {
      +          "type": "string"
      +        },
      +        "type": {
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "source": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": {},
      +          "properties": {
      +            "evidenceId": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "excerpt": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "snapshot": {
      +              "anyOf": [
      +                {
      +                  "additionalProperties": {},
      +                  "properties": {
      +                    "hash": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "url": {
      +                      "type": "string"
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "url": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            }
      +          },
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "url": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  3. Changed1 schema field changed
    • changedOutput schema / properties / tools / properties / listed / items / properties / source / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "capturedAt": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "method": {
      -        "type": "string"
      -      },
      -      "url": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "capturedAt": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "method": {
      +        "description": "How usedby knows, one of: CASE_STUDY, TESTIMONIAL, PRESS, DECLARED, SUBPROCESSOR_LIST, LOGO_WALL, MANUAL, DOMAIN_RECORD, REPO_CONFIG, JOB_POST.",
      +        "type": "string"
      +      },
      +      "url": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  4. Changed1 schema field changed
    • addedOutput schema / properties / company / properties / size
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": {},
      +      "properties": {
      +        "band": {
      +          "type": "string"
      +        },
      +        "employeesMax": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "employeesMin": {
      +          "type": "number"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Employee band and range; null when not proven."
      +}
  5. Changed2 schema fields changed
    • changedInput schema / properties / offset / description
      Previous value: -"Zero-based list offset within the first 200 public rows. nextOffset=null can mean the public cap; inspect truncated. Bulk access: contact@usedby.ai."New value: +"Zero-based list offset within 200 public rows, or 10000 with an explicitly granted data:bulk bearer credential. nextOffset=null can mean the public cap; inspect truncated. Bulk access: contact@usedby.ai."
    • changedInput schema / properties / offset / maximum
      Previous value: -199New value: +9999
  6. Changed2 schema fields changed
    • changedInput schema / properties / offset / description
      Previous value: -"Zero-based list offset. Follow pagination.nextOffset until null."New value: +"Zero-based list offset within the first 200 public rows. nextOffset=null can mean the public cap; inspect truncated. Bulk access: contact@usedby.ai."
    • changedInput schema / properties / offset / maximum
      Previous value: -1000000New value: +199
  7. Changed3 schema fields changed
    • changedOutput schema / properties / tools / properties / listed / items / properties / proof / description
      Previous value: -"Proof level, strongest first: CONFIRMED, OBSERVED, SIGNAL (a job post, the weakest)."New value: +"Proof level, strongest first: CONFIRMED, DECLARED (the company states it), OBSERVED, SIGNAL (a job post, the weakest)."
    • changedOutput schema / properties / tools / properties / listed / items / properties / proof / enum
      Previous value: -[
      -  "CONFIRMED",
      -  "OBSERVED",
      -  "SIGNAL"
      -]New value: +[
      +  "CONFIRMED",
      +  "DECLARED",
      +  "OBSERVED",
      +  "SIGNAL"
      +]
    • addedOutput schema / properties / tools / properties / mix / properties / declared
      Added value: +{
      +  "type": "number"
      +}
  8. Changed3 schema fields changed
    • addedInput schema / properties / offset
      Added value: +{
      +  "description": "Zero-based list offset. Follow pagination.nextOffset until null.",
      +  "maximum": 1000000,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / snapshot
      Added value: +{
      +  "description": "Pass pagination.snapshot on later pages. Restart if it expired.",
      +  "maxLength": 100,
      +  "type": "string"
      +}
    • addedOutput schema / properties / pagination
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "List continuation; next is the REST URL for the same cached snapshot.",
      +  "properties": {
      +    "next": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "nextOffset": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "offset": {
      +      "type": "number"
      +    },
      +    "snapshot": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  9. First observed

TDQS

A3.7/5.0
Behavior4/5

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

Beyond the read-only and idempotent annotations, the description discloses important behavioral traits: proof ordering, sub-processor caveat, null-as-unknown handling, date semantics, no calibrated confidence, byte-budget truncation, and snapshot expiry. These are substantial additions, though some sentences overlap output-schema interpretation rather than tool behavior.

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 front-loaded with the core purpose and then layers caveats logically. It is dense and repeats the strongest-proof-first idea, but for a proof-sensitive dataset most sentences carry useful interpretation guidance rather than filler.

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?

Given the output schema, annotations, and full parameter coverage, the description covers the important limitations, proof semantics, and pagination behavior an agent needs. Its main remaining gap is not explaining when to use this tool versus sibling tools, especially who_uses.

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 company, limit, offset, and snapshot are already documented in the schema. The description reinforces continuation and snapshot restart behavior and adds a REST pagination.next note, but does not add new per-parameter syntax beyond the schema.

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 states a specific resource and ordering: tools a company publicly uses according to usedby, strongest proof first, each with proof level and source page. It is clear what the tool returns, but it does not explicitly distinguish itself from sibling who_uses, which appears to be the reverse lookup.

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 use case is implied by the first sentence: retrieve a company's public tool stack. However, there is no explicit when-to-use versus alternatives guidance, and no sibling tools such as who_uses or compare are mentioned. Pagination guidance is provided, but it is about how to page rather than which tool to choose.

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