Divya & Sreejith Wedding
Model Context Protocol v2024-11-05
This is a Model Context Protocol (MCP) server that provides AI agents and applications with structured access to wedding information. MCP enables AI assistants like Claude, GitHub Copilot, and other tools to fetch real-time event details, venue information, and accept RSVPs programmatically.
Add this to your MCP client configuration:
{
"mcpServers": {
"divya-sreejith-wedding": {
"url": "https://divyasreeni.com/.well-known/mcp",
"transport": {
"type": "http"
},
"description": "Wedding information and RSVP service for Divya & Sreejith"
}
}
}
POST /.well-known/mcp
Get comprehensive wedding information including couple details, date, and location.
{
"couple": {
"bride": {
"name": "Divya Mol",
"education": "B.Tech, College of Engineering, Cherthala",
"profession": "Software Engineer",
"parents": "Shri SunilKumar & Smt. Sajimol",
"address": "Madathikkattil house, Puthenkavu, Ernakulam 682307",
"instagram": "@the_curl_lover"
},
"groom": {
"name": "Sreejith Sivaram",
"education": "B.Tech, College of Engineering, Cherthala",
"profession": "Electrical Engineer",
"parents": "Shri Sivaraman & Smt. Sujatha",
"address": "Thindamcheril house, Punnamada, Avalookkunnu, Alappuzha 680007",
"instagram": "@sivaramsreejith"
}
},
"date": "2026-08-23",
"location": [
{
"type": "wedding",
"address": "NSS Karayogam Auditorium Amballur, Near Poothotta, Kochi 682315",
"mapUrl": "https://www.google.com/maps/search/?api=1&query=NSS%20Karayogam%20Auditorium%2C%20Amballur%2C%20Kochi%20682315"
},
{
"type": "reception",
"address": "St. Mary's Church Punnamada, Alappuzha 688006",
"mapUrl": "https://www.google.com/maps/search/?api=1&query=St.%20Mary%27s%20Church%2C%20Punnamada"
}
],
"website": "https://divyasreeni.com",
"description": "A Royal Union of Divya and Sreejith"
}
Get the complete schedule of wedding events with timings and locations.
date: string (YYYY-MM-DD)
[
{
"name": "The Wedding Ceremony",
"date": "2026-08-23",
"startTime": "10:00",
"endTime": "11:00",
"description": "Join us as we exchange our vows and start our new journey",
"type": "ceremony",
"location": "NSS Karayogam Auditorium Amballur, Near Poothotta, Kochi 682315",
"mapUrl": "https://www.google.com/maps/search/?api=1&query=NSS%20Karayogam%20Auditorium"
},
{
"name": "The Wedding Party",
"date": "2026-08-23",
"startTime": "11:30",
"endTime": "14:00",
"description": "We look forward to sharing our first meal as a married couple",
"type": "party",
"location": "NSS Karayogam Auditorium Amballur, Near Poothotta, Kochi 682315"
},
{
"name": "The Wedding Reception",
"date": "2026-08-23",
"startTime": "18:00",
"endTime": "21:00",
"description": "Join us for the wedding reception and celebrate our union",
"type": "reception",
"location": "St. Mary's Church Punnamada, Alappuzha 688006"
}
]
Get venue locations and map information for ceremony and reception.
{
"venue": [
{
"location": "NSS Karayogam Auditorium Amballur, Near Poothotta, Kochi 682315",
"mapUrl": "https://www.google.com/maps/search/?api=1&query=NSS%20Karayogam%20Auditorium",
"description": "The wedding ceremony and after party will be held at the same venue in Kochi",
"hasInteractiveMap": true
},
{
"location": "St. Mary's Church Punnamada, Alappuzha 688006",
"mapUrl": "https://www.google.com/maps/search/?api=1&query=St.%20Mary%27s%20Church%2C%20Punnamada",
"description": "The wedding reception will be held at St. Mary's Church in Alappuzha",
"hasInteractiveMap": true
}
]
}
Submit RSVP and wishes for the wedding. Data is saved to Firebase Firestore.
name: string
message: string
email: string
attending: 'yes' | 'no' | 'maybe'
guestCount: number
{
"name": "John Doe",
"email": "john@example.com",
"message": "Congratulations! Wishing you both a lifetime of love and happiness",
"attending": "yes",
"guestCount": 2
}
{
"success": true,
"message": "Thank you! Your RSVP and wishes have been saved to Firebase Firestore. ✨",
"data": {
"name": "John Doe",
"attendance": "yes",
"wishes": "Congratulations! Wishing you both...",
"email": "john@example.com",
"guestCount": 2,
"source": "mcp-tool",
"submittedAt": "2026-07-18T10:30:00.000Z"
},
"documentId": "abc123xyz"
}
Get calendar integration links to add wedding events to Google, Apple, or Outlook calendars. Supports event-specific links.
event: 'wedding' | 'reception' | 'all'
(default: 'all')
provider: 'google' | 'apple' | 'outlook'
{
"event": "wedding",
"provider": "google",
"url": "https://calendar.google.com/calendar/render?action=TEMPLATE&text=Divya+%26+Sreejith+-+Wedding+Ceremony+%26+Party...",
"description": "Wedding ceremony (10:00-11:00) and party (11:30-14:00) at NSS Karayogam Auditorium, Kochi",
"message": "Calendar link for google - wedding"
}
{
"event": "all",
"description": "All wedding events: ceremony & party in Kochi (10:00-14:00), reception in Alappuzha (18:00-21:00)",
"availableProviders": {
"google": "https://calendar.google.com/calendar/render?action=TEMPLATE...",
"apple": "https://divyasreeni.com/resources/divya-sreejith-wedding.ics",
"outlook": "https://divyasreeni.com/resources/divya-sreejith-wedding.ics"
},
"message": "Calendar links for all events. Choose a provider to add to your calendar.",
"instructions": {
"google": "Opens Google Calendar with pre-filled event details",
"apple": "Downloads .ics file compatible with Apple Calendar",
"outlook": "Downloads .ics file compatible with Outlook"
}
}
Get the time remaining until the wedding date (August 23, 2026 at 10:00 AM IST).
{
"countdown": {
"days": 35,
"hours": 14,
"minutes": 23,
"seconds": 45
},
"totalMilliseconds": 3065025000,
"weddingDate": "2026-08-23T04:30:00.000Z",
"formattedCountdown": "35 days, 14 hours, 23 minutes until the wedding",
"message": "Only 35 days left until Divya & Sreejith's wedding!"
}
Retrieve the list of RSVP responses from wedding guests with optional filtering.
limit: number
(default: 50, max: 100)
attending: 'yes' | 'no' | 'maybe' | 'all'
(default: 'all')
source: string
(filter by submission source)
{
"success": true,
"totalCount": 3,
"limit": 50,
"filters": {
"attending": "all",
"source": null
},
"responses": [
{
"name": "John Doe",
"attendance": "yes",
"wishes": "Congratulations! Looking forward to celebrating...",
"email": "john@example.com",
"guestCount": 2,
"source": "mcp-tool",
"submittedAt": "2026-07-18T10:30:00.000Z"
},
{
"name": "Jane Smith",
"attendance": "maybe",
"wishes": "Wishing you all the best!",
"email": "",
"guestCount": 1,
"source": "webmcp-tool",
"submittedAt": "2026-07-17T15:20:00.000Z"
}
],
"message": "Retrieved 3 guest response(s)"
}
Generate personalized invitation links for one or more guests with base64-encoded names. Supports bulk generation.
guests: array
(Array of guest objects)
guestName, invitedBy, eventType
guestName: string
(e.g., "Ranjith & Family")
invitedBy: 'bride' | 'groom'
(Divya or Sreejith)
eventType: string
(see options below)
Event Type Options:
wedding_only - Ceremony only (bride side)reception_only - Reception only (groom side)wedding_and_reception - Both events (either side){
"guests": [
{
"guestName": "Ranjith & Family",
"invitedBy": "bride",
"eventType": "wedding_and_reception"
},
{
"guestName": "Suresh Kumar",
"invitedBy": "groom",
"eventType": "reception_only"
},
{
"guestName": "Priya & Arun",
"invitedBy": "bride",
"eventType": "wedding_only"
}
]
}
{
"guestName": "Ranjith & Family",
"invitedBy": "bride",
"eventType": "wedding_and_reception"
}
{
"success": true,
"totalGuests": 3,
"successfulLinks": 3,
"failedLinks": 0,
"results": [
{
"success": true,
"shareUrl": "https://divyasreeni.com/bride/reception?rid=UmFuaml0aCAmIEZhbWlseQ%3D%3D",
"guestName": "Ranjith & Family",
"invitedBy": "Divya (Bride)",
"eventType": "wedding_and_reception",
"eventDescription": "Wedding Ceremony & Reception"
},
{
"success": true,
"shareUrl": "https://divyasreeni.com/groom?rid=U3VyZXNoIEt1bWFy",
"guestName": "Suresh Kumar",
"invitedBy": "Sreejith (Groom)",
"eventType": "reception_only",
"eventDescription": "Reception Only"
},
{
"success": true,
"shareUrl": "https://divyasreeni.com/bride?rid=UHJpeWEgJiBBcnVu",
"guestName": "Priya & Arun",
"invitedBy": "Divya (Bride)",
"eventType": "wedding_only",
"eventDescription": "Wedding Ceremony Only"
}
],
"message": "Generated 3 invitation link(s) for 3 guest(s)"
}
Get the love story and relationship timeline of Divya and Sreejith with key milestones from their journey.
{
"success": true,
"our_story": {
"names": "Divya & Sreejith",
"title": "Milestones of Our Journey",
"timeline": [
{
"date": "1995 Nov 21",
"title": "A New Beginning",
"description": "In the timeless beauty of Alappuzha, Kerala, his story began."
},
{
"date": "1998 Feb 23",
"title": "Her Story Begins",
"description": "Miles away, another story unfolded—full of warmth, strength, and dreams..."
},
{
"date": "2016",
"title": "When Paths Crossed",
"description": "At CEC College, Cherthala, two paths crossed without expectations..."
}
// ... 6 more milestones through 2026
]
},
"totalMilestones": 9,
"message": "Retrieved love story with 9 milestones"
}
Get frequently asked questions and answers about the wedding, including venue directions, dress code, timing, parking, and photography guidelines.
{
"success": true,
"faq": {
"subtitle": "Need to Know",
"title": "Frequently Asked",
"questions_and_answers": [
{
"question": "How do I get to the wedding venues?",
"answer": "Use the \"Open in Maps\" buttons on the Events section to get turn-by-turn directions directly to each venue."
},
{
"question": "What is the dress code?",
"answer": "There is no specific dress code — wear whatever makes you feel comfortable and celebratory. Come as you are and enjoy the day!"
},
{
"question": "What time should I arrive?",
"answer": "We recommend arriving at least 15–20 minutes before each event begins. Early arrivals are always welcome!"
}
// ... 2 more questions
]
},
"totalQuestions": 5,
"message": "Retrieved 5 frequently asked questions"
}
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"divya-sreejith-wedding": {
"url": "https://divyasreeni.com/.well-known/mcp",
"transport": { "type": "http" }
}
}
}
Add to settings.json:
{
"github.copilot.advanced": {
"mcp": {
"servers": {
"divya-sreejith-wedding": {
"url": "https://divyasreeni.com/.well-known/mcp",
"transport": { "type": "http" }
}
}
}
}
}
Add this MCP server as a plugin in ChatGPT:
Divya & Sreejith Wedding
https://divyasreeni.com/.well-known/mcp
🧪 Test prompts after enabling:
Call the API directly using curl or your HTTP client:
curl -X POST https://divyasreeni.com/.well-known/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_wedding_details",
"arguments": {}
}
}'
AI agents can interact with this wedding invitation directly through the browser using WebMCP
WebMCP (Web Model Context Protocol) enables AI agents to discover and call MCP tools directly from web pages via the document.modelContext API.
When an AI agent browses this wedding website, it automatically detects available tools using getTools() and executes them with executeTool() to perform actions like
fetching event details, generating personalized invitation links, or submitting RSVPs—all without leaving the browser.
✨ Key Benefits:
getTools()executeTool() and get instant responsesThe wedding website includes a WebMCP registration script that exposes 10 tools to AI agents
When an AI agent browses the page, it detects document.modelContext and calls getTools() to retrieve an alphabetically ordered list of all available tools the agent is authorized to access
The agent calls executeTool(toolName, argsJSON) with the tool name and arguments as a JSON string. Tools return wedding data immediately or interact with Firebase for RSVP submissions
Results are returned to the agent and presented to the user in natural language
The wedding website uses the WebMCP document.modelContext API to register tools:
// WebMCP - Exposes wedding information tools to AI agents
if (typeof document !== 'undefined' &&
document.modelContext &&
typeof document.modelContext.registerTool === 'function') {
// Register each tool individually
document.modelContext.registerTool({
name: 'get_wedding_details',
description: 'Get comprehensive wedding information including date, location, and couple details',
inputSchema: {
type: 'object',
properties: {},
required: []
},
execute: async () => {
return {
bride: { name: 'Divya Mol', /* ... */ },
groom: { name: 'Sreejith Sivaram', /* ... */ },
date: '2026-08-23',
location: [/* ... */],
website: 'https://divyasreeni.com'
};
}
});
// Register 9 more tools: get_event_schedule, get_venue_info,
// post_rsvp_wishes, add_to_calendar, get_countdown,
// get_guest_responses, generate_share_url,
// get_our_story, get_faq
console.log('[WebMCP] Successfully registered 10 wedding invitation tools');
}
📝 Key Features:
document.modelContext.registerTool() APIdocument.modelContext.getTools()document.modelContext.executeTool(name, args)AI agents use document.modelContext.getTools() to discover available tools:
// Discover all available tools (asynchronous)
const tools = await document.modelContext.getTools();
// Returns an alphabetically ordered array of tool objects:
[
{
name: "add_to_calendar",
description: "Get calendar integration links to add wedding events...",
inputSchema: { type: "object", properties: { ... } }
},
{
name: "generate_share_url",
description: "Generate personalized wedding invitation links...",
inputSchema: { type: "object", properties: { ... } }
},
{
name: "get_countdown",
description: "Get the time remaining until the wedding date",
inputSchema: { type: "object", properties: {} }
},
// ... 8 more tools (10 total)
]
🔍 Key Points:
getTools() is asynchronous and returns a PromiseAI agents execute tools using document.modelContext.executeTool() with input arguments as a JSON string:
// Execute a tool with no parameters
const weddingDetails = await document.modelContext.executeTool(
'get_wedding_details',
'{}'
);
// Execute a tool with parameters
const eventSchedule = await document.modelContext.executeTool(
'get_event_schedule',
JSON.stringify({ date: '2026-08-23' })
);
// Execute RSVP submission
const rsvpResult = await document.modelContext.executeTool(
'post_rsvp_wishes',
JSON.stringify({
name: 'John Doe',
message: 'Congratulations!',
attending: 'yes',
guestCount: 2
})
);
// Generate personalized invitation link
const shareUrl = await document.modelContext.executeTool(
'generate_share_url',
JSON.stringify({
guestName: 'Ranjith & Family',
invitedBy: 'bride',
eventType: 'wedding_and_reception'
})
);
⚡ Key Points:
executeTool(toolName, argsJSON) is asynchronous and returns a Promisenull when navigation is triggeredinputSchemaJSON.stringify() to convert objects to JSON stringsAn AI agent (like Claude or ChatGPT with browser access) visits the wedding website and helps a guest by:
An AI agent helps the couple create personalized invitation links for multiple guests:
A guest uses an AI agent to submit their RSVP naturally:
An AI agent provides live countdown information:
You can verify WebMCP integration in the browser console:
[WebMCP] Successfully registered 10 wedding invitation tools
document.modelContext
await document.modelContext.getTools()
await document.modelContext.executeTool('get_countdown', '{}')
typeof document.modelContext.registerTool
ℹ️ Note:
AI agents with WebMCP support automatically discover tools by calling await document.modelContext.getTools(),
then execute them with await document.modelContext.executeTool(name, args).
Both methods return alphabetically ordered results. The console verification is for developers - end users don't need to interact with the console.
✅ Compatible AI Agents:
Any AI agent that supports the document.modelContext API, including Claude with browser access, ChatGPT with browsing capability, GitHub Copilot with WebMCP support, and other AI agents that can detect and invoke registered browser tools.
Visit the main invitation →
API testing & docs →
View JSON schema →
Powered by Model Context Protocol
Built with ❤️ for Divya & Sreejith's Wedding • August 23, 2026