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.
| Field | Type | Notes |
|---|---|---|
| query | string, optional | Free-text match against name / city / ZIP |
| city | string, optional | e.g. "Queen Creek" |
| state | string, optional | Two-letter USPS code, e.g. "AZ" |
| zip | string, optional | 5-digit US ZIP, geocoded via NearFaith's own centroid table |
| lat / lng | number, optional | Use directly if the caller already has coordinates |
| radius_miles | number, optional | Default 10, max 50 |
| denomination | string, optional | e.g. "Baptist", "Catholic", "Non-denominational" |
| limit | integer, optional | Default 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.
| Field | Type | Notes |
|---|---|---|
| url_or_id | string, required | A 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.
| Field | Type | Notes |
|---|---|---|
| city | string, required | e.g. "Phoenix" |
| state | string, optional | Disambiguates 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.