Skip to main content
Glama
jtaylor98

Fannie Mae MCP

by jtaylor98

Fannie Mae MCP

A remote MCP server exposing Fannie Mae's public APIs, starting with the Loan Limits API. Uses OAuth2 client-credentials against Fannie Mae's PingOne authorization server -- no user-facing OAuth flow needed, just a client ID and secret from the Developer Portal.

Tools exposed:

  • list_apis — catalog of all 16 public APIs (only Loan Limits is wired to live data so far)

  • get_all_loan_limits — loan limits for every US county/territory

  • get_historical_loan_limits — loan limits for a given calendar year (2009-2019)

  • get_loan_limits_by_county — loan limits for one specific state + county

1. Prerequisites

  • A Fannie Mae Developer Portal account with an approved app for the Loan Limits API (Public APIs category)

  • Your app's client ID and client secret

  • The token endpoint URL shown on the portal's "Create Access Token" step (PingOne URL specific to your app)

  • A Vercel account

Related MCP server: mcp-arcgis-fauquier

2. Push to GitHub

git init
git add .
git commit -m "Initial commit"
git remote add origin git@github.com:<you>/fannie-mae-mcp.git
git push -u origin main

3. Import into Vercel

  1. Go to vercel.com/new → Import Git Repository → select this repo

  2. In Environment Variables, add FANNIE_CLIENT_ID, FANNIE_CLIENT_SECRET, and FANNIE_TOKEN_URL

  3. Click Deploy

Every future git push to main auto-deploys.

4. Connect it to Claude / Cowork

Add a custom connector pointing at:

https://<your-vercel-domain>/api/mcp

Then try: "List the Fannie Mae APIs available, then get loan limits for Los Angeles County, CA."

Local development

npm install
cp .env.example .env.local   # fill in your credentials
npm run dev

Notes

  • Access tokens expire after 1 hour and are cached in memory per warm serverless instance; a cold start just fetches a fresh one automatically.

  • Only Loan Limits is implemented so far. The other 15 catalog entries in list_apis are for browsing/reference -- extending to a new API means pulling its own Swagger docs first (base path, params, response shape) before wiring it up, the same way Loan Limits was built.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provides programmatic access to the FDIC BankFind Suite API, enabling users to query public data on FDIC-insured financial institutions, bank failures, and branch locations. It supports advanced filtering for financial reports, demographics, and institutional history without requiring an API key.
    29
    32 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables querying and searching Fauquier County, Virginia open geospatial datasets (parcels, zoning, addresses, public works) via ArcGIS Feature Services.
    5 npm
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Read-only access to approved federal APIs using the data.gov API gateway. Provides tools to call federal APIs and retrieve rate limit information.
    -