← back to Ventura Claw
lib/mcp/connector-specs.json
780 lines
{
"_schema_version": 2,
"_generated_at": "2026-05-05T00:00:00Z",
"_researcher": "exa-agent",
"_note": "Fields marked _uncertain:true need human verification before production use. priority_actions and priority_triggers are SMB-focused inferences from official docs.",
"connectors": {
"shopify": {
"official_docs_url": "https://shopify.dev/docs/api/admin-graphql/latest",
"auth_method": "oauth2",
"oauth_scopes": ["read_products","write_products","read_orders","write_orders","read_customers","write_customers","read_inventory","write_inventory","read_fulfillments","write_fulfillments"],
"api_base_url": "https://{shop}.myshopify.com/admin/api/2026-04/graphql.json",
"rate_limits": "GraphQL: 100 cost points/sec standard, 1000/sec Plus; REST (legacy): 40 req/min standard, 400/min Plus",
"webhook_support": true,
"mcp_server": "@shopify/dev-mcp + shopify-mcp (GeLi2001/shopify-mcp)",
"priority_actions": ["productCreate","productVariantsBulkUpdate","orderUpdate","draftOrderCreate","inventoryAdjustQuantities"],
"priority_triggers": ["orders/create","orders/paid","products/update"],
"difficulty": "medium",
"notes": "REST Admin API legacy as of Oct 2024; new public apps must use GraphQL. App review required for public apps.",
"last_verified": "2026-05-05"
},
"etsy": {
"official_docs_url": "https://developer.etsy.com/documentation/",
"auth_method": "oauth2",
"oauth_scopes": ["listings_r","listings_w","listings_d","shops_r","shops_w","transactions_r","transactions_w","profile_r","address_r","billing_r","email_r"],
"api_base_url": "https://api.etsy.com/v3/application",
"rate_limits": "10 QPS / 10,000 QPD per app key (sliding 24h window)",
"webhook_support": false,
"mcp_server": "Etsy Open API Dev MCP (docs lookup only)",
"priority_actions": ["createDraftListing","updateListing","uploadListingImage","createReceiptShipment","updateListingInventory"],
"priority_triggers": ["new transaction (poll)","listing low-stock (poll)","new review (poll)"],
"difficulty": "medium",
"notes": "PKCE required. Personal access limited to 5 shops. Apps dormant 6mo get banned.",
"last_verified": "2026-05-05"
},
"stripe": {
"official_docs_url": "https://docs.stripe.com/api",
"auth_method": "api_key",
"api_base_url": "https://api.stripe.com/v1",
"rate_limits": "100 read/sec live, 100 write/sec live",
"webhook_support": true,
"mcp_server": "@stripe/mcp (official) + remote https://mcp.stripe.com",
"priority_actions": ["paymentIntents.create","customers.create","invoices.create","refunds.create","subscriptions.create"],
"priority_triggers": ["payment_intent.succeeded","invoice.payment_failed","customer.subscription.deleted"],
"difficulty": "easy",
"notes": "HTTP Basic auth with secret key. Restricted keys (rk_*) recommended. Idempotency-Key on all POSTs.",
"last_verified": "2026-05-05"
},
"paypal": {
"official_docs_url": "https://developer.paypal.com/api/rest/",
"auth_method": "oauth2",
"oauth_scopes": ["https://uri.paypal.com/services/applications/webhooks","https://uri.paypal.com/services/payments/payment","https://uri.paypal.com/services/invoicing"],
"api_base_url": "https://api-m.paypal.com",
"rate_limits": "Adaptive; not publicly published",
"webhook_support": true,
"mcp_server": "none (no canonical official)",
"priority_actions": ["orders.create","orders.capture","payments.refund","invoices.send","subscriptions.create"],
"priority_triggers": ["PAYMENT.SALE.COMPLETED","PAYMENT.CAPTURE.REFUNDED","BILLING.SUBSCRIPTION.CANCELLED"],
"difficulty": "medium",
"notes": "OAuth client_credentials grant. 25 webhook retries over 3 days. Business verification required for live mode.",
"last_verified": "2026-05-05"
},
"gmail": {
"official_docs_url": "https://developers.google.com/workspace/gmail/api/reference/rest/v1",
"auth_method": "oauth2",
"oauth_scopes": ["gmail.send","gmail.readonly","gmail.modify","gmail.compose","gmail.labels","gmail.metadata"],
"api_base_url": "https://gmail.googleapis.com/gmail/v1",
"rate_limits": "1B quota units/day per project; 250 units/user/sec; send=100 units",
"webhook_support": true,
"mcp_server": "community Google Workspace MCPs",
"priority_actions": ["users.messages.send","users.drafts.create","users.labels.create","users.messages.modify","users.threads.modify"],
"priority_triggers": ["new message (Pub/Sub watch)","new starred","new label-applied"],
"difficulty": "medium",
"notes": "Restricted scopes require Google CASA assessment. watch() needs Pub/Sub topic + IAM grant.",
"last_verified": "2026-05-05"
},
"slack": {
"official_docs_url": "https://docs.slack.dev/apis/web-api/",
"auth_method": "oauth2",
"oauth_scopes": ["chat:write","chat:write.public","chat:write.customize","channels:read","channels:history","channels:manage","users:read","files:write","incoming-webhook","commands","im:write"],
"api_base_url": "https://slack.com/api/",
"rate_limits": "Tier 1: 1+/min, Tier 2: 20/min, Tier 3: 50/min, Tier 4: 100+/min",
"webhook_support": true,
"mcp_server": "@zencoderai/slack-mcp-server (official successor)",
"priority_actions": ["chat.postMessage","files.upload","conversations.create","chat.update","reactions.add"],
"priority_triggers": ["message","app_mention","reaction_added"],
"difficulty": "easy",
"notes": "App Directory distribution requires review. xoxb- vs xoxp- tokens.",
"last_verified": "2026-05-05"
},
"cloudflare": {
"official_docs_url": "https://developers.cloudflare.com/api/",
"auth_method": "api_key",
"api_base_url": "https://api.cloudflare.com/client/v4/",
"rate_limits": "1200 req/5min per token; 200/sec per IP",
"webhook_support": true,
"mcp_server": "cloudflare/mcp-server-cloudflare + remote mcp.cloudflare.com",
"priority_actions": ["dns_records.create","zones.create","purge_cache","workers.script.upload","pages.deployments.create"],
"priority_triggers": ["zone health alert","deploy success/fail","WAF event spike"],
"difficulty": "easy",
"notes": "Bearer token. Account-scoped tokens needed for zone-create. DNS-edit tokens are safe for distribution.",
"last_verified": "2026-05-05"
},
"mailchimp": {
"official_docs_url": "https://mailchimp.com/developer/marketing/api/",
"auth_method": "oauth2",
"api_base_url": "https://{dc}.api.mailchimp.com/3.0/",
"rate_limits": "10 simultaneous connections per API key; batch endpoint for >500 ops",
"webhook_support": true,
"mcp_server": "none canonical",
"priority_actions": ["lists.members.create","campaigns.create+send","lists.members.tags.update","lists.members.events.create","automations.actions.start"],
"priority_triggers": ["subscribe","unsubscribe","campaign sent (poll)"],
"difficulty": "easy",
"notes": "Data-center suffix in API key (e.g. us6). User permissions gate scope.",
"last_verified": "2026-05-05"
},
"klaviyo": {
"official_docs_url": "https://developers.klaviyo.com/en/reference/api_overview",
"auth_method": "oauth2",
"oauth_scopes": ["profiles:read","profiles:write","events:read","events:write","lists:read","lists:write","campaigns:read","campaigns:write","catalogs:read","catalogs:write","flows:read","subscriptions:write"],
"api_base_url": "https://a.klaviyo.com/api",
"rate_limits": "Per-endpoint burst+steady. Profiles GET: 75/s burst, 750/min. Events POST: 350/s burst, 3500/min",
"webhook_support": true,
"mcp_server": "none canonical",
"priority_actions": ["createProfile","createEvent","subscribeProfiles","createCampaign","addProfileToList"],
"priority_triggers": ["profile.created","metric.event","list.member.added"],
"difficulty": "medium",
"notes": "Date-versioned API (revision header required). OAuth tokens 1hr. Header is `Klaviyo-API-Key <key>` (NOT bearer).",
"last_verified": "2026-05-05"
},
"hubspot": {
"official_docs_url": "https://developers.hubspot.com/docs/api/overview",
"auth_method": "oauth2",
"oauth_scopes": ["oauth","crm.objects.contacts.read","crm.objects.contacts.write","crm.objects.deals.read","crm.objects.deals.write","crm.objects.companies.read","crm.objects.companies.write","automation","tickets","content"],
"api_base_url": "https://api.hubapi.com",
"rate_limits": "100 req/10s free, 150/10s pro, 200/10s enterprise. Daily 250k → 1M+",
"webhook_support": true,
"mcp_server": "remote mcp.hubspot.com (OAuth) + shinzo-labs/hubspot-mcp",
"priority_actions": ["contacts.basicApi.create","deals.basicApi.create","marketing.transactional.send","associations.v4.basicApi.create","tickets.basicApi.create"],
"priority_triggers": ["contact.creation","deal.propertyChange (dealstage)","contact.propertyChange (lifecyclestage)"],
"difficulty": "medium",
"notes": "Private apps use bearer tokens. Public apps require app review. v3 OAuth is OAuth 2.1 with PKCE.",
"last_verified": "2026-05-05"
},
"instagram": {
"official_docs_url": "https://developers.facebook.com/docs/instagram-platform/",
"auth_method": "oauth2",
"oauth_scopes": ["instagram_business_basic","instagram_business_content_publish","instagram_business_manage_comments","instagram_business_manage_messages"],
"api_base_url": "https://graph.instagram.com",
"rate_limits": "50 IG containers/24h per user. Messaging: 100 calls/sec",
"webhook_support": true,
"mcp_server": "none canonical",
"priority_actions": ["create IG container","publish container","reply to comment","send DM","delete media"],
"priority_triggers": ["new comment","new mention","new DM"],
"difficulty": "hard",
"notes": "App Review REQUIRED for content_publish + manage_comments + manage_messages. Old scope names deprecated Jan 27 2025.",
"last_verified": "2026-05-05"
},
"tiktok": {
"official_docs_url": "https://developers.tiktok.com/doc/login-kit-web",
"auth_method": "oauth2",
"oauth_scopes": ["user.info.basic","user.info.profile","user.info.stats","video.list","video.upload","video.publish","research.adlib.basic"],
"api_base_url": "https://open.tiktokapis.com/v2",
"rate_limits": "Per-app/per-user; unaudited apps = posts forced PRIVATE",
"webhook_support": true,
"mcp_server": "none canonical",
"priority_actions": ["post.publish.video.init","post.publish.inbox.video.init","post.publish.content.init","post.publish.status.fetch","user.info"],
"priority_triggers": ["post publish complete","authorization revoked","comment received (research only)"],
"difficulty": "hard",
"notes": "STRICT app review for video.publish. Demo video required. v1 launch BLOCKER unless paired with manual review timeline.",
"last_verified": "2026-05-05"
},
"woocommerce": {
"official_docs_url": "https://woocommerce.github.io/woocommerce-rest-api-docs/",
"auth_method": "basic",
"api_base_url": "https://{store-domain}/wp-json/wc/v3/",
"rate_limits": "No platform-imposed limit; bound by host",
"webhook_support": true,
"mcp_server": "techspawn/woocommerce-mcp (community)",
"priority_actions": ["POST /products","PUT /orders/{id}","POST /products/{id}/variations","POST /coupons","POST /customers"],
"priority_triggers": ["order.created","order.updated","product.updated"],
"difficulty": "easy",
"notes": "HTTPS = Basic Auth. v3 current.",
"last_verified": "2026-05-05"
},
"shopify_payments": {
"official_docs_url": "https://shopify.dev/docs/api/payments-apps",
"auth_method": "oauth2",
"oauth_scopes": ["write_payment_gateways","write_payment_sessions"],
"api_base_url": "https://{shop}.myshopify.com/payments_apps/api/2026-04/graphql.json",
"rate_limits": "GraphQL Payments Apps: 27,300 cost points/sec",
"webhook_support": true,
"mcp_server": "covered by @shopify/dev-mcp (docs only)",
"priority_actions": ["paymentSessionResolve","paymentSessionReject","refundSessionResolve","captureSessionResolve","voidSessionResolve"],
"priority_triggers": ["payment session initiated","refund session initiated","capture session initiated"],
"difficulty": "hard",
"notes": "Partner-gated. For most SMBs, route via Stripe/PayPal instead.",
"last_verified": "2026-05-05",
"_uncertain": true
},
"square": {
"official_docs_url": "https://developer.squareup.com/reference/square",
"auth_method": "oauth2",
"oauth_scopes": ["MERCHANT_PROFILE_READ","PAYMENTS_READ","PAYMENTS_WRITE","ORDERS_READ","ORDERS_WRITE","ITEMS_READ","ITEMS_WRITE","CUSTOMERS_READ","CUSTOMERS_WRITE","INVOICES_WRITE","BANK_ACCOUNTS_READ"],
"api_base_url": "https://connect.squareup.com",
"rate_limits": "Per-endpoint, generous; 429 retry with exponential backoff",
"webhook_support": true,
"mcp_server": "square-mcp-server (official) + remote mcp.squareup.com",
"priority_actions": ["payments.create","orders.create","catalog.upsertCatalogObject","invoices.publish","customers.create"],
"priority_triggers": ["payment.created","order.fulfillment.updated","invoice.payment_made"],
"difficulty": "easy",
"notes": "Tokens 30-day default; PKCE flow for 24h short-lived. Square-Version header recommended.",
"last_verified": "2026-05-05"
},
"google_sheets": {
"official_docs_url": "https://developers.google.com/workspace/sheets/api/reference/rest",
"auth_method": "oauth2",
"oauth_scopes": ["spreadsheets","spreadsheets.readonly","drive.file"],
"api_base_url": "https://sheets.googleapis.com/v4",
"rate_limits": "300 read req/min/project, 60/user/min/project",
"webhook_support": false,
"mcp_server": "community google workspace MCPs",
"priority_actions": ["values.append","values.batchUpdate","spreadsheets.create","batchUpdate (formatting)","values.clear"],
"priority_triggers": ["new row added (poll)","cell change (Apps Script onEdit)","sheet shared (Drive API)"],
"difficulty": "easy",
"notes": "drive.file = non-sensitive. spreadsheets = sensitive (review).",
"last_verified": "2026-05-05"
},
"google_drive": {
"official_docs_url": "https://developers.google.com/workspace/drive/api/reference/rest/v3",
"auth_method": "oauth2",
"oauth_scopes": ["drive","drive.file","drive.readonly","drive.metadata.readonly"],
"api_base_url": "https://www.googleapis.com/drive/v3",
"rate_limits": "1000/100sec/user; 10,000/100sec/project",
"webhook_support": true,
"mcp_server": "community",
"priority_actions": ["files.create","files.export","permissions.create","files.copy","files.update"],
"priority_triggers": ["files.watch","changes.watch","new comment"],
"difficulty": "medium",
"notes": "drive scope = restricted (CASA). drive.file recommended.",
"last_verified": "2026-05-05"
},
"outlook": {
"official_docs_url": "https://learn.microsoft.com/en-us/graph/api/overview",
"auth_method": "oauth2",
"oauth_scopes": ["Mail.Send","Mail.Read","Mail.ReadWrite","Calendars.Read","Calendars.ReadWrite","Contacts.ReadWrite","User.Read"],
"api_base_url": "https://graph.microsoft.com/v1.0",
"rate_limits": "10,000 messages/24h sent per mailbox; Graph 10k req/10min per app/tenant",
"webhook_support": true,
"mcp_server": "community microsoft-graph mcps",
"priority_actions": ["users.sendMail","events.create","messages.create (draft)","events.update","contacts.create"],
"priority_triggers": ["new mail","calendar event update","contact added"],
"difficulty": "medium",
"notes": "Application vs delegated permissions. Subscriptions max 3-day TTL, must renew.",
"last_verified": "2026-05-05"
},
"twilio": {
"official_docs_url": "https://www.twilio.com/docs/usage/api",
"auth_method": "basic",
"api_base_url": "https://api.twilio.com/2010-04-01",
"rate_limits": "Default: 1 SMS/sec/long-code, 100 MMS/sec/short-code",
"webhook_support": true,
"mcp_server": "twilio-labs/mcp (official)",
"priority_actions": ["messages.create","calls.create","verify.verifications.create","lookups.phoneNumbers.fetch","incomingPhoneNumbers.create"],
"priority_triggers": ["incoming SMS","call status change","verify approved"],
"difficulty": "easy",
"notes": "A2P 10DLC brand registration required for US SMS at scale (~2 weeks).",
"last_verified": "2026-05-05"
},
"discord": {
"official_docs_url": "https://discord.com/developers/docs/intro",
"auth_method": "oauth2",
"oauth_scopes": ["bot","identify","guilds","guilds.join","applications.commands","messages.read","webhook.incoming"],
"api_base_url": "https://discord.com/api/v10",
"rate_limits": "Global: 50 req/sec per bot. Gateway: 120 events/60sec",
"webhook_support": true,
"mcp_server": "modelcontextprotocol/servers ref + community",
"priority_actions": ["channels.messages.create","guilds.members.create","channels.create","interactions.commands.create","webhooks.execute"],
"priority_triggers": ["MESSAGE_CREATE","GUILD_MEMBER_ADD","INTERACTION_CREATE"],
"difficulty": "medium",
"notes": "Privileged intents require app verification at 100+ guilds.",
"last_verified": "2026-05-05"
},
"facebook": {
"official_docs_url": "https://developers.facebook.com/docs/pages-api/",
"auth_method": "oauth2",
"oauth_scopes": ["pages_show_list","pages_read_engagement","pages_manage_posts","pages_manage_engagement","pages_read_user_content","pages_manage_metadata","business_management"],
"api_base_url": "https://graph.facebook.com/v25.0",
"rate_limits": "Business Use Case (BUC) per Page",
"webhook_support": true,
"mcp_server": "none canonical",
"priority_actions": ["POST /{page-id}/feed","POST /{page-id}/photos","POST /{page-id}/videos","POST /{post-id}/comments","DELETE /{post-id}"],
"priority_triggers": ["new comment","new mention","messages"],
"difficulty": "hard",
"notes": "App Review REQUIRED. Business verification needed.",
"last_verified": "2026-05-05"
},
"pinterest": {
"official_docs_url": "https://developers.pinterest.com/docs/api/v5/",
"auth_method": "oauth2",
"oauth_scopes": ["pins:read","pins:write","boards:read","boards:write","user_accounts:read","ads:read","ads:write","catalogs:read","catalogs:write"],
"api_base_url": "https://api.pinterest.com/v5",
"rate_limits": "Trial: 1000/day; Standard: 100/sec/user/app",
"webhook_support": false,
"mcp_server": "none canonical",
"priority_actions": ["pins.create","pins.update","boards.create","catalogs.items.create_batch","ads.campaigns.create"],
"priority_triggers": ["new pin (poll)","board engagement","ad performance"],
"difficulty": "medium",
"notes": "v5 current. No webhooks = polling required.",
"last_verified": "2026-05-05"
},
"linkedin": {
"official_docs_url": "https://learn.microsoft.com/en-us/linkedin/",
"auth_method": "oauth2",
"oauth_scopes": ["w_member_social","r_member_social","w_organization_social","r_organization_social","r_liteprofile","r_emailaddress"],
"api_base_url": "https://api.linkedin.com/v2",
"rate_limits": "Member: 150 share/day; App: 100,000/day",
"webhook_support": false,
"mcp_server": "none canonical",
"priority_actions": ["POST /v2/ugcPosts","POST /v2/posts","POST /v2/socialActions/{urn}/comments","POST /v2/socialActions/{urn}/likes","GET /v2/me"],
"priority_triggers": ["organization mention (poll)","post engagement","follower added"],
"difficulty": "hard",
"notes": "Marketing Developer Platform requires partner application (multi-week).",
"last_verified": "2026-05-05"
},
"youtube_shorts": {
"official_docs_url": "https://developers.google.com/youtube/v3/docs/videos/insert",
"auth_method": "oauth2",
"oauth_scopes": ["youtube.upload","youtube","youtube.force-ssl"],
"api_base_url": "https://www.googleapis.com/youtube/v3",
"rate_limits": "10,000 quota units/day default. videos.insert = 1600 units (~6 uploads/day default)",
"webhook_support": true,
"mcp_server": "none canonical",
"priority_actions": ["videos.insert (with #Shorts)","videos.update","thumbnails.set","playlistItems.insert","comments.insert"],
"priority_triggers": ["new video on channel (PubSubHubbub)","new comment","subscriber count"],
"difficulty": "hard",
"notes": "10k unit/day quota = LARGEST blocker. Quota expansion form required for >6 videos/day. Service accounts not supported.",
"last_verified": "2026-05-05"
},
"x_twitter": {
"official_docs_url": "https://docs.x.com/x-api/introduction",
"auth_method": "oauth2",
"oauth_scopes": ["tweet.read","tweet.write","users.read","follows.read","follows.write","offline.access","media.write","dm.write","like.write","list.write"],
"api_base_url": "https://api.x.com/2",
"rate_limits": "POST /2/tweets: 10,000/24hrs per app, 100/15min per user",
"webhook_support": true,
"mcp_server": "community",
"priority_actions": ["POST /2/tweets","DELETE /2/tweets/:id","POST /2/users/:id/retweets","POST /2/users/:id/likes","POST /2/dm_conversations/with/:user_id/messages"],
"priority_triggers": ["new mention (poll)","new follower","DM received (Account Activity, paid)"],
"difficulty": "hard",
"notes": "Free tier limited to 1,500 posts/month. Basic $200/mo. Webhooks paid-only.",
"last_verified": "2026-05-05"
},
"threads": {
"official_docs_url": "https://developers.facebook.com/docs/threads/",
"auth_method": "oauth2",
"oauth_scopes": ["threads_basic","threads_content_publish","threads_read_replies","threads_manage_replies","threads_manage_insights"],
"api_base_url": "https://graph.threads.net",
"rate_limits": "Posts: 250/24hr per Threads user; Replies: 1000/24hr",
"webhook_support": true,
"mcp_server": "none canonical",
"priority_actions": ["create container","publish","repost","delete","status fetch"],
"priority_triggers": ["new mention","new reply","post engagement"],
"difficulty": "medium",
"notes": "App Review required for content_publish + manage_replies.",
"last_verified": "2026-05-05"
},
"bluesky": {
"official_docs_url": "https://docs.bsky.app/docs/api/at-protocol-xrpc-api",
"auth_method": "basic",
"api_base_url": "https://bsky.social/xrpc",
"rate_limits": "Per-PDS. bsky.social: 5000 req/5min per IP, 30 createSession/5min",
"webhook_support": false,
"mcp_server": "community npm",
"priority_actions": ["createRecord (post)","deleteRecord","graph.follow","uploadBlob","feed.like"],
"priority_triggers": ["new post (firehose)","new follower","new mention"],
"difficulty": "easy",
"notes": "App Password recommended. atproto OAuth in active rollout 2025.",
"last_verified": "2026-05-05"
},
"reddit": {
"official_docs_url": "https://www.reddit.com/dev/api",
"auth_method": "oauth2",
"oauth_scopes": ["identity","submit","edit","read","vote","subscribe","modposts","privatemessages","history"],
"api_base_url": "https://oauth.reddit.com",
"rate_limits": "100 QPM per OAuth client; 60 QPM unauthenticated",
"webhook_support": false,
"mcp_server": "community + Devvit (devvit/public-api)",
"priority_actions": ["POST /api/submit","POST /api/comment","POST /api/vote","POST /api/compose","GET /user/{me}/saved"],
"priority_triggers": ["new post in subreddit (poll)","new comment on post","PM received"],
"difficulty": "medium",
"notes": "User-Agent header required. Account-age + karma gates apply. Devvit framework is the blessed path.",
"last_verified": "2026-05-05"
},
"constant_contact": {
"official_docs_url": "https://developer.constantcontact.com/api_guide/index.html",
"auth_method": "oauth2",
"oauth_scopes": ["contact_data","campaign_data","account_read","account_update","offline_access"],
"api_base_url": "https://api.cc.email/v3",
"rate_limits": "10,000 req/day per app; 4 req/sec",
"webhook_support": true,
"mcp_server": "none canonical",
"priority_actions": ["POST /contacts","PUT /contacts/{id}","POST /contacts/sign_up_form","POST /emails","POST /activities/contacts_json_import"],
"priority_triggers": ["new subscriber","campaign sent","unsubscribe"],
"difficulty": "easy",
"notes": "OAuth2 PKCE. offline_access for refresh tokens. CAN-SPAM auto-managed.",
"last_verified": "2026-05-05"
},
"action_network": {
"official_docs_url": "https://actionnetwork.org/docs/v2",
"auth_method": "api_key",
"api_base_url": "https://actionnetwork.org/api/v2",
"rate_limits": "Not explicitly published; partner-tier",
"webhook_support": true,
"mcp_server": "none canonical",
"priority_actions": ["POST /people","POST /events","POST /petitions/{id}/signatures","POST /donations","POST /forms/{id}/submissions"],
"priority_triggers": ["new signup","new petition signature","new donation"],
"difficulty": "easy",
"notes": "API access is partner-feature. Header is OSDI-API-Token. HAL+JSON / OSDI standard.",
"last_verified": "2026-05-05"
},
"clickup": {
"official_docs_url": "https://developer.clickup.com/docs",
"auth_method": "oauth2",
"api_base_url": "https://api.clickup.com/api/v2",
"rate_limits": "Free/Unlimited/Business: 100/min; Business Plus: 1000/min; Enterprise: 10,000/min",
"webhook_support": true,
"mcp_server": "community",
"priority_actions": ["POST /list/{list_id}/task","PUT /task/{task_id}","POST /list/{list_id}/comment","POST /folder/{folder_id}/list","PUT /task/{task_id}/time_in_status"],
"priority_triggers": ["taskCreated","taskStatusUpdated","taskCommentPosted"],
"difficulty": "easy",
"notes": "Personal token (pk_*) or OAuth2. Authorization is just the token (NOT Bearer).",
"last_verified": "2026-05-05"
},
"asana": {
"official_docs_url": "https://developers.asana.com/reference/rest-api-reference",
"auth_method": "oauth2",
"oauth_scopes": ["projects:read","projects:write","tasks:read","tasks:write","tasks:delete","users:read","webhooks:read","webhooks:write"],
"api_base_url": "https://app.asana.com/api/1.0",
"rate_limits": "Free: 150/min; Paid: 1500/min. Concurrency: 50 GET, 15 mutations",
"webhook_support": true,
"mcp_server": "community",
"priority_actions": ["POST /tasks","PUT /tasks/{task_gid}","POST /tasks/{task_gid}/addProject","POST /tasks/{task_gid}/stories","POST /projects"],
"priority_triggers": ["task added to project","task changed","task completed"],
"difficulty": "easy",
"notes": "PAT easiest for testing. OAuth needs registered scopes.",
"last_verified": "2026-05-05"
},
"trello": {
"official_docs_url": "https://developer.atlassian.com/cloud/trello/rest/",
"auth_method": "api_key",
"oauth_scopes": ["read","write","account"],
"api_base_url": "https://api.trello.com/1",
"rate_limits": "Per API key: 300 req/10sec; per token: 100 req/10sec",
"webhook_support": true,
"mcp_server": "community",
"priority_actions": ["POST /cards","PUT /cards/{id}","POST /cards/{id}/actions/comments","POST /lists","POST /cards/{id}/attachments"],
"priority_triggers": ["card moved","card created","comment added"],
"difficulty": "easy",
"notes": "API key requires creating a Power-Up first. Tokens never expire by default.",
"last_verified": "2026-05-05"
},
"monday": {
"official_docs_url": "https://developer.monday.com/api-reference/",
"auth_method": "oauth2",
"oauth_scopes": ["boards:read","boards:write","items:read","items:write","users:read","webhooks:read","webhooks:write"],
"api_base_url": "https://api.monday.com/v2",
"rate_limits": "Daily: Free 200, Standard 1000, Pro 10k, Enterprise 25k. Plus complexity 10M points/min",
"webhook_support": true,
"mcp_server": "monday-api-mcp (official)",
"priority_actions": ["create_item","change_simple_column_value","create_update","create_board","duplicate_item"],
"priority_triggers": ["create_item","change_status_column_value","change_column_value"],
"difficulty": "medium",
"notes": "GraphQL only. Marketplace apps get higher limits.",
"last_verified": "2026-05-05"
},
"notion": {
"official_docs_url": "https://developers.notion.com/reference/intro",
"auth_method": "oauth2",
"api_base_url": "https://api.notion.com/v1",
"rate_limits": "~3 req/sec per integration; 429 + Retry-After",
"webhook_support": false,
"mcp_server": "@notionhq/notion-mcp-server (official OSS) + remote OAuth at notion.so/mcp",
"priority_actions": ["pages.create","pages.update","blocks.children.append","databases.query","databases.create"],
"priority_triggers": ["new page (poll)","page updated (poll last_edited_time)","comment added (poll)"],
"difficulty": "easy",
"notes": "Notion-Version header REQUIRED. Internal tokens (ntn_*) skip OAuth flow. Integrations must be EXPLICITLY shared with each db/page.",
"last_verified": "2026-05-05"
},
"salesforce": {
"official_docs_url": "https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/",
"auth_method": "oauth2",
"oauth_scopes": ["api","refresh_token","offline_access","full","chatter_api","openid","profile"],
"api_base_url": "https://{instance}.my.salesforce.com/services/data/v60.0",
"rate_limits": "Daily: 100k+ Enterprise (license-dependent). REQUEST_LIMIT_EXCEEDED when exceeded",
"webhook_support": true,
"mcp_server": "community (no official yet)",
"priority_actions": ["sobjects/Lead (POST)","sobjects/Account (PATCH)","sobjects/Opportunity","composite/sobjects (bulk)","query (SOQL)"],
"priority_triggers": ["Platform Event (CometD)","Change Data Capture","Outbound Message (SOAP)"],
"difficulty": "hard",
"notes": "Connected App setup required. Sandbox vs production differ. Edition matters for limits.",
"last_verified": "2026-05-05"
},
"zendesk": {
"official_docs_url": "https://developer.zendesk.com/api-reference/",
"auth_method": "oauth2",
"oauth_scopes": ["read","write","tickets:read","tickets:write","users:read","users:write","hc:read","hc:write"],
"api_base_url": "https://{subdomain}.zendesk.com/api/v2",
"rate_limits": "Suite Team 200/min, Growth 400/min, Pro 700/min, Enterprise 2500/min",
"webhook_support": true,
"mcp_server": "community",
"priority_actions": ["POST /tickets","PUT /tickets/{id}","POST /tickets/{id}/comments","POST /users/create_or_update","POST /macros"],
"priority_triggers": ["ticket.created","ticket.status_changed","ticket.comment_added"],
"difficulty": "easy",
"notes": "Multi-tenant = OAuth required. API tokens fine for single-tenant.",
"last_verified": "2026-05-05"
},
"gorgias": {
"official_docs_url": "https://developers.gorgias.com/reference",
"auth_method": "basic",
"api_base_url": "https://{customer-account}.gorgias.com/api",
"rate_limits": "40 req/sec per account",
"webhook_support": true,
"mcp_server": "none canonical",
"priority_actions": ["POST /tickets","POST /tickets/{id}/messages","PUT /tickets/{id}","POST /customers","POST /tags"],
"priority_triggers": ["ticket.created","ticket.message_added","customer.created"],
"difficulty": "easy",
"notes": "Private apps = Basic auth. Public apps must use OAuth2.",
"last_verified": "2026-05-05"
},
"intercom": {
"official_docs_url": "https://developers.intercom.com/intercom-api-reference",
"auth_method": "oauth2",
"oauth_scopes": ["read_users_companies","write_users","write_users_companies","read_conversations","write_conversations","write_events","read_tickets","write_tickets"],
"api_base_url": "https://api.intercom.io",
"rate_limits": "Private apps: 10k/min/app, 25k/min/workspace. Public apps: 10k/min/app",
"webhook_support": true,
"mcp_server": "community",
"priority_actions": ["POST /contacts","POST /contacts/{id}","POST /conversations/{id}/reply","POST /events","POST /tickets"],
"priority_triggers": ["conversation.user.created","conversation.user.replied","contact.created"],
"difficulty": "easy",
"notes": "Window split into 6 sub-windows (every 10s). Intercom-Version header recommended.",
"last_verified": "2026-05-05"
},
"canva": {
"official_docs_url": "https://canva.dev/docs/connect/",
"auth_method": "oauth2",
"oauth_scopes": ["asset:read","asset:write","design:meta:read","design:content:read","design:content:write","folder:read","folder:write","brandtemplate:meta:read","brandtemplate:content:read","comment:read","comment:write","profile:read"],
"api_base_url": "https://api.canva.com/rest/v1",
"rate_limits": "Per-endpoint; not fully published",
"webhook_support": true,
"mcp_server": "none canonical",
"priority_actions": ["assets.upload","designs.create","exports.create","folders.create","comments.create"],
"priority_triggers": ["design updated","comment added","design exported"],
"difficulty": "medium",
"notes": "OAuth 2.0 + PKCE (S256). Connect API in GA.",
"last_verified": "2026-05-05"
},
"figma": {
"official_docs_url": "https://developers.figma.com/docs/rest-api/",
"auth_method": "oauth2",
"oauth_scopes": ["file_content:read","file_content:write","files:read","current_user:read","library_assets:read","webhooks:write","library_analytics:read"],
"api_base_url": "https://api.figma.com/v1",
"rate_limits": "Tier 1 (GET file): Starter 6/month, Pro 10/min, Org 15/min, Enterprise 20/min. Leaky-bucket",
"webhook_support": true,
"mcp_server": "figma/dev-mode-mcp (official, desktop) + figma-developer-mcp (community)",
"priority_actions": ["GET /files/{key}","POST /v2/webhooks","POST /files/{key}/comments","POST /v1/variables","POST /file_uploads (paid)"],
"priority_triggers": ["FILE_UPDATE","FILE_COMMENT","LIBRARY_PUBLISH"],
"difficulty": "easy",
"notes": "Free Starter limited to 6/month. Webhooks need Pro+.",
"last_verified": "2026-05-05"
},
"adobe": {
"official_docs_url": "https://developer.adobe.com/lightroom/lightroom-api-docs/",
"auth_method": "oauth2",
"oauth_scopes": ["openid","AdobeID","lr_partner_apis","lr_partner_rendition_apis","creative_sdk"],
"api_base_url": "https://lr.adobe.io/v2",
"rate_limits": "Per-product; per-app quota set at integration creation",
"webhook_support": false,
"mcp_server": "none canonical",
"priority_actions": ["assets/upload (Lightroom)","albums/create","rendition fetch","Photoshop API actions","Stock search/license"],
"priority_triggers": ["asset created (poll)","Adobe I/O Events","Stock asset license used"],
"difficulty": "hard",
"notes": "Adobe IMS auth. Partner program registration. X-API-Key + Bearer.",
"last_verified": "2026-05-05",
"_uncertain": true
},
"paper": {
"official_docs_url": "https://paper.design/docs/mcp",
"auth_method": "api_key",
"api_base_url": "http://127.0.0.1:29979/mcp (local-only via Paper Desktop)",
"rate_limits": "n/a (local desktop MCP)",
"webhook_support": false,
"mcp_server": "Paper MCP (built-in to Paper Desktop, exposed at 127.0.0.1:29979)",
"priority_actions": ["create_artboard","write_html","update_styles","duplicate_nodes","set_text_content"],
"priority_triggers": ["selection change","file open","node update"],
"difficulty": "easy",
"notes": "NO public REST API. MCP-only via desktop app.",
"last_verified": "2026-05-05",
"public_api": false
},
"godaddy": {
"official_docs_url": "https://developer.godaddy.com/doc",
"auth_method": "api_key",
"api_base_url": "https://api.godaddy.com",
"rate_limits": "60 req/min/key documented; varies by endpoint",
"webhook_support": false,
"mcp_server": "none canonical (Steve uses domain-name-agent fallback)",
"priority_actions": ["GET /v1/domains/available","PATCH /v1/domains/{domain}/records","POST /v1/domains/purchase","GET /v1/domains/{domain}","PUT /v1/domains/{domain}/contacts"],
"priority_triggers": ["domain expiring soon (poll)","transfer status (poll)","DNS change (poll)"],
"difficulty": "medium",
"notes": "New API key creation restricted to Reseller-tier (~Aug 2024). REGISTRATION-REQUIRED.",
"last_verified": "2026-05-05",
"_uncertain": true
},
"vercel": {
"official_docs_url": "https://vercel.com/docs/rest-api",
"auth_method": "api_key",
"oauth_scopes": ["integration-configuration","deployment","deployment-check","edge-config","project","project-env-vars","team","user","log-drain","domain","billing"],
"api_base_url": "https://api.vercel.com",
"rate_limits": "Deployments: 100/day Hobby, 6000/day Pro. CLI tokens 2000/week separate cap",
"webhook_support": true,
"mcp_server": "vercel-mcp (community) + Vercel-hosted remote MCP",
"priority_actions": ["POST /v13/deployments","POST /v9/projects/{id}/domains","POST /v9/projects","PATCH /v1/projects/{id}/env","DELETE /v1/deployments/{id}"],
"priority_triggers": ["deployment.succeeded","deployment.error","project.created"],
"difficulty": "easy",
"notes": "Bearer token. teamId param scopes to team.",
"last_verified": "2026-05-05"
},
"aws": {
"official_docs_url": "https://docs.aws.amazon.com/index.html",
"auth_method": "hmac",
"api_base_url": "varies per service",
"rate_limits": "Per-service. S3: 3500 PUT/sec/prefix. SES: 200/24h sandbox. Lambda: 1000 concurrent default",
"webhook_support": true,
"mcp_server": "awslabs/mcp (official AWS MCP collection)",
"priority_actions": ["S3 PutObject","SES SendEmail","SNS Publish","Lambda Invoke","DynamoDB PutItem"],
"priority_triggers": ["S3 ObjectCreated (EventBridge)","SNS message","SES bounce/complaint"],
"difficulty": "hard",
"notes": "SigV4 signing. SES production access requires use-case review (24-72h).",
"last_verified": "2026-05-05"
},
"sucuri": {
"official_docs_url": "https://docs.sucuri.net/website-monitoring/scanning-api/",
"auth_method": "api_key",
"api_base_url": "https://[monitor-domain]/scan-api.php + https://waf.sucuri.net/api",
"rate_limits": "Not published; scan API paid + low-volume",
"webhook_support": false,
"mcp_server": "none",
"priority_actions": ["scan-api?a=scan","WAF clear cache","WAF whitelist IP","WAF block IP","monitoring trigger scan"],
"priority_triggers": ["malware detected","WAF block event","site down"],
"difficulty": "medium",
"notes": "Scanning API is PAID add-on. Key in URL query string.",
"last_verified": "2026-05-05",
"_uncertain": true
},
"n8n": {
"official_docs_url": "https://docs.n8n.io/api/",
"auth_method": "api_key",
"api_base_url": "https://{instance}/api/v1",
"rate_limits": "Self-imposed by host; no cloud-side limit on self-hosted",
"webhook_support": true,
"mcp_server": "leonardsellem/n8n-mcp-server",
"priority_actions": ["POST /workflows","PATCH /workflows/{id}/activate","POST /workflows/{id}/run","GET /executions","POST /credentials"],
"priority_triggers": ["workflow execution complete","workflow error","webhook node fired"],
"difficulty": "easy",
"notes": "API only on Pro tier (cloud) or self-hosted. Header X-N8N-API-KEY.",
"last_verified": "2026-05-05"
},
"zapier": {
"official_docs_url": "https://docs.zapier.com/platform/",
"auth_method": "oauth2",
"api_base_url": "varies (meta-platform)",
"rate_limits": "Plan-tier; Zaps run quota varies",
"webhook_support": true,
"mcp_server": "zapier-mcp (official remote at https://mcp.zapier.com — paid)",
"priority_actions": ["runAction","createZap","Catch hook trigger","List actions per app","Trigger Zap by webhook"],
"priority_triggers": ["catch hook (HTTP)","Zap run failed","Zap quota exhausted"],
"difficulty": "medium",
"notes": "Zapier MCP is paid hosted service. For SMB use surface 'Webhooks by Zapier' as generic webhook trigger/action.",
"last_verified": "2026-05-05",
"_uncertain": true
},
"make": {
"official_docs_url": "https://developers.make.com/api-documentation",
"auth_method": "api_key",
"oauth_scopes": ["scenarios:read","scenarios:write","hooks:read","hooks:write","connections:read","datastores:read","datastores:write"],
"api_base_url": "https://eu1.make.com/api/v2",
"rate_limits": "Plan-dependent",
"webhook_support": true,
"mcp_server": "none canonical",
"priority_actions": ["POST /scenarios","POST /scenarios/{id}/run","POST /hooks","PATCH /scenarios/{id}","POST /datastores"],
"priority_triggers": ["scenario run complete","scenario error","hook received"],
"difficulty": "medium",
"notes": "Header `Authorization: Token <api-token>`. Multiple regional zones (eu1/eu2/us1/us2).",
"last_verified": "2026-05-05"
},
"browserbase": {
"official_docs_url": "https://docs.browserbase.com/reference",
"auth_method": "api_key",
"api_base_url": "https://api.browserbase.com/v1",
"rate_limits": "Concurrent sessions: Free 1, Hobby 3, Startup 25, Scale 100+",
"webhook_support": false,
"mcp_server": "browserbase/mcp-server-browserbase (official)",
"priority_actions": ["sessions.create","sessions.terminate","contexts.create","extensions.upload","sessions.recording.fetch"],
"priority_triggers": ["session ended","captcha solved","session error"],
"difficulty": "easy",
"notes": "Header X-BB-API-Key. Per Steve's MEMORY: default to Browserbase before Playwright/Puppeteer.",
"last_verified": "2026-05-05"
},
"postgresql": {
"official_docs_url": "https://www.postgresql.org/docs/current/",
"auth_method": "basic",
"api_base_url": "postgres://{user}:{pass}@{host}:5432/{db}",
"rate_limits": "Connection-based; max_connections 100 default",
"webhook_support": true,
"mcp_server": "@modelcontextprotocol/server-postgres (official, read-only)",
"priority_actions": ["INSERT","UPDATE","DELETE","stored procedure","COPY FROM"],
"priority_triggers": ["NOTIFY channel (LISTEN)","logical replication slot (CDC)","trigger-based"],
"difficulty": "easy",
"notes": "Direct TCP, not HTTP. Steve's stack already has PG logical replication setup.",
"last_verified": "2026-05-05"
},
"supabase": {
"official_docs_url": "https://supabase.com/docs/reference/javascript/introduction",
"auth_method": "api_key",
"api_base_url": "https://{project-ref}.supabase.co",
"rate_limits": "Plan-tier. Free: 500 MAU, 50k API/month soft",
"webhook_support": true,
"mcp_server": "supabase-community/supabase-mcp + supabase official rolling out 2025",
"priority_actions": ["from('table').insert","from('table').update","auth.signUp","storage.from(bucket).upload","rpc('function_name')"],
"priority_triggers": ["database webhook","auth.user.created","storage.object.created"],
"difficulty": "easy",
"notes": "sb_publishable_* (browser-safe) vs sb_secret_* (server-only). RLS policies critical.",
"last_verified": "2026-05-05"
},
"airtable": {
"official_docs_url": "https://airtable.com/developers/web/api/introduction",
"auth_method": "oauth2",
"oauth_scopes": ["data.records:read","data.records:write","data.recordComments:read","data.recordComments:write","schema.bases:read","schema.bases:write","webhook:manage"],
"api_base_url": "https://api.airtable.com/v0",
"rate_limits": "5 req/sec/base. 30 req/sec/PAT cap. 429 → 30sec lockout",
"webhook_support": true,
"mcp_server": "domdomegg/airtable-mcp-server (community)",
"priority_actions": ["POST /v0/{baseId}/{tableId}","PATCH /v0/{baseId}/{tableId}","DELETE /v0/{baseId}/{tableId}","GET /v0/{baseId}/{tableId}","POST /v0/bases"],
"priority_triggers": ["webhook payload","new record (poll)","field change"],
"difficulty": "easy",
"notes": "PATs recommended over API keys. 5 req/sec is HARSH.",
"last_verified": "2026-05-05"
},
"ringcentral": {
"official_docs_url": "https://developers.ringcentral.com/api-reference",
"auth_method": "oauth2",
"oauth_scopes": ["SMS","RingOut","ReadAccounts","ReadCallLog","ReadMessages","ReadContacts","EditMessages","Faxes","TeamMessaging","Webhooks"],
"api_base_url": "https://platform.ringcentral.com/restapi/v1.0",
"rate_limits": "Light 50/min/user, Medium 40/min/user, Heavy 10/min/user, Auth 5/min/user",
"webhook_support": true,
"mcp_server": "none canonical",
"priority_actions": ["sms.send","fax.send","ring-out","webhook subscription","team-messaging post"],
"priority_triggers": ["instant SMS message","incoming call","voicemail received"],
"difficulty": "medium",
"notes": "Sandbox → Production approval required. Usage Plan Group per API.",
"last_verified": "2026-05-05"
},
"purelymail": {
"official_docs_url": "https://smtp.purelymail.com/docs/",
"auth_method": "smtp",
"api_base_url": "smtp.purelymail.com:465",
"rate_limits": "Per-account; designed for personal/small-business volumes",
"webhook_support": false,
"mcp_server": "none",
"priority_actions": ["SMTP send","IMAP fetch","app password (UI)","DNS setup","forwarding (UI)"],
"priority_triggers": ["new mail (IMAP IDLE)","bounce","n/a"],
"difficulty": "easy",
"notes": "NO REST API. Pure SMTP+IMAP. 2FA-enabled = app passwords required.",
"last_verified": "2026-05-05",
"public_api": false
}
}
}