bluerate API and MCP server for AI agents

Let your agent find licensed US mortgage loan officers listed on bluerate.ai by state, city, ZIP code, loan type or language. It is free, read-only and needs no key. Each result links to the loan officer’s bluerate profile, where the user can read reviews and ask for a callback.

WhatWhere
MCP server (streamable HTTP)https://api.bluerate.ai/mcp
REST APIhttps://api.bluerate.ai/v1
OpenAPI 3.1 descriptionhttps://api.bluerate.ai/v1/openapi.json
Summary for language modelshttps://www.bluerate.ai/llms.txt

Connect over MCP

The MCP server has two tools, search_loan_officers and get_loan_officer. It needs no sign-in: wherever your client asks for authentication, choose none.

Claude Code

claude mcp add --transport http bluerate https://api.bluerate.ai/mcp

Claude (web and desktop)

Settings → Connectors → Add custom connector, then paste https://api.bluerate.ai/mcp.

ChatGPT

With developer mode turned on (Settings → Apps & Connectors → Advanced settings), create a connector with the server URL https://api.bluerate.ai/mcp and no authentication.

Cursor

In ~/.cursor/mcp.json:

{
  "mcpServers": {
    "bluerate": { "url": "https://api.bluerate.ai/mcp" }
  }
}

VS Code

In .vscode/mcp.json:

{
  "servers": {
    "bluerate": { "type": "http", "url": "https://api.bluerate.ai/mcp" }
  }
}

Anything else

Any client that speaks MCP over streamable HTTP works. To try the tools by hand, run npx @modelcontextprotocol/inspector and connect to https://api.bluerate.ai/mcp. A plain JSON-RPC call also works:

curl https://api.bluerate.ai/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"search_loan_officers","arguments":{"state":"TX","loanType":"va"}}}'

get_loan_officer

GET https://api.bluerate.ai/v1/loan-officers/{nmls}, or the MCP tool with nmls. Returns the fields search does, plus about, up to 3 reviews and the loan officer’s faqs.

curl "https://api.bluerate.ai/v1/loan-officers/1234567?client=my-agent"

What comes back

FieldMeaning
asOfWhen the daily snapshot was taken (UTC). Every answer has it.
sourceWhere the data comes from. Every answer has it.
urlThe loan officer’s bluerate profile, where the user reads reviews and asks for a callback. Show it to the user.
callbackUrlWhere the user asks this loan officer to call back, on bluerate.
nmlsNMLS ID, digits only. Pass it to get_loan_officer.
total, returned, moreResultsUrlHow many match, how many came back (at most 10), and the full list on bluerate.
rating, sponsoredrating is always null for now (profiles carry no star rating). sponsored is always false: the order does not depend on payment.
about, reviews, faqsget_loan_officer only: the loan officer’s introduction, up to 3 client reviews and their own FAQs.
error.code, error.message, error.hintOn errors. hint says in one sentence what to send instead.

Answers never include phone numbers, email addresses or street addresses. To reach a loan officer, send the user to url or callbackUrl.

A bad request gets a 400 with a hint the model can act on:

{
  "error": {
    "code": "invalid_parameter",
    "message": "\"Atlantis\" is not a US state code.",
    "hint": "Pass state as a two-letter US state code, for example state=CA for California or state=TX for Texas."
  }
}

Other errors: 404 not_found (no loan officer with that NMLS ID on bluerate) and 503 snapshot_unavailable (try again in a few minutes). Over MCP the same errors come back as tool results marked isError.

Limits

Without a key: 60 requests a minute per IP address. Over the limit you get a 429 with error.code rate_limited and Retry-After: 60; wait a minute and try again. Answers can be cached for 5 minutes (Cache-Control: public, max-age=300); the data changes once a day. Free keys with higher limits are on the way; until then, write to support@zeitro.com if you need more.

Data and disclaimer

The data comes from loan officer profiles on bluerate.ai, copied once a day; asOf says when. Loan officers supply their own profiles, NMLS IDs, licensed states, loan types and languages. Results are ordered by whether the loan officer shows rates on bluerate, then by name, and never by payment. Loan officers can ask to be left out of these answers.

bluerate is a marketplace, not a lender. A listing is not an endorsement, an offer to lend or a rate quote. Check a loan officer’s license on NMLS Consumer Access. Use of the API is subject to the Terms of Use and Privacy Policy. Do not copy the whole list or use it for unsolicited contact.