Global.Church LogoDeveloper Site </>
Church ExplorerSchemaAPIMCPAboutRequest Access

Overview

  • Home
  • About
  • Methodology
  • Security & Privacy

Build

  • Church Explorer
  • API Docs
  • Schema
  • MCP Server

Access & Support

  • Request Access
  • Feedback
  • FAQs

Developer Site

Tools, docs, and data standards for the Global.Church API — crafted with the FaithTech community.

© 2025 Global.Church. All Rights Reserved.

MCP Server

⚠️ Beta — Under active development. Interfaces and schemas may change.

This demo is powered by the Global.Church MCP server and OpenAI models.

How it works

  1. We use the OpenAI Responses API with a remote MCP server (Zuplo) that auto-generates tools from our OpenAPI routes.
  2. We restrict tool usage to churches_search_v1 and set approval to never, which is the recommended pattern for hosted remote MCP tools.
  3. All requests are server-side; keys are stored as sensitive variables in Vercel.

Try asking:

  • Find Roman Catholic churches in El Cajon, CA
  • Show 3 churches near downtown San Diego
  • Any Anglican congregations in Toronto?

Beta disclaimer: schemas and routes may change.

What is this?

The Global.Church MCP Server exposes our read-only church search tools to AI agents and editors that speak the Model Context Protocol (MCP). You can connect an MCP client (e.g., OpenAI Playground, Cursor) and call tools that proxy our API.

Quick Start

Endpoint (POST)
https://global-church-main-ba4d06e.zuplo.app/mcp
Auth (recommended)
Authorization: Bearer <YOUR_API_KEY>
Alt auth (for browsers)
Append ?apiKey=<YOUR_API_KEY> to the URL. Our gateway converts it to the Authorization header server-side.
Tools
Lists available tools via JSON-RPC (tools/list) and invoke them via tools/call.

Smoke tests (cURL)

Replace $API_KEY with your issued Global.Church gateway key.

# 1) Ping
curl -s -X POST "https://global-church-main-ba4d06e.zuplo.app/mcp"   -H "content-type: application/json"   -H "authorization: Bearer $API_KEY"   -d '{"jsonrpc":"2.0","id":"1","method":"ping"}'

# 2) List tools
curl -s -X POST "https://global-church-main-ba4d06e.zuplo.app/mcp"   -H "content-type: application/json"   -H "authorization: Bearer $API_KEY"   -d '{"jsonrpc":"2.0","id":"2","method":"tools/list"}' | jq .

# 3) Call search tool (by belief + city/state)
curl -s -X POST "https://global-church-main-ba4d06e.zuplo.app/mcp"   -H "content-type: application/json"   -H "authorization: Bearer $API_KEY"   -d '{
    "jsonrpc":"2.0","id":"3","method":"tools/call",
    "params":{ "name":"churches_search_v1",
      "arguments":{ "queryParams": {
        "country":"US", "belief":"roman_catholic",
        "locality":"El Cajon", "region":"CA", "limit":3
      }}
  }}' | jq .

Important: Arguments go under queryParams

The MCP tool is generated from our OpenAPI spec. All inputs must be nested under arguments.queryParamsand must match the schema. Examples:

Radius search (near downtown San Diego)

{
  "jsonrpc":"2.0","id":"rad","method":"tools/call",
  "params":{ "name":"churches_search_v1",
    "arguments":{ "queryParams": {
      "center_lat": 32.7157, "center_lng": -117.1611,
      "radius_km": 25, "limit": 5
    }}
}}

Bounding box

{
  "jsonrpc":"2.0","id":"bbox","method":"tools/call",
  "params":{ "name":"churches_search_v1",
    "arguments":{ "queryParams": {
      "min_lat": 32.5, "max_lat": 33.4,
      "min_lng": -117.5, "max_lng": -116.8,
      "limit": 5
    }}
}}

Use with OpenAI Playground

  1. Tools → “Connect to MCP Server”
  2. URL: https://global-church-main-ba4d06e.zuplo.app/mcp
  3. Authentication: Custom headers → add Authorization: Bearer <YOUR_API_KEY>
  4. Tool choice: Required (prevents model-only answers)
  5. In the Developer instructions, remind the model to:
    • Always call churches_search_v1
    • Use arguments.queryParams
    • Respect enum values (e.g., belief="roman_catholic")

Notes & Limits

  • Read-only access; write endpoints are not exposed.
  • Schemas and routes may evolve during beta.
  • Rate limits and API keys may be rotated as needed.

Want to contribute? See our roadmap and open issues.