Skip to main content
Glama

Superglue MCP

Official
by superglue-ai
templates.ts74.8 kB
export interface IntegrationConfig { name: string; apiUrl: string; regex: string; icon: string; docsUrl: string; openApiUrl?: string; preferredAuthType?: 'oauth' | 'apikey' | 'none'; oauth?: { authUrl?: string; tokenUrl?: string; scopes?: string; client_id?: string; // Public client ID (non-sensitive, can be in template) grant_type?: "authorization_code" | "client_credentials"; }; keywords?: string[]; } export const integrations: Record<string, IntegrationConfig> = { // Important: keys and names are the same and do not change without updating the integration and integration_details table with the template entries postgres: { name: "postgres", apiUrl: "postgres://<<username>>:<<password>>@<<host>>:<<port>>/<<database>>", regex: "^.*(postgres|postgresql).*$", icon: "postgresql", docsUrl: "", preferredAuthType: "apikey", keywords: ["database", "sql", "postgres", "postgresql", "api key", "tables"] }, stripe: { name: "stripe", apiUrl: "https://api.stripe.com", regex: "^.*stripe.*$", icon: "stripe", docsUrl: "https://docs.stripe.com/api", openApiUrl: "https://raw.githubusercontent.com/stripe/openapi/master/openapi/spec3.json", preferredAuthType: "apikey", keywords: [ "customers", "charges", "payment_intents", "products", "prices", "subscriptions", "invoices", "balance_transactions", "refunds", "checkout_sessions", "line_items", "payment_methods", "issuers", "plans", "setup_intents", "payouts", "transfers", "balance", "users", "emails", ] }, shopify: { name: "shopify", apiUrl: "https://admin.shopify.com", regex: "^.*(shopify|myshopify).*$", icon: "shopify", docsUrl: "https://shopify.dev/docs/api", preferredAuthType: "apikey", oauth: { authUrl: "https://{shop}.myshopify.com/admin/oauth/authorize", tokenUrl: "https://{shop}.myshopify.com/admin/oauth/access_token", scopes: "read_products write_products read_orders write_orders read_customers write_customers read_inventory write_inventory read_fulfillments write_fulfillments read_shipping write_shipping" }, keywords: [ "products", "variants", "collections", "customers", "orders", "fulfillments", "inventory_items", "inventory_levels", "metafields", "price_rules", "discount_codes", "shipping_zones", "locations", "gift_cards", "product_images" ] }, hubspot: { name: "hubspot", apiUrl: "https://api.hubapi.com/crm/v3", regex: "^.*(hubapi|hubspot).*$", icon: "hubspot", docsUrl: "https://developers.hubspot.com/docs/api/overview", openApiUrl: "https://api.hubspot.com/public/api/spec/v1/specs", preferredAuthType: "apikey", oauth: { authUrl: "https://app.hubspot.com/oauth/authorize", tokenUrl: "https://api.hubapi.com/oauth/v1/token", scopes: "crm.objects.contacts.read crm.objects.contacts.write crm.objects.companies.read crm.objects.companies.write crm.objects.deals.read crm.objects.deals.write crm.objects.owners.read forms forms-uploaded-files files sales-email-read crm.objects.quotes.read crm.objects.quotes.write" }, keywords: [ "contacts", "companies", "deals", "tickets", "line_items", "products", "associations", "memberships" ] }, attio: { name: "attio", apiUrl: "https://api.attio.com/v2/", regex: "^.*attio.*$", icon: "attio", docsUrl: "https://docs.attio.com/rest-api/overview", openApiUrl: "https://api.attio.com/openapi/api", preferredAuthType: "apikey", keywords: [ "people", "objects", "records", "lists", "entries", "workspace_members", "notes", "tasks", "threads", "comments", "sorts", "api_slug", "attribute_type", "record_id", "workspace_id", "object_id" ] }, twilio: { name: "twilio", apiUrl: "https://api.twilio.com", regex: "^.*twilio.*$", icon: "twilio", docsUrl: "https://www.twilio.com/docs/api", openApiUrl: "https://raw.githubusercontent.com/twilio/twilio-oai/refs/heads/main/spec/json/twilio_api_v2010.json", preferredAuthType: "apikey", keywords: [ "Messages", "Media", "MessageFeedback", "Calls", "Accounts", "APIKeys", "Addresses", "UsageRecords", "CallFeedback", "CredentialsList", "TaskRouter_Workspaces", "TaskRouter_Tasks", "TaskRouter_Workers", "TaskRouter_Activities", "MessagingServices" ] }, sendgrid: { name: "sendgrid", apiUrl: "https://api.sendgrid.com", regex: "^.*sendgrid.*$", icon: "sendgrid", docsUrl: "https://www.twilio.com/docs/sendgrid/api-reference", openApiUrl: "https://raw.githubusercontent.com/sendgrid/sendgrid-oai/main/oai.json", preferredAuthType: "apikey", keywords: [ "mail_send", "templates", "campaigns", "marketing_contacts", "marketing_lists", "suppression_groups", "global_suppressions", "asm_suppressions", "subusers", "stats", "categories", "whitelabel", "ips", "access_settings" ] }, github: { name: "github", apiUrl: "https://api.github.com", regex: "^.*github.*$", icon: "github", docsUrl: "https://docs.github.com/en/rest", openApiUrl: "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json", preferredAuthType: "apikey", oauth: { authUrl: "https://github.com/login/oauth/authorize", tokenUrl: "https://github.com/login/oauth/access_token", scopes: "repo user read:org write:org admin:repo_hook admin:org_hook gist notifications delete_repo write:packages read:packages delete:packages admin:gpg_key workflow" }, keywords: [ "repositories", "issues", "pull_requests", "commits", "branches", "tags", "releases", "deployments", "check_runs", "actions_artifacts", "organizations", "packages", "collaborators", "gists", "milestones" ] }, gitlab: { name: "gitlab", apiUrl: "https://api.gitlab.com", regex: "^.*gitlab.*$", icon: "gitlab", docsUrl: "https://docs.gitlab.com/api/rest/", openApiUrl: "https://gitlab.com/gitlab-org/gitlab/-/raw/master/doc/api/openapi/openapi.yaml", preferredAuthType: "apikey", oauth: { authUrl: "https://gitlab.com/oauth/authorize", tokenUrl: "https://gitlab.com/oauth/token", scopes: "api read_api read_user read_repository write_repository read_registry write_registry sudo admin_mode" }, keywords: [ "projects", "repositories", "issues", "pull_requests", "commits", "branches", "tags", "releases", "deployments", "check_runs", "actions_artifacts", "organizations", "packages", "collaborators", "gists", "milestones" ] }, bitbucket: { name: "bitbucket", apiUrl: "https://api.bitbucket.org", regex: "^.*bitbucket.*$", icon: "bitbucket", docsUrl: "https://developer.atlassian.com/cloud/bitbucket/rest", openApiUrl: "https://api.bitbucket.org/swagger.json", preferredAuthType: "oauth", oauth: { authUrl: "https://bitbucket.org/site/oauth2/authorize", tokenUrl: "https://bitbucket.org/site/oauth2/access_token", scopes: "repository repository:write repository:admin repository:delete issue issue:write pullrequest pullrequest:write wiki snippet account account:write team team:write webhook" }, keywords: [ "repositories", "projects", "commits", "branches", "pullrequests", "downloads", "issues", "pipelines", "branchRestrictions", "components", "milestones", "refs", "hooks", "forks", "user" ] }, slack: { name: "slack", apiUrl: "https://api.slack.com", regex: "^.*slack.*$", icon: "slack", docsUrl: "https://docs.slack.dev/reference/methods", openApiUrl: "https://raw.githubusercontent.com/slackapi/slack-api-specs/master/web-api/slack_web_openapi_v2.json", preferredAuthType: "oauth", oauth: { authUrl: "https://slack.com/oauth/v2/authorize", tokenUrl: "https://slack.com/api/oauth.v2.access", scopes: "channels:read channels:write channels:history chat:write chat:write.public users:read users:read.email files:read files:write groups:read groups:write im:read im:write mpim:read mpim:write" }, keywords: [ "channel", "conversation", "user", "file", "event", "message", "workflow_step", "workflow_published", "workflow_step_execute", "usergroup", "im", "mpim", "group", "check_run", "apps_permissions_resource" ] }, airtable: { name: "airtable", apiUrl: "https://api.airtable.com", regex: "^.*airtable.*$", icon: "airtable", docsUrl: "https://airtable.com/developers/web/api", preferredAuthType: "apikey", oauth: { authUrl: "https://airtable.com/oauth2/v1/authorize", tokenUrl: "https://airtable.com/oauth2/v1/token", scopes: "data.records:read data.records:write data.recordComments:read data.recordComments:write schema.bases:read schema.bases:write webhook:manage user.email:read" }, keywords: ["bases", "tables", "records", "fields", "views", "formulas", "attachments", "comments", "collaborators", "metadata", "schemas", "api key", "key"] }, gmail: { name: "gmail", apiUrl: "https://gmail.googleapis.com/gmail/v1", regex: "^.*(gmail\\.googleapis|developers\\.google\\.com/gmail|mail\\.google).*$", icon: "gmail", docsUrl: "https://developers.google.com/gmail/api/reference/rest", openApiUrl: "https://www.googleapis.com/discovery/v1/apis/gmail/v1/rest", preferredAuthType: "oauth", oauth: { authUrl: "https://accounts.google.com/o/oauth2/v2/auth", tokenUrl: "https://oauth2.googleapis.com/token", scopes: "https://www.googleapis.com/auth/gmail.readonly https://www.googleapis.com/auth/gmail.send https://www.googleapis.com/auth/gmail.modify https://www.googleapis.com/auth/gmail.compose https://www.googleapis.com/auth/gmail.labels https://www.googleapis.com/auth/gmail.metadata https://www.googleapis.com/auth/gmail.settings.basic https://www.googleapis.com/auth/gmail.settings.sharing" }, keywords: ["messages", "threads", "labels", "drafts", "send", "attachments", "history", "filters", "settings", "forwarding", "inbox", "profile", "oauth"] }, googleDrive: { name: "googleDrive", apiUrl: "https://www.googleapis.com/drive/v3", regex: "^.*(googleapis\\.com/drive|developers\\.google\\.com/drive|drive\\.google).*$", icon: "googledrive", docsUrl: "https://developers.google.com/drive/api/v3/reference", openApiUrl: "https://www.googleapis.com/discovery/v1/apis/drive/v3/rest", preferredAuthType: "oauth", oauth: { authUrl: "https://accounts.google.com/o/oauth2/v2/auth", tokenUrl: "https://oauth2.googleapis.com/token", scopes: "https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/drive.readonly https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/drive.appdata https://www.googleapis.com/auth/drive.metadata https://www.googleapis.com/auth/drive.metadata.readonly https://www.googleapis.com/auth/drive.photos.readonly" }, keywords: ["files", "folders", "permissions", "sharing", "comments", "revisions", "changes", "uploads", "downloads", "metadata", "teamdrives", "export", "copy", "move", "oauth"] }, googleCalendar: { name: "googleCalendar", apiUrl: "https://www.googleapis.com/calendar/v3", regex: "^.*(googleapis\\.com/calendar|developers\\.google\\.com/calendar|calendar\\.google).*$", icon: "googlecalendar", docsUrl: "https://developers.google.com/calendar/api/v3/reference", openApiUrl: "https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest", preferredAuthType: "oauth", oauth: { authUrl: "https://accounts.google.com/o/oauth2/v2/auth", tokenUrl: "https://oauth2.googleapis.com/token", scopes: "https://www.googleapis.com/auth/calendar.readonly https://www.googleapis.com/auth/calendar.events https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/calendar.settings.readonly https://www.googleapis.com/auth/calendar.calendars https://www.googleapis.com/auth/calendar.calendars.readonly" }, keywords: ["events", "calendars", "attendees", "reminders", "recurring", "availability", "free busy", "settings", "acl", "colors", "notifications", "timezone", "quick add", "oauth"] }, googleSheets: { name: "googleSheets", apiUrl: "https://sheets.googleapis.com/v4", regex: "^.*(sheets\\.googleapis|developers\\.google\\.com/sheets|sheets\\.google).*$", icon: "googlesheets", docsUrl: "https://developers.google.com/sheets/api/reference/rest", openApiUrl: "https://www.googleapis.com/discovery/v1/apis/sheets/v4/rest", preferredAuthType: "oauth", oauth: { authUrl: "https://accounts.google.com/o/oauth2/v2/auth", tokenUrl: "https://oauth2.googleapis.com/token", scopes: "https://www.googleapis.com/auth/spreadsheets https://www.googleapis.com/auth/spreadsheets.readonly https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/drive.readonly" }, keywords: ["spreadsheets", "sheets", "cells", "ranges", "values", "formulas", "formatting", "charts", "pivot tables", "named ranges", "protected ranges", "batch update", "append", "oauth"] }, googleAnalytics: { name: "googleAnalytics", apiUrl: "https://analytics.google.com", regex: "^.*(analytics|analyticsdata).*$", icon: "googleAnalytics", docsUrl: "https://developers.google.com/analytics/devguides/reporting/data/v1", openApiUrl: "https://analyticsdata.googleapis.com/$discovery/rest?version=v1beta", preferredAuthType: "oauth", oauth: { authUrl: "https://accounts.google.com/o/oauth2/v2/auth", tokenUrl: "https://oauth2.googleapis.com/token", scopes: "https://www.googleapis.com/auth/analytics.readonly https://www.googleapis.com/auth/analytics https://www.googleapis.com/auth/analytics.edit https://www.googleapis.com/auth/analytics.manage.users https://www.googleapis.com/auth/analytics.manage.users.readonly https://www.googleapis.com/auth/analytics.user.deletion" }, keywords: ["properties", "dimensions", "metrics", "reports", "audiences", "conversions", "events", "goals", "segments", "real time", "user activity", "attribution", "funnels", "cohorts", "oauth"] }, youtube: { name: "youtube", apiUrl: "https://youtube.googleapis.com", regex: "^.*youtube.*$", icon: "youtube", docsUrl: "https://developers.google.com/youtube/v3/docs", openApiUrl: "https://www.googleapis.com/discovery/v1/apis/youtube/v3/rest", preferredAuthType: "oauth", oauth: { authUrl: "https://accounts.google.com/o/oauth2/v2/auth", tokenUrl: "https://oauth2.googleapis.com/token", scopes: "https://www.googleapis.com/auth/youtube.readonly https://www.googleapis.com/auth/youtube https://www.googleapis.com/auth/youtube.force-ssl https://www.googleapis.com/auth/youtube.upload https://www.googleapis.com/auth/youtube.channel-memberships.creator https://www.googleapis.com/auth/youtubepartner" }, keywords: ["videos", "channels", "playlists", "comments", "captions", "live streams", "analytics", "thumbnails", "subscriptions", "activities", "ratings", "uploads", "members", "oauth"] }, AWS: { name: "AWS", apiUrl: "https://amazonaws.com", regex: "^.*(aws|amazonaws).*$", icon: "amazonAWS", docsUrl: "https://docs.aws.amazon.com/index.html", preferredAuthType: "apikey", keywords: ["ec2", "s3", "lambda", "rds", "dynamodb", "sqs", "sns", "cloudformation", "iam", "cloudwatch", "vpc", "instances", "buckets", "functions", "api key"] }, googleCloud: { name: "googleCloud", apiUrl: "https://cloud.google.com", regex: "^.*(cloud\\.google|gcp|googlecloud).*$", icon: "googleCloud", docsUrl: "https://cloud.google.com/apis/docs/overview", preferredAuthType: "oauth", oauth: { authUrl: "https://accounts.google.com/o/oauth2/v2/auth", tokenUrl: "https://oauth2.googleapis.com/token", scopes: "https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/cloud-platform.read-only https://www.googleapis.com/auth/cloudplatformprojects https://www.googleapis.com/auth/cloudplatformprojects.readonly https://www.googleapis.com/auth/devstorage.full_control https://www.googleapis.com/auth/devstorage.read_only https://www.googleapis.com/auth/devstorage.read_write" }, keywords: ["compute", "storage", "bigquery", "pubsub", "cloud run", "kubernetes", "iam", "vpc", "cloud sql", "bigtable", "dataflow", "logging", "monitoring", "oauth"] }, firebase: { name: "firebase", apiUrl: "https://firestore.googleapis.com", regex: "^.*(firebase|firestore).*$", icon: "firebase", docsUrl: "https://firebase.google.com/docs/reference/firebase-management/rest", openApiUrl: "https://firestore.googleapis.com/$discovery/rest?version=v1", preferredAuthType: "oauth", oauth: { authUrl: "https://accounts.google.com/o/oauth2/v2/auth", tokenUrl: "https://oauth2.googleapis.com/token", scopes: "https://www.googleapis.com/auth/firebase https://www.googleapis.com/auth/datastore" }, keywords: ["firestore", "realtime database", "authentication", "cloud functions", "storage", "hosting", "documents", "collections", "users", "projects", "apps", "query", "oauth"] }, salesforce: { name: "salesforce", apiUrl: "https://api.salesforce.com", regex: "^.*salesforce.*$", icon: "salesforce", // documentation not crawlable due to weird htm site. PDF available at https://resources.docs.salesforce.com/258/latest/en-us/sfdc/pdf/api_rest.pdf - convert to text and insert in db. docsUrl: "https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_rest.htm", preferredAuthType: "oauth", oauth: { authUrl: "https://login.salesforce.com/services/oauth2/authorize", tokenUrl: "https://login.salesforce.com/services/oauth2/token", scopes: "full", grant_type: "authorization_code", client_id: "3MVG9rZjd7MXFdLh_gnrsdT0JY5BfNPxarDdhPQvng2.N9lbP0RCh9Rov2Mx.QYjNVNjlCuJMlYOouwbYOMAx" }, keywords: ["accounts", "contacts", "leads", "opportunities", "cases", "campaigns", "products", "price books", "quotes", "contracts", "orders", "custom objects", "soql", "query", "search", "sobjects", "oauth"] }, facebook: { name: "facebook", apiUrl: "https://graph.facebook.com", regex: "^.*facebook.*$", icon: "facebook", docsUrl: "https://developers.facebook.com/docs/graph-api", preferredAuthType: "oauth", oauth: { authUrl: "https://www.facebook.com/v18.0/dialog/oauth", tokenUrl: "https://graph.facebook.com/v18.0/oauth/access_token", scopes: "email public_profile pages_show_list pages_read_engagement pages_manage_metadata pages_read_user_content pages_manage_posts pages_manage_engagement business_management ads_management ads_read catalog_management leads_retrieval" }, keywords: ["pages", "posts", "comments", "insights", "ads", "campaigns", "audiences", "business", "catalog", "events", "groups", "photos", "videos", "live videos", "oauth"] }, instagram: { name: "instagram", apiUrl: "https://graph.facebook.com/v23.0/", regex: "^.*instagram.*$", icon: "instagram", docsUrl: "https://developers.facebook.com/docs/graph-api/overview", preferredAuthType: "oauth", oauth: { authUrl: "https://www.facebook.com/v23.0/dialog/oauth", tokenUrl: "https://graph.facebook.com/v23.0/oauth/access_token", scopes: "instagram_basic pages_show_list instagram_content_publish pages_read_engagement instagram_manage_comments instagram_manage_insights instagram_manage_messages business_management" }, keywords: ["media", "posts", "stories", "comments", "insights", "hashtags", "mentions", "business discovery", "content publishing", "user media", "account info", "oauth"] }, twitter: { name: "twitter", apiUrl: "https://api.twitter.com", regex: "^.*(twitter|x\\.com).*$", icon: "x", docsUrl: "https://docs.x.com/x-api/introduction", openApiUrl: "https://api.x.com/2/openapi.json", preferredAuthType: "oauth", oauth: { authUrl: "https://twitter.com/i/oauth2/authorize", tokenUrl: "https://api.twitter.com/2/oauth2/token", scopes: "tweet.read tweet.write tweet.moderate.write users.read follows.read follows.write offline.access space.read mute.read mute.write like.read like.write list.read list.write block.read block.write bookmark.read bookmark.write" }, keywords: ["tweets", "users", "followers", "timeline", "mentions", "retweets", "likes", "lists", "spaces", "direct messages", "trends", "media", "polls", "oauth"] }, linkedin: { name: "linkedin", apiUrl: "https://api.linkedin.com", regex: "^.*linkedin.*$", icon: "linkedin", docsUrl: "https://learn.microsoft.com/en-us/linkedin/shared/authentication/getting-access", preferredAuthType: "oauth", oauth: { authUrl: "https://www.linkedin.com/oauth/v2/authorization", tokenUrl: "https://www.linkedin.com/oauth/v2/accessToken", scopes: "r_liteprofile r_emailaddress w_member_social r_fullprofile r_basicprofile rw_company_admin r_1st_connections r_ads r_ads_reporting r_organization_social rw_organization_admin w_organization_social r_events" }, keywords: ["profiles", "connections", "companies", "shares", "posts", "articles", "jobs", "skills", "endorsements", "recommendations", "groups", "events", "messaging", "oauth"] }, paypal: { name: "paypal", apiUrl: "https://api.paypal.com", regex: "^.*paypal.*$", icon: "paypal", docsUrl: "https://developer.paypal.com/api/rest", // openapi specs are split across different files - all here: https://github.com/paypal/paypal-rest-api-specifications/tree/main/openapi preferredAuthType: "apikey", keywords: ["payments", "orders", "captures", "refunds", "payouts", "invoices", "subscriptions", "plans", "products", "transactions", "balances", "webhooks", "checkout", "billing", "query", "search"] }, square: { name: "square", apiUrl: "https://connect.squareup.com", regex: "^.*(square|squareup).*$", icon: "square", docsUrl: "https://developer.squareup.com/reference/square", openApiUrl: "https://raw.githubusercontent.com/square/connect-api-specification/refs/heads/master/api.json", preferredAuthType: "oauth", oauth: { authUrl: "https://connect.squareup.com/oauth2/authorize", tokenUrl: "https://connect.squareup.com/oauth2/token", scopes: "MERCHANT_PROFILE_READ PAYMENTS_READ PAYMENTS_WRITE CUSTOMERS_READ CUSTOMERS_WRITE INVENTORY_READ INVENTORY_WRITE ORDERS_READ ORDERS_WRITE ITEMS_READ ITEMS_WRITE EMPLOYEES_READ EMPLOYEES_WRITE TIMECARDS_READ TIMECARDS_WRITE" }, keywords: ["payments", "customers", "orders", "catalog", "inventory", "locations", "transactions", "refunds", "cards", "checkout", "invoices", "subscriptions", "terminals", "employees", "shifts", "query", "search", "oauth"] }, adyen: { name: "adyen", apiUrl: "https://checkout-test.adyen.com", regex: "^.*adyen.*$", icon: "adyen", docsUrl: "https://docs.adyen.com/api-explorer", openApiUrl: "https://raw.githubusercontent.com/Adyen/adyen-openapi/main/yaml/CheckoutService-v71.yaml", preferredAuthType: "apikey", keywords: [ "paymentMethods", "sessions", "payments", "payments.details", "cardDetails", "recurringContracts", "payouts", "balanceTransfers", "legalEntities", "binLookup", "storedValueCards", "transferRules", "terminalManagement", "accountHolders", "issuers" ] }, razorpay: { name: "razorpay", apiUrl: "https://api.razorpay.com", regex: "^.*razorpay.*$", icon: "razorpay", docsUrl: "https://razorpay.com/docs/api", preferredAuthType: "apikey", keywords: [ "payments", "orders", "customers", "refunds", "invoices", "subscriptions", "accounts", "fund_accounts", "payouts", "virtual_accounts", "mandates", "disputes", "settlements", "payment_links", "bin_lookup" ] }, plaid: { name: "plaid", apiUrl: "https://production.plaid.com", regex: "^.*plaid.*$", icon: "plaid", docsUrl: "https://plaid.com/docs/api", openApiUrl: "https://raw.githubusercontent.com/plaid/plaid-openapi/master/2020-09-14.yml", preferredAuthType: "apikey", keywords: [ "items", "accounts", "institutions", "link_tokens", "access_tokens", "transactions", "auth", "identity", "assets", "liabilities", "income", "user", "processor_tokens", "transfer", "investments" ] }, zendesk: { name: "zendesk", apiUrl: "https://api.zendesk.com", regex: "^.*zendesk.*$", icon: "zendesk", docsUrl: "https://developer.zendesk.com/api-reference", openApiUrl: "https://developer.zendesk.com/zendesk/oas.yaml", preferredAuthType: "apikey", oauth: { authUrl: "https://{subdomain}.zendesk.com/oauth/authorizations/new", tokenUrl: "https://{subdomain}.zendesk.com/oauth/tokens", scopes: "read write tickets:read tickets:write users:read users:write organizations:read organizations:write hc:read hc:write chat:read chat:write" }, keywords: ["tickets", "users", "organizations", "groups", "agents", "views", "macros", "triggers", "automations", "sla", "custom fields", "tags", "satisfaction", "help center", "api key"] }, freshdesk: { name: "freshdesk", apiUrl: "https://{domain}.freshdesk.com/api/v2", regex: "^.*freshdesk.*$", icon: "freshdesk", // doc cannot be crawled from our setup docsUrl: "https://developers.freshdesk.com/api", preferredAuthType: "apikey", keywords: ["tickets", "contacts", "agents", "companies", "groups", "forums", "solutions", "categories", "folders", "articles", "time entries", "surveys", "satisfaction", "sla", "escalations", "api key"] }, freshworks: { name: "freshworks", apiUrl: "https://{domain}.freshservice.com/api/v2", regex: "^.*(freshworks|freshservice).*$", icon: "freshworks", // doc cannot be crawled from our setup docsUrl: "https://api.freshservice.com", preferredAuthType: "apikey", keywords: ["tickets", "requesters", "agents", "assets", "changes", "problems", "releases", "service catalog", "service items", "departments", "locations", "products", "vendors", "contracts", "api key"] }, servicenow: { name: "servicenow", apiUrl: "https://{instance}.service-now.com/api", regex: "^.*(servicenow|service-now).*$", icon: "servicenow", // service now page does not allow playwright to crawl their page docsUrl: "https://developer.servicenow.com/dev.do#!/reference/api/latest/rest", preferredAuthType: "apikey", keywords: ["incidents", "problems", "changes", "requests", "users", "groups", "cmdb", "configuration items", "service catalog", "knowledge", "tasks", "approvals", "sla", "workflows", "tables", "api key"] }, helpscout: { name: "helpscout", apiUrl: "https://api.helpscout.net", regex: "^.*helpscout.*$", icon: "helpscout", docsUrl: "https://developer.helpscout.com/mailbox-api", preferredAuthType: "apikey", keywords: ["conversations", "customers", "mailboxes", "threads", "tags", "teams", "users", "reports", "satisfaction", "ratings", "workflows", "saved replies", "docs", "beacon", "api key"] }, dropbox: { name: "dropbox", apiUrl: "https://api.dropboxapi.com", regex: "^.*dropbox.*$", icon: "dropbox", docsUrl: "https://www.dropbox.com/developers/documentation/http/documentation", preferredAuthType: "oauth", oauth: { authUrl: "https://www.dropbox.com/oauth2/authorize", tokenUrl: "https://api.dropboxapi.com/oauth2/token", scopes: "files.metadata.read files.metadata.write files.content.read files.content.write sharing.read sharing.write account_info.read account_info.write contacts.read" }, keywords: ["files", "folders", "upload", "download", "sharing", "links", "metadata", "search", "sync", "paper", "users", "teams", "move", "copy", "delete", "oauth"] }, mailchimp: { name: "mailchimp", apiUrl: "https://api.mailchimp.com", regex: "^.*mailchimp.*$", icon: "mailchimp", docsUrl: "https://mailchimp.com/developer/marketing/api", openApiUrl: "https://api.mailchimp.com/schema/3.0/Swagger.json", preferredAuthType: "apikey", oauth: { authUrl: "https://login.mailchimp.com/oauth2/authorize", tokenUrl: "https://login.mailchimp.com/oauth2/token", scopes: "audiences:read audiences:write automations:read automations:write campaigns:read campaigns:write conversations:read conversations:write ecommerce:read ecommerce:write files:read files:write lists:read lists:write reports:read templates:read templates:write" }, keywords: ["lists", "campaigns", "templates", "audiences", "members", "segments", "tags", "automations", "reports", "folders", "merge fields", "activities", "ecommerce", "batch", "query", "api key"] }, jira: { name: "jira", apiUrl: "https://{your-domain}.atlassian.net/rest/api", regex: "^.*(jira|atlassian).*$", icon: "jira", docsUrl: "https://developer.atlassian.com/cloud/jira/platform/rest/v3", openApiUrl: "https://developer.atlassian.com/cloud/jira/platform/swagger-v3.json", preferredAuthType: "oauth", oauth: { authUrl: "https://auth.atlassian.com/authorize", tokenUrl: "https://auth.atlassian.com/oauth/token", scopes: "read:jira-work write:jira-work read:jira-user write:jira-user read:jira-work-management write:jira-work-management read:servicedesk-request write:servicedesk-request manage:jira-project manage:jira-configuration manage:jira-data-provider" }, keywords: ["issues", "projects", "boards", "sprints", "epics", "users", "workflows", "fields", "components", "versions", "priorities", "statuses", "comments", "attachments", "jql", "query", "search", "oauth"] }, confluence: { name: "confluence", apiUrl: "https://{your-domain}.atlassian.net/wiki/rest/api", regex: "^.*(confluence|atlassian).*$", icon: "confluence", docsUrl: "https://developer.atlassian.com/cloud/confluence/rest", openApiUrl: "https://developer.atlassian.com/cloud/confluence/swagger.json", preferredAuthType: "oauth", oauth: { authUrl: "https://auth.atlassian.com/authorize", tokenUrl: "https://auth.atlassian.com/oauth/token", scopes: "read:confluence-content.all write:confluence-content read:confluence-space.summary write:confluence-space read:confluence-props write:confluence-props read:confluence-user write:confluence-user read:confluence-groups write:confluence-groups delete:confluence-content delete:confluence-space" }, keywords: ["spaces", "pages", "content", "attachments", "comments", "labels", "templates", "blueprints", "macros", "restrictions", "versions", "ancestors", "descendants", "children", "oauth"] }, quickbooks: { name: "quickbooks", apiUrl: "https://quickbooks.api.intuit.com", regex: "^.*(quickbooks|intuit).*$", icon: "quickbooks", docsUrl: "https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/account", preferredAuthType: "oauth", oauth: { authUrl: "https://appcenter.intuit.com/connect/oauth2", tokenUrl: "https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer", scopes: "com.intuit.quickbooks.accounting com.intuit.quickbooks.payment com.intuit.quickbooks.payroll com.intuit.quickbooks.payroll.timetracking com.intuit.quickbooks.payroll.benefits openid profile email phone address" }, keywords: ["accounts", "invoices", "customers", "vendors", "bills", "payments", "estimates", "purchase orders", "sales receipts", "credit memos", "journal entries", "items", "tax rates", "employees", "reports", "oauth"] }, xero: { name: "xero", apiUrl: "https://api.xero.com", regex: "^.*xero.*$", icon: "xero", docsUrl: "https://developer.xero.com/documentation/api/api-overview", openApiUrl: "https://raw.githubusercontent.com/XeroAPI/Xero-OpenAPI/master/xero_accounting.yaml", preferredAuthType: "oauth", oauth: { authUrl: "https://login.xero.com/identity/connect/authorize", tokenUrl: "https://identity.xero.com/connect/token", scopes: "accounting.transactions accounting.transactions.read accounting.reports.read accounting.journals.read accounting.settings accounting.settings.read accounting.contacts accounting.contacts.read accounting.attachments accounting.attachments.read payroll.employees payroll.payruns payroll.payslip payroll.timesheets payroll.settings" }, keywords: ["accounts", "invoices", "contacts", "bills", "credit notes", "bank transactions", "payments", "receipts", "journals", "purchase orders", "quotes", "reports", "tax rates", "tracking categories", "payroll", "oauth"] }, docusign: { name: "docusign", apiUrl: "https://api.docusign.com", regex: "^.*docusign.*$", icon: "docusign", docsUrl: "https://developers.docusign.com/docs/esign-rest-api", openApiUrl: "https://raw.githubusercontent.com/docusign/OpenAPI-Specifications/refs/heads/master/esignature.rest.swagger-v2.1.json", preferredAuthType: "oauth", oauth: { authUrl: "https://account.docusign.com/oauth/auth", tokenUrl: "https://account.docusign.com/oauth/token", scopes: "signature extended impersonation organization_read group_read permission_read user_read user_write account_read domain_read identity_provider_read user_data_redact asset_group_account_read asset_group_account_clone_write asset_group_account_clone_read" }, keywords: ["envelopes", "documents", "recipients", "templates", "signatures", "tabs", "brands", "accounts", "users", "groups", "powerforms", "bulk send", "connect", "custom fields", "oauth"] }, intercom: { name: "intercom", apiUrl: "https://api.intercom.io", regex: "^.*intercom.*$", icon: "intercom", docsUrl: "https://developers.intercom.com/intercom-api-reference", openApiUrl: "https://raw.githubusercontent.com/intercom/Intercom-OpenAPI/refs/heads/main/descriptions/2.9/api.intercom.io.yaml", preferredAuthType: "apikey", oauth: { authUrl: "https://app.intercom.com/oauth", tokenUrl: "https://api.intercom.io/auth/eagle/token", scopes: "inbox:read inbox:write users:read users:write companies:read companies:write contacts:read contacts:write conversations:read conversations:write help_center:read help_center:write teams:read teams:write tags:read tags:write segments:read events:write counts:read" }, keywords: ["contacts", "conversations", "messages", "users", "companies", "events", "tags", "segments", "articles", "help center", "teams", "admins", "inbox", "notes", "custom attributes", "query", "api key"] }, asana: { name: "asana", apiUrl: "https://app.asana.com/api", regex: "^.*asana.*$", icon: "asana", docsUrl: "https://developers.asana.com/docs", openApiUrl: "https://raw.githubusercontent.com/Asana/openapi/master/defs/asana_oas.yaml", preferredAuthType: "apikey", oauth: { authUrl: "https://app.asana.com/-/oauth_authorize", tokenUrl: "https://app.asana.com/-/oauth_token", scopes: "default openid email profile", grant_type: "authorization_code", client_id: "1211466490919249" }, keywords: ["tasks", "projects", "workspaces", "teams", "portfolios", "goals", "sections", "tags", "custom fields", "stories", "attachments", "followers", "assignee", "due dates", "query", "search", "api key"] }, trello: { name: "trello", apiUrl: "https://api.trello.com", regex: "^.*trello.*$", icon: "trello", docsUrl: "https://developer.atlassian.com/cloud/trello/rest", openApiUrl: "https://developer.atlassian.com/cloud/trello/swagger.v3.json", preferredAuthType: "apikey", keywords: ["boards", "lists", "cards", "members", "labels", "checklists", "attachments", "comments", "actions", "organizations", "teams", "power-ups", "custom fields", "stickers", "api key"] }, notion: { name: "notion", apiUrl: "https://api.notion.com", regex: "^.*notion.*$", icon: "notion", docsUrl: "https://developers.notion.com", // this openapi spec was last updated in 2024 - might be outdated openApiUrl: "https://raw.githubusercontent.com/cameronking4/notion-openapi-chatgpt-action/refs/heads/main/public/notion-openapi.json", preferredAuthType: "apikey", oauth: { authUrl: "https://api.notion.com/v1/oauth/authorize", tokenUrl: "https://api.notion.com/v1/oauth/token", scopes: "read_content update_content insert_content read_comments update_comments insert_comments read_user update_user" }, keywords: ["pages", "databases", "blocks", "users", "workspaces", "properties", "rich text", "search", "comments", "parent", "children", "query", "filter", "sort", "api key"] }, digitalocean: { name: "digitalocean", apiUrl: "https://api.digitalocean.com", regex: "^.*digitalocean.*$", icon: "digitalocean", docsUrl: "https://docs.digitalocean.com/reference/api", openApiUrl: "https://raw.githubusercontent.com/digitalocean/openapi/refs/heads/main/specification/DigitalOcean-public.v2.yaml", preferredAuthType: "apikey", oauth: { authUrl: "https://cloud.digitalocean.com/v1/oauth/authorize", tokenUrl: "https://cloud.digitalocean.com/v1/oauth/token", scopes: "read write admin" }, keywords: [ "droplets", "volumes", "images", "snapshots", "regions", "sizes", "ssh_keys", "domains", "domain_records", "certificates", "firewalls", "load_balancers", "projects", "tags", "vpcs", "api key" ] }, heroku: { name: "heroku", apiUrl: "https://api.heroku.com", regex: "^.*heroku.*$", icon: "heroku", docsUrl: "https://devcenter.heroku.com/categories/platform-api", preferredAuthType: "apikey", oauth: { authUrl: "https://id.heroku.com/oauth/authorize", tokenUrl: "https://id.heroku.com/oauth/token", scopes: "global read write read-protected write-protected" }, keywords: [ "apps", "addons", "builds", "releases", "config_vars", "formations", "dynos", "buildpacks", "domains", "collaborators", "keys", "account", "apps/~/addons", "spaces", "pipelines", "api key" ] }, huggingface: { name: "huggingface", apiUrl: "https://huggingface.co", regex: "^.*huggingface.*$", icon: "huggingface", docsUrl: "https://huggingface.co/docs/hub/en/api", preferredAuthType: "apikey", keywords: ["models", "datasets", "spaces", "parameters", "inference", "fine-tuning", "files", "spaces", "accounts", "groups", "api key"] }, circleci: { name: "circleci", apiUrl: "https://circleci.com/api", regex: "^.*circleci.*$", icon: "circleci", docsUrl: "https://circleci.com/docs/api", openApiUrl: "https://circleci.com/api/v2/openapi.json", preferredAuthType: "apikey", keywords: [ "pipelines", "workflows", "jobs", "projects", "builds", "artifacts", "environment_variables", "contexts", "orbs", "insights", "schedules", "checkouts", "api key" ] }, travisci: { name: "travisci", apiUrl: "https://api.travis-ci.com", regex: "^.*(travis|travis-ci).*$", icon: "travisCI", docsUrl: "https://docs.travis-ci.com/api", preferredAuthType: "apikey", keywords: [ "builds", "jobs", "repositories", "branches", "requests", "caches", "env_vars", "settings", "logs", "stages", "beta_features", "api key" ] }, wordpress: { name: "wordpress", apiUrl: "https://{your-site.com}/wp-json/wp/v2", regex: "^.*wordpress.*$", icon: "wordpress", docsUrl: "https://developer.wordpress.org/rest-api", openApiUrl: "https://developer.wordpress.com/docs/api/", preferredAuthType: "apikey", keywords: [ "posts", "pages", "media", "users", "categories", "tags", "comments", "taxonomies", "types", "statuses", "settings", "themes", "plugins", "api key" ] }, cloudflare: { name: "cloudflare", apiUrl: "https://api.cloudflare.com", regex: "^.*cloudflare.*$", icon: "cloudflare", docsUrl: "https://developers.cloudflare.com/api", openApiUrl: "https://raw.githubusercontent.com/cloudflare/api-schemas/refs/heads/main/openapi.json", preferredAuthType: "apikey", keywords: [ "zones", "dns_records", "firewall_rules", "page_rules", "workers", "certificates", "load_balancers", "rate_limits", "waf", "analytics", "cache", "ssl", "api key" ] }, bigcommerce: { name: "bigcommerce", apiUrl: "https://api.bigcommerce.com", regex: "^.*bigcommerce.*$", icon: "bigcommerce", docsUrl: "https://developer.bigcommerce.com/docs/rest-management", preferredAuthType: "apikey", keywords: [ "products", "categories", "brands", "orders", "customers", "carts", "checkouts", "coupons", "price_lists", "customer_groups", "shipping", "store_content", "themes", "api key" ] }, woocommerce: { name: "woocommerce", apiUrl: "https://{yourstore.com}/wp-json/wc/v3", regex: "^.*woocommerce.*$", icon: "woocommerce", docsUrl: "https://woocommerce.github.io/woocommerce-rest-api-docs", preferredAuthType: "apikey", keywords: [ "products", "orders", "customers", "coupons", "categories", "shipping_classes", "tax_classes", "payment_gateways", "shipping_zones", "shipping_methods", "product_variations", "refunds", "reports", "api key" ] }, prestashop: { name: "prestashop", apiUrl: "https://{yourstore.com}/api", regex: "^.*prestashop.*$", icon: "prestashop", docsUrl: "https://devdocs.prestashop-project.org/8/webservice", preferredAuthType: "apikey", keywords: [ "products", "categories", "customers", "addresses", "carts", "orders", "carriers", "countries", "currencies", "languages", "manufacturers", "suppliers", "stocks", "api key" ] }, squarespace: { name: "squarespace", apiUrl: "https://api.squarespace.com", regex: "^.*squarespace.*$", icon: "squarespace", docsUrl: "https://developers.squarespace.com/commerce-apis", preferredAuthType: "oauth", oauth: { authUrl: "https://login.squarespace.com/api/1/login/oauth/provider/authorize", tokenUrl: "https://login.squarespace.com/api/1/login/oauth/provider/tokens", scopes: "website.products.read website.products.write website.orders.read website.orders.write website.inventory.read website.transactions.read website.store_settings.read email.campaigns.read email.campaigns.send" }, keywords: [ "products", "orders", "inventory", "transactions", "profiles", "store_pages", "categories", "discounts", "gift_cards", "abandoned_carts", "webhooks", "oauth" ] }, monday: { name: "monday", apiUrl: "https://api.monday.com/v2", regex: "^.*monday.*$", icon: "monday", docsUrl: "https://developer.monday.com/api-reference/docs", preferredAuthType: "apikey", oauth: { authUrl: "https://auth.monday.com/oauth2/authorize", tokenUrl: "https://auth.monday.com/oauth2/token", scopes: "me:read users:read boards:read boards:write workspaces:read workspaces:write webhooks:write updates:read updates:write assets:read assets:write tags:read teams:read" }, keywords: ["boards", "items", "groups", "columns", "updates", "users", "workspaces", "tags", "files", "activities", "teams", "subitems", "graphql", "mutations", "query", "api key"] }, clickup: { name: "clickup", apiUrl: "https://api.clickup.com/api/v2", regex: "^.*clickup.*$", icon: "clickup", docsUrl: "https://clickup.com/api", openApiUrl: "https://developer.clickup.com/openapi/clickup-api-v2-reference.json", preferredAuthType: "apikey", oauth: { authUrl: "https://app.clickup.com/api", tokenUrl: "https://api.clickup.com/api/v2/oauth/token", scopes: "user:read user:write task:read task:write list:read list:write folder:read folder:write space:read space:write team:read team:write webhook:read webhook:write goal:read goal:write" }, keywords: ["tasks", "lists", "folders", "spaces", "teams", "goals", "views", "statuses", "priorities", "tags", "custom fields", "time tracking", "comments", "checklists", "dependencies", "api key"] }, typeform: { name: "typeform", apiUrl: "https://api.typeform.com", regex: "^.*typeform.*$", icon: "typeform", docsUrl: "https://developer.typeform.com", preferredAuthType: "oauth", oauth: { authUrl: "https://api.typeform.com/oauth/authorize", tokenUrl: "https://api.typeform.com/oauth/token", scopes: "forms:read forms:write responses:read responses:write themes:read themes:write images:read images:write workspaces:read workspaces:write webhooks:read webhooks:write accounts:read offline" }, keywords: ["forms", "responses", "questions", "fields", "themes", "images", "workspaces", "logic jumps", "hidden fields", "variables", "calculations", "insights", "reports", "oauth"] }, figma: { name: "figma", apiUrl: "https://api.figma.com", regex: "^(.*\\.)?figma\\.com(/.*)?$", icon: "figma", docsUrl: "https://www.figma.com/developers/api", openApiUrl: "https://raw.githubusercontent.com/figma/rest-api-spec/refs/heads/main/openapi/openapi.yaml", preferredAuthType: "oauth", oauth: { authUrl: "https://www.figma.com/oauth", tokenUrl: "https://www.figma.com/api/oauth/token", scopes: "file_read file_write file_dev_resources:read file_dev_resources:write webhooks:write" }, keywords: ["files", "projects", "teams", "components", "styles", "nodes", "frames", "pages", "images", "comments", "versions", "branches", "libraries", "plugins", "oauth"] }, contentful: { name: "contentful", apiUrl: "https://api.contentful.com", regex: "^(.*\\.)?contentful\\.com(/.*)?$", icon: "contentful", docsUrl: "https://www.contentful.com/developers/docs/references/content-management-api", preferredAuthType: "apikey", keywords: ["spaces", "environments", "content types", "entries", "assets", "locales", "tags", "webhooks", "roles", "api keys", "content model", "publishing", "preview", "api key"] }, sanity: { name: "sanity", apiUrl: "https://api.sanity.io", regex: "^(.*\\.)?sanity\\.io(/.*)?$", icon: "sanity", docsUrl: "https://www.sanity.io/docs/http-api", preferredAuthType: "apikey", keywords: ["documents", "datasets", "projects", "schemas", "assets", "images", "mutations", "transactions", "groq", "listening", "history", "api key"] }, prismic: { name: "prismic", apiUrl: "https://api.prismic.io", regex: "^(.*\\.)?prismic\\.io(/.*)?$", icon: "prismic", docsUrl: "https://prismic.io/docs/rest-api", preferredAuthType: "apikey", keywords: ["documents", "repositories", "custom types", "slices", "releases", "previews", "tags", "languages", "master ref", "api key"] }, netlify: { name: "netlify", apiUrl: "https://api.netlify.com", regex: "^(.*\\.)?netlify\\.com(/.*)?$", icon: "netlify", docsUrl: "https://docs.netlify.com/api/get-started", openApiUrl: "https://raw.githubusercontent.com/netlify/open-api/refs/heads/master/swagger.yml", preferredAuthType: "apikey", oauth: { authUrl: "https://app.netlify.com/authorize", tokenUrl: "https://api.netlify.com/oauth/token", scopes: "user sites deploys dns_zones forms submissions assets functions logs split_tests analytics billing members" }, keywords: ["sites", "deploys", "builds", "functions", "forms", "identity", "large media", "split tests", "analytics", "bandwidth", "dns zones", "ssl certificates", "api key"] }, vercel: { name: "vercel", apiUrl: "https://api.vercel.com", regex: "^(.*\\.)?vercel\\.com(/.*)?$", icon: "vercel", docsUrl: "https://vercel.com/docs/rest-api", openApiUrl: "https://openapi.vercel.sh/", preferredAuthType: "apikey", keywords: ["deployments", "projects", "domains", "aliases", "secrets", "environment variables", "teams", "logs", "certificates", "dns", "edge config", "functions", "builds", "api key"] }, amplitude: { name: "amplitude", apiUrl: "https://api.amplitude.com", regex: "^(.*\\.)?amplitude\\.com(/.*)?$", icon: "amplitude", docsUrl: "https://www.docs.developers.amplitude.com", preferredAuthType: "apikey", keywords: ["events", "users", "cohorts", "charts", "dashboards", "behavioral", "properties", "segments", "funnels", "retention", "revenue", "annotations", "export", "api key"] }, segment: { name: "segment", apiUrl: "https://api.segment.com", regex: "^(.*\\.)?segment\\.com(/.*)?$", icon: "segment", docsUrl: "https://segment.com/docs/api", preferredAuthType: "apikey", keywords: ["sources", "destinations", "tracking", "identify", "events", "traits", "warehouses", "functions", "transformations", "audiences", "personas", "protocols", "catalog", "api key"] }, mixpanel: { name: "mixpanel", apiUrl: "https://api.mixpanel.com", regex: "^(.*\\.)?mixpanel\\.com(/.*)?$", icon: "mixpanel", docsUrl: "https://developer.mixpanel.com/reference/overview", openApiUrl: "https://developer.mixpanel.com/reference/overview", preferredAuthType: "apikey", keywords: ["events", "users", "profiles", "cohorts", "funnels", "retention", "insights", "properties", "engage", "import", "export", "jql", "query", "segmentation", "track", "api key"] }, algolia: { name: "algolia", apiUrl: "https://api.algolia.com", regex: "^(.*\\.)?algolia\\.com(/.*)?$", icon: "algolia", docsUrl: "https://www.algolia.com/doc/rest-api/search", openApiUrl: "https://www.algolia.com/doc/rest-api/search/", preferredAuthType: "apikey", keywords: ["indices", "search", "records", "objects", "facets", "filters", "ranking", "synonyms", "rules", "api keys", "analytics", "insights", "browse", "query", "api key"] }, snowflake: { name: "snowflake", apiUrl: "https://account.snowflakecomputing.com", regex: "^(.*\\.)?(snowflake\\.com|snowflakecomputing\\.com)(/.*)?$", icon: "snowflake", docsUrl: "https://docs.snowflake.com/en/developer-guide/sql-api/index", // snowflake stores multiple openapi specs in different files - all here: https://github.com/snowflakedb/snowflake-rest-api-specs preferredAuthType: "apikey", keywords: ["warehouses", "databases", "schemas", "tables", "views", "stages", "pipes", "tasks", "streams", "procedures", "functions", "roles", "users", "sql", "api key"] }, databricks: { name: "databricks", apiUrl: "https://{your-workspace}.cloud.databricks.com/api", regex: "^(.*\\.)?(databricks\\.com|cloud\\.databricks\\.com)(/.*)?$", icon: "databricks", // databricks is tricky since the documentation and the oauth changes if you use databricks on aws, gcp or azure docsUrl: "https://docs.databricks.com/api/workspace/introduction", preferredAuthType: "apikey", keywords: ["clusters", "jobs", "notebooks", "dbfs", "libraries", "secrets", "tokens", "workspace", "mlflow", "delta", "sql endpoints", "permissions", "groups", "api key"] }, looker: { name: "looker", apiUrl: "https://{your-domain}.looker.com/api", regex: "^(.*\\.)?looker\\.com(/.*)?$", icon: "looker", docsUrl: "https://docs.looker.com/reference/api-and-integration/api-reference", openApiUrl: "https://raw.githubusercontent.com/looker-open-source/sdk-codegen/refs/heads/main/spec/Looker.4.0.oas.json", preferredAuthType: "apikey", keywords: ["looks", "dashboards", "explores", "models", "views", "fields", "dimensions", "measures", "folders", "spaces", "schedules", "users", "groups", "roles", "api key"] }, mongodb: { name: "mongodb", apiUrl: "https://cloud.mongodb.com/api", regex: "^(.*\\.)?mongodb\\.com(/.*)?$", icon: "mongodb", docsUrl: "https://www.mongodb.com/docs/atlas/api", preferredAuthType: "apikey", keywords: ["clusters", "databases", "collections", "documents", "indexes", "atlas", "realm", "charts", "data lake", "search", "triggers", "backups", "alerts", "api key"] }, supabase: { name: "supabase", apiUrl: "https://api.supabase.co", regex: "^(.*\\.)?(supabase\\.co|supabase\\.io)(/.*)?$", icon: "supabase", docsUrl: "https://supabase.com/docs/reference/api", openApiUrl: "https://api.supabase.com/api/v1-json", preferredAuthType: "apikey", keywords: ["tables", "rows", "auth", "storage", "functions", "realtime", "rpc", "buckets", "policies", "users", "postgrest", "select", "insert", "update", "delete", "filter", "api key"] }, planetscale: { name: "planetscale", apiUrl: "https://api.planetscale.com", regex: "^(.*\\.)?planetscale\\.com(/.*)?$", icon: "planetscale", docsUrl: "https://api-docs.planetscale.com", openApiUrl: "https://api.planetscale.com/v1/openapi-spec", preferredAuthType: "apikey", keywords: ["databases", "branches", "deploy requests", "schemas", "backups", "passwords", "certificates", "regions", "organizations", "audit logs", "insights", "api key"] }, openai: { name: "openai", apiUrl: "https://api.openai.com", regex: "^.*openai.*$", icon: "openai", // openai prevents playwright from crawling their page - we manually copied the text to the template doc docsUrl: "https://platform.openai.com/docs/api-reference/introduction", openApiUrl: "https://app.stainless.com/api/spec/documented/openai/openapi.documented.yml", preferredAuthType: "apikey", keywords: ["completions", "chat", "models", "embeddings", "images", "audio", "files", "fine-tuning", "assistants", "threads", "messages", "runs", "moderation", "usage", "api key"] }, anthropic: { name: "anthropic", apiUrl: "https://api.anthropic.com", regex: "^.*anthropic.*$", icon: "anthropic", docsUrl: "https://docs.anthropic.com/claude/reference", preferredAuthType: "apikey", keywords: ["messages", "completions", "claude", "models", "prompts", "conversations", "tokens", "streaming", "api key"] }, claude: { name: "claude", apiUrl: "https://api.anthropic.com", regex: "^.*anthropic.*$", icon: "anthropic", docsUrl: "https://docs.anthropic.com/claude/reference", preferredAuthType: "apikey", keywords: ["messages", "completions", "claude", "models", "prompts", "conversations", "tokens", "streaming", "api key"] }, pinecone: { name: "pinecone", apiUrl: "https://api.pinecone.io", regex: "^(.*\\.)?pinecone\\.io(/.*)?$", icon: "pinecone", docsUrl: "https://docs.pinecone.io/reference", openApiUrl: "https://raw.githubusercontent.com/sigpwned/pinecone-openapi-spec/refs/heads/main/openapi.yml", preferredAuthType: "apikey", keywords: ["indexes", "vectors", "upsert", "collections", "namespaces", "metadata", "embeddings", "dimensions", "pods", "replicas", "shards", "api key"] }, zoom: { name: "zoom", apiUrl: "https://api.zoom.us", regex: "^(.*\\.)?zoom\\.us(/.*)?$", icon: "zoom", docsUrl: "https://developers.zoom.us/docs/api", preferredAuthType: "oauth", oauth: { authUrl: "https://zoom.us/oauth/authorize", tokenUrl: "https://zoom.us/oauth/token", scopes: "user:read user:write meeting:read meeting:write meeting:master recording:read recording:write webinar:read webinar:write chat_message:read chat_message:write chat_channel:read chat_channel:write contact:read report:read report:master dashboard:read" }, keywords: ["meetings", "webinars", "users", "recordings", "chat", "channels", "messages", "participants", "registrants", "reports", "dashboards", "rooms", "schedule", "join", "oauth"] }, microsoft: { name: "microsoft", apiUrl: "https://graph.microsoft.com", regex: "^.*(microsoft|graph\\.microsoft|office|outlook|live\\.com).*$", icon: "microsoft", docsUrl: "https://learn.microsoft.com/en-us/graph/api/overview", preferredAuthType: "oauth", oauth: { authUrl: "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", tokenUrl: "https://login.microsoftonline.com/common/oauth2/v2.0/token", scopes: "User.Read User.ReadWrite Mail.Read Mail.ReadWrite Mail.Send Calendars.Read Calendars.ReadWrite Files.Read Files.ReadWrite Sites.Read.All Sites.ReadWrite.All Teams.ReadBasic.All Chat.Read Chat.ReadWrite ChannelMessage.Read.All offline_access" }, keywords: ["users", "groups", "mail", "calendar", "contacts", "onedrive", "sharepoint", "teams", "planner", "tasks", "drives", "sites", "lists", "permissions", "graph", "oauth"] }, redis: { name: "redis", apiUrl: "https://app.redislabs.com/api/v1", regex: "^(.*\\.)?(redis\\.com|redislabs\\.com|redis\\.io)(/.*)?$", icon: "redis", docsUrl: "https://docs.redis.com/latest/rc/api", openApiUrl: "https://api.redislabs.com/v1/cloud-api-docs", preferredAuthType: "apikey", keywords: ["databases", "subscriptions", "cloud accounts", "regions", "modules", "persistence", "replication", "clustering", "acl", "alerts", "backup", "api key"] }, elasticsearch: { name: "elasticsearch", apiUrl: "https://api.elastic.co", regex: "^(.*\\.)?elastic\\.co(/.*)?$", icon: "elasticsearch", docsUrl: "https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html", openApiUrl: "https://raw.githubusercontent.com/elastic/elasticsearch-specification/refs/heads/main/output/openapi/elasticsearch-openapi.json", preferredAuthType: "apikey", keywords: ["indices", "documents", "search", "mappings", "settings", "aliases", "templates", "clusters", "nodes", "shards", "aggregations", "analyzers", "pipelines", "snapshots", "api key"] }, postmark: { name: "postmark", apiUrl: "https://api.postmarkapp.com", regex: "^(.*\\.)?postmarkapp\\.com(/.*)?$", icon: "postmark", docsUrl: "https://postmarkapp.com/developer", preferredAuthType: "apikey", keywords: ["emails", "templates", "servers", "domains", "senders", "bounces", "message streams", "inbound", "stats", "suppressions", "dkim", "spf", "tracking", "api key"] }, sentry: { name: "sentry", apiUrl: "https://sentry.io/api", regex: "^(.*\\.)?sentry\\.io(/.*)?$", icon: "sentry", docsUrl: "https://docs.sentry.io/api", openApiUrl: "https://raw.githubusercontent.com/getsentry/sentry-api-schema/refs/heads/main/openapi-derefed.json", preferredAuthType: "apikey", keywords: ["projects", "issues", "events", "releases", "organizations", "teams", "alerts", "discover", "performance", "dashboards", "integrations", "debug files", "source maps", "api key"] }, pagerduty: { name: "pagerduty", apiUrl: "https://api.pagerduty.com", regex: "^(.*\\.)?pagerduty\\.com(/.*)?$", icon: "pagerduty", docsUrl: "https://developer.pagerduty.com/api-reference", preferredAuthType: "apikey", keywords: ["incidents", "services", "escalation policies", "schedules", "users", "teams", "oncalls", "alerts", "event rules", "response plays", "analytics", "maintenance windows", "priorities", "api key"] }, datadog: { name: "datadog", apiUrl: "https://api.datadoghq.com", regex: "^(.*\\.)?datadoghq\\.com(/.*)?$", icon: "datadog", docsUrl: "https://docs.datadoghq.com/api/latest", preferredAuthType: "apikey", keywords: ["metrics", "monitors", "dashboards", "logs", "traces", "synthetics", "events", "hosts", "tags", "downtimes", "slos", "incidents", "notebooks", "api key"] }, newrelic: { name: "newrelic", apiUrl: "https://api.newrelic.com", regex: "^(.*\\.)?newrelic\\.com(/.*)?$", icon: "newrelic", docsUrl: "https://docs.newrelic.com/docs/apis/rest-api-v2", preferredAuthType: "apikey", keywords: ["applications", "apm", "browser", "synthetics", "alerts", "dashboards", "nrql", "insights", "infrastructure", "logs", "errors", "transactions", "deployments", "api key"] }, auth0: { name: "auth0", apiUrl: "https://{your-domain}.auth0.com/api/v2", regex: "^.*auth0.*$", icon: "auth0", docsUrl: "https://auth0.com/docs/api/management/v2", openApiUrl: "https://auth0.com/docs/api/management/openapi.json", preferredAuthType: "oauth", oauth: { authUrl: "https://{your-domain}.auth0.com/authorize", tokenUrl: "https://{your-domain}.auth0.com/oauth/token", scopes: "read:users update:users delete:users create:users read:users_app_metadata update:users_app_metadata delete:users_app_metadata create:users_app_metadata read:user_idp_tokens read:client_grants create:client_grants delete:client_grants update:client_grants read:connections update:connections delete:connections create:connections read:resource_servers" }, keywords: ["users", "roles", "permissions", "connections", "applications", "rules", "hooks", "actions", "organizations", "branding", "emails", "mfa", "logs", "tenants", "oauth"] }, okta: { name: "okta", apiUrl: "https://{your-domain}.okta.com/api/v1", regex: "^(.*\\.)?okta\\.com(/.*)?$", icon: "okta", docsUrl: "https://developer.okta.com/docs/reference", openApiUrl: "https://raw.githubusercontent.com/okta/okta-management-openapi-spec/refs/heads/master/dist/2025.01.1/management-minimal.yaml", preferredAuthType: "apikey", keywords: ["users", "groups", "applications", "factors", "policies", "rules", "identity providers", "sessions", "tokens", "events", "system logs", "schemas", "brands", "domains", "api key"] }, discord: { name: "discord", apiUrl: "https://discord.com/api", regex: "^.*discord.*$", icon: "discord", docsUrl: "https://discord.com/developers/docs/intro", // failed to fetch for some reason... openApiUrl: "https://raw.githubusercontent.com/discord/discord-api-spec/refs/heads/main/specs/openapi.json", preferredAuthType: "apikey", oauth: { authUrl: "https://discord.com/api/oauth2/authorize", tokenUrl: "https://discord.com/api/oauth2/token", scopes: "identify email guilds guilds.join connections bot applications.commands applications.commands.update guilds.members.read messages.read webhook.incoming role_connections.write dm_channels.read voice" }, keywords: ["guilds", "channels", "messages", "bots", "users", "members", "roles", "permissions", "emojis", "reactions", "voice", "invites", "bans", "audit logs", "slash commands", "interactions", "api key"] }, telegram: { name: "telegram", apiUrl: "https://api.telegram.org", regex: "^(.*\\.)?telegram\\.org(/.*)?$", icon: "telegram", docsUrl: "https://core.telegram.org/bots/api", preferredAuthType: "apikey", keywords: ["messages", "chats", "updates", "inline", "keyboards", "media", "stickers", "polls", "dice", "commands", "callbacks", "bot api", "api key"] }, whatsapp: { name: "whatsapp", apiUrl: "https://graph.facebook.com", regex: "^(.*\\.)?whatsapp\\.com(/.*)?$", icon: "whatsapp", docsUrl: "https://developers.facebook.com/docs/whatsapp/cloud-api", preferredAuthType: "apikey", keywords: ["messages", "media", "contacts", "groups", "business", "templates", "interactive", "webhooks", "phone numbers", "profiles", "settings", "api key"] }, linear: { name: "linear", apiUrl: "https://api.linear.app/graphql", regex: "^(.*\\.)?linear\\.app(/.*)?$", icon: "linear", docsUrl: "https://developers.linear.app/docs/graphql/working-with-the-graphql-api", preferredAuthType: "apikey", keywords: ["issues", "projects", "cycles", "teams", "users", "comments", "labels", "milestones", "roadmaps", "workflows", "states", "graphql", "mutations", "queries", "api key"] }, resend: { name: "resend", apiUrl: "https://api.resend.com", regex: "^(.*\\.)?resend\\.com(/.*)?$", icon: "resend", docsUrl: "https://resend.com/docs/api-reference", // problem fetching the yml and converting it to json openApiUrl: "https://raw.githubusercontent.com/resend/resend-openapi/main/resend.yaml", preferredAuthType: "apikey", keywords: ["emails", "domains", "api keys", "contacts", "audiences", "broadcasts", "batch", "send", "templates", "react email", "transactional", "api key"] }, googleAds: { name: "googleAds", apiUrl: "https://googleads.googleapis.com/v20", regex: "^.*(googleads\\.googleapis|developers\\.google\\.com/google-ads|adwords\\.google).*$", icon: "googleads", docsUrl: "https://developers.google.com/google-ads/api/docs/concepts/overview", preferredAuthType: "oauth", oauth: { authUrl: "https://accounts.google.com/o/oauth2/v2/auth", tokenUrl: "https://oauth2.googleapis.com/token", scopes: "https://www.googleapis.com/auth/adwords https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile openid" }, keywords: ["campaigns", "ad groups", "ads", "keywords", "GAQL", "budgets", "bidding", "conversions", "audiences", "extensions", "reports", "accounts", "billing", "targeting", "oauth"] }, google: { name: "google", apiUrl: "https://googleapis.com", regex: "^.*(googleapis\\.com(?!/(?:gmail|drive|calendar|sheets|googleads))|developers\\.google\\.com(?!/(?:gmail|drive|calendar|sheets|google-ads))).*$", icon: "google", docsUrl: "https://developers.google.com/apis-explorer", preferredAuthType: "oauth", oauth: { authUrl: "https://accounts.google.com/o/oauth2/v2/auth", tokenUrl: "https://oauth2.googleapis.com/token", scopes: "https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile openid" }, keywords: ["apis", "services", "resources", "GAQL", "methods", "scopes", "projects", "quotas", "usage", "oauth"] }, posthog: { name: "posthog", apiUrl: "https://us.posthog.com/api", regex: "^.*posthog.*$", icon: "posthog", docsUrl: "https://posthog.com/docs/api", openApiUrl: "https://app.posthog.com/api/schema/", preferredAuthType: "apikey", keywords: ["events", "users", "products", "dashboard", "properties", "cohorts", "funnels", "retention", "insights", "engage", "import", "export", "jql", "query", "segmentation", "track", "api key"] }, firecrawl: { name: "firecrawl", apiUrl: "https://api.firecrawl.dev/v1", regex: "^.*firecrawl.*$", icon: "firecrawl", docsUrl: "https://docs.firecrawl.dev/api-reference/introduction", preferredAuthType: "apikey", keywords: ["crawl", "scrape", "extract", "search", "pdf", "web", "html", "markdown", "api key"] }, crawlbase: { name: "crawlbase", apiUrl: "https://api.crawlbase.com", regex: "^.*crawlbase.*$", icon: "crawlbase", docsUrl: "https://crawlbase.com/docs/crawling-api/", preferredAuthType: "apikey", keywords: ["crawl", "scrape", "extract", "search", "pdf", "web", "html", "markdown", "api key"] }, gemini: { name: "gemini", apiUrl: "https://generativelanguage.googleapis.com/v1beta/models/{model_string}:generateContent?key={your-api-key}", regex: "^.*(gemini|generativelanguage)\\.googleapis\\.com.*$", icon: "gemini", docsUrl: "https://ai.google.dev/api", // there is a openapi spec here: https://generativelanguage.googleapis.com/$discovery/OPENAPI3_0?version=v1beta&key=$GOOGLE_API_KEY - but you need your own google api key to access it preferredAuthType: "apikey" } } export const integrationOptions = [ { value: "manual", label: "Custom API", icon: "default" }, ...Object.entries(integrations).map(([key, integration]) => ({ value: key, label: key .replace(/([A-Z])/g, ' $1') // Add space before capital letters .replace(/^./, str => str.toUpperCase()) // Capitalize first letter .trim(), // Remove leading space icon: integration.icon || "default" })) ]; /** * Find matching integration for a given URL * @param url - The URL to match against integrations * @returns The matching integration key and details, or null if no match found */ export function findMatchingIntegration(url: string): { key: string; integration: IntegrationConfig } | null { // Ensure URL has a scheme for proper matching const urlForMatching = url.startsWith('http') || url.startsWith('postgres') ? url : `https://${url}`; const matches: { key: string; integration: IntegrationConfig; specificity: number }[] = []; for (const [key, integration] of Object.entries(integrations)) { try { if (new RegExp(integration.regex).test(urlForMatching)) { // Calculate specificity: longer, more specific regexes get higher scores const specificity = integration.regex.length + (integration.regex.includes('(?!') ? 100 : 0); matches.push({ key, integration, specificity }); } } catch (e) { console.error(`Invalid regex pattern for integration: ${key}`); } } if (matches.length === 0) return null; // Return the most specific match (highest specificity score) const bestMatch = matches.sort((a, b) => b.specificity - a.specificity)[0]; return { key: bestMatch.key, integration: bestMatch.integration }; } /** * Get OAuth configuration for an integration * @param integrationKey - The key of the integration * @returns OAuth config or null if not available */ export function getOAuthConfig(integrationKey: string): IntegrationConfig['oauth'] | null { return integrations[integrationKey]?.oauth || null; } /** * Get OAuth token URL for an integration * @param integration - The integration object with credentials and URL info * @returns The token URL for OAuth token exchange */ export function getOAuthTokenUrl(integration: { id: string; urlHost: string; credentials?: any }): string { // First priority: User-provided token URL in credentials if (integration.credentials?.token_url) { return integration.credentials.token_url; } // Second priority: Known integration template token URL const knownIntegration = Object.entries(integrations).find(([key]) => integration.id === key || integration.urlHost.includes(key) ); if (knownIntegration) { const [_, config] = knownIntegration; if (config.oauth?.tokenUrl) { return config.oauth.tokenUrl; } } // Fallback: Default OAuth token endpoint return `${integration.urlHost}/oauth/token`; } export interface SdkCodegenOptions { apiKey: string; endpoint: string; workflowId: string; payload: any; credentials: any; includeComments?: boolean; wrapInMain?: boolean; } export interface SdkCode { typescript: string; python: string; go: string; } export function getSDKCode(opts: SdkCodegenOptions): SdkCode { const { endpoint, workflowId, payload } = opts; return { typescript: `// if not installed, run: npm install @superglue/client // ALWAYS USE THE SDK, do not use the graphql endpoint directly import { SuperglueClient } from '@superglue/client'; const client = new SuperglueClient({ apiKey: "<YOUR_SUPERGLUE_API_KEY>", endpoint: "${endpoint}" // or default to https://graphql.superglue.ai NOT https://api.superglue.ai }); async function main() { const result = await client.executeWorkflow({ id: "${workflowId}", payload: ${JSON.stringify(payload, null, 2)} }); console.log(result); } main();`, python: `import requests response = requests.post("${endpoint}", # or default to https://graphql.superglue.ai headers={"Authorization": "Bearer <YOUR_SUPERGLUE_API_KEY>"}, json={ "query": "mutation ExecuteWorkflow($input: WorkflowInputRequest!, $payload: JSON) { \\n executeWorkflow(input: $input, payload: $payload) { \\n data error success\\n }\\n }", "variables": { "input": {"id": "${workflowId}"}, "payload": ${JSON.stringify(payload, null, 2)} } }) `, go: `package main import ( "bytes" "encoding/json" "net/http" ) func main() { payload := ${JSON.stringify(payload, null, 2)} reqBody, _ := json.Marshal(map[string]interface{}{ "query": \`mutation ExecuteWorkflow($input: WorkflowInputRequest!, $payload: JSON) {\\n executeWorkflow(input: $input, payload: $payload) {\\n data error success\\n }\\n }\`, "variables": map[string]interface{}{ "input": map[string]string{"id": "${workflowId}"}, "payload": payload, }, }) req, _ := http.NewRequest("POST", "${endpoint}", bytes.NewBuffer(reqBody)) // or default to https://graphql.superglue.ai req.Header.Set("Authorization", "Bearer <YOUR_SUPERGLUE_API_KEY>") req.Header.Set("Content-Type", "application/json") resp, _ := http.DefaultClient.Do(req) defer resp.Body.Close() }` } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/superglue-ai/superglue'

If you have feedback or need assistance with the MCP directory API, please join our Discord server