Skip to main content

Developers

Build with NearFaith

Free, read-only integrations for AI assistants and church websites — an MCP server for structured church data, and an embed widget for service times.

NearFaith is a free church-finder directory — 15,403 listings across 1,786 cities as of September 2026, each with service times, denomination, contact details, and groups. Everything below is offered at no cost to anyone building an assistant, app, or website that needs accurate church data or wants to show it on a church's own site.

A note on data trust

Not every field on NearFaith has been confirmed by the church itself. Service times and other details come from three tiers: verified (confirmed by the church, e.g. after a listing claim), listing (sourced from a public directory or the church's own site), and estimated(an AI best-guess, never presented as fact). Every API response and page on the site carries this distinction rather than blending the three — an estimated schedule is always labeled unverified. Don't drop that distinction when you re-surface NearFaith data to your own users.

For AI assistants

MCP server

A public Model Context Protocol server so any MCP-aware assistant can answer real church questions.

Endpoint

https://www.nearfaith.com/api/mcp

Transport

Streamable HTTP, stateless — no session id, no server-initiated stream. Every JSON-RPC call is a self-contained POST.

Auth

None. Every tool is read-only and safe to call without credentials.

Rate limit

60 requests / 60s per IP, shared across every method. A limited request gets a JSON-RPC error with HTTP 429 and a Retry-After: 60 header.

Tools

All four tools are annotated read-only, non-destructive, and idempotent.

find_churches

Search for churches near a location.

FieldTypeNotes
querystring, optionalFree-text match against name / city / ZIP
citystring, optionale.g. "Queen Creek"
statestring, optionalTwo-letter USPS code, e.g. "AZ"
zipstring, optional5-digit US ZIP, geocoded via NearFaith's own centroid table
lat / lngnumber, optionalUse directly if the caller already has coordinates
radius_milesnumber, optionalDefault 10, max 50
denominationstring, optionale.g. "Baptist", "Catholic", "Non-denominational"
limitinteger, optionalDefault 10, max 25

Returns: location_resolved plus a results array of church summaries — name, denomination, address, service times, verified status, distance, and URL.

get_church

Full public profile for one church.

FieldTypeNotes
url_or_idstring, requiredA nearfaith.com/church/{city-slug}/{name-slug} URL, its path, or an id from find_churches

Returns: Name, denomination, address, phone, website, a first-party photo, verified status, deduped schedule, groups, and what-to-expect details (worship style, dress code, parking, children's programs).

list_denominations

Every denomination present in the directory, with a live count.

Returns: A list of denomination names sorted by church count, plus the /denominations directory URL.

city_overview

A quick summary of one city's churches.

FieldTypeNotes
citystring, requirede.g. "Phoenix"
statestring, optionalDisambiguates a city name that exists in more than one state

Returns: Church count, top 5 denominations by count, and the /churches/{city}-{st} directory URL.

Try it with curl

Initialize a session, then call a tool. The server is stateless, so there's no session id to carry between calls — each request stands alone.

1. initialize

curl -s -X POST https://www.nearfaith.com/api/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"my-client","version":"1.0"}}}'

2. tools/call

curl -s -X POST https://www.nearfaith.com/api/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"find_churches","arguments":{"city":"Queen Creek","state":"AZ","limit":3}}}'

Adding it to an MCP client

Most current MCP clients speak Streamable HTTP directly — look for a setting called something like "remote MCP server," "custom connector," or "server URL" and point it at the endpoint above. A generic config looks like this:

{
  "mcpServers": {
    "nearfaith": {
      "url": "https://www.nearfaith.com/api/mcp"
    }
  }
}

For a stdio-only client that can't speak Streamable HTTP directly, bridge with mcp-remote:

{
  "mcpServers": {
    "nearfaith": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://www.nearfaith.com/api/mcp"]
    }
  }
}

We can't make vendor-specific promises about how any particular assistant surfaces remote MCP servers in its own settings — check that client's own documentation for the exact steps.

For church websites

Service-times embed widget

A free script tag that shows a church's live service times on its own website.

Drop this where the widget should appear. It's a plain <script>, not an iframe, so it works on older church WordPress sites and isn't blocked by an X-Frame-Options header. It also adds a small "Powered by NearFaith" link back to the church's listing.

<div id="nearfaith-embed"></div>
<script src="https://www.nearfaith.com/embed/<your-church-id>" async></script>

The id is specific to your church's claimed listing — copy the ready-to-use snippet (with the id already filled in) from your listing's manage dashboard once you claim it. Haven't claimed your church yet? Claim it free →

The widget is cached and refreshes hourly, so it stays fast on the host page without hitting NearFaith on every visitor.

Terms

Using this free

  • Free for non-commercial and church use. Both the MCP server and the embed widget are free for AI assistants, personal projects, and church websites showing their own listing.

  • Attribution required.Keep the "Powered by NearFaith" link on the embed widget, and link back to the relevant nearfaith.com page when you surface our data elsewhere.

  • No bulk re-publication.Query the MCP server for individual answers to real questions — don't crawl it to rebuild a copy of the directory elsewhere. The rate limit exists to keep it free for everyone.

  • Questions or a different use case? Reach out through our contact page — including commercial use, higher rate limits, or a directory submission you're reviewing us for.