PalPlexcity is a AI-powered personal assistant that lives right in your messaging app. Built on Perplexity Search and Sonar API, it anticipates your needs, automates routine tasks, and surfaces timely information.
Unlike traditional reactive AI assistants that wait for your commands, our assistant takes initiative. It monitors your schedule, tracks important information, and proactively sends you actionable nudges exactly when you need them—reducing mental load and freeing you to focus on what truly matters.
Modern life demands constant attention switching and information juggling:
- Cognitive Overload: Remembering tasks, appointments, follow-ups, and deadlines creates mental fatigue
- Context Switching: Bouncing between apps, emails, calendars, and reminders wastes valuable time
- Information Overload: Staying on top of news, updates, and relevant information requires constant manual searching
The result? Missed deadlines, forgotten tasks, and mental exhaustion from trying to manage it all.
PalPlexcity transforms AI interaction by proactively assisting users before they ask. The assistant becomes an intelligent extension of your digital life—surfacing deep insights, automating routine, and delivering value in real time.
- Advanced Search & Discovery: Utilizes Perplexity Search API and Sonar to perform both general and highly detailed search queries, instantly finding answers, recommendations, and data across the web.
- Content-to-Podcast Audio Generation: Converts search results, emails, calendar entries, and written information into engaging podcasts or audio summaries using cutting-edge AI text-to-speech technology (e.g., ElevenLabs) for hands-free updates on the go.
- Geolocation-Based Recommendations & Actions: Integrates geolocation APIs to identify points of interest—such as real-time events, local restaurants, clinics, or services—and anticipates needs to suggest timely, nearby actions.
- Voice Agent Integration for Real-Time Action: Employs AI voice agents to make queries and phone calls on behalf of users. It can interact with external services (restaurants, healthcare, businesses), book appointments, or gather information, then summarize and feed the outcome back into WhatsApp—closing the loop from search to spoken action.
- Weather Intelligence: Connects to weather data sources and prediction tools, providing timely alerts and actionable forecasts tailored to your location and plans.
- Smart Meeting Scheduling & Automated Research: Detects and suggests prospective meetings by looking at your calendar. Performs pre-meeting research, summarizes relevant context, and schedules appointments—so you're prepared without manual effort.
With PalPlexcity, automation meets conversational ease: users enjoy reduced cognitive load, streamlined workflow, and intelligent support every step of the way.
This workspace contains an OAuth-enabled Google Calendar MCP server you can deploy to Cloudflare Workers and use from MCP clients.
google-mcp/: Google Calendar OAuth MCP server (Cloudflare Workers + workers-oauth-provider)no-auth-mcp/: Authless MCP server (Cloudflare Workers) exposing geocoding and Perplexity tools
Authenticate with Google and expose Calendar tools over MCP.
- OAuth scopes:
openid email profile,https://www.googleapis.com/auth/calendar.readonly,https://www.googleapis.com/auth/calendar.events - Endpoints:
/mcp(Streamable-HTTP), legacy/sse
- Cloudflare account + Wrangler installed
- Google OAuth 2.0 Client (Web Application)
- Authorized redirect URI:
https://<your-worker>.<your-subdomain>.workers.dev/callback
- Authorized redirect URI:
- A KV namespace for OAuth state
- Create KV (if not already set in
google-mcp/wrangler.jsonc):
npx wrangler kv namespace create OAUTH_KV
# paste the printed ID into wrangler.jsonc → kv_namespaces[].id- Set secrets:
cd google-mcp
npx wrangler secret put GOOGLE_CLIENT_ID
npx wrangler secret put GOOGLE_CLIENT_SECRET- Deploy:
npm run deploy- Authorize:
- Open:
https://<your-worker>.<your-subdomain>.workers.dev/authorize - Consent to requested scopes, then your tools will be available via MCP
-
list_calendar_events- Input:
maxResults?(default 10; 1..50) - Output:
{ events: [{ id, summary, start, end, htmlLink, location }] } - API:
GET /calendar/v3/calendars/primary/events
- Input:
-
create_calendar_event(QuickAdd)- Input:
text(required), e.g.Lunch with Alex tomorrow 12pm at Cafe, invite [email protected]calendarId?(defaultprimary)sendUpdates?(all|externalOnly|none)
- Output:
{ id, htmlLink, summary, start, end } - API:
POST /calendar/v3/calendars/{calendarId}/events/quickAdd?text=... - Docs: https://developers.google.com/workspace/calendar/api/v3/reference/events/quickAdd
- Input:
cd google-mcp
npm run dev- Local redirect URI (add to Google OAuth client):
http://localhost:8788/callback
- MCP endpoint:
https://<your-worker>.<your-subdomain>.workers.dev/mcp - Legacy SSE:
https://<your-worker>.<your-subdomain>.workers.dev/sse - MCP Inspector:
npx @modelcontextprotocol/inspector@latest- 403
insufficientPermissionson QuickAdd: re-auth at/authorizeto grant write scope (calendar.eventsorcalendar). - 400
invalid_scope: ensure handler requests write scope; redeploy, then re-auth. - KV binding missing: create the namespace and update
kv_namespaces[].idinwrangler.jsonc.
Expose geocoding, nearby places, routing, basic environment info, and optional Perplexity search without authentication.
- Endpoints:
/mcp(Streamable-HTTP), legacy/sse
- Cloudflare account + Wrangler installed
- Optional: Perplexity API key if using Perplexity-powered tools
- Set secret (only if you plan to call Perplexity tools):
cd no-auth-mcp
npx wrangler secret put PERPLEXITY_API_KEYcd no-auth-mcp
npm run devcd no-auth-mcp
npm run deploygeocode: forward or reverse geocoding via OpenStreetMap Nominatimplaces: nearby points of interest (Overpass API), with optional category filterroute_brief: distance and duration between two coordinates (OSRM)environment_info: sunrise/sunset and current weathersearch_perplexity: Perplexity search (requiresPERPLEXITY_API_KEY)
Note: Some auxiliary tools in no-auth-mcp are disabled by default and intended for internal use or later activation.