From 5c418c983ba62b9dfc7903532804628934591678 Mon Sep 17 00:00:00 2001 From: Linkies Date: Wed, 6 May 2026 02:11:03 -0400 Subject: [PATCH] add 3 presets shipped in v0.5.59 (google-calendar, pageindex, vodou-mac-control) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These presets ship in Vodou release archives via the monorepo's local presets/ directory but were never synced to the public catalog. This PR brings them in so external contributors can see the canonical set. - google-calendar β€” Google Calendar via local stdio MCP wrapper - pageindex β€” vectorless RAG over long PDFs (cloud HTTP MCP) - vodou-mac-control β€” native macOS UI automation (local stdio, Accessibility permission required) All three validate clean against the current presets/_schema.json. Follow-up PRs needed for: gmail, ms365, tavily, zoho. Those use schema features not yet in this repo's _schema.json (switchAccount, dcrOptionalApiKey, userSuppliedUrl). Will land as one PR that updates the schema + adds the 4 remaining presets. --- presets/google-calendar.json | 41 +++++++++++++++++++++++++++++++ presets/pageindex.json | 42 +++++++++++++++++++++++++++++++ presets/vodou-mac-control.json | 45 ++++++++++++++++++++++++++++++++++ 3 files changed, 128 insertions(+) create mode 100644 presets/google-calendar.json create mode 100644 presets/pageindex.json create mode 100644 presets/vodou-mac-control.json diff --git a/presets/google-calendar.json b/presets/google-calendar.json new file mode 100644 index 0000000..cc044dd --- /dev/null +++ b/presets/google-calendar.json @@ -0,0 +1,41 @@ +{ + "id": "google-calendar", + "name": "Google Calendar", + "icon": "πŸ“…", + "logo": "/icons/brands/googlecalendar.svg", + "logoColor": true, + "category": "Productivity", + "description": "List and manage Google Calendar events, freebusy lookups, multi-account support. Local stdio MCP via @cocal/google-calendar-mcp (MIT, 1k+ ⭐, 60k monthly installs).", + "localStdio": true, + "stdioCommand": "npx", + "stdioArgs": ["-y", "@cocal/google-calendar-mcp@latest"], + "mcpUrl": "stdio: npx -y @cocal/google-calendar-mcp@latest", + "mcpTransport": "stdio", + "setupDocsUrl": "https://github.com/nspady/google-calendar-mcp", + "setupSteps": [ + { + "title": "Prerequisites", + "instructions": "Install Node.js (for npx). The MCP package downloads automatically on first connect.", + "gotcha": "Cold start can take a minute while the package installs." + }, + { + "title": "Create Google Cloud OAuth credentials", + "instructions": "Open console.cloud.google.com β†’ APIs & Services β†’ Credentials. Click Create credentials β†’ OAuth client ID. Pick Desktop app as the application type. Name it Vodou Calendar. Click Create, then Download JSON.", + "gotcha": "Make sure the Google Calendar API is enabled for your project under APIs & Services β†’ Library β†’ Google Calendar API β†’ Enable." + }, + { + "title": "Set GOOGLE_OAUTH_CREDENTIALS env", + "instructions": "Save the downloaded JSON somewhere stable (e.g. ~/.config/vodou/google-oauth.json) and set GOOGLE_OAUTH_CREDENTIALS=<absolute path> in your shell rc file. Reload the shell, then restart the Vodou gateway so the new env is in scope.", + "gotcha": "The path must be absolute β€” relative paths fail because the MCP runs from the gateway's working dir, not yours." + }, + { + "title": "Add server", + "instructions": "Click Add server below. Vodou runs vodou-core connect google-calendar which spawns the MCP. The first call opens Google's standard consent screen in your default browser β€” click Allow. Tokens are cached locally.", + "gotcha": "If the browser doesn't open, copy the URL from the gateway log and open it manually." + }, + { + "title": "Enable in Tools", + "instructions": "Open Capabilities β†’ MCP Servers and turn google-calendar on so chat can call its 12 tools (list-events, create-event, search-events, get-freebusy, etc)." + } + ] +} diff --git a/presets/pageindex.json b/presets/pageindex.json new file mode 100644 index 0000000..1e596fe --- /dev/null +++ b/presets/pageindex.json @@ -0,0 +1,42 @@ +{ + "id": "pageindex", + "name": "PageIndex", + "icon": "πŸ“‘", + "logo": "/icons/brands/pageindex.svg", + "category": "Productivity", + "description": "Reasoning-based RAG over long PDFs (contracts, filings, research). Cloud-hosted MCP β€” paid service, get a key at dash.pageindex.ai. Pricing: contact PageIndex.", + "apiKeyEnv": "PAGEINDEX_API_KEY", + "apiKeyHeader": "Authorization", + "apiKeyFormat": "Bearer {key}", + "setupDocsUrl": "https://docs.pageindex.ai/mcp", + "mcpUrl": "https://api.pageindex.ai/mcp", + "mcpTransport": "http", + "setupSteps": [ + { + "title": "What you get", + "instructions": "PageIndex is vectorless RAG: it builds a semantic tree (table-of-contents-style) from each document and uses LLM tree-search to retrieve the most relevant sections. Strong on long structured PDFs β€” financial filings, legal contracts, RFPs, technical manuals, research papers. Pairs naturally with Enhanced-Thinking and ExecDesk personas." + }, + { + "title": "Heads-up: paid cloud service", + "instructions": "PageIndex is a hosted SaaS. Documents you submit go to their cloud servers for OCR + tree-building + retrieval. There may be a free tier on signup; production usage requires a paid plan.", + "gotcha": "Check current pricing at pageindex.ai or in the developer dashboard before sending sensitive documents through. Vodou never sees the document β€” it goes from PageIndex's servers directly to their LLMs." + }, + { + "title": "Get your API key", + "instructions": "Sign up at the PageIndex Developer Dashboard, then create an API key. The key looks like a long opaque token (no public format prefix).", + "link": { "url": "https://dash.pageindex.ai", "label": "Open PageIndex Developer Dashboard" } + }, + { + "title": "Paste the key", + "instructions": "Click Save API key & Connect in the Apps modal and paste your key. Vodou stores it as PAGEINDEX_API_KEY and sends it as Authorization: Bearer <key> on every MCP call. The key never appears in chat history or logs." + }, + { + "title": "Enable in Tools", + "instructions": "Open Capabilities β†’ MCP Servers and turn pageindex on. Once connected you can ask things like 'index this PDF and tell me the indemnification clause' or 'find every revenue mention in last quarter’s 10-K'. Tool count populates after the first MCP handshake." + }, + { + "title": "When to use it (vs. memory.db)", + "instructions": "Vodou's built-in memory is great for chat / notes / short text recall. PageIndex is the right tool when you have a specific long document (50+ pages) and need precise, traceable answers grounded in page references. For both layers in one chat, Enhanced-Thinking can plan, PageIndex retrieves, and the active LLM stitches the answer." + } + ] +} diff --git a/presets/vodou-mac-control.json b/presets/vodou-mac-control.json new file mode 100644 index 0000000..a44408b --- /dev/null +++ b/presets/vodou-mac-control.json @@ -0,0 +1,45 @@ +{ + "id": "vodou-mac-control", + "name": "Mac Control", + "icon": "πŸ–₯️", + "logo": "/icons/brands/apple.svg", + "category": "Productivity", + "description": "Native macOS control: read any app's UI tree, click, type, scroll, take screenshots, manage windows, and read/write the clipboard. 13 tools via Apple's accessibility APIs.", + "localStdio": true, + "stdioCommand": "node", + "stdioArgs": ["MCP-servers/vodou-mac-control/dist/index.js"], + "mcpUrl": "stdio: node MCP-servers/vodou-mac-control/dist/index.js", + "mcpTransport": "stdio", + "setupDocsUrl": "https://github.com/VodouAI/OS", + "setupSteps": [ + { + "title": "Why permission is required", + "instructions": "macOS sandboxes apps that read or control other apps' UIs. The Swift binary that powers Mac Control (vodou-ax) needs Accessibility permission to read UI trees and send clicks/keys to other apps. This is the same permission Raycast, Rectangle, BetterTouchTool, etc. ask for. Without it, every tool returns the system error kAXErrorAPIDisabled." + }, + { + "title": "Grant Accessibility permission", + "instructions": "Open System Settings β†’ Privacy & Security β†’ Accessibility. Click the + button, navigate to your Vodou install dir β†’ MCP-servers/vodou-mac-control/bin/, and add vodou-ax-arm64 (Apple Silicon) or vodou-ax-x86_64 (Intel). Toggle it ON.", + "link": { "url": "x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility", "label": "Open Accessibility settings" }, + "gotcha": "If the binary doesn't appear when you click +, drag it directly from Finder into the Accessibility list. The first attempt to use any tool also surfaces the permission prompt β€” you can grant it then." + }, + { + "title": "(Optional) Grant Screen Recording for screenshots", + "instructions": "If you want to use the screenshot tool, grant Screen Recording permission in System Settings β†’ Privacy & Security β†’ Screen Recording. Add the same vodou-ax-* binary. Without this, Mac Control still works β€” only the screenshot tool fails.", + "link": { "url": "x-apple.systempreferences:com.apple.preference.security?Privacy_ScreenCapture", "label": "Open Screen Recording settings" } + }, + { + "title": "Add server", + "instructions": "Click Add server below. Vodou runs vodou-core connect vodou-mac-control which spawns the bundled stdio launcher. The first tool call uses the Accessibility permission you granted above.", + "gotcha": "If Add server fails with kAXErrorAPIDisabled on the first tool, the permission isn't active yet. Toggle it OFF and back ON in System Settings β€” macOS sometimes caches the deny. Restart the gateway with ./start-vodou-services.sh if needed." + }, + { + "title": "Enable in Tools", + "instructions": "Open Capabilities β†’ MCP Servers and turn vodou-mac-control on. You get 13 tools: traverse, click_element_and_traverse, type_and_traverse, press_key_and_traverse, scroll_and_traverse, open_and_traverse, screenshot, list_windows, manage_window, clipboard_read, clipboard_write, plus two utility tools. Try saying 'list my open windows' or 'take a screenshot' in chat." + }, + { + "title": "Verify it works", + "instructions": "From the chat, ask: 'what windows are open?'. The list_windows tool runs and you should see your active apps and window titles. If it errors, re-check the Accessibility toggle in System Settings.", + "gotcha": "Every action returns the full UI tree + a diff. Responses can be large β€” that's intentional, the AI uses the tree to plan the next click. Don't be alarmed by long tool outputs." + } + ] +}