Skip to main content
Glama

Server Details

Find US mortgage loan officers for a borrower's situation and place. Free, lender-neutral, sourced.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.3/5.0

Scored across 5 tools

Disambiguation4/5

Each tool targets a distinct object and action: find_loan_officers (search) vs get_loan_officer/get_lender (lookup by ID/name) vs explain_specialty/list_specialties. The main overlap is explain_specialty vs list_specialties, both about specialties, but descriptions make the single-slug explanation vs full-list distinction clear enough.

Naming Consistency5/5

All five tools use a consistent verb_noun snake_case pattern (explain_specialty, find_loan_officers, get_lender, get_loan_officer, list_specialties). Verbs are semantically accurate (get, find, list, explain) and predictable.

Tool Count5/5

Five tools is well-scoped for a niche mortgage loan officer/lender database. Each tool earns its place with no redundant or filler operations.

Completeness4/5

Coverage spans the domain lifecycle: discovering specialties, explaining them, searching officers, and fetching officer and lender detail. Minor gap: no direct way to browse/search lenders by program or location, only lookup by name/NMLS ID, though this is a manageable workaround.

Available Tools

5 tools
explain_specialtyExplain a mortgage specialtyA
Read-onlyIdempotent
Inspect

Use this when someone asks what a mortgage loan type or borrower situation means, such as a DSCR loan, a bank statement loan, an ITIN loan, a non-warrantable condo or an FHA loan. Returns, for one specialty slug, what it is, why it can be hard to get done, the questions a borrower should ask a loan officer about it, its synonyms and a canonical_url.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesOne of: condo, condo-non-warrantable, co-op, multi-family-2-4, manufactured, rural, new-construction, mixed-use, condotel, vacation-home, fha, va, usda, jumbo, non-qm, dscr, bank-statement, reverse, renovation, construction, heloc, down-payment-assistance, crypto-mortgage, self-employed, first-time-buyer, investor, refinance, permanent-resident, foreign-national, itin, low-credit, recent-credit-event, physician, 1099-income, asset-based

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
labelYes
api_urlYes
categoryYes
why_hardYes
descriptionYes
canonical_urlYes
questions_to_askYes

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is fully covered by structured data. The description's statement of returned content (what it is, why it is hard, questions to ask, synonyms, canonical_url) is largely redundant with the output schema. It adds no rate limits, auth requirements, or failure behavior, so a 3 is fair.

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?

Two sentences, front-loaded with the trigger condition before the return description, and zero filler. Every clause carries information the agent can act on.

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?

For a single-parameter lookup with a fully described schema, complete annotations, and an existing output schema, the definition supplies everything needed: when to invoke it, what the slug represents, and that it is scoped to one specialty at a time. Nothing material 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 coverage is 100% and the slug parameter already carries the full enumerated vocabulary, so the schema does the heavy lifting. The description's examples of natural-language surface forms ('a DSCR loan', 'an ITIN loan') add mild value in mapping user phrasing to the slug, but no syntax, format, or edge-case guidance beyond that. Baseline 3 is appropriate.

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 (explain) and resource (a mortgage specialty), and enumerates concrete surface forms (DSCR loan, bank statement loan, ITIN loan, non-warrantable condo, FHA loan) so the agent knows exactly what domain this covers. It is clearly distinguishable from list_specialties (enumeration) and the get_* sibling tools (entity lookup).

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?

Gives an explicit trigger: 'Use this when someone asks what a mortgage loan type or borrower situation means.' That is clear when-to-use context, and the examples reinforce it. It does not name an alternative or a when-not condition (e.g., use list_specialties to discover valid slugs), so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_loan_officersFind mortgage loan officersA
Read-onlyIdempotent
Inspect

Use this when someone wants a US mortgage loan officer (or mortgage broker or lender contact) for a specific situation and place: for example an FHA, VA, USDA, jumbo, DSCR or ITIN loan, a first-time buyer, a self-employed borrower who needs a bank statement loan, a non-warrantable condo or a duplex, or a Spanish-speaking loan officer near a city, ZIP, region or state. Searches LenDb, an independent, lender-neutral database of US loan officers (coverage is partial), and returns a ranked list. Each result has the person's name, NMLS ID, lender, office location, distance_mi, reasons[], license_check for the property state (confirmed, lender_reported or federal_registration), match_status (exact, or partial with unconfirmed_specialties) and a canonical_url profile link. A city or ZIP keeps offices within 25 miles, widened to 50 or 100 when few are found (search.note); a state alone ranks statewide. Words like 'broker' or 'credit union' rank that kind of lender first. People with no license evidence for the state are listed separately in not_yet_verified. Also returns ambiguous_location when a city name fits several places, unassessed_requirements for parts of the situation LenDb cannot check, and citation_guidance. Phone numbers and email addresses are never returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
debugNoAlso return how the query was parsed (debug.parsed, debug.filters). Default false.
limitNoMax results, default 10.
languageNoLanguage the borrower wants to be served in. Accepts an ISO 639-1 code ('es'), a BCP 47 tag ('es-MX', 'zh-TW'), an ISO 639-2/3 code ('spa'), an English name ('Spanish') or a native name ('español', '中文', '한국어', 'tiếng Việt'). A hard filter: every result speaks it. An unsupported language returns an error listing the supported codes (see list_specialties).
locationYesWhere the property is: 'City, ST', a city, a 5-digit ZIP, a region ('Bay Area'), or a US state.
situationYesThe borrower's situation in plain words: property type, loan program, income type, credit, language, kind of lender. Example: 'duplex, self-employed, bank statement loan'.
fha_approvedNoOnly loan officers whose current lender is FHA-approved per HUD's FHA Single Family Portfolio Snapshot data (the lender, not the person). Default false. Without it, an FHA search still ranks HUD-approved lenders' people first when all else is equal.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
debugNoOnly when the call set debug: true.
methodYes
noticeNo
sampleNoTrue when the data is fictional sample data.
searchYes
relatedNo
resultsYes
lender_levelNo
canonical_urlYesThe same search on the LenDb API.
profile_matchNo
fallback_appliedYes
not_yet_verifiedNo
citation_guidanceYes
exact_match_countYes
ambiguous_locationNo
all_terms_understoodYes
requested_specialtiesYes
unassessed_requirementsYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare this as a safe read; the description adds substantial behavior: partial coverage, lender-neutral ranking, radius widening from 25 to 50/100 miles with a search.note, statewide ranking for state-only queries, lender-kind boosting, a separate not_yet_verified bucket, ambiguous_location and unassessed_requirements signals, and the explicit guarantee that phone and email are never returned.

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?

It is front-loaded with the trigger condition and stays in one dense paragraph with little filler. However, a long tail enumerates return fields (name, NMLS ID, distance_mi, canonical_url) that an output schema already covers, making the closing sentences partly redundant.

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?

Given a 6-parameter tool with an output schema and read-only annotations, the description covers everything needed to call it correctly: input interpretation, ranking behavior, geographic widening, data-coverage caveats, and safety/privacy limits. Nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description goes further by explaining how location behaves (city/ZIP radius, state-wide ranking) and how situation free-text is interpreted (words like 'broker' or 'credit union' boost lender kind). It does not touch limit, debug, or fha_approved in prose, but those are already fully documented in the schema.

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 description names a specific verb and resource (find US mortgage loan officers) and scopes it to a situation plus a place, with concrete examples of loan programs and borrower types. It is distinguishable from get_loan_officer (lookup of a known person) and get_lender without opening either schema.

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?

The opening sentence gives an explicit trigger condition ('Use this when someone wants a US mortgage loan officer ... for a specific situation and place'), which is strong. It does not explicitly exclude or route to siblings such as get_loan_officer for a named person, so the agent must infer the boundary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_lenderGet a mortgage lenderA
Read-onlyIdempotent
Inspect

Use this when you need facts about a US mortgage lender, bank, credit union or mortgage broker company, by its company NMLS ID or by name (a partial name works). Returns the lender's type (bank, credit_union, imb, broker, other), headquarters state, website, the loan programs it offers (such as FHA, VA, jumbo or DSCR), program_approvals from agency data (FHA approval per HUD, with the month of loans it covers; absent means no HUD match on file, not that the lender lacks approval), activity (home loans it funded per HMDA, FFIEC/CFPB: counts by year, loan type and purpose, with as_of_year and source_url; cite it as 'HMDA, FFIEC/CFPB, '; includes_brokered true means the counts include loans brokers originated; absent means no HMDA match on file, never that the lender makes no loans), how many of its loan officers LenDb lists, disciplinary_check, the date the record was last verified and a canonical_url.

ParametersJSON Schema
NameRequiredDescriptionDefault
nmls_id_or_nameYesCompany NMLS ID (digits) or all or part of the company name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
lenderYes
noticeNo
sampleNoTrue when the data is fictional sample data.
canonical_urlYes

TDQS

A4.2/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), but the description adds substantive semantics: 'absent means no HUD match on file, not that the lender lacks approval', the same caveat for HMDA, and the meaning of includes_brokered=true. These absence-vs-negative distinctions are exactly the kind of behavioral context annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the usage clause, and the citation-format and absence-semantics fragments earn their place. However, the long middle enumerates return fields (type, HQ state, website, programs, activity counts, disciplinary_check, verified date, canonical_url) that an output schema already defines, making one run-on sentence heavier than necessary.

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 an output schema present, return values need not be described, yet the critical non-schema caveats (absence meaning, HMDA attribution format) are included, so an agent can call and interpret the result correctly. It is slightly over-complete on return fields, but nothing essential 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?

The single parameter has 100% schema coverage and the schema already documents 'digits or all or part of the company name', which is precisely what 'a partial name works' restates. The description adds no new syntax or format guidance beyond the schema, 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?

States a specific verb (get facts about) plus a precisely scoped resource ('a US mortgage lender, bank, credit union or mortgage broker company') and the two lookup keys. The domain is cleanly distinguished from the loan-officer and specialty siblings by naming the entity type it returns facts about.

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?

'Use this when you need facts about a US mortgage lender... by its company NMLS ID or by name (a partial name works)' gives clear triggering conditions and lookup modes. It stops short of naming the alternatives (get_loan_officer, find_loan_officers) or stating when to prefer them, so it is context without explicit routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_loan_officerGet a loan officer by NMLS IDA
Read-onlyIdempotent
Inspect

Use this when you have a mortgage loan officer's individual NMLS ID and need their full profile. Returns LenDb's sourced record: name, title, current lender and branch, employment history, state licenses with license confidence, specialties (such as FHA, VA, bank statement or DSCR) with the evidence for each, languages spoken, stated experience, the earliest state license record, public links (such as their page on the lender's site), disciplinary_check ('not_checked' means LenDb has not yet checked regulator records), the date the record was last verified and a canonical_url. US only. Phone numbers and email addresses are not returned; the LenDb profile page shows them after a human check.

ParametersJSON Schema
NameRequiredDescriptionDefault
nmls_idYesIndividual NMLS ID, digits only, e.g. 452476.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noticeNo
sampleNoTrue when the data is fictional sample data.
loan_officerYes
canonical_urlYes

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description layers on real behavioral context: US-only scope, the meaning of disciplinary_check='not_checked', the last-verified date, and an explicit statement that phone/email are withheld pending human check. That is meaningful disclosure beyond what the structured fields provide.

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 usage trigger is front-loaded and the response inventory is packed into one dense sentence with no filler. It is on the long side and the field enumeration reads as a run-on, but every clause conveys usable information.

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?

For a single-parameter lookup tool this is complete: it covers the identity model, geographic scope, data provenance ('LenDb's sourced record'), known gaps (no phone/email, unchecked discipline), and freshness. The output schema exists, so the return-field listing is a bonus rather than a necessity.

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 the single parameter is fully documented in the schema (digits only, example 452476). The description only restates that the ID is the individual officer's NMLS ID, adding marginal meaning over the schema — 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?

States a specific verb and resource ('Get a loan officer') keyed by the identifying attribute ('by NMLS ID'), which cleanly separates it from the sibling find_loan_officers search tool and from get_lender. An agent knows exactly what entity this returns without opening the schema.

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?

Gives a clear trigger condition: use it 'when you have a mortgage loan officer's individual NMLS ID and need their full profile' — implying a known-ID lookup rather than a search. It does not explicitly name find_loan_officers as the alternative for name/state lookups, so the routing guidance is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_specialtiesList mortgage specialtiesA
Read-onlyIdempotent
Inspect

Use this when you need the mortgage situations LenDb can match on. Returns every specialty with its slug, category (property type, loan program or borrower situation), label, one-line description and canonical_url: for example FHA, VA, USDA, jumbo, DSCR, bank statement, ITIN, self-employed, first-time buyer, non-warrantable condo, multi-family 2-4 units and reverse mortgage. Also returns the supported languages as ISO 639-1 codes with names.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
languagesYesISO 639-1 code to language name.
specialtiesYes
canonical_urlYes

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds the completeness guarantee ('every specialty', i.e. no filtering or pagination) and notes that supported languages are included, which is modest extra context rather than rich behavioral disclosure.

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?

Front-loaded with the usage condition, followed by the return contract; both sentences earn their place. The long enumeration of example specialties (FHA, VA, USDA, jumbo, DSCR...) is helpful for semantic matching but is the wordiest part of the definition.

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?

For a zero-parameter, read-only listing tool with full annotations and an output schema, the description supplies everything an agent needs: when to call it, that the result is exhaustive, and the shape of each entry. Return-value detail is technically redundant with the output schema but does not leave any gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the schema carries no semantics to clarify and the baseline of 4 applies. Nothing in the description is needed or misleading on this dimension.

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 ('Returns every specialty') and enumerates exactly what comes back: slug, category, label, one-line description and canonical_url. The scope word 'every' plus the use-case framing ('the mortgage situations LenDb can match on') separates it from the single-item sibling explain_specialty without the agent needing to open either schema.

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?

'Use this when you need the mortgage situations LenDb can match on' gives an explicit trigger condition. However, it never names an alternative (e.g. explain_specialty for one specialty) or states when not to use it, so the routing guidance is clear but not complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updates
    • First observedexplain_specialty
    • First observedfind_loan_officers
    • First observedget_lender
    • First observedget_loan_officer
    • First observedlist_specialties

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Query 13,000+ US consumer lenders with eligibility criteria, rates, CFPB complaints, and ratings. Find matching lenders by borrower profile, get full profiles, compare lenders, and check eligibility.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants to answer mortgage-related queries by providing tools for lender search, loan limit lookup, down-payment assistance programs, and more, with data sourced from real wholesale lenders and broker-curated intel.
    8
    7 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to retrieve verbatim U.S. mortgage regulations with citations and effective dates, verify quotes, and run guided compliance playbooks without sending user documents to the server.
    MIT
  • F
    license
    D
    quality
    C
    maintenance
    Provides access to RateSpot.io mortgage rate APIs, enabling AI assistants to fetch real-time mortgage rates, compare loan products, calculate payments, and access comprehensive lending information.
    7
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources