Skip to main content
Glama

plainfold/business-entity-check

plainfold--business-entity-check
Destructive

This tool calls the Actor "plainfold/business-entity-check" and retrieves its output results. Actor description: Verify a US company is registered and active from official state registry open data (NY, CO, OR, CT, TX). Returns verdict, legal name, registry ID, status, entity type, formation date, address. Company records only, no API key. $0.004 per company found, $0.0005 per no-match.

Input Schema

NameRequiredDescriptionDefault
statesNoWhich state registries to search. Default: all supported states ["NY", "CO", "OR", "CT", "TX"]. NY and OR publish active entities only; CO and CT include inactive entities with their status; TX reports the Comptroller's right-to-transact-business status. Example values: ["NY","CO","OR","CT","TX"]
waitSecsNoMax seconds (0–45, default 30) to cap the wait for the Actor run to reach terminal state. For long-running Actors the response returns at the cap with the current run status; follow `nextStep` to poll via get-actor-run. Set to 0 to fire-and-forget.
companiesYes**REQUIRED** Legal or common names of the companies to verify, one per entry, e.g. ["Arrow Electronics, Inc.", "Kodak Alaris LLC"]. Matching ignores case, punctuation, a leading "The" and suffix spelling (Inc./Incorporated, LLC/L.L.C.). A name without a suffix ("Arrow Electronics") matches any entity type; a name with a suffix ("AT&T Corp") prefers that exact entity. To search one state only, append " | XX", e.g. "Dell Technologies Inc. | TX". One result (and one charge) per entry. [Description truncated] Example values: ["Arrow Electronics, Inc.","Kodak Alaris LLC"]
includeSimilarNoAdd up to 5 similar registered names (e.g. subsidiaries such as "Arrow Electronics Funding Corporation") in similarNames. Similar names never count as a match. Default: true. Example values: true
includeInactiveNoAlso return dissolved, withdrawn, forfeited or revoked registrations (marked isActive: false). Set false to return only active or status-unknown registrations. Default: true. Example values: true
maxMatchesPerCompanyNoMaximum matching registrations listed per company (across all states), best first. Default: 10. Example values: 10

Output Schema

NameRequiredDescriptionDefault
tipNoAdvisory guidance RAG Web Browser wrote to its key-value store under the reserved "TIP" key
runIdYesActor run ID
statsNoRun statistics
statusYesRun status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED
actorIdYesStable Apify Actor ID from the run record
summaryYesPast-tense summary of the run state
exitCodeNoActor process exit code; populated for terminal states (especially FAILED)
nextStepYesOne primary follow-up action with identifiers interpolated
storagesYesDataset and key-value store metadata, keyed by alias. "default" is always the primary entry.
actorNameNo"username/actor-name"
startedAtNoISO timestamp when the run started
finishedAtNoISO timestamp when the run finished (terminal states only)
statusMessageNoPass-through from Apify run.statusMessage
apifyConsoleUrlNoPersonalized Apify Console link to the run; present only for Console sessions

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / tip / properties / caveat
      Added value: +{
      +  "description": "Present when this session cannot run the Actor the tip recommends",
      +  "type": "string"
      +}
    • changedOutput schema / properties / tip / properties / recommendedActorId / description
      Previous value: -"Apify Actor ID the tip recommends running next, when it names one — pass directly as `actor` to call-actor or fetch-actor-details"New value: +"Apify Actor ID the tip recommends, when it names one"
  2. Changed1 schema field changed
    • addedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema
      Added value: +{
      +  "description": "JSON Schema for rows in the dataset at `storages.datasets.default.id` — describes row shape only; the rows themselves are NOT returned inline in this response. Inferred from this Actor's historical successful runs. To fetch actual rows, call `get-dataset-items` with the dataset id and a `fields` projection drawn from this schema.",
      +  "properties": {
      +    "activeIn": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "bestMatch": {
      +      "properties": {
      +        "address": {
      +          "properties": {
      +            "city": {
      +              "type": "string"
      +            },
      +            "country": {
      +              "type": "string"
      +            },
      +            "state": {
      +              "type": "string"
      +            },
      +            "street": {
      +              "type": "string"
      +            },
      +            "zip": {
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "entityType": {
      +          "type": "string"
      +        },
      +        "formationDate": {
      +          "type": "string"
      +        },
      +        "goodStanding": {
      +          "type": "boolean"
      +        },
      +        "isActive": {
      +          "type": "boolean"
      +        },
      +        "jurisdictionOfFormation": {
      +          "type": "string"
      +        },
      +        "matchType": {
      +          "type": "string"
      +        },
      +        "name": {
      +          "type": "string"
      +        },
      +        "recordUrl": {
      +          "type": "null"
      +        },
      +        "registryId": {
      +          "type": "string"
      +        },
      +        "registryIdLabel": {
      +          "type": "string"
      +        },
      +        "source": {
      +          "properties": {
      +            "dataset": {
      +              "type": "string"
      +            },
      +            "datasetUpdatedAt": {
      +              "type": "string"
      +            },
      +            "datasetUrl": {
      +              "type": "string"
      +            },
      +            "lookupUrl": {
      +              "type": "string"
      +            },
      +            "registry": {
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "state": {
      +          "type": "string"
      +        },
      +        "status": {
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "checkedAt": {
      +      "type": "string"
      +    },
      +    "errors": {
      +      "items": {},
      +      "type": "array"
      +    },
      +    "found": {
      +      "type": "boolean"
      +    },
      +    "isActive": {
      +      "type": "boolean"
      +    },
      +    "matchCount": {
      +      "type": "number"
      +    },
      +    "matches": {
      +      "items": {
      +        "properties": {
      +          "address": {},
      +          "annualReportDueDate": {
      +            "type": "string"
      +          },
      +          "county": {
      +            "type": "string"
      +          },
      +          "dissolutionDate": {
      +            "type": "null"
      +          },
      +          "entityType": {
      +            "type": "string"
      +          },
      +          "formationDate": {
      +            "type": "string"
      +          },
      +          "goodStanding": {
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "isActive": {
      +            "type": "boolean"
      +          },
      +          "jurisdictionOfFormation": {
      +            "type": [
      +              "null",
      +              "string"
      +            ]
      +          },
      +          "matchType": {
      +            "type": "string"
      +          },
      +          "naicsCode": {
      +            "type": [
      +              "null",
      +              "string"
      +            ]
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "recordUrl": {
      +            "type": [
      +              "null",
      +              "string"
      +            ]
      +          },
      +          "registryId": {
      +            "type": "string"
      +          },
      +          "registryIdLabel": {
      +            "type": "string"
      +          },
      +          "sosFileNumber": {
      +            "type": "string"
      +          },
      +          "source": {
      +            "properties": {
      +              "dataset": {
      +                "type": "string"
      +              },
      +              "datasetUpdatedAt": {
      +                "type": "string"
      +              },
      +              "datasetUrl": {
      +                "type": "string"
      +              },
      +              "lookupUrl": {
      +                "type": "string"
      +              },
      +              "registry": {
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "state": {
      +            "type": "string"
      +          },
      +          "status": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "query": {
      +      "type": "string"
      +    },
      +    "queryState": {
      +      "type": "null"
      +    },
      +    "similarNames": {
      +      "items": {
      +        "properties": {
      +          "isActive": {
      +            "type": "boolean"
      +          },
      +          "matchType": {
      +            "type": "string"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "registryId": {
      +            "type": "string"
      +          },
      +          "state": {
      +            "type": "string"
      +          },
      +          "status": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "statesSearched": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "summary": {
      +      "type": "string"
      +    },
      +    "verdict": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  3. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true and destructiveHint=true, so the safety profile is partly covered. The description adds genuinely useful context beyond that: per-company pricing ($0.004 found / $0.0005 no-match), 'no API key' requirement, and that mismatches/similar names never count as a match. It does not explain the destructive/side-effect nature implied by the annotations, but the cost model and matching semantics are real added value.

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?

Two compact sentences with no wasted words; the generic 'calls the Actor and retrieves its output results' lead is boilerplate but brief, and the substantive Actor description follows immediately. Front-loading the actual capability would have been marginally better.

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?

An output schema exists, so return values need not be re-explained, yet the description still summarizes the key fields. It communicates pricing, state coverage, matching behavior and no-auth-required, which is sufficient for a 6-param, single-required-param verification tool. Only usage routing relative to siblings 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% and each of the 6 parameters (states, waitSecs, companies, includeSimilar, includeInactive, maxMatchesPerCompany) is documented in detail in the schema itself. The description adds little parameter-level meaning beyond the billing note ('one result, one charge per entry'), so the baseline 3 applies.

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?

The Actor description states a specific verb, resource and scope: 'Verify a US company is registered and active from official state registry open data (NY, CO, OR, CT, TX)'. It also enumerates the result shape (verdict, legal name, registry ID, status, entity type, formation date, address), which distinguishes it at a glance from the generic Apify plumbing siblings (get-actor-run, get-dataset-items).

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?

Usage is only implied by the subject matter: it is the tool you use when you need to confirm a US company's registration. There is no explicit when-to-use/when-not statement and no routing to or away from any sibling (e.g. how it relates to get-dataset-items for fetching more results). The 'Company records only' line is a mild scope exclusion.

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.