Skip to main content

MCP API Tokens

MCP (Model Context Protocol) lets you connect AI assistants to your church data. Ask Claude, Cursor, Perplexity, or any MCP-compatible client about your members, events, prayers, and more — in natural language.

What you can do

Once connected, you can ask your AI assistant things like:

  • "How's our church doing this week?"
  • "Who's waiting to join the church? Approve the new ones."
  • "Create a prayer meeting for Friday at 7 PM."
  • "What songs are in our worship library?"
  • "Any flagged prayers that need moderation?"
  • "Post an announcement about Sunday's service."
  • "Who registered for the youth event?"

The AI pulls live data from your church — not a stale snapshot.

Prerequisites

  • Kingdom Plan subscription (MCP is included on this plan)
  • Node.js 18+ on the machine running your AI client
  • MCP token — created in the Church Admin app

Step 1 — Create a token

In the Nlarj for Churches app:

  1. Settings → API Tokens → New Token
  2. Give it a label (e.g. Claude Desktop, Cursor, Perplexity)
  3. Pick an expiry: 1 day, 3 days, or 7 days
  4. Tap Generate Token
  5. Copy the token immediately — it starts with ohlmcp_ and is shown only once
Tokens are shown only once

Once you close the dialog, the full token is never shown again. Copy it now. Lose it and you'll need to create a new one.

Step 2 — Connect your AI client

Install and run the MCP server via npx — no global install needed.

Claude Desktop

Edit claude_desktop_config.json:

  • macOS~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows%APPDATA%\Claude\claude_desktop_config.json
  • Linux~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"ourholylife": {
"command": "npx",
"args": ["-y", "@nlarj/mcp-server", "--token", "ohlmcp_YOUR_TOKEN"]
}
}
}

Restart Claude Desktop. Your church tools appear in the 🔧 menu.

Cursor IDE

Settings → MCP Servers → Add:

{
"ourholylife": {
"command": "npx",
"args": ["-y", "@nlarj/mcp-server", "--token", "ohlmcp_YOUR_TOKEN"]
}
}

Claude Code

Add to .claude/mcp.json:

{
"mcpServers": {
"ourholylife": {
"command": "npx",
"args": ["-y", "@nlarj/mcp-server", "--token", "ohlmcp_YOUR_TOKEN"]
}
}
}

Perplexity

Perplexity connects directly to the Nlarj MCP server over HTTPS — no local install needed. Custom connectors work inside Perplexity Spaces only (not regular chat).

Connectors → Add Custom Connector:

FieldValue
NameNlarj
DescriptionChurch management — members, events, prayers, analytics
MCP Server URLhttps://mcp.nlarj.app/mcp

Expand Advanced:

FieldValue
AuthenticationAPI Key (dropdown)
api-keyohlmcp_YOUR_TOKEN (paste only the token, no prefix)
TransportStreamable HTTP (dropdown)

Check "I understand custom connectors can introduce risks" and click Add.

Then open a Space → Settings → Connectors and enable Nlarj. Chat inside that Space to use it.

Use a dedicated token for Perplexity

Create a separate token labeled "Perplexity" in the admin app. Don't share the same token across multiple AI clients.

ChatGPT / OpenAI

ChatGPT custom connectors use the same remote MCP endpoint:

  1. MCP Server URL: https://mcp.nlarj.app/mcp
  2. Authentication: Bearer token — ohlmcp_YOUR_TOKEN

Environment variable (alternative)

For local clients (Claude Desktop, Cursor), you can set the token as an env var instead of --token:

export OURHOLYLIFE_TOKEN=ohlmcp_YOUR_TOKEN
npx -y @nlarj/mcp-server

This is useful when you don't want the token in your config file on disk.

The 26 tools

MCP clients get 29 tools covering every major part of the church.

Dashboard

ToolDescription
get_dashboardChurch overview — members, events, plan

Members

ToolDescription
list_membersAll church members with contact info
list_pending_membersMembers waiting for approval
approve_memberApprove a pending join request
reject_memberReject a pending request

Announcements

ToolDescription
list_announcementsRecent announcements
create_announcementPost a new announcement (with optional push notification)
delete_announcementRemove an announcement

Events

ToolDescription
list_eventsUpcoming events
create_eventSchedule a new event
list_event_registrationsWho registered for an event

Groups

ToolDescription
list_groupsChurch groups (ministries, small groups, prayer circles)
get_groupDetails of a specific group
list_group_membersMembers in a group

Prayer

ToolDescription
list_reported_prayersFlagged or reported prayers
prayer_statsPrayer activity stats
moderate_prayerRemove an inappropriate prayer

Worship & Giving

ToolDescription
list_worship_songsSong library
get_giving_configYour configured payment methods

Visitors & Volunteers

ToolDescription
list_connect_submissionsVisitor connect cards
list_volunteer_submissionsVolunteer signups
update_submission_statusUpdate visitor/volunteer status
add_submission_noteAdd a note to a submission

Analytics

ToolDescription
analytics_chartGenerate a specific chart (21 available: members, events, prayers, groups, volunteers, sermons, streaming, Bible plans, trivia, health, predictions)
analytics_reportFull analytics dashboard — all 21 charts and insights in one call (monthly, quarterly, or annual)
analytics_alertsActive alerts and anomalies detected across your church data

Global Events

ToolDescription
list_global_eventsPlatform-wide events
create_global_eventCreate a global event
list_global_event_attendeesGlobal event attendees

Security

ControlWhat it does
SHA-256 token hashingTokens are stored as hashes; the raw value only exists in your config file
Rate limitingMax 60 requests per minute per token
Short expiry1-7 days maximum; tokens auto-expire and can be revoked anytime
Tenant isolationEach token is scoped to one church; no cross-church access
E2E chat privacyGroup chat messages are encrypted — not exposed through MCP
Input sanitizationHTML is stripped, SSRF is blocked, only whitelisted fields accepted

Token hygiene

  • Create a separate token per AI client (one for Claude Desktop, another for Cursor, etc.)
  • Use short expiry (1-3 days) unless you have a persistent setup
  • Revoke tokens for clients you stop using — Settings → API Tokens → Delete
  • If a device is lost or compromised, revoke every token on it immediately
  • Never paste tokens in chat, email, tickets, or screenshots

See Phishing & Security for more.

REST API (alternative)

If you're integrating with a non-MCP tool (ChatGPT custom GPT, Zapier, an in-house script), use the REST API directly with the same ohlmcp_ token:

  • Swagger UI: api.nlarj.app/api/v1/church/docs — paste your token into the Authorize dialog to explore interactively.
  • OpenAPI spec: fetch with your token — curl -H "Authorization: Bearer ohlmcp_YOUR_TOKEN" https://api.nlarj.app/api/v1/church/openapi.json (the endpoint requires auth; clicking the URL in a browser returns 401).

Example:

curl -H "Authorization: Bearer ohlmcp_YOUR_TOKEN" \
https://api.nlarj.app/api/v1/church/dashboard

Every MCP tool has a matching REST endpoint.

Troubleshooting

"Invalid or expired token" — Token expired, was revoked, or was typed incorrectly. Tokens start with ohlmcp_. Create a new one.

"IP mismatch. Revoke and create a new token." — The token was auto-bound to a different IP on first use. Revoke this token and create a new one from the current machine.

"Rate limit exceeded. Max 60 calls per minute." — You (or the AI) are hammering the API. Wait a minute and retry, or split work across multiple tokens.

Tools don't appear in Claude Desktop — Fully quit and relaunch Claude Desktop. MCP servers are only loaded at startup, not on config reload.

npx hangs or fails — Check node --version is 18 or higher. On Windows, make sure Node is on your PATH.