npm package: @ourholylife/mcp-server
Description: MCP server for OurHolyLife church management — connect Claude, Cursor, Perplexity, or any MCP client to your church data
Author: OurHolyLife
Latest version: 1.0.1

# @ourholylife/mcp-server

> Connect Claude, Cursor, Perplexity, or any AI assistant to your church data.

OurHolyLife MCP server for the [Model Context Protocol](https://modelcontextprotocol.io). Manage your church — members, events, announcements, prayers, groups, worship, and giving — through natural language with any AI assistant.

## Quick Start

```bash
OURHOLYLIFE_TOKEN=ohlmcp_YOUR_TOKEN npx -y @ourholylife/mcp-server
```

## Setup

### Prerequisites

1. **OurHolyLife Kingdom Plan** subscription
2. **MCP Token** — create in OurHolyLife for Churches app → Settings → API Tokens
3. **Node.js 18+** installed

### Claude Desktop

Add to your `claude_desktop_config.json`:

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

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

### Cursor IDE

Settings → MCP Servers → Add:

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

### Claude Code

Add to `.claude/mcp.json`:

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

### Perplexity

Settings → Connectors → Add Connector:

- **Server Name:** OurHolyLife
- **Command:** `OURHOLYLIFE_TOKEN=ohlmcp_YOUR_TOKEN npx -y @ourholylife/mcp-server`

### Environment Variables

Instead of `--token`, you can use environment variables:

```bash
export OURHOLYLIFE_TOKEN=ohlmcp_YOUR_TOKEN
npx -y @ourholylife/mcp-server
```

## Available Tools (26)

### What You Can Ask

| Category | Example Questions |
|----------|------------------|
| **Dashboard** | "How's our church doing?" "How many members?" |
| **Members** | "Who are our members?" "Anyone waiting to join?" "Approve pending members" |
| **Events** | "What's coming up?" "Who registered for worship night?" "Create a prayer meeting" |
| **Groups** | "Who's in the worship team?" "How many groups?" "List prayer circle members" |
| **Announcements** | "Post an update about Sunday" "What have we announced?" |
| **Prayers** | "How many active prayers?" "Any flagged prayers?" |
| **Worship** | "What songs are in our library?" |
| **Giving** | "How is giving set up?" |
| **Visitors** | "Any new visitor cards?" "Who wants to volunteer?" |

### Full Tool List

| Tool | Method | Description |
|------|--------|-------------|
| `get_dashboard` | GET | Church overview — members, events, plan |
| `list_members` | GET | All church members with contact info |
| `list_pending_members` | GET | Members waiting for approval |
| `approve_member` | POST | Approve a pending member |
| `reject_member` | POST | Reject a pending request |
| `list_announcements` | GET | Recent announcements |
| `create_announcement` | POST | Post new announcement (optional push notification) |
| `delete_announcement` | DELETE | Remove an announcement |
| `list_events` | GET | Upcoming events |
| `create_event` | POST | Schedule a new event |
| `list_event_registrations` | GET | Who registered for an event |
| `list_groups` | GET | Church groups (ministries, small groups, prayer circles) |
| `get_group` | GET | Details of a specific group |
| `list_group_members` | GET | Members in a group |
| `list_reported_prayers` | GET | Flagged/reported prayers |
| `prayer_stats` | GET | Prayer activity stats |
| `moderate_prayer` | DELETE | Remove inappropriate prayer |
| `list_worship_songs` | GET | Song library |
| `list_connect_submissions` | GET | Visitor connect cards |
| `list_volunteer_submissions` | GET | Volunteer signups |
| `update_submission_status` | PUT | Update visitor/volunteer status |
| `add_submission_note` | POST | Add note to a submission |
| `get_giving_config` | GET | Giving/donation configuration |
| `list_global_events` | GET | Platform-wide events |
| `create_global_event` | POST | Create global event |
| `list_global_event_attendees` | GET | Global event attendees |

## Security

- **Token auth** — SHA-256 hashed, never stored in plaintext
- **IP binding** — token auto-binds to first IP used
- **Rate limiting** — 60 requests per minute
- **Token expiry** — 1-7 days, auto-expires
- **Tenant isolation** — one church per token
- **E2E chat privacy** — group messages are encrypted, API cannot read them
- **Input sanitization** — HTML stripped, SSRF blocked, fields whitelisted

## REST API

For non-MCP integrations (ChatGPT, Zapier, custom apps), use the REST API:

- **Swagger UI:** https://api.ourholylife.com/api/v1/church/docs
- **OpenAPI Spec:** https://api.ourholylife.com/api/v1/church/openapi.json

```bash
curl -H "Authorization: Bearer ohlmcp_YOUR_TOKEN" \
  https://api.ourholylife.com/api/v1/church/dashboard
```

## Links

- **Website:** https://www.ourholylife.com
- **Download Apps:** https://www.ourholylife.com/download
- **Compare:** https://www.ourholylife.com/compare
- **Support:** support@ourholylife.com

## License

MIT