Skip to main content
Glama

Ppp Loan Lookup

ppp_loan_lookup
Read-onlyIdempotent

Look up a business's Paycheck Protection Program (PPP) loan(s) by borrower name. Returns each loan's approved amount, jobs_reported (the headcount the business stated on its 2020-21 application), NAICS code, servicing and originating lender, approval date, first or second draw, loan status, and forgiveness amount and date. Names match from their first word ("Sumter Coatings" finds "SUMTER COATINGS, INC."); add zip to also match a word inside the name. Business borrowers only: sole proprietors, self-employed individuals and borrowers named as a person are excluded, and no street address is stored. Source: SBA PPP FOIA data, as of 2024-09-30.

Input Schema

NameRequiredDescriptionDefault
zipNoOptional 5-digit borrower ZIP. With it, a word inside the name also matches.
limitNoMax loans to return (1-100, default 20).
stateNoOptional 2-letter borrower state code to narrow common names, e.g. "SC".
borrower_nameYesBusiness name, from its first word, e.g. "Sumter Coatings". Suffixes like Inc/LLC and punctuation are ignored.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already carry the safety profile (readOnly, idempotent, non-destructive, open-world), and the description adds genuinely new behavioral context: prefix-from-first-word matching semantics with a worked example, the no-street-address storage limitation, the borrower-type exclusion, and data provenance/staleness ('SBA PPP FOIA data, as of 2024-09-30').

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?

Purpose is front-loaded in the first clause, followed by return fields, match rules, exclusions, and source in descending order of importance. Every sentence carries distinct information; nothing is repeated padding.

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?

With no output schema, explicitly listing the returned fields (amount, jobs_reported, NAICS, lenders, draw, status, forgiveness) is exactly the right compensation, and the data vintage plus matching rules cover the remaining call-shaping questions an agent would have.

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 four parameters (including limit and state) are already documented in structured data, which sets the baseline at 3. The description's naming/match rules largely restate what the borrower_name and zip schema descriptions already say, adding no syntax the schema lacks.

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 gives a specific verb and resource ('Look up a business's PPP loan(s) by borrower name') and enumerates the returned fields, so an agent immediately knows this is a per-borrower record lookup. It is fully clear but never names its closest sibling (ppp_aggregate), leaving the individual-vs-aggregate distinction to be inferred.

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?

It establishes clear usage context: supply a business name, optionally add zip for inside-name word matching or state to narrow common names, and excludes non-business borrowers entirely ('sole proprietors, self-employed individuals ... are excluded'). It does not, however, point to an alternative tool when the borrower is an individual or when aggregated data is wanted.

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.