GospelChannel Church Finder

io.github.Ac0AIPublished by GitHub account Ac0AIv1.0.0Updated Oct 24, 2026

Find a Christian church by worship style, denomination, language, and location. Read-only.

The publisher's own server: Finder Jobs

VerifiedStreamable HTTPWeb executableLocation & LifestyleKnowledge & Memory

Overview

AI-generated overview

Read-only remote MCP server that lets an assistant find Christian churches by location, denomination, worship style and language, and read their profiles.

What you can do
  • Find churches near the user, ranked by distance, using only coarse location metadata
  • Find churches in a named city, ranked by directory quality
  • Filter results by worship style, denomination or language
  • Read a single church's full profile by slug: worship styles, denomination, language, summary, top worship songs, contact and recorded service times
When to use it
Useful when someone wants to find or compare Christian churches before a first visit, or needs details such as denomination, language, worship style or service times for a specific church.
Requirements
A remote streamable HTTP endpoint at gospelchannel.com; no package, account, API key or header is declared. The assistant needs network access to that endpoint.
Before you install
Read-only lookup; no writes are declared. Location-based search relies on coarse location metadata shared by the client, so results are approximate. Church details come from a third-party directory and may be incomplete or outdated.

Installation

In SourceWeft

  1. Open GospelChannel Church Finder in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.Ac0AI%2Fgospelchannel-church-finder/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "gospelchannel-church-finder": {
      "type": "http",
      "url": "https://gospelchannel.com/mcp"
    }
  }
}

README

GospelChannel — The Church Guide

Find the right church before your first visit.

Free global church guide with worship-aware profiles, built with Next.js 16, OpenNext on Cloudflare Workers, Cloudflare D1, Spotify, and YouTube.

Solo-maintained project, and my first open source project. This repository is public so people can report bugs, suggest improvements, and send small focused pull requests. I am still learning the open source side of things, so patience and clarity help a lot.

Status

  • Production site: https://gospelchannel.com
  • Contributor language: English or Swedish is fine
  • Project direction is maintainer-led

What the app does

  • Find and compare churches by location, tradition, language, worship style, and service details
  • Browse curated worship and gospel music connected to church profiles
  • Explore church pages with Spotify embeds and YouTube video grids
  • Submit church suggestions and ownership claims
  • Run scheduled content refresh jobs
  • Generate SEO assets such as sitemap.xml, robots.txt, and structured data

Stack

  • Next.js 16 (App Router)
  • OpenNext + Cloudflare Workers
  • Cloudflare D1 + Drizzle
  • Better Auth
  • Spotify Web API
  • YouTube Data API
  • Cloudflare R2 for media
  • PostHog for analytics

Local setup

Prerequisites:

  • Node 22.x
  • npm

If you use nvm, run:

bash
nvm use

Install and start:

bash
pnpm installcp .env.example .env.localpnpm dev

Helpful commands:

bash
pnpm lintpnpm buildpnpm smokepnpm check:env

Database (Cloudflare D1)

Cloudflare D1 is the canonical database. The Worker uses the GOSPEL_D1 binding in wrangler.jsonc; it does not need a database URL or API token. Local development uses an isolated local D1 database by default.

bash
pnpm db:migrate:localpnpm dev

Node maintenance jobs use GOSPEL_D1_DATABASE_ID, CLOUDFLARE_ACCOUNT_ID, and GOSPEL_D1_API_TOKEN (or the existing CLOUDFLARE_API_TOKEN). The token needs Account / D1 / Edit for jobs that write. Missing credentials fail closed. For local jobs, an existing wrangler login can supply a refreshed token without saving a second secret:

bash
node scripts/with-d1-wrangler-auth.mjs node scripts/check-d1-access.mjs

Create a versioned SQL migration with pnpm db:new-migration -- descriptive_name, keep the Drizzle models in src/db/d1-schema in sync, and apply with pnpm db:migrate after checking the configured remote database. Production imports must apply 0000_initial.sql, load data, then apply the remaining migrations so derived search triggers do not rewrite imported source rows.

All active maintenance/import scripts use D1, including the Supabase-export importer. Node scripts use the same D1 account, database ID and token as scheduled jobs; there is no Postgres driver or fallback. Run local commands through with-d1-wrangler-auth.mjs when using the Wrangler login. Use pnpm exec tsx for scripts which import TypeScript modules.

After a schema change, regenerate the Node field codecs with pnpm db:script-types; the test suite checks that they match the Drizzle schema. Live integration tests require GOSPEL_D1_VERIFY_REMOTE=1 in addition to D1 credentials, so ordinary tests never query production implicitly.

Environment variables

You do not need every external integration to read the code or work on docs and UI.

Typical local development:

  • NEXT_PUBLIC_SITE_URL
  • NEXT_PUBLIC_MEDIA_BASE_URL
  • BETTER_AUTH_URL
  • BETTER_AUTH_SECRET
  • Local D1 initialized with pnpm db:migrate:local

Needed for specific integrations and production-like flows:

  • YOUTUBE_API_KEY
  • SPOTIFY_CLIENT_ID
  • SPOTIFY_CLIENT_SECRET
  • APIFY_TOKEN
  • ANTHROPIC_API_KEY
  • BREVO_API_KEY
  • CRON_SECRET

Admin access is database-backed. Promote an account to admin with:

bash
pnpm db:seed -- [email protected]

Notes:

  • pnpm build uses offline mode for the content pipeline.
  • Full admin, mail, sync, and deployment flows need real service credentials.
  • Keep secrets in .env.local. Do not commit them.

Contributing

Ideas, bug reports, and small PRs are welcome.

If you want to help, the easiest path is:

  • open an issue
  • keep the idea or fix small
  • explain the problem in plain language

Best ways to help:

  • Open an issue for bugs or feature ideas
  • Send focused PRs that solve one problem at a time
  • Include screenshots when changing UI
  • Update docs if behavior changes

See CONTRIBUTING.md for the short version of how this repo is run.

Security

Please do not post security issues publicly. See SECURITY.md.

Deployment

The production app is deployed on Cloudflare Workers via OpenNext. Contributors usually do not need deployment access.

Maintainer deploy command:

bash
pnpm deploy

Project notes

  • Spotify can require Extended Quota Mode for some external playlist access.
  • The app has manual data fallbacks in src/data/manual/ for cases where API data is limited or unavailable.

License

MIT. See LICENSE.

Source: README.md at commit 949c406

Tools

3

find_churches_near

Find churches near a place

Find Christian worship churches near the user, ranked by distance. Uses only the coarse location metadata ChatGPT shares, never raw location input fields. If the metadata includes only a city, it searches that city. Filter by worship style, denomination, or language.

Parameterslimitlanguageradius_kmdenominationworship_style

find_churches_in_city

Find churches in a city

Find Christian worship churches in a named city, ranked by directory quality. Filter by worship style, denomination, or language.

Parameterscityrequiredlimitlanguagedenominationworship_style

get_church

Get a church profile

Get the full profile for one church by its slug (the last path segment of its gospelchannel.com/church/<slug> URL): worship styles, denomination, language, summary, top worship songs, contact, and recorded service times if available.

Parametersslugrequired

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Finder integrations