Skip to main content
Glama

Sam Entity Search

sam_entity_search
Read-onlyIdempotent

Look up federal contractors registered in SAM.gov by business name, UEI, or CAGE code. Returns UEI, CAGE, legal and DBA name, address, NAICS and PSC codes, entity structure, registration and expiration dates, small-business/SBA certifications, and whether the entity carries an exclusion flag. Answers keyless from a local mirror of SAM.gov's public Entity Registration extract, ranking an exact UEI/CAGE/legal-name match above any fuzzy name hit and active registrations above expired ones. Every response carries a mirror field with the snapshot date and its age in days — the public entity extract is published MONTHLY, so an answer can legitimately be several weeks old; pass live:true with an API key when you need the registry as of today.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
liveNoForce a live SAM.gov API lookup instead of the mirror. Needs _apiKey. Use only when you specifically need registrations changed since the mirror snapshot — the live entity API is capped at 10 requests/day on the shared platform key.
limitNoNumber of results (1-100, default 10).
naicsNoFilter by NAICS code (optional) — matches the primary NAICS or any NAICS the entity lists.
stateNoFilter by 2-letter US state code (e.g., "VA", "CA")
offsetNoRows to skip for paging (default 0).
_apiKeyNoOptional — omit it. This search answers keyless from the local snapshot of SAM.gov's public Entity Registration extract; a key is needed only for live:true.
active_onlyNoOnly entities with an active registration (default false — expired registrations are returned but sorted below active ones).
business_nameYesWhat to search for: a legal/DBA business name, or an exact UEI or CAGE code. Accepts query / q / name as aliases.
small_businessNoFilter to only small business entities (optional)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
entitiesYes
total_recordsYesTotal number of matching entities in SAM

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed1 schema field changed
    • changedInput schema / examples
      Previous value: -[
      -  {
      -    "_apiKey": "your-samgov-api-key",
      -    "business_name": "Acme Tech Solutions",
      -    "state": "VA"
      -  },
      -  {
      -    "_apiKey": "your-samgov-api-key",
      -    "business_name": "GreenTech Inc",
      -    "naics": "541511",
      -    "small_business": true
      -  }
      -]New value: +[
      +  {
      +    "business_name": "Lockheed Martin Corporation",
      +    "limit": 2
      +  },
      +  {
      +    "business_name": "CH5WNENNFHX5"
      +  },
      +  {
      +    "business_name": "GreenTech",
      +    "naics": "541511",
      +    "small_business": true,
      +    "state": "VA"
      +  }
      +]
  2. Changed8 schema fields changed
    • changedInput schema / properties / _apiKey / description
      Previous value: -"SAM.gov API key — required. Free at https://sam.gov/content/entity-information; a key on an account with a SAM.gov role allows 1,000 requests/day."New value: +"Optional — omit it. This search answers keyless from the local snapshot of SAM.gov's public Entity Registration extract; a key is needed only for live:true."
    • addedInput schema / properties / active_only
      Added value: +{
      +  "description": "Only entities with an active registration (default false — expired registrations are returned but sorted below active ones).",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / business_name / description
      Previous value: -"Legal business name to search for"New value: +"What to search for: a legal/DBA business name, or an exact UEI or CAGE code. Accepts query / q / name as aliases."
    • addedInput schema / properties / limit
      Added value: +{
      +  "description": "Number of results (1-100, default 10).",
      +  "type": "number"
      +}
    • addedInput schema / properties / live
      Added value: +{
      +  "description": "Force a live SAM.gov API lookup instead of the mirror. Needs _apiKey. Use only when you specifically need registrations changed since the mirror snapshot — the live entity API is capped at 10 requests/day on the shared platform key.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / naics / description
      Previous value: -"Filter by primary NAICS code (optional)"New value: +"Filter by NAICS code (optional) — matches the primary NAICS or any NAICS the entity lists."
    • addedInput schema / properties / offset
      Added value: +{
      +  "description": "Rows to skip for paging (default 0).",
      +  "type": "number"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "business_name",
      -  "_apiKey"
      -]New value: +[
      +  "business_name"
      +]
  3. Changed1 schema field changed
    • changedInput schema / properties / _apiKey / description
      Previous value: -"SAM.gov API key"New value: +"SAM.gov API key — required. Free at https://sam.gov/content/entity-information; a key on an account with a SAM.gov role allows 1,000 requests/day."
  4. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "entities": {
      +      "items": {
      +        "properties": {
      +          "address": {
      +            "description": "Physical business address",
      +            "properties": {
      +              "city": {
      +                "description": "City",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "country": {
      +                "description": "Country code",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "line1": {
      +                "description": "Address line 1",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "state": {
      +                "description": "State or province code",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "zip": {
      +                "description": "Zip/postal code",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "business_types": {
      +            "description": "List of business type classifications",
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "cage_code": {
      +            "description": "CAGE Code identifier",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "dba_name": {
      +            "description": "Doing Business As name",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "entity_url": {
      +            "description": "Entity website URL",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "expiration_date": {
      +            "description": "SAM registration expiration date",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "legal_business_name": {
      +            "description": "Legal business name",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "primary_naics": {
      +            "description": "Primary NAICS code",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "registration_date": {
      +            "description": "Date of initial SAM registration",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "registration_status": {
      +            "description": "SAM registration status",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "sba_certifications": {
      +            "description": "SBA business type certifications held",
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "uei": {
      +            "description": "Unique Entity Identifier",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "total_records": {
      +      "description": "Total number of matching entities in SAM",
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "total_records",
      +    "entities"
      +  ],
      +  "type": "object"
      +}
  5. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "_apiKey": "your-samgov-api-key",
      +    "business_name": "Acme Tech Solutions",
      +    "state": "VA"
      +  },
      +  {
      +    "_apiKey": "your-samgov-api-key",
      +    "business_name": "GreenTech Inc",
      +    "naics": "541511",
      +    "small_business": true
      +  }
      +]
  6. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnly/openWorld/idempotent/non-destructive, and the description adds highly valuable behavioral context: exact UEI/CAGE/legal-name matches rank above fuzzy hits, active registrations sort above expired ones, and the mirror field discloses snapshot date/age with a clear caveat that the data may legitimately be weeks old. No contradiction with annotations.

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?

Four dense sentences with the core purpose front-loaded. Every clause adds information — search types, returned fields, ranking behavior, and freshness caveat. The description is longer than average but earns its length for a tool with this complexity; only minor trimming of the returned-fields list would tighten it.

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?

Output schema exists and annotations cover the safety profile, so the description only needs to explain behavior, ranking, freshness, and live-mode conditions — all of which are present. An agent has enough context to decide when to use the tool, what results to expect, and how to interpret stale mirror data.

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% with detailed per-parameter descriptions. The main description echoes the business_name acceptance of legal/DBA names or exact UEI/CAGE codes and the live:true API-key caveat already in the schema, but does not add substantially new parameter-level meaning beyond the structured definitions.

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: 'Look up federal contractors registered in SAM.gov by business name, UEI, or CAGE code.' It clearly distinguishes SAM entity search from sibling tools like sam_search_opportunities and sam_search_exclusions by focusing on entity registrations and their attributes.

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?

Provides clear context: keyless mirror use, monthly snapshot staleness, live:true for current data, and 10-request/day cap. However, it does not explicitly name alternative tools or give when-not-to-use guidance versus closely related siblings like entity_profile or resolve_entity, so it stops short of full exclusion guidance.

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.

TDQS

A3.8/5.0
Disambiguation2/5

Three ask_pipeworx variants and a dense cluster of polymarket_* edge tools have heavily overlapping purposes, and ai_visibility_check vs scan_competitor_ai_presence further blurs boundaries. Only the sam_*, memory, and subscription tools form cleanly distinct families.

Naming Consistency3/5

All names are lowercase snake_case and readable, but the pattern is mixed: verb_noun names (compare_entities, resolve_entity), bare verbs (remember, recall, forget), noun phrases (entity_profile, polymarket_edges), and domain-prefix families (sam_*, polymarket_*) coexist. No camelCase chaos, but no consistent verb style either.

Tool Count2/5

36 tools is well beyond the ideal range, and many are near-duplicates or wrappers (ask_pipeworx variants, ai_visibility_check vs scan_competitor_ai_presence). The server is named Samgov, yet only 5 tools actually concern SAM.gov, making the count feel inflated and unfocused.

Completeness3/5

The SAM.gov subset covers entity search, opportunities, set-asides, opportunity details, and exclusions, but omits major datasets like contract awards. The broader Pipeworx research/memory/subscription surface is extensive, though it is muddled by redundant query modes and lacks a direct way to invoke individual pack tools.