Developer
Integrate Celebrant with AI assistants and external tools.
Overview
Celebrant provides two ways for AI assistants and external tools to interact with your services:
Remote MCP Server
For Claude Desktop, Cursor, and other MCP-compatible AI tools. Connect with a single URL — authentication is handled automatically via OAuth.
REST API
For ChatGPT GPT Actions, custom scripts, and any HTTP client. OpenAPI 3.0 spec included.
Remote MCP Server
Connect Claude Desktop, Cursor, or any MCP-compatible client directly to Celebrant. No API key needed — you'll be prompted to sign in through your browser when you first connect.
Claude Desktop — Add Custom Connector
The quickest way: open Claude Desktop → Settings → MCP → Add Custom Connector, then paste this URL:
https://celebrant.app/api/mcpClaude will auto-discover the server capabilities via /.well-known/mcp and prompt you to sign in through your browser on first use.
Claude Desktop — Manual Config
Alternatively, edit claude_desktop_config.json (Settings → Developer → Edit Config):
{
"mcpServers": {
"celebrant": {
"url": "https://celebrant.app/api/mcp"
}
}
}Cursor
Add via Settings → MCP → Add Server:
{
"mcpServers": {
"celebrant": {
"url": "https://celebrant.app/api/mcp"
}
}
}How it works: When your MCP client connects, it will open a browser window for you to sign in to Celebrant and authorise the connection. After that, the client has full access to your services.
Available tools (24): create_service, get_service, update_service, list_services, archive_service, duplicate_service, add_section, update_section, remove_section, reorder_sections, list_service_types, apply_template, get_section_types, search_content, get_content_item, suggest_content, export_booklet_markdown, export_booklet_docx, get_preview_url, share_service, list_shares, update_share, remove_share, set_service_status
API Key Authentication
For automated scripts, headless environments, or clients that don't support OAuth. Create an API key in the API Keys tab, then pass it in the Authorization header.
MCP with API Key
{
"mcpServers": {
"celebrant": {
"url": "https://celebrant.app/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}REST API — ChatGPT & HTTP Clients
Standard JSON API. Authenticate with your API key in the Authorization header.
Base URL
https://celebrant.app/api/v1Authentication
Authorization: Bearer YOUR_API_KEYChatGPT GPT Actions
Import the OpenAPI spec URL in your GPT Action configuration:
https://celebrant.app/api/v1/openapi.jsonEndpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /services | List your services |
| POST | /services | Create a service |
| GET | /services/:id | Get service details |
| PATCH | /services/:id | Update service |
| DELETE | /services/:id | Archive service |
| POST | /services/:id/sections | Add a section |
| PATCH | /services/:id/sections/:sid | Update section |
| DELETE | /services/:id/sections/:sid | Remove section |
| PUT | /services/:id/sections/reorder | Reorder sections |
| PATCH | /services/:id/status | Set status |
| POST | /services/:id/duplicate | Duplicate service |
| POST | /services/:id/shares | Share service |
| GET | /services/:id/export/markdown | Export markdown |
| GET | /services/:id/export/docx | Export Word doc |
| GET | /content | Search content library |
| GET | /content/:id | Get content item |
| GET | /content/suggest | Smart suggestions |
| GET | /service-types | List service types |
| GET | /section-types | List section types |
Quick Example
Create a service and add a hymn:
# Create a service
curl -X POST https://celebrant.app/api/v1/services \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"deceased_first_name": "John", "deceased_last_name": "Smith", "service_type": "CHURCH_OF_ENGLAND"}'
# Search for hymns
curl "https://celebrant.app/api/v1/content?content_type=HYMN&query=amazing+grace" \
-H "Authorization: Bearer YOUR_API_KEY"
# Add a hymn section
curl -X POST https://celebrant.app/api/v1/services/SERVICE_ID/sections \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"section_type": "HYMN", "order": 0, "content_item_id": "CONTENT_ID"}'