# PopMCP Documentation — full text > PopMCP is a hosted Model Context Protocol (MCP) gateway. It exposes 200+ business SaaS tools as MCP tools through a single OAuth-authenticated endpoint (https://app.popmcp.com/mcp), so any MCP client — Claude, ChatGPT, Codex, OpenCode, ZCode — can read and write in the apps a business already pays for. Credentials are supplied by the customer, encrypted with AES-256-GCM, and scoped per workspace. Source: https://www.docs.popmcp.com/ · Generated from the published documentation. Every heading below is a page; the URL under it is its canonical address. --- ## PopMCP documentation URL: https://www.docs.popmcp.com/docs/ Summary: Connect your business tools to Claude, ChatGPT, Codex and other MCP clients through one hosted URL, with a step-by-step setup guide for each integration. ### How it fits together Every connection is scoped to a workspace, authenticates with your own provider credentials, and reaches an AI client only after an explicit OAuth consent step. Access is re-resolved from the database on every request, so revoking a connector takes effect on the next call rather than when a token expires. Provider credentials are encrypted with AES-256-GCM and never leave the server. Your AI client receives tool results, never the underlying API key. ### Before you commit to a date Fifty connectors are gated behind vendor approval. Gmail needs restricted-scope verification plus an annual security assessment. A new Google Ads developer token reaches only test accounts; Explorer Access opens live accounts but caps them at 2,880 operations a day until Basic Access is granted. --- ## Connectors that need approval URL: https://www.docs.popmcp.com/docs/get-started/approval-required/ Summary: Which integrations need vendor approval or a paid plan before they work, the usual wait and cost of each, and what you can build in the meantime. Most connectors work the moment you paste a credential. A minority do not. The vendor has to approve a developer account, review your app, or grant a production token first, and that can take days or weeks. Plan around these before you commit to a launch date. ### What the categories mean **Developer token approval.** The vendor issues a token immediately, but it only reaches test data until they approve production access. Google Ads works this way. **App review.** You submit the app for human review before it can request the permissions you need. Common on the social platforms. **Developer account approval.** You must be accepted into a developer or partner programme before any credential exists at all. **OAuth scope verification.** The credential works, but the vendor restricts the sensitive scopes until your app passes verification. Some restricted scopes require a paid third-party security assessment. **Seller or marketplace approval.** Tied to your selling account rather than your app. **Paid plan required.** No review, but the API is not available on lower tiers. ### Working while you wait Several gated connectors let you build against test or sandbox data immediately. Where that is possible, the connector's own page says so under **Works meanwhile**. Start the approval application first, then set up everything else while it is in the queue. The application is almost always the long pole. --- ## Choosing an AI client URL: https://www.docs.popmcp.com/docs/get-started/choosing-a-client/ Summary: How Claude, ChatGPT, Codex, OpenCode and ZCode each connect to PopMCP, and why any client speaking Streamable HTTP needs only the one gateway URL. PopMCP speaks the Streamable HTTP transport (MCP 2025-06) and acts as a full OAuth 2.1 authorization server, so any spec-compliant client works without special handling. | Client | Auth | Set up with | | --- | --- | --- | | Claude Desktop | OAuth | Custom connector | | Claude Web | OAuth | Custom connector | | ChatGPT | OAuth | Custom connector in developer mode, paid plans | | Codex | OAuth | `config.toml` | | OpenCode | OAuth | `opencode.json` | | ZCode | OAuth | Settings → MCP Servers | Your workspace's **MCP** page pre-fills copy-pasteable config for each of these. ### What every client needs ``` https://app.popmcp.com/mcp ``` That is the whole configuration. There is no API key to paste. The client runs the OAuth flow itself and you approve connectors in the browser. Any other client that implements remote MCP over Streamable HTTP takes the same URL and works the same way, even though it does not have its own page here. If a client asks you to paste a token into its config file, it is using an older auth model. PopMCP is OAuth-only. Personal access tokens were removed. --- ## Connect your first integration URL: https://www.docs.popmcp.com/docs/get-started/first-integration/ Summary: What connector setups share and where they differ: an API key or an OAuth app, the exact callback URL, verification, and the account picker. Every connector follows the same shape, whatever the provider. ### The two credential models You generate a key in the provider's console and paste it into PopMCP. Nothing expires unless you revoke it, and there is no callback URL to register. Most connectors work this way, including Klaviyo, Stripe, Notion, Airtable and Slack. **What you do:** create the key, scope it, copy it once, paste it into PopMCP. You register an application in the provider's developer console, give PopMCP its client ID and secret, then approve access in the provider's own consent screen. PopMCP stores a refresh token and renews access tokens server-side. The Google connectors, Shopify, Xero, QuickBooks, Etsy, eBay and the social platforms work this way. **What you do:** create an app, register PopMCP's callback URL against it, paste the client ID and secret, then authorize and approve. ### The callback URL OAuth connectors show a callback URL in the connect dialog. Register it in your provider app before you authorize. It must match character for character, because providers reject anything else. Each integration page shows the exact URL for that connector. ### After connecting PopMCP calls the provider to verify the credential before saving. A connection moves from `PENDING` to `VERIFIED`, or to `ERROR` with the provider's own message. Only verified connections get MCP tools. Some connectors reach several accounts under one authorization, including Google Analytics, Search Console, Google Ads, Xero and Asana. Those show an account picker after you approve, where you choose which accounts to connect and which workspace each belongs to. --- ## Introduction URL: https://www.docs.popmcp.com/docs/get-started/introduction/ Summary: PopMCP turns the SaaS you pay for into MCP tools behind one OAuth-protected URL, keeps credentials server-side, and re-checks access on every call. PopMCP is a hosted gateway that exposes the SaaS tools your business uses as [Model Context Protocol](https://modelcontextprotocol.io) tools, so an AI client can read and act on them directly. ### The problem it solves MCP clients can talk to remote servers. Wiring up a real business that way means running one server per tool, storing an API key for each in plaintext client config, and repeating that for everyone on the team. Rotating a key means editing every laptop. Removing someone's access means hoping they delete a file. PopMCP replaces that with one authenticated URL. #### You connect a tool with your own credentials Paste a Klaviyo private key, or authorize a Shopify app you own. PopMCP encrypts the credential with AES-256-GCM and verifies it against the provider before saving. #### PopMCP provisions an MCP surface for it Each verified connection gets a curated toolset for that provider, plus discovery tools for reaching the rest of the provider's API. #### Your AI client authenticates once The client registers itself, runs an OAuth 2.1 flow with PKCE, and you choose which connectors to grant it. It then calls a single endpoint and sees every tool it was granted. ### What makes it different **One URL, every tool.** `POST /mcp` serves every customer. The gateway resolves who you are on each request and aggregates exactly the connections you were granted. **Credentials never reach the client.** Your AI client holds an OAuth token scoped to PopMCP. It never sees the Klaviyo key or the Shopify token underneath. **Access is re-resolved per request.** Grants are not trusted from the token. Every call re-checks that the connection is still active, still verified, still yours, and still allowed. Revoking access takes effect on the next request. **Read-only is enforced server-side.** On the Free plan, and for teammates who have not been given full access, the tool list is filtered to reads and writes through the escape hatch are blocked, so a misbehaving agent cannot write. --- ## Quickstart URL: https://www.docs.popmcp.com/docs/get-started/quickstart/ Summary: Sign in, create a workspace, connect your first tool, then point Claude or another MCP client at the gateway and call it, all in about five minutes. By the end of this you will have one tool connected and Claude calling it. #### Sign in and claim your organization Go to [app.popmcp.com](https://app.popmcp.com) and sign in with Google. The first person from a company domain to sign in creates that domain's organization and becomes its owner. Later sign-ins from the same domain need an invite. Personal addresses such as Gmail and Outlook each get their own organization. #### Create a workspace A workspace holds at most one connection per provider. Most teams start with one workspace per client or per brand. #### Connect a tool Open the marketplace, pick a connector, and follow its setup page in these docs. Each one walks through obtaining the credential for that specific provider. PopMCP verifies the credential against the provider immediately. On success the connection shows **Verified** and its tools are provisioned. #### Point your AI client at the gateway Add PopMCP as a remote MCP server: ``` https://app.popmcp.com/mcp ``` Your client discovers the OAuth endpoints, registers itself, and opens a consent screen. Tick the connectors you want this client to reach, then approve. See [Choosing an AI client](/docs/get-started/choosing-a-client/) for per-client setup. #### Call a tool Ask your client something that needs the tool. For a Klaviyo connection: > "List my Klaviyo segments and tell me which has the most members." The client calls `list_connections` to see what it has, then the Klaviyo toolset. On paid plans, connected tools can perform writes, and a write runs as soon as your agent calls it. Grant each client only the connectors it needs. On Scale and Enterprise, keep teammates on read-only until you trust what their agents do. See [Access modes](/docs/concepts/access-modes/). --- ## Access modes & tool catalogs URL: https://www.docs.popmcp.com/docs/concepts/access-modes/ Summary: Read-only or full access, curated toolset or entire catalog: how an owner's choices and the plan's limits combine to decide what each person gets. What a person gets on a connector comes down to two independent settings. An `OWNER` always gets the connector's default: `FULL_ACCESS` on the curated toolset, clamped to read-only on the Free plan. The tables below describe what a teammate can be given. On Scale and Enterprise, an owner chooses both settings per teammate, per connector. On other plans, everyone other than an owner gets `READ_ONLY` on the curated toolset. ### Access mode | Mode | Effect | | --- | --- | | `READ_ONLY` | Filters the exposed set to read-only operations | | `FULL_ACCESS` | Exposes reads and writes | Read-only is enforced on the server at both `tools/list` and execute time, and it blocks writes attempted through `_raw_operation`. A client cannot route around it. ### Catalog scope | Setting | Effect | | --- | --- | | Curated (default) | A hand-picked, high-value toolset for that provider | | Full catalog | Every mapped operation the provider exposes, loaded up front | Curated is the better default. A smaller tool list means the model picks the right tool more often. On Scale and Enterprise, an owner can give a teammate the full catalog when they need breadth. Either way, `_search_tools` reaches every operation on demand, on every plan, without switching. ### What a given person actually gets Both settings are resolved per member, per connector, on every request. Three layers apply in order, and the last one can only narrow. #### The connector's default Every connector is provisioned with `FULL_ACCESS` and the curated toolset. There is no setting to change that default. It is what an `OWNER` gets. #### The owner's decision for a teammate On Scale and Enterprise, an owner sets both per teammate, per connector, in the workspace Members panel. Admins can manage who reaches a connector, but not its access mode. Where the owner has not decided, the teammate gets least-privilege `READ_ONLY` on the curated toolset. That covers every teammate on other plans, and any connector added since the owner last saved the panel. An `OWNER` never has these decisions applied. #### The plan's ceiling The organization's entitled plan clamps the result. The Free tier exposes neither write operations nor the full catalog. This layer only ever narrows. A plan can take a capability away, but it can never grant one — a teammate set to `READ_ONLY` stays read-only on every tier. The clamp is applied when the tool list is built, not when a call is executed. An operation the caller is not entitled to never appears in `tools/list` at all, rather than appearing and then failing. On Scale and Enterprise, keep a teammate on read-only until their agent behaves, then widen. --- ## Approvals & 2FA URL: https://www.docs.popmcp.com/docs/concepts/approvals/ Summary: How a member asks a named owner or admin to approve a connection or a write, what each request status means, and which actions need a one-time code. A member cannot connect a connector, and nobody can delete one without a second factor. Both of those are handled by the same idea: the action is *proposed*, then executed server-side once someone with the authority signs off. ### What needs an approval | Request | Raised when | What happens once approved | | --- | --- | --- | | Connect MCP | A member connects a connector | The connect flow runs, with the requester as the actor | | Write action | A member proposes a provider write | That one tool call executes, server-side | Owners and admins never generate these. They act directly. #### The member files a request They pick **one** owner or admin by name from the list of people who can approve. The action and its payload — including any credentials they entered — are encrypted at rest with AES-256-GCM before the request row is written. #### That person gets an email The email carries a single-use review link. The token behind it is 256 bits of randomness and is stored only as a SHA-256 hash, so the row itself cannot be replayed into a working link. #### They approve or reject Opening the link is not enough. The decision requires an active session belonging to the **named** approver, and their authority is re-checked at that moment rather than trusted from when the request was filed. #### The action runs server-side On approval the action executes with the requester recorded as the actor. A connect request has its stored credentials cleared the moment they have been used. Both parties get a result email. ### Request states | Status | Meaning | | --- | --- | | Pending | Waiting on the named approver | | In progress | Approved, action executing | | Approved | Executed successfully | | Rejected | The approver declined | | Expired | Nobody acted within the window | Requests expire after **7 days**. Members track their own at `/requests`; approvers see what is waiting on them there too. An approver who has since lost the role cannot approve. Because authority is re-checked at decision time, demoting someone immediately invalidates every request pointing at them — the requester picks someone else. ### Two-factor on destructive actions Some actions require a one-time code emailed to whoever is performing them, on top of the role check. This is not the same system as approvals: there is no second person, just a second factor. - Signing in - Deleting a connector - Deleting the organization's account Codes are never stored in plaintext. What is stored is an HMAC of `purpose:email:code`, which means a leaked table cannot be reversed against a rainbow table of all one million six-digit codes. A delete code is also bound to the specific resource it was issued for, so a code you requested to delete one connector cannot be replayed against a different one. Attempts are counted, and codes expire. A member cannot delete a connector at all, with or without a code. The one-time code is a second factor on an owner or admin, not a way to raise a member's authority. --- ## Provider connections URL: https://www.docs.popmcp.com/docs/concepts/connections/ Summary: How PopMCP verifies and encrypts a provider credential, lets one authorization cover several accounts, and keeps grants in place when a key rotates. A **ProviderConnection** is one encrypted credential for one provider inside one workspace. ### Lifecycle ``` PENDING ──verify──▶ VERIFIED ──▶ tools provisioned │ └──────────────▶ ERROR (provider rejected the credential) ``` When you save a credential, PopMCP calls the provider immediately to confirm it works and to learn which account it belongs to. Only a `VERIFIED` connection gets MCP tools. ### Storage Credentials are encrypted with AES-256-GCM before they reach the database, decrypted only in the request that needs them, and never returned to a browser or an AI client. A secret field is write-only in the UI. Once saved it is never displayed again. ### Accounts under one authorization Some providers hand out one authorization that can reach many accounts, such as Google Analytics properties, Search Console sites, Xero organisations and Asana workspaces. For those, PopMCP shows an account picker after authorization. You choose which accounts to connect and which workspace each belongs in, and the chosen account is pinned into the stored credential. Everything downstream sees a fully specified, single-account connection. ### Re-connecting Re-running a connector's connect flow replaces the credential in place. The MCP instance, its access mode and any grants against it survive, so rotating a key does not require re-granting the connector to every client. --- ## MCP instances URL: https://www.docs.popmcp.com/docs/concepts/mcp-instances/ Summary: What each verified connection exposes: a prefixed toolset, three tools that reach the rest of the provider's API, and a selector for several accounts. When a connection verifies, PopMCP provisions an **McpInstance**, the hosted MCP surface for that provider connection. ### What an instance exposes Every instance exposes the provider's toolset under a prefix such as `klaviyo_`, `shopify_` or `stripe_`, plus three tools that make the rest of the provider's API reachable without flooding the client's context: | Tool | Purpose | | --- | --- | | `_search_tools` | Fuzzy-search the provider's full operation catalog | | `_describe_tool` | Return the full input schema for one tool by name | | `_raw_operation` | Escape hatch, calls any operation by its `toolSuffix` | The curated toolset is the high-value subset a model should see eagerly. The full catalog stays reachable through search and the escape hatch, so a small default list costs nothing. ### The aggregated surface At the account level the gateway also exposes `list_connections`, which tells a client which connections it has been granted. Each provider toolset takes a `connection` selector argument, so a client holding two Klaviyo connections addresses them explicitly. Every tool call executes against the resolved connection's own instance, never a shared representative. Two connections for the same provider cannot cross credentials. --- ## Roles & permissions URL: https://www.docs.popmcp.com/docs/concepts/members-and-permissions/ Summary: Exactly what each role may do, how workspace and connector allowlists narrow what a person can reach, and why a change applies on the next request. Everyone belongs to an organization through a **membership**, which carries one role and two optional allowlists. The role decides what a person may *do*. The allowlists decide what they may *reach*. | Role | In one line | | --- | --- | | `OWNER` | Runs the organization. Everything, including billing, and bypasses both allowlists. | | `ADMIN` | Runs the day to day. Manages people and connectors, but never billing, and is scoped by the allowlists. | | `MEMBER` | Uses what they have been granted. Manages nothing, and needs approval to connect a connector. | There is no custom-role builder. These three are the whole model, which is what makes the rules below short enough to hold in your head. Workspace and connector allowlists and per-member connector access modes are Scale and Enterprise features. On other plans they cannot be set, and every member other than an `OWNER` gets read-only access on the curated toolset. In the tables that follow, **●** means the role has that capability, **▲** means it needs someone else's approval first, and **—** means it does not have it at all. ### Team and people | Action | `OWNER` | `ADMIN` | `MEMBER` | | --- | :---: | :---: | :---: | | View the team list | ● | ● | ● read-only | | Invite someone | ● | ● | — | | Revoke a pending invitation | ● | ● | — | | Remove a member | ● | ● | — | | Change someone's role | ● | ● | — | | Assign or revoke `OWNER` | ● | — | — | | Set a member's workspace allowlist | ● | — | — | | Set a member's connector allowlist | ● | ● | — | | Set a member's per-connector access mode | ● | — | — | Promoting to owner is deliberately owner-only. An admin can build out the team but cannot mint a peer who outranks them, and cannot strip an existing owner's role. ### Workspaces | Action | `OWNER` | `ADMIN` | `MEMBER` | | --- | :---: | :---: | :---: | | Create a workspace | ● | — | — | | Delete a workspace | ● | — | — | | Rename a workspace | ● | ● | — | | Manage a workspace's members | ● | ● | — | | Open a workspace | ● all | ● allowed only | ● allowed only | ### Connectors | Action | `OWNER` | `ADMIN` | `MEMBER` | | --- | :---: | :---: | :---: | | Connect a connector | ● direct | ● direct | ▲ needs approval | | Re-connect / rotate a credential | ● | ● | ▲ needs approval | | Delete a connector | ● + OTP | ● + OTP | — | | Approve another member's request | ● | ● | — | | Use a granted connector | ● | ● | ● | A member never connects a connector themselves. They file a request that names one owner or admin, who approves it by email. See [Approvals & 2FA](/docs/concepts/approvals/). Deleting a connector additionally requires a one-time code emailed to the actor, on top of the role check. ### Workspace content | Action | `OWNER` | `ADMIN` | `MEMBER` | | --- | :---: | :---: | :---: | | View Skills | ● | ● | ● | | Author, edit or delete Skills | ● | ● | — | | Edit the Brand Brief | ● | ● | — | | Create an Overview board | ● | ● | ● | | Manage **every** board | ● | ● | — | | Manage boards they created | ● | ● | ● | Skills are served to every client connected to that workspace's MCP, so authoring one is a management action rather than a personal preference. Boards are the exception to the pattern: anyone can create one and owns what they create. ### Organization settings | Section | `OWNER` | `ADMIN` | `MEMBER` | | --- | :---: | :---: | :---: | | Team | ● | ● | ● read-only | | Workspaces | ● | ● | — | | Referrals | ● | ● | ● | | Plan | ● | — | — | | Billing | ● | — | — | | Security (IP allowlist, Scale and Enterprise, up to 50 entries) | ● | — | — | Anything that changes what the organization *pays* or who can *reach* it — plan, billing, IP allowlisting, account deletion and data export — is owner-only, with no admin equivalent. ### The two allowlists A membership carries two independent allowlists. Both are stored on the membership and both are re-evaluated on every request. | Allowlist | Restricts | Set by | | --- | --- | --- | | Workspaces | Which workspaces this person can reach | `OWNER` | | Connectors | Which connectors this person can reach | `OWNER` `ADMIN` | Two rules govern both: - **Empty means all, not none.** A membership with no restrictions set is unrestricted. This keeps existing members working when a new allowlist is introduced. - **`OWNER` bypasses both.** Admins and members are equally bound by them — being an admin does not widen your reach, it only widens what you can *do* within it. The connector allowlist is applied after the workspace allowlist, so a connector in a workspace you cannot reach is unreachable regardless of what the connector list says. These are enforced on the server, in the same query that loads the resource. Hiding a workspace in the UI is cosmetic; the allowlist is the actual boundary. ### Per-member connector access modes On Scale and Enterprise, an owner sets a member's access mode and catalog scope on each connector, in the workspace Members panel. Admins cannot. This is a third layer, below the two allowlists. | State | What that member gets | | --- | --- | | No decision recorded | `READ_ONLY` on the curated toolset | | Decision recorded | The access mode and catalog scope the owner chose | | Member is an `OWNER` | Always the connector's default: full access on the curated toolset (read-only on Free) | A connector added after the owner last saved the panel reaches members as `READ_ONLY` until the owner decides. See [Access modes & tool catalogs](/docs/concepts/access-modes/). ### Guardrails that apply to everyone Some rules are not about role at all. They hold no matter who is calling. - You cannot change your own role. - You cannot remove yourself from the organization. - The last `OWNER` cannot be removed or demoted. An organization always has one. - A workspace from a different organization is not reachable at any role. That boundary is checked before the role is even consulted. ### Invitations Owners and admins issue invite links from `/settings/team`. A link can target a specific email address and carries the role the invitee will receive. Links expire after **14 days** and are single-use. Someone who signs in on your corporate domain without an invitation lands on `/join` and waits — they do not silently join the team. ### How this reaches the AI client When a client runs the OAuth flow, the consent screen shows a three-level tree of team, workspace and connector, listing every verified connector that user may access. The user ticks which ones to grant. Nothing about that grant is frozen. Permissions are not baked into the access token — on every request the gateway re-reads the role and both allowlists as they stand at that moment, and re-checks that the connection is still active and its credential still verified. That has one consequence worth planning around: - Removing a member drops their connections within one request. - Narrowing an allowlist takes effect on the next call, not at the next login. - Demoting someone takes away what their old role allowed, immediately. There is no window in which a stale token still works, and no "revoke and wait for expiry" step. --- ## Organizations & workspaces URL: https://www.docs.popmcp.com/docs/concepts/organizations-and-workspaces/ Summary: Your organization is the team and its billing. Each workspace in it holds at most one connection per provider, so teams split by client or brand. PopMCP has two levels of tenancy. ``` Organization (team) └── Workspace (sub-account) ├── ProviderConnection one encrypted credential per provider └── McpInstance one hosted MCP surface per connection ``` ### Organization The top-level tenant, meaning your team. Billing, membership, invitations and the IP allowlist all live here. How an organization gets claimed: - The first person signing in from a corporate domain creates that domain's organization and becomes its `OWNER`. - Anyone else on the same domain who signs in without an invitation lands on `/join` and waits for an owner or admin to send them an invite link. - A public email domain such as Gmail or Outlook gets its own personal organization per user, because a shared domain would otherwise put strangers in one team. ### Workspace A workspace sits inside an organization. It is provider-agnostic and holds at most one connection per provider. That constraint has a practical consequence. Connecting a second Klaviyo account means creating a second workspace. Teams typically run one workspace per client, brand, or region. Only an owner can create or delete a workspace. Owners and admins can rename one and manage who is in it. A workspace is the unit of access control. On Scale and Enterprise, members can be restricted to specific workspaces. OAuth grants are issued per connector within a workspace. --- ## ChatGPT URL: https://www.docs.popmcp.com/docs/clients/chatgpt/ Summary: Add PopMCP to ChatGPT in developer mode on a paid plan: enter the MCP server URL with OAuth, approve the connectors it can reach, then use it in chat. Custom connectors need ChatGPT developer mode on the web, which is not available on Free. Which paid plans get full read and write access, and whether a workspace admin has to switch it on first, varies by plan: check OpenAI's [developer mode article](https://help.openai.com/en/articles/12584461-developer-mode-and-mcp-apps-in-chatgpt) for your account. #### Open connector settings In ChatGPT, open **Settings → Security and login** and turn on **Developer mode**. Then go to **Plugins** and select the plus button. #### Add the gateway | Field | Value | | --- | --- | | Name | `PopMCP` | | MCP server URL | `https://app.popmcp.com/mcp` | | Authentication | OAuth | #### Approve the connectors ChatGPT sends you to PopMCP's consent screen. Tick the connectors to grant and approve. #### Use it In the composer, choose **Developer mode** from the plus menu and select PopMCP, then ask something that needs it. ChatGPT calls `list_connections` first to see what it has. --- ## Claude Desktop URL: https://www.docs.popmcp.com/docs/clients/claude-desktop/ Summary: Add PopMCP to Claude Desktop as a custom connector with just the MCP URL and no token, then pick the integrations it can reach on the consent screen. #### Open connector settings In Claude Desktop, go to **Settings → Connectors → Add custom connector**. #### Add the gateway URL | Field | Value | | --- | --- | | Name | `PopMCP` | | URL | `https://app.popmcp.com/mcp` | There is no token to paste. Claude registers itself with PopMCP automatically. #### Approve the connectors Claude opens a browser window with PopMCP's consent screen, a tree of team, workspace and connector. Tick the connectors this client should reach and approve. #### Confirm the tools loaded Open a new chat and check the connector shows as connected. Ask Claude to `list_connections` to see exactly what it was granted. Granting a connector here grants it to Claude Desktop specifically. Other clients run their own flow and get their own grants, so you can give Claude a different set of connectors than another tool. Read-only is set per teammate and connection, not per client. --- ## Claude Web URL: https://www.docs.popmcp.com/docs/clients/claude-web/ Summary: On Pro or Max you add the connector yourself; on Team or Enterprise an owner adds it once and others enable it. Then approve what Claude can reach. #### Open connector settings On a Pro or Max plan, go to **Settings → Customize → Connectors**, click **+**, then choose **Add custom connector**. On Team or Enterprise, an owner adds it once from **Organization settings → Connectors → Add → Custom → Web**. Everyone else then enables it from **Customize → Connectors**. #### Add the gateway URL | Field | Value | | --- | --- | | Name | `PopMCP` | | URL | `https://app.popmcp.com/mcp` | Leave the advanced OAuth fields empty. Claude registers itself with PopMCP automatically. #### Approve the connectors Claude sends you to PopMCP's consent screen, a tree of team, workspace and connector. Tick the connectors this client should reach and approve. #### Confirm the tools loaded Start a new chat and ask Claude to `list_connections`. It reports exactly what it was granted. Claude on the web and Claude Desktop are separate clients. Each runs its own OAuth flow and holds its own grants, so connecting one does not connect the other. --- ## Codex URL: https://www.docs.popmcp.com/docs/clients/codex/ Summary: Register PopMCP in ~/.codex/config.toml, sign in so Codex runs the OAuth consent in your browser and stores the token, then list servers to confirm. Add the server to `~/.codex/config.toml`: ```toml title="~/.codex/config.toml" [mcp_servers.popmcp] url = "https://app.popmcp.com/mcp" ``` Then sign in. Codex registers with PopMCP, opens the consent screen in your browser, and stores the token itself. ```bash codex mcp login popmcp ``` ### Confirm ```bash codex mcp list ``` --- ## OpenCode URL: https://www.docs.popmcp.com/docs/clients/opencode/ Summary: Set up PopMCP as a remote server in your OpenCode config, for one repository or everywhere. No API key or headers: OpenCode runs OAuth on first use. Add PopMCP under the `mcp` key in your OpenCode config. Use `opencode.json` in the project root to scope it to one repository, or your global OpenCode config to make it available everywhere. ```json title="opencode.json" { "$schema": "https://opencode.ai/config.json", "mcp": { "popmcp": { "type": "remote", "url": "https://app.popmcp.com/mcp", "enabled": true } } } ``` `"type": "remote"` is what tells OpenCode this is a hosted server rather than a local command. There is no `headers` block and no API key — PopMCP is OAuth-only, and OpenCode runs that flow for you on first use. ### Confirm Start OpenCode. On the first run it opens PopMCP's consent screen in your browser, where you tick the connectors to grant. Once approved, ask it to `list_connections` to see what it received. If you are editing a config that already has an `mcp` block, add `popmcp` alongside the existing entries rather than replacing them. --- ## ZCode URL: https://www.docs.popmcp.com/docs/clients/zcode/ Summary: Add PopMCP to Z.ai's ZCode desktop app as an HTTP server, for your user or one workspace, with no headers or keys. Then approve what it can reach. #### Open the MCP settings In ZCode, go to **Settings → MCP Servers** and click **New MCP Server** in the upper right. #### Fill in the server | Field | Value | | --- | --- | | Scope | `User` for every workspace, or `Workspace` for this project only | | Name | `PopMCP` | | Type | `HTTP` | | Service URL | `https://app.popmcp.com/mcp` | Leave **Headers** and **Environment variables** empty. PopMCP authenticates with OAuth, not a static key. If you prefer JSON, switch to **Full configuration** and paste the server block directly. #### Enable it Click **Add**, then confirm the server shows as enabled in the MCP server list. #### Approve the connectors ZCode opens PopMCP's consent screen. Tick the connectors this client should reach and approve, then ask it to `list_connections` to confirm what it was granted. Your manually added servers appear under **Configured MCP servers**, separate from the built-in plugin servers, so PopMCP sits alongside ZCode's own tools rather than replacing them. --- ## Integrations URL: https://www.docs.popmcp.com/docs/integrations/ Summary: Search every PopMCP integration by name, browse by category, or filter to API key, OAuth or no approval, then open its step-by-step setup guide. Every connector below has its own walkthrough: how to obtain the credential, what PopMCP asks for, which permissions are requested, and what to do when it fails. --- # Integrations ## ActiveCampaign URL: https://www.docs.popmcp.com/docs/integrations/activecampaign/ Summary: Connect ActiveCampaign to manage contacts, tags, lists, and deals, and run campaigns, automations, and segments. You end up pasting two values that sit one above the other on a single ActiveCampaign page: your account's API URL, which looks like https://your-account.api-us1.com, and the API Key beneath it. - Auth: API credentials - Setup time: 3 min - API base URL: https://your-account.api-us1.com/api/3 - Credentials screen: https://youraccount.activehosted.com/app/settings/developer - Provider docs: https://developers.activecampaign.com/reference/authentication ### Before you begin - ActiveCampaign account on any plan - A user login that can open Settings. The key shown is per user, so the connection inherits that user's permissions. - Admin rights if you want to create a dedicated integration user instead of using your own key ### Get your credentials #### 1. Open Settings Sign in to ActiveCampaign and click Settings, the gear icon at the bottom of the left sidebar above your name. Screen: https://youraccount.activehosted.com/app/settings #### 2. Go to the Developer tab Click Developer in the Settings sub-navigation. The direct address is `https://youraccount.activehosted.com/app/settings/developer`, where `youraccount` is your ActiveCampaign subdomain. Screen: https://youraccount.activehosted.com/app/settings/developer #### 3. Copy the URL and the Key Under API Access, click Copy beside URL and paste it into the PopMCP API URL field, then copy Key into the PopMCP API Key field. Copy the URL exactly, because the region segment is not always `api-us1`. Screen: https://youraccount.activehosted.com/app/settings/developer #### 4. Save the connection in PopMCP Check both fields are filled in PopMCP and click Save. PopMCP sends the key as the `Api-Token` header against `/api/3/`. ### Fields PopMCP asks for - API URL (apiUrl) [required]: In ActiveCampaign go to Settings → Developer. Copy the URL under "API Access" (it looks like https://your-account.api-us1.com). You can paste your app URL (…activehosted.com) too, and we'll convert it. This is the account the MCP is locked to. - API Key (apiKey) [required]: Settings → Developer → API Access → Key. Copy it exactly. It's sent as the Api-Token header and stored encrypted; used server-side only. ### Verify PopMCP shows the ActiveCampaign connector as Connected and reports the account it is locked to. Asking for your lists or a contact count returns real data from that account. ### Troubleshooting #### 403 Forbidden, "You do not have permission to access this resource" Cause: The API Key is correct but the API URL points at a different account, or the key belongs to a user without access. Fix: Re-copy the URL and the Key together from **Settings** then **Developer** while signed in as the intended user. #### Requests 404 or the connection never validates Cause: You pasted the app URL ending in activehosted.com, or you assumed api-us1 when the account sits in another region. Fix: Use the exact URL shown under **API Access** on the Developer tab. PopMCP converts an app URL for you, but the Developer value is authoritative. #### The key stops working after a staff change Cause: The key belonged to a user who was deactivated or deleted. Fix: Create a dedicated integration user, take that user's Developer key and reconnect. #### 429 Too Many Requests Cause: More than 5 requests per second on the account. Fix: Back off for the number of seconds in the Retry-After header and watch RateLimit-Remaining to stay under the cap. --- ## Acuity Scheduling URL: https://www.docs.popmcp.com/docs/integrations/acuity-scheduling/ Summary: Connect Acuity Scheduling to book and manage appointments, availability, clients, intake forms, coupons, and orders. You paste two values from one Acuity screen: the numeric User ID and the matching API Key. PopMCP sends them together as HTTP Basic auth. - Auth: API credentials - Setup time: 3 min - API base URL: https://acuityscheduling.com/api/v1 - Credentials screen: https://secure.acuityscheduling.com/app.php?action=settings&key=api - Provider docs: https://developers.acuityscheduling.com/reference/quick-start ### Approval required before this works No one reviews you, but Acuity (Squarespace Scheduling) only exposes API credentials on the Premium plan - "Custom API and CSS for Developers" is listed as a Premium-tier feature on the Acuity pricing page. - Typical wait: None - credentials appear immediately once the account is on Premium - Cost: Per acuityscheduling.com/pricing: Premium is $49/month billed annually or $61/month billed monthly. Starter ($16 annual / $20 monthly) and Standard ($27 annual / $34 monthly) do not include the API. - Blocked until approved: Everything. On Starter or Standard the API credentials screen does not issue a User ID and API Key, so every request fails 401, and webhooks are unavailable too. - Works meanwhile: The 7-day free trial runs on the top tier, so you can pull real credentials and build the whole integration before paying; you can also read the docs and model the endpoints. ### Before you begin - An Acuity Scheduling (formerly Squarespace Scheduling) account on any paid plan - Owner or admin sign-in. Team-member logins without Business Settings access cannot open Integrations - The credentials belong to the whole account, so the connection is locked to that one Acuity business ### Get your credentials #### 1. Open Integrations under Business Settings Sign in at secure.acuityscheduling.com. In the left sidebar scroll to the Business Settings group and click Integrations. Screen: https://secure.acuityscheduling.com/app.php?action=settings&key=api #### 2. Open Analytics + Custom Integrations and click view credentials Click Analytics + Custom Integrations in the category menu, then scroll to the API block. Click view credentials, next to the Developer's Site button. Screen: https://secure.acuityscheduling.com/app.php?action=settings&key=api #### 3. Copy the User ID and API Key Copy the numeric User ID and the API Key from the expanded panel. The User ID is the Basic-auth username and the API Key is the password. Screen: https://secure.acuityscheduling.com/app.php?action=settings&key=api #### 4. Paste both values into PopMCP Put the numeric value in User ID and the secret in API Key, then click connect. ### Fields PopMCP asks for - User ID (userId) [required]: In Acuity go to Bizz Settings → Integrations → API and click "view credentials". Copy the numeric User ID. This is the account the MCP is locked to. - API Key (apiKey) [required]: Same screen (Integrations → API → view credentials): copy the API Key. It's sent as HTTP Basic auth and stored encrypted; used server-side only. ### Verify PopMCP marks Acuity Scheduling as Connected and the appointment-type tool returns your real appointment types instead of an auth error. ### Troubleshooting #### 401 Unauthorized Cause: The User ID and API Key are swapped, mistyped, or copied with surrounding whitespace. A stray leading space in the key is the most common cause. Fix: Reopen Integrations, Analytics + Custom Integrations, API, view credentials, and re-copy both values. Make sure the numeric one goes in User ID. #### No API block on the Integrations page Cause: You are signed in as a team member whose permissions exclude Business Settings, or on a sub-account rather than the owning account. Fix: Sign in as the account owner or ask them to read the credentials for you. #### The key stopped working after months of use Cause: Acuity does not email or rotate these on a schedule, so the same pair stays valid until somebody regenerates it. Fix: Check whether a colleague clicked Regenerate API Key, then re-copy the current pair into PopMCP. #### 429 Too Many Requests Cause: Acuity limits callers to 10 requests per second and 20 concurrent connections per IP. Fix: Space out bulk operations. The limit resets immediately, so a short retry with backoff clears it. --- ## AfterShip URL: https://www.docs.popmcp.com/docs/integrations/aftership/ Summary: Connect AfterShip to track shipments and delivery dates, manage returns, buy shipping labels, sync orders, and handle protection and warranty claims. You paste one AfterShip organization API key (it starts with asat_). It works for every product you give it Read or Write access to, and an optional Environment field sends Shipping and Protection calls to AfterShip's sandbox. - Auth: API credentials - Setup time: 4 min - API base URL: https://api.aftership.com - Credentials screen: https://organization.automizely.com/api-keys - Provider docs: https://www.aftership.com/docs/tracking/quickstart/authentication ### Approval required before this works No one reviews you, but AfterShip sells API access per product: the Tracking API needs Tracking Premium or Enterprise, the Returns API needs Returns Premium or Enterprise, and the labels and rates APIs need Shipping Pro or Enterprise. AfterShip's help center says Tracking Essentials users cannot create API keys or use the Tracking API. - Typical wait: None. A product answers as soon as its plan includes the API. - Cost: From AfterShip's pricing pages: Tracking Premium starts at $59/month, Returns Premium at $99/month and Shipping Pro at $69/month. Enterprise tiers are custom. - Blocked until approved: Each product separately. Without Tracking Premium the tracking tools fail; without Returns Premium the returns tools fail; without Shipping Pro rate quotes and label purchases fail. Products that are on an API plan keep working with the same key. - Works meanwhile: Connect with the products your plans already cover. PopMCP records which products answered at connect time, and you can give the key access to the others once their plans include the API. ### Before you begin - An AfterShip plan that includes the API for each product you want: Tracking API and webhooks come with Tracking Premium or Enterprise, the Returns API with Returns Premium or Enterprise, and the labels and rates APIs with Shipping Pro or Enterprise. - An AfterShip member role that can view and edit API keys in your organization - A short list of the products the AI should use (Tracking, Returns, Shipping, Protection, Parser, Commerce, Organization), because you grant Read or Write per product ### Get your credentials #### 1. Open API keys Sign in to AfterShip and open Settings, API keys, or go straight to organization.automizely.com/api-keys. Keys made here belong to the whole organization and work across every AfterShip product. Screen: https://organization.automizely.com/api-keys #### 2. Name the key and keep the signature header on API key Click Create API key and enter a name such as `PopMCP`. For the signature header, keep API key. AES and RSA keys require every request to be signed, which PopMCP does not do, so they fail with 401. Screen: https://organization.automizely.com/api-keys #### 3. Grant Read or Write per product, then save Set each product the AI should use to Read or Write: Tracking, Returns, Shipping, Protection, Parser, Commerce and Organization. Read lets the AI look; Write also lets it create trackings, act on returns, buy labels or insure orders. Leave the rest without access, then click Save. Screen: https://organization.automizely.com/api-keys #### 4. Copy the key Copy the new key's value. It starts with `asat_`. Screen: https://organization.automizely.com/api-keys #### 5. Paste the key into PopMCP In PopMCP, paste the key into API key. Leave Environment (optional) blank for your live account, or type `sandbox` to send Shipping and Protection calls to AfterShip's test environment, where labels are free test labels and coverages are not charged. Click Connect AfterShip. ### Fields PopMCP asks for - API key (apiKey) [required]: AfterShip → Settings → API keys (https://organization.automizely.com/api-keys) → Create an API key. Keep the signature header on "API key" and tick Read or Write for Tracking, Returns, Shipping, Protection, Parser, Commerce and Organization as needed. Sent as the as-api-key header; stored encrypted. - Environment (optional) (environment): Leave blank for your live account. Enter "sandbox" to send Shipping and Protection calls to AfterShip's test environment (free test labels, no coverage charges). The same key works in both. ### Verify PopMCP shows AfterShip as Verified (or `AfterShip (sandbox)`), and the connection profile lists which products the key could read at connect time. Asking the AI which parcels hit a delivery exception this week returns real trackings. ### Troubleshooting #### 401 `The API key is invalid.` Cause: The key was copied incompletely or deleted, or its signature header is AES or RSA, which needs signed requests. Fix: Create a key with the signature header set to API key, copy it in full, and reconnect. #### AfterShip accepted this key, but it can't read Tracking, Returns, Shipping, Commerce, Protection, Warranty or Organization data Cause: Every product on the key is set to no access, or the organization has no plan that includes the API for those products. Fix: Edit the key under Settings, API keys and give Read or Write to the products you use, then connect again. #### Some products answer 403 while others work Cause: That product is set to no access on the key, or its plan does not include the API (for example Tracking Essentials). Fix: Grant the product Read or Write on the key, or move that product to a plan with API access. The connection profile shows which products answered at connect time. #### Commerce tools ask which store to use Cause: AfterShip needs the Commerce store in an as-store-id header, and your organization has more than one store. Fix: Pick a store id from the list in the error, or ask the AI to run list_stores first. With a single store PopMCP fills it in. #### Labels made in sandbox are missing from the live account Cause: Sandbox shipper accounts and labels are separate from live ones. Only Shipping and Protection use the sandbox; every other product stays live. Fix: Reconnect with Environment left blank when you are ready to buy real labels. #### 429 TooManyRequests Cause: Tracking limits each endpoint separately (listing trackings allows 6 requests a second, courier detection 3), and Shipping and Returns allow 10 requests a second per organization. Fix: Slow down and retry. List trackings with filters such as tracking_numbers or a date range instead of paging through everything. #### Environment must be production or sandbox Cause: The Environment field contains something other than those two values. Fix: Leave it blank for your live account, or type sandbox. --- ## Ahrefs URL: https://www.docs.popmcp.com/docs/integrations/ahrefs/ Summary: Connect Ahrefs to research backlinks, organic keywords, competitors, rank tracking, site audits, and domain ratings. You paste a single Ahrefs API v3 key, created in Account settings under API keys. PopMCP sends it as an Authorization: Bearer header. - Auth: API credentials - Setup time: 4 min - API base URL: https://api.ahrefs.com/v3 - Credentials screen: https://app.ahrefs.com/account/api-keys - Provider docs: https://docs.ahrefs.com/docs/api/reference/introduction ### Approval required before this works No human approval, but Ahrefs only lets workspace owners/admins on a paid Lite plan or higher mint an API v3 key - the free Webmaster Tools tier and the $29 Starter plan cannot use the API at all. - Typical wait: None - the key is issued instantly once you are on Lite or above - Cost: Plan prices on ahrefs.com/pricing: Lite $129/mo, Standard $249/mo, Advanced $449/mo (monthly billing; paying annually saves up to 17%), Enterprise $1,499/mo on an annual commitment. API units are included per plan - Lite 100,000, Standard 400,000, Advanced 1,000,000, Enterprise 2,000,000 per month - with pay-as-you-go top-ups on eligible plans. - Blocked until approved: Every billable endpoint (Site Explorer, Keywords Explorer, backlinks, batch analysis) on the free Ahrefs Webmaster Tools tier and on the $29 Starter plan - Ahrefs states API v3 is available to "Lite and higher subscription plans", so below Lite there is no key to create. Row caps also bind by tier: 100 rows/request on Lite, rising through Standard and Advanced to uncapped on Enterprise. - Works meanwhile: On any paid plan you can create the key and run the free test queries, plus Rank Tracker, Management and Public endpoints, which cost no units. ### Before you begin - An Ahrefs subscription on an eligible paid plan. Other plans get only a limited set of free test queries - Workspace owner or admin role. Only those roles can create and manage API keys - API calls burn API units from the workspace balance, so agree a budget before pointing an AI agent at it ### Get your credentials #### 1. Open Account settings and click API keys Sign in to Ahrefs, click your avatar in the top right and choose Account settings. Click API keys in the settings sidebar. Screen: https://app.ahrefs.com/account/api-keys #### 2. Create a key for PopMCP Click Create API key and name it `PopMCP`. Set a Monthly API units limit if you want a cap on what the connection can spend. Screen: https://app.ahrefs.com/account/api-keys #### 3. Copy the key before you close the dialog Ahrefs shows the full key once. Click Copy and store it somewhere safe. Screen: https://app.ahrefs.com/account/api-keys #### 4. Paste the key into PopMCP Put the value in API key and connect. ### Fields PopMCP asks for - API key (apiKey) [required]: In Ahrefs: click your avatar (top right) → Account settings → API keys → create a key (workspace owners/admins only; requires an Enterprise plan with API access). Copy it and paste here. Keys last 1 year. Stored encrypted. ### Verify PopMCP shows Ahrefs as Connected and a domain-rating or backlinks lookup returns metrics rather than an authorization error. ### Troubleshooting #### 401 Unauthorized Cause: Each key lasts one year from creation. The key may have expired, been deleted, or been killed because the person who created it left the workspace. Fix: Create a fresh key in Account settings, API keys, and reconnect PopMCP with it. Set a reminder roughly 11 months out. #### 403, or no API keys item in the sidebar Cause: You are a member rather than an owner or admin, or the plan is not one of the eligible paid plans. Fix: Ask a workspace owner to create the key, or move the workspace to an eligible plan. #### 429 Too Many Requests Cause: More than 60 requests in a minute from the same key. Fix: Slow the agent down and retry with backoff. The window is a rolling minute. #### Requests suddenly fail mid-month Cause: The key hit its monthly API-unit limit, or the workspace ran out of units. Fix: Raise the per-key limit on the API keys page, or top up units under Limits & usage. --- ## Airtable URL: https://www.docs.popmcp.com/docs/integrations/airtable/ Summary: Connect Airtable to manage bases, tables, records, fields, views, comments, and attachments for your team. One Airtable personal access token, scoped to the bases you pick and shown exactly once, pasted into PopMCP's Personal access token field. - Auth: API credentials - Setup time: 4 min - API base URL: https://api.airtable.com/v0 - Credentials screen: https://airtable.com/create/tokens - Provider docs: https://airtable.com/developers/web/api/authentication ### Before you begin - Airtable account on any plan, including Free - Collaborator access to the bases you want PopMCP to reach, because a token can never exceed the permissions of the person who made it - Enterprise Scale plan only if you need the enterprise.* admin scopes ### Get your credentials #### 1. Open Personal access tokens in Builder hub Click your profile icon at the top right of the Airtable home screen and choose Builder hub, then open Development and Personal access tokens. The direct link is airtable.com/create/tokens. Screen: https://airtable.com/create/tokens #### 2. Name the token and add scopes Click Create new token and type a name such as `PopMCP`. Click + Add a scope for each permission you need, at minimum `data.records:read`, `data.records:write` and `schema.bases:read`. #### 3. Grant the token access to your bases Under Access, click + Add a base to pick individual bases, or + Add all resources to include every base in a workspace you own. Then click Create token. #### 4. Copy the token immediately Airtable shows the `pat` string in a one-time dialog. Click Copy and paste it straight into PopMCP. ### Fields PopMCP asks for - Personal access token (accessToken) [required]: Create one at airtable.com/create/tokens. Add the scopes you need (data.records:read/write, data.recordComments:read/write, schema.bases:read/write, webhook:manage, user.email:read; enterprise.* for admin) and add the bases/workspaces the token may access. An OAuth access token works here too. Stored encrypted. ### Verify PopMCP shows Airtable as Connected, and a list-bases tool call returns exactly the bases you granted the token and nothing more. ### Troubleshooting #### 401 Unauthorized Cause: Token mistyped, truncated, deleted or regenerated in Builder hub. Fix: Create or regenerate the token at airtable.com/create/tokens and paste the fresh pat string into PopMCP. #### 404 NOT_FOUND on a base ID you know exists Cause: Airtable returns 404 rather than 403 for bases outside the token's access list. Fix: Edit the token, click + Add a base, add that base, and click Save changes. No new token is needed. #### 403 NOT_AUTHORIZED or INVALID_PERMISSIONS Cause: The base is granted but the matching scope is missing, for example writing records with only data.records:read. Fix: Edit the token, click + Add a scope for the missing permission, and save. #### You closed the dialog before copying the token Cause: Airtable displays the pat string exactly once. Fix: Open the ... menu next to the token and choose Regenerate token, then copy the new value. #### 429 with a required 30-second wait Cause: More than 5 requests per second against one base, or 50 per second across the whole token. Fix: Let PopMCP back off for 30 seconds and use page sizes of 100 instead of many small calls. #### enterprise.* scopes are greyed out Cause: Those scopes are limited to Enterprise Scale plans. Fix: Use the standard data and schema scopes. Enterprise admin endpoints are not available on other plans. --- ## AiSensy URL: https://www.docs.popmcp.com/docs/integrations/aisensy/ Summary: Connect AiSensy to send WhatsApp campaigns and messages, manage contacts and templates, and track campaign analytics. You paste the project's API key from AiSensy's Manage screen. Pro-plan projects also hand you a Project ID and an App Password, which unlock the Project API tools. - Auth: API credentials - Setup time: 6 min - API base URL: https://backend.aisensy.com - Credentials screen: https://app.aisensy.com/manage - Provider docs: https://aisensy.stoplight.io/docs/project-api ### Approval required before this works Meta - not AiSensy - must approve the WhatsApp Business Account behind the key: the display name is reviewed, each message template is reviewed, and Facebook Business Manager verification is needed for full access. - Typical wait: AiSensy states "the majority of reviews are completed instantly (within 10 minutes) - only the Display Name can take max. 3-4 hours to get approved." Message templates typically clear in minutes to 24 hours, and Meta Business verification (needed to lift messaging limits) commonly takes 1-5 business days. - Cost: AiSensy's own approval steps are free: it runs a Free Forever plan that includes WhatsApp Business API access and the API key. Paid tiers on aisensy.com/pricing are listed in rupees - about Rs 2,500/month for the chatbot builder tier and Rs 3,500/month for the AI agent tier, cheaper on annual billing. Meta bills separately per conversation. - Blocked until approved: Sending anything. The API key is visible immediately, but the campaign endpoint (POST https://backend.aisensy.com/campaign/t1/api/v2) requires a live API campaign built on an approved template attached to a verified WABA - until the display name and template pass Meta review, calls fail or messages are never delivered. - Works meanwhile: Create the AiSensy account, connect a dedicated phone number not already on WhatsApp, copy the API key from Manage > API Key, draft templates, and wire up the integration code. ### Before you begin - An AiSensy project with a verified WhatsApp Business API number (a live, approved WABA) - At least one approved WhatsApp template message. API campaigns can only send approved templates - A live API campaign, because the Send Campaign tool sends by campaign name - A Pro plan if you want the Project API tools, plus a request to AiSensy support for the Project ID and App Password. Basic plans expose only the API key - Direct API and Partner API access are granted by AiSensy on request. Skip those fields unless AiSensy has enabled them for you ### Get your credentials #### 1. Sign in and switch to the right project Go to app.aisensy.com and sign in. Use the project switcher above the sidebar to select the project holding the WhatsApp number you want PopMCP to use. Screen: https://app.aisensy.com/dashboard #### 2. Launch a live API campaign Open Campaigns, click Launch and choose API Campaign. Pick your approved template, set the campaign live, and copy its name exactly. Screen: https://app.aisensy.com/campaigns #### 3. Copy the credentials from Manage Click Manage in the sidebar, then API Keys. Copy the API Key. On a Pro plan also copy the Project ID and App Password that AiSensy support issued for the project. Screen: https://app.aisensy.com/manage #### 4. Paste the values into PopMCP Put the key in API key. Fill App Password and Project ID only if your project showed them, and leave Business ID, Direct API token, Partner API key and Partner ID empty. ### Fields PopMCP asks for - API key (apiKey) [required]: Dashboard → open your project → Manage → API Key → Generate/Copy. Powers the Send Campaign tool (the key is sent in the request body, no header). Stored encrypted; used server-side only. - App Password (optional) (appPassword): Unlocks the Project API (messaging, contacts, templates, campaigns, webhooks, catalog, media). Sent as the X-AiSensy-Project-API-Pwd header. Set it on the project's API/Manage screen. - Project ID (optional) (projectId): Required alongside the App Password for every Project API tool; it scopes the calls to your project. Find it in the dashboard URL or project settings. - Business ID (optional) (businessId): Only needed for the Get Business Profile project tool. - Direct API token (optional, advanced) (directApiToken): Enables the Direct API (WhatsApp Cloud-API-style messaging, flows, media, WABA, phone numbers, payments). Provide username:password:projectId; we base64-encode it and mint the bearer JWT automatically. Requires Direct API access from AiSensy. - Partner API key (optional, advanced) (partnerApiKey): Enables the Partner/white-label API (manage client projects, billing, plans, WABA onboarding). Sent as the X-AiSensy-Partner-API-Key header. For AiSensy partners only. - Partner ID (optional, advanced) (partnerId): Required alongside the Partner API key for every Partner API tool. ### Verify PopMCP shows AiSensy as Connected, and a test send through your live API campaign delivers a WhatsApp message to the destination number you supply. ### Troubleshooting #### Campaign not found or invalid campaign Cause: The campaign name does not match, or the API campaign was never set live. Fix: Open Campaigns and copy the name exactly as listed, confirming its status is Live. #### Sends fail after working fine Cause: Someone regenerated the project's API key, which invalidates the previous one. Fix: Copy the new key from Manage, API Keys, and reconnect PopMCP. #### No Project ID or App Password on the API Keys screen Cause: The project is on the Basic plan, which exposes only the campaign API key, or the Pro credentials have not been issued yet. Fix: Move the project to Pro, then ask AiSensy support over Live Chat to issue the Project ID and App Password. #### Project API tools return unauthorized Cause: App Password or Project ID missing, mismatched, or belonging to a different project. Fix: Re-copy both from the same project's API Keys screen. They must be supplied as a pair. #### Template rejected on send Cause: The template is not approved by Meta, or the variable count does not match the template body. Fix: Check the template's status under Templates and pass exactly as many parameters as the body defines. --- ## Algolia URL: https://www.docs.popmcp.com/docs/integrations/algolia/ Summary: Connect Algolia to search your indices, add and update records, tune relevance with settings, synonyms and rules, and review search analytics. You paste two values into PopMCP: your Algolia Application ID and an API key (the Admin API key, the Write API key or a key you create), both copied from the API Keys page of the Algolia dashboard. - Auth: API credentials - Setup time: 2 min - API base URL: https://{APPLICATION_ID}.algolia.net - Credentials screen: https://dashboard.algolia.com/account/api-keys - Provider docs: https://www.algolia.com/doc/rest-api/search ### Before you begin - An Algolia account with at least one application. Any plan works, including the free Build plan - Access to the application's API keys: the owner and admins see the Admin API key; other team members see the keys their role allows - Search analytics, A/B testing, the Usage API and infrastructure monitoring need a plan that includes them (Premium or Elevate for most) ### Get your credentials #### 1. Sign in and pick the application Sign in at dashboard.algolia.com. If you have several applications, choose the one the AI should work on from the application menu at the top. One PopMCP connection works on one application; connect again for another one. Screen: https://dashboard.algolia.com #### 2. Open API Keys and copy the Application ID and a key Open Settings, then API Keys. Copy the Application ID at the top. Then copy the Admin API key to let the AI do everything, including managing API keys and A/B tests, or the Write API key for records, settings, synonyms, rules and analytics. The Search API key only searches. Screen: https://dashboard.algolia.com/account/api-keys #### 3. Optional: create a key with fewer permissions To limit what the AI can do, click All API Keys, then create a new API key. Give it a description such as PopMCP, tick the permissions (ACL) it should have, for example search, browse, listIndexes, settings, analytics and logs for read-only work, optionally limit it to some indices, and click Create. Paste that key into PopMCP instead of the Admin API key. Screen: https://dashboard.algolia.com/account/api-keys #### 4. Optional: copy the Crawler credentials Only if the AI should manage the Algolia Crawler. On the left sidebar select Data sources, then Crawler, and open its Settings page. Copy the Crawler user ID and the Crawler API key: the Crawler has its own credentials, separate from the application's keys. Screen: https://dashboard.algolia.com/crawler/settings #### 5. Paste them into PopMCP In PopMCP, paste the Application ID and the API key and connect. Leave the analytics region blank: PopMCP finds it. Crawler credentials and the Premium Usage API key and Monitoring API key go under More options when you need them. PopMCP checks the key by reading its own permissions. ### Fields PopMCP asks for - Application ID (appId) [required]: In the Algolia dashboard, open Settings, then API Keys. The Application ID is at the top of the page. - API key (apiKey) [required]: On the same page, copy the Admin API key (everything) or the Write API key (records, settings and analytics). Stored encrypted and used only on our servers. - Analytics region (region): Leave blank and PopMCP finds it. Only set it if analytics calls say the region does not match. - Crawler user ID (crawlerUserId): From the Crawler's Settings page (Data sources, then Crawler, then Settings). The Crawler has its own credentials. - Crawler API key (crawlerApiKey): On the same Crawler Settings page, next to the user ID. - Usage API key (usageApiKey): For usage statistics (operations, records, capacity). Listed under Usage on the API Keys page. - Monitoring API key (monitoringApiKey): For server and infrastructure metrics. Listed under Monitoring on the API Keys page. ### Verify PopMCP marks the connection Verified as Algolia app ABCDE12345 and notes the key's kind and permissions and the application's analytics region. Asking the AI to list your indices, or to search one, shows your data. ### Troubleshooting #### "Algolia did not accept this Application ID and API key together." Cause: The key belongs to another application, was copied incompletely, or was deleted. Fix: Copy the Application ID and the key again from the same API Keys page and paste only the values. #### "Algolia has no application with the Application ID ..." Cause: The Application ID is mistyped, or a key was pasted into the Application ID box. Fix: Copy the Application ID from the top of the API Keys page: it is about ten capital letters and digits, like ABCDE12345. #### A tool answers 403 "Invalid Application-ID or API key" although the connection is verified Cause: Algolia gives this answer when the key lacks the permission a call needs. The error from PopMCP names the missing permission. Fix: Reconnect with the Admin API key, or with a key that has that permission, or ask for something the current key can do. #### Analytics or A/B testing tools answer 401 or 402 Cause: The key lacks the analytics permission, or the plan does not include the Analytics or A/B testing API. Fix: Use the Admin or Write API key or a key with the analytics permission; check the plan on the Billing page. #### "The log processing region does not match" Cause: The application's analytics data lives in the other region (US or Europe). Fix: PopMCP retries the other region by itself. If it keeps happening, set Analytics region to us or eu under More options; the dashboard shows it on the Infrastructure page (dashboard.algolia.com/account/infrastructure/analytics). #### "The Crawler API uses its own credentials" Cause: A Crawler tool was used without the Crawler user ID and API key on the connection. Fix: Copy both from Data sources, Crawler, Settings and add them under More options. --- ## AliExpress URL: https://www.docs.popmcp.com/docs/integrations/aliexpress/ Summary: Connect AliExpress to search products for dropshipping, read prices and stock, quote shipping, place and pay orders, track deliveries, and generate affiliate links. You end up with two values from an approved AliExpress Open Platform app. The App Key, a short numeric ID, and the App Secret. Paste both into PopMCP before running the OAuth handshake. - Auth: OAuth authorization - Setup time: 20 min, plus 1 to 2 business days waiting for AliExpress to approve the app - API base URL: https://api-sg.aliexpress.com/sync - Credentials screen: https://open.aliexpress.com/app/index.htm - Provider docs: https://openservice.aliexpress.com/doc/doc.htm ### Approval required before this works AliExpress Open Platform staff must approve both your developer account and each app's API permission request before an App Key and Secret are issued. - Typical wait: AliExpress does not publish an SLA. Developers commonly report the app sitting "Under Review" for roughly 1-5 working days; treat any figure as community-reported, not vendor-stated. - Cost: Free - registering as a developer and submitting an app costs nothing. - Blocked until approved: Every API call. Without an approved app you have no App Key or App Secret, so there is no OAuth authorization URL and no signed request to make - affiliate, dropshipping (DS) and seller/solution API families each need their permission granted explicitly. - Works meanwhile: Create the UAC account, sign the Open Platform agreement, read the API reference and the MD5/SHA256 signature rules, and build against the documented request/response shapes. Nothing live works. ### Before you begin - An AliExpress account you can sign into the Open Platform with. A seller or store account is expected for the dropshipping solution. - Company details, a contact phone number and an email you can receive a verification code on. Developer registration asks for all of these. - Approval of the dropshipping API permission group on the app. AliExpress reviews new apps and usually replies within 1 to 2 business days. - PopMCP's callback URL, copied from the connect screen before you start. It has to be saved on the app before authorization works. ### Get your credentials #### 1. Register as an Open Platform developer Go to open.aliexpress.com and sign in with your AliExpress account. Accept the Open Platform Developer Agreement, complete Registration certification with your dialling code, phone number and email, then click Get Check Code and enter the code. Screen: https://open.aliexpress.com/ #### 2. Create an app in App Management Open the App Management tab and click Create App, then pick Self Developer as the app type and click Click to Apply. Fill in Contact name, Contact mobile number, E-mail, your AliExpress store address, Software name and Software function, then submit. Screen: https://open.aliexpress.com/app/index.htm #### 3. Apply for the dropshipping API permission Open API Permission on your app and apply for the group covering the `aliexpress.ds.*` APIs. Attach a document describing your business need if the form asks for one. Screen: https://open.aliexpress.com/app/index.htm #### 4. Save PopMCP's callback URL on the app Open Authorization Management on the app and paste the callback URL from PopMCP's AliExpress connect screen into Callback URL. Click Save. Screen: https://open.aliexpress.com/app/index.htm #### 5. Copy the App Key and App Secret Once the app shows Approved in App Management, click Management on its row. Copy App Key into PopMCP, click View to reveal App Secret, and paste that in too. Screen: https://open.aliexpress.com/app/index.htm ### Fields PopMCP asks for - App Key (appKey) [required]: Your AliExpress app's App Key from open.aliexpress.com (Console → App Management). Add the callback URL above to that app first, and make sure the app is approved for the Dropshipper solution. - App Secret (appSecret) [required]: The app's secret, on the same screen as the App Key. Stored encrypted; used server-side only and never shown again. ### Callback URL to register https://app.popmcp.com/api/providers/aliexpress/callback ### Verify PopMCP's AliExpress connector shows Connected after the authorization redirect returns, and a product search comes back with live listings, prices and stock. ### Troubleshooting #### Invalid redirect_uri, or the authorization page refuses to redirect back Cause: The callback URL saved on the app does not exactly match the one PopMCP sends. Fix: Re-copy the callback URL from PopMCP's connect screen into Authorization Management. No trailing slash, no http against https. #### IncompleteSignature or invalid signature errors Cause: The App Secret was pasted with a leading or trailing space, or the key and secret came from two different apps. Fix: Re-copy both values from the same app's credentials panel and reconnect. #### App has no permission for this API Cause: The dropshipping permission group is still pending, or was never applied for. Fix: Open the app's API Permission tab and confirm the dropshipping group shows Approved before connecting. #### Credentials never appear after creating the app Cause: The app is still under review. App Key and App Secret are issued on approval, not on submission. Fix: Wait the 1 to 2 business days AliExpress quotes, then reopen the app from App Management. #### Calls start failing after a few days Cause: The access token from the OAuth exchange expired. Fix: Reconnect the connector in PopMCP to run authorization again. The App Key and App Secret do not change. --- ## Selling Partner URL: https://www.docs.popmcp.com/docs/integrations/selling-partner-api/ Summary: Connect Selling Partner to manage orders, listings, FBA inventory, pricing, fees, reports, feeds, and finances for your seller account. You end up with three values from your own SP-API app client in Seller Central. The LWA Client ID (amzn1.application-oa2-client.…), the LWA Client Secret (amzn1.oa2-cs.v1.…) and a self-authorization refresh token (Atzr|…), plus your region and optionally your Merchant Token. - Auth: API credentials - Setup time: 30 min - API base URL: https://sellingpartnerapi-na.amazon.com - Credentials screen: https://sellercentral.amazon.com/sellingpartner/developerconsole - Provider docs: https://developer-docs.amazon.com/sp-api/docs/connecting-to-the-selling-partner-api ### Approval required before this works Amazon must approve your SP-API developer profile before Login with Amazon credentials return live Selling Partner data. Roles Amazon marks Restricted carry an extra review of your data use and security controls, including an architecture review. - Typical wait: Amazon's only published figure is for service-provider registration and role approval: "processing can take up to 10 business days". Amazon does not publish a review time for the developer profile itself; developer-community reports commonly describe a few business days, sometimes stretching to several weeks. Treat anything beyond the 10-business-day figure as unofficial. - Cost: Amazon charges nothing for developer registration, SP-API application registration, or API calls. Note for context: an annual SP-API subscription fee plus a per-GET-call overage was announced in November 2025, postponed twice, and then reported as withdrawn in May 2026. Amazon has not published a standing fee schedule, and the withdrawal is documented in third-party reporting citing Amazon partner emails rather than on an Amazon page - so do not quote a dollar amount to users as current Amazon policy. - Blocked until approved: Everything against production: you cannot register a production SP-API application, cannot obtain a usable LWA client ID/secret for live data, and sellers cannot authorise you (the role checkboxes stay unavailable in Seller Central). Separately, the roles Amazon designates Restricted - Direct-to-Consumer Shipping (Restricted), Professional Services (Restricted), Tax Invoicing (Restricted), and Tax Remittance (Restricted) - stay locked until the additional data-use and security review passes, so any call needing the buyer PII those roles carry returns an authorisation error even after basic approval. - Works meanwhile: Build against the SP-API sandbox. Static, dynamic, and AI sandbox environments return mock or realistic responses without live seller data, so the API models, request signing, and SDK/auth plumbing can all be finished and tested first. Amazon does not explicitly frame the sandbox as a during-review activity and application registration still requires a primary account user, so confirm what your account can create before planning around it. ### Before you begin - A Professional selling account on Seller Central. Individual accounts cannot register for SP-API. - Sign in as the Primary User of the Seller Central account. Only the Primary User sees the Authorize option. - A completed developer registration. Amazon reviews the developer profile and commonly takes a few business days. - Register as a private developer if the app only ever talks to your own seller account. Public Appstore apps need a separate listing and review. ### Get your credentials #### 1. Open Developer Central Sign in to Seller Central and choose Apps and Services, then Develop Apps. If you have never registered, complete the developer profile and pick private developer. Screen: https://sellercentral.amazon.com/sellingpartner/developerconsole #### 2. Add a new app client Click Add new app client, name it `PopMCP`, choose SP API from the API Type list and tick Sellers. Select the roles your tools need, then leave OAuth Login URI and OAuth Redirect URI blank and click Save and exit. Screen: https://sellercentral.amazon.com/sellingpartner/developerconsole #### 3. Copy the LWA Client ID and Client Secret Find your app on the Developer Central page, choose Edit app, then click View under LWA credentials. Copy Client identifier into PopMCP's LWA Client ID and Client secret into LWA Client Secret. Screen: https://sellercentral.amazon.com/sellingpartner/developerconsole #### 4. Authorize the app to mint a refresh token Open the arrow next to Edit app and choose Authorize. On the Authorize application page click Authorize app for your seller account, then copy the `Atzr|` token into PopMCP's Refresh token. Screen: https://sellercentral.amazon.com/sellingpartner/developerconsole #### 5. Set Region and, optionally, the Merchant Token Set Region to `na`, `eu` or `fe` to match your marketplace, and leave Environment on production. For Selling Partner ID, open the Settings menu at the top right of Seller Central, go to Account Info, then Merchant Token, and copy that value. Screen: https://sellercentral.amazon.com/sw/AccountInfo/MerchantToken/step/MerchantToken ### Fields PopMCP asks for - Auth type (connectionType): SP-API uses Login with Amazon. We only ever store your LWA Client ID / Secret and refresh token (encrypted) and mint short-lived access tokens from them server-side. No AWS IAM or SigV4 signing is required. - LWA Client ID (lwaClientId) [required]: From your SP-API app: Seller Central → Develop Apps → your app → 'LWA credentials' → Client ID. - LWA Client Secret (lwaClientSecret) [required]: The secret paired with your LWA Client ID (same 'LWA credentials' panel). Stored encrypted; used only server-side to mint access tokens. - Refresh token (refreshToken) [required]: Generate it by clicking 'Authorize' on your app in Seller Central (self-authorization). Starts with 'Atzr|'. It is long-lived and does not expire on use. - Region (region): na - Selling Partner ID (optional) (sellingPartnerId): Your Merchant / Seller ID (Seller Central → Settings → Account Info → Merchant Token). Optional, but if provided it's auto-filled into the Listings API so you don't have to pass it each call. - Environment (optional) (environment): production ### Verify PopMCP's Amazon Selling Partner connector shows Connected, and a request such as "list recent orders" returns real order IDs from your seller account in the region you selected. ### Troubleshooting #### 401 Unauthorized from the LWA token endpoint Cause: The Client ID or Client Secret does not match, or the refresh token came from a different app client. Fix: Re-copy all three values from the same app in Developer Central. A refresh token is only valid for the app client that issued it. #### 403 Unauthorized, access to requested resource is denied Cause: The app is missing the role that covers that API, or the refresh token was minted before you added the role. Fix: Edit the app to add the role, save, then run Authorize again to get a fresh refresh token. #### No Authorize option next to Edit app Cause: You are signed in as a secondary user, or the developer profile is still under review. Fix: Sign in as the account's Primary User and wait until developer registration is approved. #### You lost the refresh token Cause: Amazon shows the token on the Authorize application page and does not keep it in a credentials panel. Fix: Click Authorize app again to issue a new one. Existing tokens are not invalidated by this. #### Calls return 400 or empty results for your marketplace Cause: Wrong region. An EU marketplace queried against the na endpoint returns nothing. Fix: Set Region to na, eu or fe to match the marketplace and reconnect. #### 429 QuotaExceeded Cause: SP-API throttles per operation with its own rate and burst budget. Fix: Slow the calls down and retry with backoff. The budget refills continuously and differs per endpoint. --- ## Amplitude URL: https://www.docs.popmcp.com/docs/integrations/amplitude/ Summary: Connect Amplitude to chart events, funnels, and retention, look up users and cohorts, and manage your event taxonomy. You paste two values for one Amplitude project: its API Key and a Secret Key, which Amplitude shows only when you generate it. Optional extra keys under More options add saved charts, Experiment and Enterprise organization tools. - Auth: API credentials - Setup time: 5 min - API base URL: https://amplitude.com (EU projects: https://analytics.eu.amplitude.com); ingestion, Experiment and the Developer API use their own hosts - Credentials screen: https://app.amplitude.com/ - Provider docs: https://amplitude.com/docs/apis/authentication ### Before you begin - The Manager or Admin role in Amplitude, because only Managers and Admins can see and generate API keys and secret keys - The Amplitude project you want to connect. One PopMCP connection is one project. - No region to look up: PopMCP detects US or EU data residency itself - Optional extras only if you need them: Experiment for the Experiment keys, and an Enterprise plan for the SCIM and organization keys ### Get your credentials #### 1. Open API Keys in Organization settings In Amplitude, click Settings (the gear icon) and choose Organization settings, then select API Keys in the side navigation and pick the project you want to connect. Only Managers and Admins see this page. Screen: https://app.amplitude.com/ #### 2. Copy the project's API Key Copy the project's existing API key (32 characters), or click Generate API Key, name it `PopMCP` and copy the new one. The API Key identifies the project; on its own it can't read any data. Screen: https://app.amplitude.com/ #### 3. Generate a Secret Key and copy it once Click Generate Secret Key, name it `PopMCP` and copy it into a safe place straight away. Amplitude doesn't store secret keys, so this one can't be shown or retrieved again. Screen: https://app.amplitude.com/ #### 4. Optional: collect extra keys for the tools you need Skip this for charts, funnels, retention, users, cohorts, export, taxonomy, annotations and ingestion, which the two project keys already cover. A Personal Access Token (your profile settings, Personal access tokens) adds saved charts (`list_saved_charts`, `query_saved_chart`), the project list, destinations, heatmaps and the newer taxonomy and flag endpoints, acting with your own permissions. An Experiment Management API key (in Experiment, Management API at the bottom left of the sidebar) adds flags, experiments, deployments, mutex and holdout groups, and lets `evaluate_variants` pick a deployment. An Experiment deployment key (Experiment, Deployments; starts `server-` or `client-`) only evaluates flags against that one deployment. A SCIM key (Enterprise: Organization settings, Access and SSO settings, Provisioning, Generate SCIM key) adds user and group provisioning. The Organization API key and Organization secret key (Enterprise, issued by Amplitude Support) add data access requests, audit logs and role management; the organization secret key alone adds org-wide user deletion. #### 5. Paste the keys into PopMCP Paste into API Key and Secret Key. If you collected extras, open More options and fill the matching fields: Personal Access Token (optional), Experiment Management API key (optional), Experiment deployment key (optional), SCIM key (optional, Enterprise), Organization API key (optional, Enterprise) and Organization secret key (optional, Enterprise). Leave Organization ID (optional) and Project ID (optional) blank unless a tool asks for them. ### Fields PopMCP asks for - API Key (apiKey) [required]: In Amplitude: Settings (gear icon) > Organization settings > Projects > pick the project > General > API Key. Only Admins and Managers can see it. One connection is one project. - Secret Key (secretKey) [required]: On the same General tab: Secret Key (Manage > copy). Newer projects show it only once, under Organization settings > API Keys. Stored encrypted. - Personal Access Token (optional) (personalAccessToken): Unlocks saved charts (find by name, run), the project list, destinations, heatmaps and the newer taxonomy and flag endpoints. Create it in Amplitude under your profile settings > Personal access tokens. It acts with your own permissions. - Experiment Management API key (optional) (managementApiKey): Unlocks feature flags, experiments, deployments, mutex and holdout groups, and lets the evaluation tools pick a deployment for you. In Amplitude: Experiment > Management API (bottom of the left sidebar) > Create API key. - Experiment deployment key (optional) (deploymentKey): Only for evaluating flags against one specific deployment without a management key. Experiment > Deployments > copy the key. - SCIM key (optional, Enterprise) (scimKey): Unlocks SCIM user and group provisioning. Organization settings > Access and SSO settings > Provisioning > Generate SCIM key (shown once). - Organization API key (optional, Enterprise) (orgApiKey): With the organization secret key, unlocks data access requests (DSAR), audit logs and role management. Issued by Amplitude Support. - Organization secret key (optional, Enterprise) (orgSecretKey): Pairs with the organization API key. On its own it also unlocks org-wide user deletion (Settings > API Keys > Org-level Secret Keys). - Organization ID (optional) (orgId): Needed by the organization-level tools. Found automatically when you add a Personal Access Token; otherwise copy it from Organization settings. - Project ID (optional) (projectId): Usually found automatically. Set it if tools ask for a project id: Settings > Organization settings > Projects > General > Project ID. ### Verify PopMCP shows Amplitude as Verified with a label such as `project 123456 (US)`, or the organization and project names when a Personal Access Token supplied them. Ask which events were tracked last week: amplitude_list_events returns your event names instead of an Invalid API Key error. ### Troubleshooting #### "Amplitude rejected this API Key and Secret Key on both its US and EU data centers" Cause: One of the keys was mis-copied or revoked, or the Secret Key belongs to a different project than the API Key. Fix: Copy the API Key again and generate a fresh Secret Key on the same project under Organization settings, API Keys, then reconnect. #### "The API Key and Secret Key are the same value" Cause: The API Key was pasted into both fields. Fix: Generate a Secret Key for the project and paste it into Secret Key. The two are always different strings. #### "Amplitude rejected the Personal Access Token" (or another optional key) Cause: The extra key was revoked, mis-copied, or belongs to another organization or region than the project. Fix: Create a new one where the field's help says, or leave that field blank: the connection works without it. #### A tool says it needs an Experiment Management API key, a SCIM key or organization keys Cause: That tool belongs to an API the two project keys can't reach. Fix: Add the named key under More options on the connection. The error message says where to create it in Amplitude. #### 429 from chart, funnel or user tools Cause: Amplitude allows 5 concurrent REST requests per project and a cost budget per hour and per five minutes; User Activity and User Search are capped at 360 queries an hour. Fix: Wait a few minutes, then ask for fewer charts at once or a shorter date range. #### get_user_profile fails on an EU project Cause: Amplitude offers the User Profile API for US projects only. Fix: Use search_users and get_user_activity instead, which work in both regions. #### Event export says the file is larger than 50 MB Cause: The requested hours hold more raw event data than PopMCP downloads in one call. Fix: Ask for a narrower UTC hour range, or filter by event type or user. --- ## Apify URL: https://www.docs.popmcp.com/docs/integrations/apify/ Summary: Connect Apify to run web scraping actors and tasks, control runs, and read datasets, stores, and request queues. You end up with one Apify API token that starts with `apify_api_`. Paste it into PopMCP's API token field. - Auth: API credentials - Setup time: 2 min - API base URL: https://api.apify.com/v2 - Credentials screen: https://console.apify.com/settings/integrations - Provider docs: https://docs.apify.com/api/v2 ### Before you begin - An Apify account. The free plan is enough to mint a token. - If your Actors belong to an Apify organisation, switch to that account in the Console first. Tokens are per account, so a personal token cannot see organisation Actors. - Owner access, or the Manage access tokens permission, on an organisation account. ### Get your credentials #### 1. Open Settings, then API & Integrations Sign in at console.apify.com and click Settings at the foot of the left sidebar. Open the API & Integrations tab. Screen: https://console.apify.com/settings/integrations #### 2. Create a token for PopMCP Click Create new token and name it `PopMCP`. Leave Limit token permissions switched off and click Save. Screen: https://console.apify.com/settings/integrations #### 3. Copy the token value Click the copy icon next to the new token to copy the full `apify_api_…` string. #### 4. Paste it into PopMCP In PopMCP, paste the value into API token and save. ### Fields PopMCP asks for - API token (apiToken) [required]: In the Apify Console open Settings → Integrations (https://console.apify.com/settings/integrations) and copy your Personal API token. It's sent as the Authorization: Bearer header and stored encrypted; used server-side only. No OAuth app or client secret is required. ### Verify PopMCP's Apify connector shows Connected with your account username, and listing your Actors returns the same ones you see in the Console. ### Troubleshooting #### 401 Unauthorized on every call Cause: The token was truncated on paste, or it was rotated or expired in the Console. Fix: Open Settings, then API & Integrations, create a fresh token, and paste the whole apify_api_ string with no surrounding spaces. #### You cannot find the token value again Cause: Apify shows the complete value at creation and masks it in the list afterwards. Fix: Delete the token and create a replacement rather than guessing at a partial value. #### 403 Forbidden on one Actor or dataset Cause: Limit token permissions is on and the scope does not cover that resource. Fix: Edit the token to include the Actor and its default dataset, or replace it with a full-access token. #### The connector works but sees none of your team's Actors Cause: The token belongs to your personal account rather than the organisation. Fix: Switch to the organisation in the Console account switcher, then mint the token from that account's API & Integrations tab. #### 429 Too Many Requests Cause: More than 60 requests per second against a single resource, or many parallel runs. Fix: Retry with exponential backoff. The limit applies per resource, not per token. --- ## Apollo URL: https://www.docs.popmcp.com/docs/integrations/apollo/ Summary: Connect Apollo to search and enrich people and companies, and manage contacts, deals, sequences, tasks, and calls. You end up with one Apollo API key string, shown once at creation, that you paste into PopMCP's API key field. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.apollo.io/api/v1 - Credentials screen: https://developer.apollo.io/#/keys - Provider docs: https://docs.apollo.io/reference/authentication ### Approval required before this works Nobody reviews anything at Apollo - the key is issued instantly - but Apollo gates which API endpoints a key can call by subscription plan. Apollo's docs state plainly that "Access to Apollo API depends on your Apollo plan", and its pricing FAQ lists API access under custom/enterprise plans. - Typical wait: None - the key is generated instantly. Any wait is a sales or upgrade conversation, not a review. - Cost: Apollo does not publish a per-endpoint API price, and its pricing page routes API access to custom plans quoted by sales, so there is no reliable public dollar figure to give. Budget for a paid tier plus Apollo credits, which API calls consume, and get the number from Apollo sales for your seat count. - Blocked until approved: On a plan without the access, the key exists but calls return 403 rather than failing at key creation. Master-key-only endpoints (Apollo's docs name listing users as one) and the broader write and search surface are what disappear, so the integration builds and authenticates fine and then fails at runtime on the specific endpoint you need. - Works meanwhile: A key can be created and tested on any plan, so auth plumbing, error handling, and request shapes are all buildable now. Probe each endpoint your connector actually calls with the key you have - a 403 tells you which ones need the upgrade before you commit to a plan. ### Before you begin - Apollo account on a plan that includes API access - Permission to open Settings and the Integrations tab for your Apollo team - A decision on master key (every endpoint) versus a scoped key ### Get your credentials #### 1. Open Settings and the Integrations tab Sign in to Apollo, click Settings at the bottom of the sidebar, then open the Integrations tab. Find the API card and click Connect. Screen: https://app.apollo.io/#/settings/integrations #### 2. Open the API keys list Click API Keys on the Apollo API screen. The same list is at developer.apollo.io/#/keys. Screen: https://developer.apollo.io/#/keys #### 3. Create the key with full endpoint access Click Create new key, fill in Name and Description, then turn on Set as master key. Click Create API key. #### 4. Copy the key before you leave the page Click Copy on the confirmation panel. Paste the value into PopMCP's API key field and save the connection. ### Fields PopMCP asks for - API key (apiKey) [required]: In Apollo go to Settings → Integrations → API → API Keys → Create new key. Toggle “Set as master key” for full coverage (recommended), or scope it to specific endpoints. Paste the key here. It's sent as the x-api-key header and stored encrypted; used server-side only. API access depends on your Apollo plan. ### Verify PopMCP marks the Apollo connection Connected and the Apollo tool list appears. A first call such as a people search returns rows instead of an auth error. ### Troubleshooting #### 401 Unauthorized Cause: The key was mistyped, truncated, or deleted in Apollo. Fix: Create a fresh key under Settings, Integrations, API Keys and paste the whole string with no leading or trailing spaces. #### 403 Forbidden on some tools only Cause: The key is scoped and the endpoint behind that tool was not ticked, or the endpoint is master-key-only. Fix: Edit the key's endpoint list, or create a replacement with Set as master key turned on. #### 403 on every call, including the health check Cause: Your Apollo plan does not include API access. Fix: Upgrade the plan or ask Apollo to enable API access, then retry with the same key. #### 429 Too Many Requests Cause: Apollo rate limits per team across minute, hour and day windows. Fix: Wait for the period named in the retry-after header. Limits are shared by everyone on your team rather than per key. --- ## Arcmira URL: https://www.docs.popmcp.com/docs/integrations/arcmira/ Summary: Connect Arcmira to search YouTube and podcast transcripts for quotes with timestamped links, track mentions and sponsors, and monitor topics. Nothing is typed into PopMCP. You click Authorize with Arcmira, sign in to Arcmira and approve PopMCP on Arcmira's consent screen. PopMCP is already a registered Arcmira client, so there is no API key, developer app or callback URL to set up. A free Arcmira account works. If you prefer a key, an arc_sk_ key from Dashboard, API keys can be pasted under More options instead. - Auth: OAuth authorization - Setup time: 1 min - API base URL: https://api.arcmira.com/v1 - Credentials screen: https://arcmira.com/sign-in - Provider docs: https://arcmira.com/docs/authentication ### Before you begin - An Arcmira account. The Free plan works: it includes 1,000 credits a month and leaves out media from the newest 30 days. Sign up at arcmira.com/sign-up if you have none - If you belong to an Arcmira team: which account's credits the AI should use (your own or the team's) - Pop-up blockers must allow the Arcmira sign-in window to open - Only if the AI should create or change monitors: an owner or admin in PopMCP to allow write actions ### Get your credentials #### 1. Start the connection from PopMCP Open the Arcmira connector in PopMCP and click Authorize with Arcmira. There are no fields to fill in: no API key, no developer app and nothing to register. To keep the connection strictly read-only, open More options first and untick Create and change monitors. #### 2. Sign in to Arcmira in the pop-up The sign-in window opens on arcmira.com. Sign in with the Arcmira account the AI should search with. A new Free account works too. #### 3. Approve PopMCP on Arcmira's consent screen Arcmira shows a consent screen naming PopMCP: read access and, unless you unticked it, monitor changes. If you are in a team, pick under Uses the credits of which account pays for what the AI reads. Click Allow. #### 4. Or paste an API key instead Prefer a key? Instead of signing in, open Dashboard → API keys in Arcmira, click Create key and copy it (it is shown once and starts with `arc_sk_`). In PopMCP open More options, paste it into Arcmira API key and connect. A key never expires and carries every scope. Screen: https://arcmira.com/dashboard/api #### 5. Check the connection in PopMCP The Arcmira card in PopMCP reads Connected, with the account name, plan and credits left. Every Arcmira endpoint is a tool, plus `arcmira_find_clips`, which returns passages with timestamped links and the transcript around each in one call. Monitor changes wait until an owner or admin allows write actions in PopMCP. ### Fields PopMCP asks for - How you connect (connectionType): Click Authorize, sign in to Arcmira and approve. There is nothing to copy or paste. A free Arcmira account works (1,000 credits a month). - Permissions (scopes): Reading (search, mentions, sponsors, transcripts, your monitors) is always included. Monitor changes are only used once write actions are allowed on the connection. - Arcmira API key (instead of signing in) (apiKey): Only if you prefer a key: create one under Dashboard → API keys at arcmira.com and paste it here, and the sign-in step is skipped. Keys never expire. ### Scopes requested - openid - profile - email - offline_access - read - recommendations:read - monitors:write - trackers:write ### Verify The Arcmira card in PopMCP shows Connected with the account name, plan and credits. Asking the AI for the connection profile (`arcmira_connection_profile`) names the account and scopes, and asking it to find quotes on a topic (`arcmira_find_clips`) returns passages with timestamped links rather than an authorization error. ### Troubleshooting #### The sign-in window never opens Cause: A pop-up blocker is stopping the Arcmira sign-in window. Fix: Allow pop-ups for PopMCP in your browser and click Authorize with Arcmira again. #### "Your Arcmira sign-in has ended..." Cause: The sign-in was not used for 30 days, or PopMCP was revoked under Dashboard, Integrations in Arcmira. Fix: Reconnect Arcmira in PopMCP: one click on Authorize with Arcmira and Allow. Or connect with an API key, which never expires. #### "Arcmira did not accept that API key" Cause: The key was copied in part, or it was disabled under Dashboard, API keys. Fix: Create a new key under Dashboard, API keys, copy all of it (it starts with arc_sk_) and paste it again. #### A read answers 402 or 403 with a plan or credit message Cause: Arcmira's plan and credit gates: Premium transcripts, sponsor rows, the newest 30 days of media and the before filter need a paid plan, and every plan has a monthly credit allowance. Fix: The answer names the limit and links the plan that lifts it. arcmira_get_account shows the credits left; Dashboard, Spending in Arcmira sets an on-demand budget. #### Creating a monitor answers insufficient_scope Cause: The sign-in was made with Create and change monitors unticked, or the key came from the API sign-up (read only). Fix: Reconnect Arcmira with Create and change monitors ticked, or use a key from Dashboard, API keys. An owner or admin must also allow write actions in PopMCP. --- ## Asana URL: https://www.docs.popmcp.com/docs/integrations/asana/ Summary: Connect Asana to manage tasks, subtasks, projects, sections, custom fields, tags, portfolios, and goals for your team. You paste a single Asana Personal Access Token, generated in the Asana developer console and shown only once. - Auth: API credentials - Setup time: 3 min - API base URL: https://app.asana.com/api/1.0 - Credentials screen: https://app.asana.com/0/my-apps - Provider docs: https://developers.asana.com/docs/personal-access-token ### Before you begin - An Asana account on any plan: Personal, Starter, Advanced or Enterprise. - The token acts as you. It reaches only the workspaces, teams and projects your own user can already see. - On Enterprise, an admin may have restricted app and token creation. ### Get your credentials #### 1. Open the Asana developer console Go to https://app.asana.com/0/my-apps. From inside Asana, click your profile photo, then My Settings → Apps → Manage Developer Apps. Screen: https://app.asana.com/0/my-apps #### 2. Create a new personal access token In the console sidebar click Personal access tokens, then click + Create new token. Screen: https://app.asana.com/0/my-apps #### 3. Name the token and accept the API terms Type `PopMCP` in Token name, tick I agree to the Asana API Terms, and click Create token. Screen: https://app.asana.com/0/my-apps #### 4. Copy the token into PopMCP Click Copy in the dialog, then paste the string into PopMCP's Personal Access Token field. ### Fields PopMCP asks for - Personal Access Token (accessToken) [required]: Asana → your profile photo → My Settings → Apps → Developer console (or app.asana.com/0/my-apps) → Personal access tokens → Create new token. The token is shown only once. Stored encrypted. ### Verify The Asana connection shows Connected in PopMCP and the Asana tools load. Listing your workspaces or the tasks assigned to you returns real Asana records. ### Troubleshooting #### You closed the dialog before copying the token Cause: Asana reveals the full string once and never again. Fix: Delete that entry on the Personal access tokens page and create a new token. #### 401 Unauthorized Cause: The token was truncated on copy, or it has since been deleted from the developer console. Fix: Open app.asana.com/0/my-apps, go to Personal access tokens, delete the old entry, create a fresh token and paste the whole string. #### 403 Forbidden on a specific project Cause: The token inherits your access, and your user is not a member of that project or team. Fix: Add your user to the project or team in Asana, or generate the token from a user that already has access. #### 429 Too Many Requests Cause: The domain's per-minute quota was exceeded: 150 on free domains, 1,500 on paid, 60 for search. Fix: Wait the number of seconds given in the Retry-After header before retrying. Early retries still count against the quota. #### The token works but sees none of your team's work Cause: It was created from a personal Asana account that is not a member of the organisation's workspace. Fix: Sign in to the Asana account that belongs to the organisation, switch to that workspace, and create the token again from app.asana.com/0/my-apps. --- ## Attentive URL: https://www.docs.popmcp.com/docs/integrations/attentive/ Summary: Connect Attentive to subscribe and unsubscribe users, track custom and ecommerce events, set and read attributes, manage coupons, product catalogs, and webhooks. You end up with one Attentive API key, minted by a custom app you create, that you paste into PopMCP's API Key field. - Auth: API credentials - Setup time: 4 min - API base URL: https://api.attentivemobile.com/v1 - Credentials screen: https://ui.attentivemobile.com/integrations/custom-app/management - Provider docs: https://docs.attentive.com/docs/authentication ### Before you begin - Attentive account with access to ui.attentivemobile.com - Permission to create custom apps for your Attentive company - A contact email Attentive can reach you on, which the app form requires ### Get your credentials #### 1. Open the custom app manager Sign in to Attentive and go to Integrations, then open the Built by you tab on the App Marketplace. You can also jump straight to ui.attentivemobile.com/integrations/custom-app/management. Screen: https://ui.attentivemobile.com/integrations/custom-app/management #### 2. Name the app and add a contact email Enter a unique App name such as `PopMCP` and a Contact email Attentive can write to about the integration. #### 3. Set each API to Write, then click Create Every API starts at No Access. Switch the ones PopMCP needs to Write, then click Create. #### 4. Copy the API key from the modal Click Copy in the Copy API key modal, then close it with X. Paste the value into PopMCP's API Key field. ### Fields PopMCP asks for - API Key (apiKey) [required]: In Attentive go to ui.attentivemobile.com → Integrations → Custom apps (Manage custom apps), create a private app, and copy its API key. Sent as an Authorization: Bearer header, stored encrypted, used server-side only. The connection is locked to this key's Attentive company. ### Verify PopMCP shows the Attentive connection as Connected and a first call returns your own company's subscriber or catalog data rather than a 401. ### Troubleshooting #### 401 Unauthorized Cause: The key is wrong or truncated, or the custom app was deleted. Fix: Create a fresh custom app and copy the new key from the modal. Old keys cannot be re-displayed. #### 403 on some tools but not others Cause: That API was left at No Access when the app was created. Fix: Open the app under Integrations, Built by you, set the missing API to Write, and reconnect. #### I closed the modal without copying the key Cause: Attentive shows the key exactly once and never again. Fix: Delete the half-finished app, create a new one, and copy the key straight away. #### Calls hit the wrong company's data Cause: The key is bound to the Attentive company that created the app. Fix: Sign in to the correct company at ui.attentivemobile.com and create the app there. #### No Integrations entry in the sidebar Cause: Your Attentive role does not include custom app management. Fix: Ask an Attentive admin to create the app, or email api-tokens@attentivemobile.com. --- ## BambooHR URL: https://www.docs.popmcp.com/docs/integrations/bamboo-hr/ Summary: Connect BambooHR to manage employees and the directory, time off, reports, files, hiring, performance, and time tracking. You end up with two values: your BambooHR company subdomain, the part before .bamboohr.com, and a personal API key shown once when you generate it. - Auth: API credentials - Setup time: 3 min - API base URL: https://{subdomain}.bamboohr.com/api/v1 - Credentials screen: https://YOUR-SUBDOMAIN.bamboohr.com/settings/permissions/api.php (replace YOUR-SUBDOMAIN with your BambooHR subdomain) - Provider docs: https://documentation.bamboohr.com/docs/getting-started ### Before you begin - A BambooHR user account with the API Keys option in the user menu, which is permission-gated - An admin to generate the key if PopMCP needs full employee, payroll or time-off data, because a key inherits the creating user's permissions exactly - Your company subdomain from the login URL, for example acme in `https://acme.bamboohr.com` ### Get your credentials #### 1. Note your company subdomain Read the address bar while signed in to BambooHR. In `https://acme.bamboohr.com`, the acme part is what goes in PopMCP's Company subdomain field. #### 2. Open API Keys from your user menu Click your name in the lower-left corner of any page, then choose API Keys. Account owners can also reach the full list at Settings > Account > API Keys. #### 3. Add a new key and generate it Click Add New Key, type `PopMCP` into API Key Name, then click Generate Key. #### 4. Copy the key Click COPY KEY in the confirmation dialog. #### 5. Paste both values into PopMCP Put the subdomain in Company subdomain and the key in API key, then save the connection. ### Fields PopMCP asks for - Company subdomain (subdomain) [required]: The first part of your BambooHR URL: https://.bamboohr.com. You can paste the full URL; we'll extract the subdomain. This is the company the MCP is locked to. - API key (apiKey) [required]: In BambooHR click your name in the lower-left corner of any page → API Keys → Add New Key. Copy it immediately (it's shown only once). The key inherits your permissions and is sent as HTTP Basic auth. Stored encrypted; used server-side only. ### Verify PopMCP shows the BambooHR connection as Connected and an employee-directory call returns your real roster rather than a 401 or 403. ### Troubleshooting #### 401 Unauthorized Cause: The key was mistyped, or the subdomain does not match the account the key belongs to. Fix: Check the subdomain against your login URL and generate a fresh key. Keys are per-company and are not portable. #### 403 Forbidden and it was working before Cause: BambooHR temporarily disables access when an unknown or invalid key is retried repeatedly. Fix: Stop calling, wait for the block to lapse, then reconnect with a valid key. #### Some employees or fields are missing Cause: The key inherits the permissions of the person who generated it. Fix: Have an admin generate a replacement key and reconnect PopMCP with it. #### I closed the dialog without copying the key Cause: BambooHR never redisplays a key value after generation. Fix: Delete the unused key from the API Keys list and add a new one, copying it straight away. #### No API Keys entry in the user menu Cause: Your BambooHR role does not include API key permission. Fix: Ask an account owner to grant it, or to generate the key for you. --- ## Bannerbear URL: https://www.docs.popmcp.com/docs/integrations/bannerbear/ Summary: Connect Bannerbear to turn templates into images, PDFs, animations and videos, run workflows, and remove backgrounds, add subtitles or trim clips. You paste one value into PopMCP: a Bannerbear API key starting with bb_ak_v5_, created on the API Keys page of your Bannerbear dashboard. A Project API key from an older V2 project works too. - Auth: API credentials - Setup time: 2 min - API base URL: https://api.bannerbear.com/v5 - Credentials screen: https://app.bannerbear.com/v5/api_keys - Provider docs: https://developers.bannerbear.com/ ### Before you begin - A Bannerbear account. The free trial includes 30 API credits and needs no card - At least one template in Bannerbear to render from, or one installed from the template library - Enough credits for what you plan to run: every image, animation and video spends API credits, and AI tools spend AI credits ### Get your credentials #### 1. Sign up or sign in at bannerbear.com Create a Bannerbear account or sign in. A new account starts on a free trial with 30 API credits and no card; you can pick a plan later. If your dashboard offers a version switcher, stay on the current version (V5) for a new key. Screen: https://app.bannerbear.com/ #### 2. Open API Keys and create a key Open API Keys (app.bannerbear.com/v5/api_keys) and create a new key. Give it a name such as PopMCP. Leave Scopes empty for full access, or tick only what your AI should do, such as `image_templates:read` and `images:write`. Leave Allowed origins empty, because PopMCP calls Bannerbear from its servers, not from a browser. Screen: https://app.bannerbear.com/v5/api_keys #### 3. Copy the key Copy the new key. It starts with `bb_ak_v5_`. You can roll it later to get a new value, or delete it to cut PopMCP off. Screen: https://app.bannerbear.com/v5/api_keys #### 4. Using an older V2 project instead If your templates live in a V2 project, open that project, then Settings, API Key, and copy the Project API Key. A V2 key and a V5 key are not interchangeable: each reaches only its own API, and PopMCP shows the tools that match the key you paste. A V2 Master API key also works if you paste the project's uid under More options, Project ID. Screen: https://app.bannerbear.com/ #### 5. Paste the key into PopMCP In PopMCP, paste the key into API key and connect. PopMCP checks it by reading your workspace (or V2 project), plan and credits from Bannerbear, and loads the tools for that key's version. ### Fields PopMCP asks for - API key (apiKey) [required]: In Bannerbear open API Keys, create a key and copy it (it starts with bb_ak_v5_). For an older V2 project, copy the Project API key from the project's Settings, API Key. Stored encrypted and used only on our servers. - Project ID (V2 Master API key only) (projectId): Only for a V2 Master API key, which reaches every project: the uid of the project to connect. Leave it empty for any other key. ### Verify PopMCP marks the Bannerbear connection Verified with your workspace name (or the V2 project's name) and records the plan, the credits left and the key's scopes. Asking the AI to list your templates returns them with their uids and sizes. ### Troubleshooting #### "Bannerbear did not accept this API key..." Cause: The key was copied incompletely, deleted or rolled, or a signing key was pasted instead of an API key. Fix: Create or roll a key under **API Keys** and paste the whole key, which starts with bb_ak_v5_. For a V2 project, copy the Project API key again from the project's **Settings**, **API Key**. #### "This is a Bannerbear Master API key, which reaches every project..." Cause: A V2 Master API key was pasted without a project. Fix: Open **More options** and paste the uid of one of the projects listed in the message, or paste that project's own Project API key instead. #### Tools fail with 403 Cause: The key's scopes do not cover what the AI tried, or the template only lets its owner's keys change it. Fix: The error names the missing scope, for example images:write. Add it to the key under **API Keys**, or ask the template's owner to allow team changes. #### Tools fail with 402 Cause: The workspace has used up this month's API credits, or its AI credits for AI tools. Fix: Top up or upgrade in Bannerbear, or wait for the monthly reset. The AI can check the balance with get_account. #### The AI says a tool is for the other API version Cause: V5 and V2 keys are not interchangeable, and the AI picked a tool for the other version. Fix: Nothing to change: the message names the tool that does the job with your key, and the AI uses that one. --- ## beehiiv URL: https://www.docs.popmcp.com/docs/integrations/beehiiv/ Summary: Connect beehiiv to grow and manage subscribers, draft and schedule newsletter posts, track opens and clicks, and run segments and automations. You paste one beehiiv workspace API key into PopMCP, then pick which publications to connect and the PopMCP workspace each one goes into. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.beehiiv.com/v2 - Credentials screen: https://app.beehiiv.com/ - Provider docs: https://developers.beehiiv.com/welcome/create-an-api-key ### Approval required before this works No one reviews you and most of the API works on every plan, but beehiiv only lets publications on the Pro and Enterprise plans create posts through the API (the Send API). Drafting, scheduling and publishing newsletter posts from the AI needs one of those plans. - Typical wait: None. The post endpoints answer as soon as the publication is on Pro or Enterprise. - Cost: Pro and Enterprise are priced by subscriber count on beehiiv.com/pricing. beehiiv's current plans are Free, Lite, Pro and Enterprise; guides written before its 2026 rename call Pro "Max" and Lite "Scale". - Blocked until approved: create_post, update_post and the post template tools. Subscribers, custom fields, tags, lists, segments, automations, post stats and every other read keep working on Free and Lite. - Works meanwhile: Connect on any plan and use the subscriber, segment, automation and analytics tools straight away. Draft posts in the beehiiv editor until the publication moves to Pro. ### Before you begin - The Owner or Admin role in your beehiiv workspace. Only they can create API keys. - Any beehiiv plan for subscribers, segments, automations and stats. Creating or updating posts through the API needs the Pro or Enterprise plan (Pro was called Max before beehiiv renamed its plans). - Time for a quick identity check: beehiiv may ask you to verify your identity with Stripe when you create the key. - If the key should reach only some publications, know which ones. You restrict it while creating or editing the key. ### Get your credentials #### 1. Open the API page in Workspace Settings Sign in at app.beehiiv.com, click Settings, then click API under the Workspace Settings section. Screen: https://app.beehiiv.com/ #### 2. Create the key and choose its publications Click Create New API Key and name it, for example `PopMCP`. Leave publication access open so the key reaches every publication in the workspace, or restrict it to the publications PopMCP should see. Complete the Stripe identity check if beehiiv asks for it. Screen: https://app.beehiiv.com/ #### 3. Copy the key before leaving the page Copy the key straight away. beehiiv makes it inaccessible once you leave the page, so a lost key means creating a new one. Screen: https://app.beehiiv.com/ #### 4. Paste the key into PopMCP and pick publications In PopMCP, paste the key into API key and click Connect beehiiv. PopMCP lists every publication the key can reach. Tick the ones to connect, choose the PopMCP workspace for each, and click the Connect button under the list. ### Fields PopMCP asks for - API key (apiKey) [required]: In beehiiv: Settings → Workspace Settings → API → Create New API Key (you need to be a workspace Owner or Admin). Copy it right away, beehiiv only shows it once. A key can reach every publication in the workspace, or only the ones you restrict it to. Stored encrypted and used server-side only. ### Verify PopMCP shows each publication as its own Verified connection labelled `beehiiv · `. Asking the AI for the publication's subscriber count and average open rate returns real numbers. ### Troubleshooting #### 401 `The api key is not valid` (code INVALID_API_KEY) Cause: The key was copied incompletely, or it was deleted in beehiiv. Fix: Create a new key under Settings, Workspace Settings, API, copy it before leaving the page, and reconnect. #### A publication is missing from PopMCP's picker Cause: The key is restricted to other publications. A restricted key cannot see the rest at all. Fix: Edit the key in beehiiv to include that publication, or create an unrestricted key, then open the picker again. #### This beehiiv API key can no longer reach the connected publication Cause: The key's publication list changed, or the publication was removed, so beehiiv answers 403 or 404 for it. Fix: Reconnect beehiiv with a key that includes the publication. #### Creating or updating a post fails while other tools work Cause: beehiiv only allows post creation through the API on the Pro and Enterprise plans. Fix: Upgrade the publication to Pro or Enterprise, or draft the post in the beehiiv editor. #### get_post returns 202 or nothing right after create_post Cause: beehiiv creates posts asynchronously, so the post can take a few seconds to appear. 404 POST_CREATION_FAILED means it will never exist. Fix: Wait a few seconds and read it again. On POST_CREATION_FAILED, check the content and create it again. #### Data deletion or export tools are refused Cause: beehiiv support has to enable exports and data deletion for your account, and a publication-restricted key gets 403 on data deletion. Fix: Ask beehiiv support to enable the feature, and use an unrestricted key for workspace-wide deletion requests. #### 429 Too Many Requests Cause: The key went over its per-minute allowance, which depends on your plan (30 a minute on Free). Fix: Wait for the 60-second window to reset and retry. Bulk subscriber work goes faster on a higher plan. --- ## BigCommerce URL: https://www.docs.popmcp.com/docs/integrations/bigcommerce/ Summary: Connect BigCommerce to manage products, categories, orders, customers, carts, checkouts, and coupons for your store. You end up pasting your store hash (the id in your API path) and the Access Token from a store-level V2/V3 API account created in the BigCommerce control panel. - Auth: API credentials - Setup time: 5 min - API base URL: https://api.bigcommerce.com/stores/{store_hash}/v3 - Credentials screen: https://login.bigcommerce.com/deep-links/manage/settings-list - Provider docs: https://developer.bigcommerce.com/docs/start/authentication/api-accounts ### Before you begin - A BigCommerce store on any plan, including a sandbox - A control panel user with the Create API Accounts permission, such as Store Owner - A store-level API account rather than an account-level one, because account-level tokens are for multi-store management ### Get your credentials #### 1. Open Store-level API accounts In the control panel sidebar click Settings, then under the API heading click Store-level API accounts. Skip Account-level API accounts directly below it. Screen: https://login.bigcommerce.com/deep-links/manage/settings-list #### 2. Create a V2/V3 API token Click Create API Account and leave Token type on V2/V3 API token. Type a Name of at least four characters, such as `PopMCP`. #### 3. Set the OAuth scopes Scroll to OAuth scopes and set every resource PopMCP should use to modify. Leave the rest on none, then click Save. #### 4. Copy the access token and store hash Copy the Access Token from the credentials window, and take the store hash out of the API path. In `https://api.bigcommerce.com/stores/abc123xyz9/v3/` the hash is `abc123xyz9`. #### 5. Paste into PopMCP Paste the hash into Store hash, or paste the whole API path and let PopMCP extract it. Paste the token into Access token and save. ### Fields PopMCP asks for - Store hash (storeHash) [required]: The store id in your API Path: https://api.bigcommerce.com/stores//v3/. Paste just the hash, or the whole API path, and we'll pull it out. - Access token (accessToken) [required]: BigCommerce control panel → Settings → API → Store-level API accounts → Create. Copy the Access Token (shown once). Grant the scopes you want the MCP to use. Stored encrypted. ### Verify PopMCP shows BigCommerce as Connected and a test call returns your store's product catalogue. The API account row appears under Settings > API > Store-level API accounts. ### Troubleshooting #### 401 Unauthorized on every call Cause: The access token is wrong, or the client secret was pasted into the token field. The .txt file lists both and they look similar. Fix: Re-open the downloaded .txt and copy the value labelled Access Token. If the file is gone, delete the API account and create a new one. #### 403 Forbidden on some tools but not others Cause: That resource's OAuth scope was left on none, and scopes are immutable after creation. Fix: Create a fresh API account with the missing scope set to modify, swap the new token into PopMCP, then delete the old account. #### 404 on every endpoint Cause: The store hash is wrong, often because the store's subdomain was pasted instead of the hash from the API path. Fix: Use only the segment between /stores/ and /v3/ in the API path, or paste the entire API path and let PopMCP parse it. #### The Client ID and Client Secret fields in PopMCP are missing Cause: A store-level token authenticates with the X-Auth-Token header alone. Fix: Nothing to fix. Only the store hash and access token are needed. #### 429 Too Many Requests Cause: The 30-second request quota for your plan was exhausted. Fix: Wait for the window in the X-Rate-Limit-Time-Reset-Ms header to elapse. Standard and Plus plans get 150 requests per 30 seconds, Pro gets 450. --- ## Bitbucket URL: https://www.docs.popmcp.com/docs/integrations/bitbucket/ Summary: Connect Bitbucket to read and commit code, review and merge pull requests, run and debug Pipelines, and manage repositories and deployments. You paste one value into PopMCP: an Atlassian API token with scopes for Bitbucket. Then you pick the workspace it should work in. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.bitbucket.org/2.0 - Credentials screen: https://id.atlassian.com/manage-profile/security/api-tokens - Provider docs: https://support.atlassian.com/bitbucket-cloud/docs/create-an-api-token/ ### Before you begin - A Bitbucket Cloud account on bitbucket.org that belongs to at least one workspace. Bitbucket Data Center is not supported - Access to your Atlassian account settings at id.atlassian.com: if you sign in with a password or a third-party login, Atlassian may email a one-time code before it lets you create a token - Permission to create API tokens. An organization admin can block them for managed accounts through an authentication policy - Admin rights on the workspace or repository only for admin work: webhooks, branch restrictions, permissions and deploy keys ### Get your credentials #### 1. Open API tokens in your Atlassian account Go to `id.atlassian.com`, open Security and click Create and manage API tokens, or use the direct link. Bitbucket uses your Atlassian account's tokens: app passwords stopped working in 2026. Screen: https://id.atlassian.com/manage-profile/security/api-tokens #### 2. Name the token and set its expiry Click Create API token with scopes. Name it `PopMCP`, choose an expiry date (at most a year from today) and click Next. When the token expires, the connection stops working until you paste a new one. Screen: https://id.atlassian.com/manage-profile/security/api-tokens #### 3. Choose Bitbucket as the app Select Bitbucket in the list of apps and click Next. A token made for Jira or Confluence does not work with Bitbucket. Screen: https://id.atlassian.com/manage-profile/security/api-tokens #### 4. Tick the scopes Tick what the AI should be able to do, then click Next. For everyday work tick `read:repository:bitbucket`, `write:repository:bitbucket`, `read:pullrequest:bitbucket`, `write:pullrequest:bitbucket`, `read:pipeline:bitbucket`, `write:pipeline:bitbucket`, `read:workspace:bitbucket`, `read:project:bitbucket` and `read:user:bitbucket`. Add `read:webhook:bitbucket` and `write:webhook:bitbucket` for event triggers, and the `admin:` and `delete:` scopes only if the AI should change settings or delete things. For read-only use tick only the `read:` scopes. A scope never includes another: `write:repository:bitbucket` does not give read access by itself. Screen: https://id.atlassian.com/manage-profile/security/api-tokens #### 5. Create the token and copy it Check the summary, click Create token, then Copy the token. Tokens start with `ATATT`. Atlassian shows it only once, so paste it straight into PopMCP. Screen: https://id.atlassian.com/manage-profile/security/api-tokens #### 6. Paste it into PopMCP and choose the workspace In PopMCP, paste the token into API token and connect. PopMCP lists every workspace the token reaches: choose one, or several, each into its own PopMCP workspace. To use a repository, project or workspace access token instead (made under that resource's Settings, Access tokens), paste it and enter its workspace ID under More options. ### Fields PopMCP asks for - API token (apiToken) [required]: In your Atlassian account settings choose Security, then Create and manage API tokens, then Create API token with scopes. Name it, set an expiry, choose Bitbucket, tick the scopes, create it and copy it (it is shown once). Stored encrypted. - Workspace (only for an access token) (tokenWorkspace): Leave this empty for an API token: your workspaces are listed for you. For a repository, project or workspace access token, enter its workspace ID or paste a link to the repository. ### Verify PopMCP lists the workspaces the token reaches, and after you choose one the connection shows as Verified, labelled with the workspace name, with notes saying who it acts as and your role there. Asking the AI for open pull requests returns real pull request ids and titles. ### Troubleshooting #### "Bitbucket did not accept this token." Cause: The token expired or was revoked, was copied incompletely, or was made with Create API token (no scopes), which Bitbucket refuses. Fix: Create a new token with **Create API token with scopes**, choose **Bitbucket**, tick the scopes and paste the whole token. #### "That is a Bitbucket app password." Cause: App passwords (starting ATBB) were switched off by Atlassian in 2026. Fix: Create an API token with scopes for Bitbucket instead and paste that. #### "This API token cannot list your workspaces" Cause: The token lacks `read:workspace:bitbucket`. Fix: Create a new token with that scope ticked, or open **More options** and enter the workspace ID (the part after bitbucket.org/ in your links). #### "This is a repository, project or workspace access token, which cannot list workspaces." Cause: Access tokens belong to one resource and cannot enumerate workspaces. Fix: Open **More options** and enter the token's workspace ID, or paste a link to the repository. #### "There is no Bitbucket workspace ... that this token can reach." Cause: The workspace ID is mistyped, or the token's account or resource has no access to it. Fix: Copy the workspace ID from a repository link: it is the part right after bitbucket.org/. #### Some tools answer 403 while others work Cause: The token lacks a scope those tools need, or your role in the workspace (member rather than admin) does not allow the action. Fix: The error names the missing scope. Token scopes cannot be edited: create a new token with it ticked and reconnect. #### Event triggers never fire Cause: Registering the workspace webhook needs the webhook scopes and a workspace admin. Fix: Reconnect with a token that has `read:webhook:bitbucket` and `write:webhook:bitbucket`, made by a workspace admin. --- ## Brevo URL: https://www.docs.popmcp.com/docs/integrations/brevo/ Summary: Connect Brevo to manage contacts and lists, send email, SMS, and WhatsApp, run campaigns, and use the sales CRM. One Brevo v3 API key beginning with xkeysib- that you paste into PopMCP's API key field. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.brevo.com/v3 - Credentials screen: https://app.brevo.com/settings/keys/api - Provider docs: https://developers.brevo.com/docs/api-key-authentication ### Before you begin - A Brevo account on any plan, including the free tier - A user who can open the account dropdown and reach SMTP & API settings, so an owner or an admin - SMS, WhatsApp and Sales platform endpoints only answer if your plan includes those products ### Get your credentials #### 1. Open the account menu Sign in at app.brevo.com and click your account name in the top-right corner. Choose SMTP & API from the dropdown. Screen: https://app.brevo.com/settings/keys/api #### 2. Open the API Keys & MCP tab On the SMTP & API page, select the API Keys & MCP tab. Screen: https://app.brevo.com/settings/keys/api #### 3. Generate a new API key Click Generate a new API key, type `PopMCP` into the name field, set Expiry to No expiration, then click Generate. Screen: https://app.brevo.com/settings/keys/api #### 4. Copy the key into PopMCP Copy the key from the dialog before you close it. Paste it into PopMCP's API key field and save the connection. ### Fields PopMCP asks for - API key (apiKey) [required]: Brevo dashboard → click your account name (top right) → SMTP & API → API Keys → Generate a new API key. It starts with "xkeysib-". Stored encrypted. ### Verify The Brevo connector in PopMCP flips to Connected and the connection card names your Brevo account. Asking for your contact lists returns the lists that exist in Brevo. ### Troubleshooting #### 401 Unauthorized Cause: The key was deleted, expired or regenerated in Brevo, or a stray space or line break was pasted with it. Fix: Generate a fresh key on the API keys tab and paste it again with no surrounding whitespace. #### 403 Forbidden on some tools only Cause: Your Brevo plan does not include that product, for example SMS or the Sales platform. Fix: Upgrade the plan or avoid those tools. The key itself is fine if contacts and email calls succeed. #### 429 Too Many Requests Cause: You crossed Brevo's per-endpoint rate limit. Most non-sending endpoints are capped per hour rather than per second. Fix: Slow the calls down, or move to a Professional or Enterprise plan, which doubles the allowance. #### You closed the dialog before copying Cause: Brevo never redisplays a key. The list only shows the last few characters. Fix: Delete the half-created key and click Generate a new API key again. --- ## Buffer URL: https://www.docs.popmcp.com/docs/integrations/buffer/ Summary: Connect Buffer to schedule and publish posts across your social channels, run the full post lifecycle, and track performance. One Buffer personal API key, the Bearer token you paste into PopMCP's Personal API key field. - Auth: API credentials - Setup time: 4 min - API base URL: https://api.buffer.com - Credentials screen: https://publish.buffer.com/settings/api - Provider docs: https://developers.buffer.com ### Before you begin - A Buffer account. Free works, and allows 1 personal key, Essentials 3, Team 5 - The key acts on your own Buffer account and reaches every organization and channel in it - Personal keys always carry an expiry, so plan to reconnect when it lapses ### Get your credentials #### 1. Open Buffer's API settings Click the profile icon in the lower-left corner of the dashboard and choose API. Screen: https://publish.buffer.com/settings/api #### 2. Start a new personal key Open the Personal Access tab and click + New Key in the Keys section. Screen: https://publish.buffer.com/settings/api #### 3. Name the key, keep the permissions, pick an expiry Name the key `PopMCP` and leave every box under Permissions ticked. Set the expiry to 1 year, then click Generate API Key. Screen: https://publish.buffer.com/settings/api #### 4. Copy the key into PopMCP Click Copy key in the dialog. Paste the token into PopMCP's Personal API key field and save. ### Fields PopMCP asks for - Personal API key (apiKey) [required]: Buffer app → Settings → API → Personal Keys tab → + New Key → choose permissions + an expiry → Generate API Key → copy it. Stored encrypted; used server-side only (sent as Authorization: Bearer). The connection is locked to this key's account. Note: a personal key has an expiry (up to 1 year). Reconnect with a fresh key when it lapses. ### Verify The Buffer connector in PopMCP shows Connected. Asking it to list your channels returns the social accounts you have linked in Buffer. ### Troubleshooting #### 401 Unauthorized Cause: The key expired, was revoked, or the Authorization header lost the token. Fix: Create a fresh personal key on Settings then API, and reconnect in PopMCP. #### 429 Too Many Requests Cause: You crossed one of Buffer's three windows: 15 minute, 24 hour or 30 day. Fix: The 429 body names the window that was exhausted. Wait it out, or ask Buffer developer support for a higher limit. #### Buffer refuses to create another key Cause: Your plan's key allowance is used up: 1 on Free, 3 on Essentials, 5 on Team. Fix: Delete a key you no longer use, or upgrade the plan. #### Posts land on the wrong brand Cause: The personal key spans every organization on the account. Fix: Name the channel or organization explicitly in your prompt. The credential cannot be narrowed. #### You want to revoke access later Cause: Keys and connected clients are managed in two places on the same tab. Fix: Delete the key under Keys, or remove the entry under Active Integrations, which revokes access straight away. --- ## Cal.com URL: https://www.docs.popmcp.com/docs/integrations/calcom/ Summary: Connect Cal.com to create, reschedule, and cancel bookings, and manage event types, availability, and connected calendars. One Cal.com API key, starting with cal_ or cal_live_, that you paste into PopMCP's API Key field. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.cal.com/v2 - Credentials screen: https://app.cal.com/settings/developer/api-keys - Provider docs: https://cal.com/docs/api-reference/v2/introduction ### Before you begin - A Cal.com cloud account at app.cal.com. The free plan is enough - The key inherits your own permissions, so create it as a user who can see every event type, booking and team you want PopMCP to reach - Self-hosted Cal.com works too, but the key must come from your own instance and the API host will differ ### Get your credentials #### 1. Open Settings, then Developer Click the dropdown beside your name and choose My Settings. Scroll the settings sidebar to the Developer section and click API keys. Screen: https://app.cal.com/settings/developer/api-keys #### 2. Add a key Click + Add in the upper-right corner of the API keys page. Screen: https://app.cal.com/settings/developer/api-keys #### 3. Name it and turn on Never expires Enter `PopMCP` as the Personal note and switch on Never expires. Click Save. Screen: https://app.cal.com/settings/developer/api-keys #### 4. Copy the key into PopMCP Copy the key from the dialog before you close it. Paste it into PopMCP's API Key field with the `cal_live_` prefix intact, then save. ### Fields PopMCP asks for - API Key (apiKey) [required]: In Cal.com go to Settings → Developer → API Keys and create an API key (it starts with cal_ or cal_live_; older docs call this the Security tab). Copy it exactly. It's sent as an Authorization: Bearer header, stored encrypted, and used server-side only. ### Verify The Cal.com connector in PopMCP shows Connected. Asking for your event types returns the same list you see under Event Types in app.cal.com. ### Troubleshooting #### 401 Unauthorized Cause: The key was deleted, has expired, or the cal_live_ prefix was trimmed when pasting. Fix: Add a fresh key with Never expires on and paste the whole string, prefix included. #### 403 Forbidden on team endpoints Cause: The key inherits the creator's permissions and that user is not on the team. Fix: Mint the key from an account that is a member of the team, or grant that user access in Cal.com. #### 429 Too Many Requests Cause: You exceeded 120 requests per minute on this key. Fix: Space the calls out, or ask Cal.com to raise the limit for your key. #### Calls hit the v1 API instead of v2 Cause: Older Cal.com integrations pass the key as an ?apiKey= query parameter against api.cal.com/v1. Fix: PopMCP uses v2 with an Authorization: Bearer header. Make sure you pasted a key rather than a v1 URL. --- ## Calendly URL: https://www.docs.popmcp.com/docs/integrations/calendly/ Summary: Connect Calendly to manage users, event types, scheduled events and invitees, availability, and routing forms. You end up pasting one Calendly personal access token, generated under Automations → Integrations & apps → API and webhooks and shown only once. - Auth: API credentials - Setup time: 4 min - API base URL: https://api.calendly.com - Credentials screen: https://calendly.com/integrations/api_webhooks - Provider docs: https://developer.calendly.com/how-to-authenticate-with-personal-access-tokens ### Before you begin - A Calendly account you can sign in to - Access to the email inbox on that account, because Calendly sends a verification code before it issues the token - A paid plan for the scheduling and webhook endpoints. Standard, Teams, Enterprise or legacy Professional all work - An account that can already see the event types and scheduled events you want PopMCP to reach, because the token inherits your own user's permissions ### Get your credentials #### 1. Open the API and webhooks integration Click Automations in the left sidebar, then select the Integrations & apps tab. Find the API and webhooks tile and open it. Screen: https://calendly.com/integrations/api_webhooks #### 2. Start a new personal access token On the API and webhooks page, click Get a token now. If you already have tokens listed, click Generate new token instead. Screen: https://calendly.com/integrations/api_webhooks #### 3. Name the token and create it Under Choose a name for this token, type a name you will recognise later, such as `popmcp`. Click Create token. #### 4. Enter the emailed authentication code Calendly emails you an authentication code. Open the email, then type the code into the verification prompt to continue. #### 5. Copy the token into PopMCP Click Copy token and paste the value into PopMCP's Personal Access Token field. ### Fields PopMCP asks for - Personal Access Token (accessToken) [required]: In Calendly: click your avatar → Integrations & apps → API & webhooks → Personal access tokens → Generate new token (name it, e.g. "popmcp"). Copy the token; it's shown only once. Requires a paid plan (Standard/Teams/Enterprise or legacy Pro). Stored encrypted. ### Verify PopMCP shows the connector as Connected with your Calendly name and organization URI. A test call listing event types returns your booking pages. ### Troubleshooting #### 401 Unauthorized on every call Cause: The token was truncated on copy, or a stale token from a deleted Calendly user is being reused. Fix: Generate a fresh token from Automations → Integrations & apps → API and webhooks and paste the whole string with no leading or trailing spaces. #### You closed the token dialog before copying Cause: Calendly does not store or redisplay the token value anywhere. Fix: Delete the token from the Personal access tokens list and generate a new one. #### The verification code never arrives Cause: Calendly sends the code to the account email, which may be filtered or delayed. Fix: Check spam and any shared-inbox rules, then click Resend code. The code is tied to the sign-in email on the Calendly account, not to your PopMCP login. #### 403 Forbidden on webhook or scheduling endpoints Cause: The Calendly account is on a free plan, or your user role is not an admin or owner of the organization. Fix: Upgrade to Standard or Teams and above, or create the token from an account with organization admin rights. #### 403 on the activity log or invitee-deletion tools Cause: Those endpoints are Enterprise only regardless of token. Fix: Skip those tools, or connect a token from an Enterprise organization. #### 429 Too Many Requests Cause: Too many calls in a short window from the same token. Fix: Wait out the Retry-After header. PopMCP retries automatically, so space out large sync jobs. --- ## CallRail URL: https://www.docs.popmcp.com/docs/integrations/call-rail/ Summary: Connect CallRail to see which marketing drives your phone calls, read call recordings and transcripts, qualify leads, and manage tracking numbers and texts. You end up with one CallRail API key, a long hex string, which goes into PopMCP's API key field. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.callrail.com/v3 - Credentials screen: https://app.callrail.com/ - Provider docs: https://apidocs.callrail.com/ ### Before you begin - A CallRail account on any plan - Sign in as a user who can see every company you want the MCP to reach. Keys are personal and inherit that user's permissions - That same user needs the rights to send texts or place outbound calls if you want those tools to work ### Get your credentials #### 1. Sign in as the right CallRail user Sign in at app.callrail.com as the user whose company access you want the AI to have. Screen: https://app.callrail.com/ #### 2. Open the API Keys page Click your name at the bottom left, choose My Account, then select API Keys under the Security heading in the left menu. Screen: https://app.callrail.com/ #### 3. Create the key Click Create API V2 Key, type a name such as `PopMCP`, and click Create. #### 4. Copy the key into PopMCP Copy the value from the confirmation dialog and paste it into PopMCP's API key field. ### Fields PopMCP asks for - API key (apiKey) [required]: In CallRail, click your name (bottom left) → My Account → API Keys → Create API key, then copy the value. The key inherits the permissions of the user who creates it, so make it with an account that can see every company you want this MCP to reach. Sent as an Authorization: Token header, stored encrypted, used server-side only. ### Verify PopMCP marks the CallRail connection Connected and the account or company tools return your CallRail companies with their names and IDs. ### Troubleshooting #### 401 Unauthorized on every call Cause: The key was mistyped, has extra whitespace, or was deleted in CallRail. Fix: Create a fresh key on the API Keys page and paste it again with no surrounding spaces. #### You cannot find a key a colleague made Cause: The API Keys page lists only keys created by the signed-in user, even for admins. Fix: Create your own key, or ask that colleague to send theirs. #### Some companies are missing Cause: API keys inherit the permissions of the user who created them. Fix: Have an account-level user create the key, then reconnect in PopMCP with that key. #### The button reads Create API V3 Key, not V2 Cause: Some accounts show a newer label on the same screen. Fix: Use it. Either button mints a token the v3 API accepts. #### 403 on sending a text or tagging a call Cause: The user who created the key lacks that permission in CallRail. Fix: Grant the user the missing permission, or create the key from an account-level user, then reconnect. #### 429 Too Many Requests Cause: You crossed the hourly or daily quota. Fix: Pause and retry after the window resets, or ask CallRail support to raise the limit. --- ## Campaign Monitor URL: https://www.docs.popmcp.com/docs/integrations/campaignmonitor/ Summary: Connect Campaign Monitor to manage lists, subscribers and segments, build and send campaigns, track opens and clicks, and send transactional email. You paste your Campaign Monitor account API key, then pick the client (brand) each PopMCP workspace works with. One client's own API key also works if you add its Client ID. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.createsend.com/api/v3.3 - Credentials screen: https://YOUR-ACCOUNT.createsend.com/login (replace YOUR-ACCOUNT with your Campaign Monitor account) - Provider docs: https://help.campaignmonitor.com/s/article/api-keys ### Before you begin - A Campaign Monitor user with full access. Campaign Monitor only shows the API keys page to full-access users. - A verified email address on that login. The API key stays hidden until the address is verified. - At least one client in the account. PopMCP pins every connection to one client and stops with an error on an account that has none. - Only if you use a client's own API key instead of the account key: that client's Client ID, listed on the same API keys page ### Get your credentials #### 1. Open Account settings Sign in to Campaign Monitor. Click your profile picture in the top right corner and choose Account settings. Screen: https://YOUR-ACCOUNT.createsend.com/login (replace YOUR-ACCOUNT with your Campaign Monitor account) #### 2. Open API keys and reveal the key Select API keys. Click Show API key, or Generate API key if the account has never had one. The same page lists each client's Client ID. Screen: https://YOUR-ACCOUNT.createsend.com/login (replace YOUR-ACCOUNT with your Campaign Monitor account) #### 3. Copy the account API key Copy the revealed key in full. Leave the Client IDs alone unless you are connecting with a single client's own API key. Screen: https://YOUR-ACCOUNT.createsend.com/login (replace YOUR-ACCOUNT with your Campaign Monitor account) #### 4. Paste the key into PopMCP and pick the client In PopMCP, paste the key into Campaign Monitor API key and leave Client ID (only for a client API key) blank. Click Connect Campaign Monitor, choose the client for each PopMCP workspace, and confirm. If you pasted one client's own API key instead, fill in that client's ID in Client ID (only for a client API key) before connecting. ### Fields PopMCP asks for - Campaign Monitor API key (apiKey) [required]: In Campaign Monitor, click your profile picture (top right), then Account settings, then API keys, then Show API key (or Generate API key if you haven't made one). You need full access to see it. Stored encrypted, used server-side only. - Client ID (only for a client API key) (clientId): Leave this blank when you paste the account API key: you'll choose the client next. Fill it in only if you paste one client's own API key; the Client ID is listed on the same API keys page. ### Verify PopMCP shows the connection as Verified under the client's company name, and asking the AI to list your lists returns that client's real subscriber lists. The connection profile also shows the client's time zone, which Campaign Monitor uses for campaign send dates. ### Troubleshooting #### 401 `{"Code":100,"Message":"Invalid API Key"}` Cause: The key was copied incompletely, or it is an old key more than 24 hours after a new one was generated. Fix: Click Show API key again, copy the current value in full, and reconnect. #### Campaign Monitor didn't accept that API key Cause: You pasted one client's own API key and left the Client ID blank. A client key cannot list clients, so PopMCP had nothing to pick from. Fix: Either paste the account API key, or keep the client key and fill in that client's ID in Client ID (only for a client API key). #### There is no Show API key or Generate API key button Cause: Your user does not have full access, or the email address on your login is not verified yet. Fix: Verify your email address, or ask an account administrator with full access to copy the key for you. #### This Campaign Monitor account has no clients yet Cause: PopMCP connects one client per workspace and the account has none. Fix: Create a client in Campaign Monitor, then connect again. #### Client isn't reachable with this API key any more Cause: The pinned client was deleted, or the key changed so it no longer reaches that client (Campaign Monitor error 102, invalid ClientID). Fix: Reconnect Campaign Monitor in PopMCP and choose a client from the fresh list. #### Integrations broke a day after you generated a new key Cause: After Generate a new API key, the previous key keeps working for 24 hours and then stops. Fix: Reconnect PopMCP with the new key within that window, along with every other integration that used the old one. #### 429 `{"Code": 429, "Message": "Rate limit exceeded"}` on transactional tools Cause: Campaign Monitor rate-limits the transactional endpoints. The X-RateLimit-Reset header says how many seconds remain. Fix: Wait for the reset and retry, and send transactional email in fewer, larger batches (up to 25 recipients per call). --- ## Canva URL: https://www.docs.popmcp.com/docs/integrations/canva/ Summary: Connect Canva to find, create and export designs, upload images and videos, fill brand templates with data, resize designs, and organize folders. You create a public app in the Canva Developer Portal, turn on its Canva REST APIs, tick the scopes and add PopMCP's redirect URL, then enter the app's Client ID and a generated client secret in PopMCP and sign in to Canva to approve access. - Auth: OAuth authorization - Setup time: 5 min - API base URL: https://api.canva.com/rest/v1 - Credentials screen: https://www.canva.com/developers/apps - Provider docs: https://www.canva.dev/docs/apps/rest-apis/authentication/ ### Before you begin - A Canva account on any plan. Sign in to the Developer Portal with the account you want to connect: the app you create works for your own account straight away, with no review by Canva. - Multi-factor authentication turned on for that Canva account (Your account, Account and security, Multi-factor authentication). Canva requires it before the REST APIs can be used, and an account that signs in with Google or Apple needs a Canva password first. - PopMCP's redirect URL from the connect form: https://app.popmcp.com/api/providers/canva/callback - For resizing, autofill and brand templates, a Canva Pro, Teams or Enterprise plan (free accounts get a small trial of resize and autofill). Design analytics needs Canva Enterprise. Everything else works on Canva Free. ### Get your credentials #### 1. Open Your apps Go to canva.com/developers/apps and sign in with the Canva account you want to connect. On Your apps, click Create an app. Screen: https://www.canva.com/developers/apps #### 2. Create a public app Enter an App name of 18 characters or fewer, such as `PopMCP`: Canva shows it when asking for access. Under Who can use your app? choose Public (Private is only for teams on Canva Enterprise, and the choice cannot be changed later). Accept the Developer Terms and click Create app. Screen: https://www.canva.com/developers/apps #### 3. Turn on the Canva REST APIs In the app's menu open Outside Canva and click Start integrating, which creates the app's sign-in details and opens Configuration. Under Integration methods, make sure Canva REST APIs is on. You can leave Canva MCP off. Screen: https://www.canva.com/developers/apps #### 4. Tick the scopes Still on Configuration, under Scopes tick design:content Read and Write, design:meta Read, asset Read and Write, folder Read and Write, brandtemplate:meta Read, brandtemplate:content Read and Write, comment Read and Write, and profile Read. Canva refuses a sign-in that asks for a scope the app does not have, so tick every one. Screen: https://www.canva.com/developers/apps #### 5. Add PopMCP's redirect URL Open Outside Canva, Redirect URLs and enter `https://app.popmcp.com/api/providers/canva/callback` in URL 1, exactly as PopMCP shows it. Screen: https://www.canva.com/developers/apps #### 6. Copy the Client ID and generate a secret Back on Configuration, under Credentials, copy the Client ID. Click Generate secret and copy the secret straight away: Canva shows it once, and generating another replaces it. Screen: https://www.canva.com/developers/apps #### 7. Enter both in PopMCP and sign in Paste the Client ID into Client ID and the secret into Client secret, then click Sign in with Canva. Sign in with the same Canva account and click Allow on Canva's access page. ### Fields PopMCP asks for - Client ID (clientId) [required]: Only needed to use your own app. In the Canva Developer Portal (canva.com/developers/apps) choose Create an app, pick Public, accept the terms and create it (Canva asks for multi-factor authentication on your account first). Open Outside Canva and click Start integrating, check Canva REST APIs is on, and under Scopes tick design:content (Read and Write), design:meta (Read), asset (Read and Write), folder (Read and Write), brandtemplate:meta (Read), brandtemplate:content (Read and Write), comment (Read and Write) and profile (Read). Add the redirect URL shown here under Outside Canva, Redirect URLs. Then copy the Client ID from Credentials and click Generate secret. - Client secret (clientSecret) [required]: Click Generate secret under Outside Canva, Configuration, Credentials (Canva shows it once). Stored encrypted and used only on our server. ### Callback URL to register https://app.popmcp.com/api/providers/canva/callback ### Scopes requested - design:meta:read - design:content:read - asset:read - folder:read - brandtemplate:meta:read - brandtemplate:content:read - profile:read - design:content:write - asset:write - folder:write - comment:read - comment:write - brandtemplate:content:write ### Verify PopMCP shows Canva as Connected under your Canva name, and canva_list_designs returns your most recent designs with their edit links. ### Troubleshooting #### Canva shows an error page instead of asking for access Cause: PopMCP's callback is not in Redirect URLs on the app, differs by a character, or the app is missing a scope PopMCP asks for. Fix: Under **Outside Canva**, **Redirect URLs**, set **URL 1** to `https://app.popmcp.com/api/providers/canva/callback`. Under **Configuration**, **Scopes**, tick every scope listed in the steps. Then connect again. #### "Canva did not accept the app's Client ID and Client secret" Cause: The Client ID or secret was mistyped, or a newer secret was generated after you copied this one. Fix: Under **Outside Canva**, **Configuration**, **Credentials**, click **Generate secret** and enter the new secret and the **Client ID** in PopMCP again. #### "Canva signed in but refused to show the account" Cause: Canva REST APIs is turned off for the app, or a scope was left unticked. Fix: Under **Configuration**, turn on **Canva REST APIs** in **Integration methods**, tick every scope, and connect again. #### The Developer Portal will not let you create an app Cause: Your Canva account does not have multi-factor authentication turned on. Fix: In Canva open **Your account**, **Account and security** and turn on **Multi-factor authentication** with an authenticator app (set a Canva password first if you sign in with Google or Apple). Then return to **Your apps**. #### A tool answers missing_scope Cause: The app does not have the scope that operation needs. Fix: Tick the scope under **Configuration**, **Scopes**, then reconnect Canva in PopMCP so the new sign-in includes it. #### Resize, autofill or brand template tools answer permission_denied Cause: Those features need Canva Pro, Teams or Enterprise, and a free account's trial uses are spent. Fix: Use an account on a paid Canva plan. canva_get_user_capabilities lists the features the connected account has. #### 429 too_many_requests Cause: Canva limits each user per operation (for example 20 new designs a minute) and exports to 75 every 5 minutes and 500 a day. Fix: Wait about a minute and try again. Export several pages in one call instead of one call per page. #### "Canva no longer accepts this connection's sign-in" Cause: Access was removed in Canva, the app's secret was replaced, or the app was deleted. Fix: Reconnect Canva to sign in again. --- ## Chargebee URL: https://www.docs.popmcp.com/docs/integrations/chargebee/ Summary: Connect Chargebee to manage customers, subscriptions, invoices, credit notes, transactions, coupons, and quotes. You end up with two values: your Chargebee site name (the part before .chargebee.com) and a full-access API key that starts with live_ or test_. - Auth: API credentials - Setup time: 4 min - API base URL: https://{site}.chargebee.com/api/v2 - Credentials screen: https://app.chargebee.com/login - Provider docs: https://apidocs.chargebee.com/docs/api ### Before you begin - A Chargebee Billing site, live or test - An Admin or Owner user. The API Keys screen is hidden from users without configuration rights - Decide up front whether you are connecting the live site or the test site. Keys never work across the two ### Get your credentials #### 1. Sign in and note your site name Sign in at app.chargebee.com/login and read the address bar. In `https://acme.chargebee.com` the site name is `acme`, and that is what PopMCP's Site name field wants. Screen: https://app.chargebee.com/login #### 2. Open the API keys screen Go to Settings → Configure Chargebee → API Keys and Webhooks, then click the API Keys tab. #### 3. Add a full-access key Click + Add API Key, select Full-Access Key, name it `PopMCP`, and click Create Key. #### 4. Copy the key and paste both values into PopMCP Copy the key from the dialog and paste it into PopMCP's API key field, then type your site name into Site name. ### Fields PopMCP asks for - Site name (site) [required]: Your Chargebee site subdomain: the part before .chargebee.com. You can paste the full URL (https://acme.chargebee.com) too. For a test site use the full name including -test (e.g. acme-test). - API key (apiKey) [required]: Chargebee → Settings → Configure Chargebee → API Keys & Webhooks → API Keys → create/copy a Full-Access key. Stored encrypted; used server-side only. A read-only key works too but will reject writes. ### Verify PopMCP shows the Chargebee connection as Connected and a customer or subscription list tool returns records from your site. ### Troubleshooting #### 401 Unauthorized Cause: The key belongs to the other environment, or it was disabled on the API Keys tab. Fix: Open API Keys on the exact site you typed into PopMCP and create a new full-access key there. #### Requests fail before Chargebee answers, or the host is not found Cause: The Site name field holds the full URL, a trailing slash, or is missing the -test suffix. Fix: Enter just the subdomain, for example acme or acme-test. #### Write tools return an error but reads work Cause: You pasted a read-only key. Fix: Create a Full-Access Key and reconnect. #### You closed the dialog before copying the key Cause: Chargebee shows the full value once and stores only a masked version afterwards. Fix: Delete that key and add a new one. #### 429 Too Many Requests Cause: Per-minute request or concurrency limit hit. Fix: Retry after about a minute, or contact Chargebee support for a higher limit on your plan. --- ## Cin7 Omni URL: https://www.docs.popmcp.com/docs/integrations/cin7/ Summary: Connect Cin7 Omni to manage stock levels, purchase orders, warehouses, products, and fulfillment workflows. You end up with your Cin7 Omni API Username and the API Key of one API v1 connection, which PopMCP sends together as HTTP Basic auth. - Auth: API credentials - Setup time: 6 min - API base URL: https://api.cin7.com/api/v1 - Credentials screen: https://go.cin7.com/Cloud/ - Provider docs: https://help.omni.cin7.com/hc/en-us/articles/10015165519503-Set-up-a-Cin7-Omni-API-connection ### Before you begin - A Cin7 Omni account. This is the legacy Omni product, not Cin7 Core (formerly DEAR), which uses different credentials - An administrator user. The Integrations & API settings are admin-only - A free API connection slot. Cin7 caps how many connections a site may have and only support can raise it ### Get your credentials #### 1. Sign in to Cin7 Omni as an administrator Sign in at go.cin7.com with an administrator account. Screen: https://go.cin7.com/Cloud/ #### 2. Open Settings, then Integrations & API, then API v1 Open Settings from the user menu in the top navigation, then under Integrations & API select API v1. Copy the API Username printed at the top of the page. #### 3. Add a new API connection and copy the key Click Add New API Connection, enter an App Name such as `PopMCP`, and save. Copy the API Key from the confirmation before you close it. #### 4. Tick the permissions the connection needs Open Permissions under the API Connections list, tick read and write for every module the AI should touch, then click Save. #### 5. Paste both values into PopMCP Enter the API Username from step 2 and the API Key from step 3 into PopMCP. ### Fields PopMCP asks for - API Username (apiUsername) [required]: Cin7 Omni → Settings → Integrations & API → API v1 → Add New API Connection. Copy the API Username shown for the new connection. - API Key (apiKey) [required]: The API Key shown for that same connection. Stored encrypted; Cin7 shows it once. ### Verify PopMCP shows the Cin7 Omni connection as Connected and a product or stock listing tool returns items from your Cin7 catalogue. ### Troubleshooting #### 401 Unauthorized Cause: The API Username and API Key are mismatched, or the key was regenerated after you copied it. Fix: Recheck the username on the API v1 page and regenerate the connection key, then reconnect with the fresh pair. #### 403 mentioning a resource such as Branches Cause: That module is unticked in the connection's Permissions. Fix: Open Permissions under API Connections, tick the module, click Save, and retry. #### "Unable to create more than X API connections" Cause: The account has used all of its allotted connection slots. Fix: Delete an unused connection, or ask Cin7 Omni support to add the new one for you. #### Credentials rejected and your account looks nothing like the screens above Cause: You are on Cin7 Core, formerly DEAR, which uses an Account ID and Application Key instead. Fix: Use the Cin7 Core connector, not this one. #### 429 Too Many Requests Cause: You exceeded 3 calls a second, 60 a minute or 5,000 a day. Fix: Slow the tool calls down and prefer filtered queries on modified date instead of full listings. --- ## CJ Dropshipping URL: https://www.docs.popmcp.com/docs/integrations/cj-dropshipping/ Summary: Connect CJ Dropshipping to search products, check warehouse stock, quote shipping, create and pay orders, track shipments, and handle disputes. You paste one value into PopMCP: a CJ Dropshipping API Key. It has the shape `CJUserNum@api@<40-character token>` and My CJ only ever shows it masked, as `CJ4******38`, beside an eye icon and a copy icon. - Auth: API credentials - Setup time: 6 min - API base URL: https://developers.cjdropshipping.com/api2.0/v1 - Credentials screen: https://www.cjdropshipping.com/my.html#/authorize/API - Provider docs: https://developers.cjdropshipping.com/en/api/api2/api/auth.html ### Before you begin - A CJ Dropshipping account, free to register at cjdropshipping.com - The API app installed from Apps → Install App, in the Others category of the App Store. Until it is installed there is no API entry in the left menu - Access to the CJ account itself. API keys are minted per CJ account, not per staff seat ### Get your credentials #### 1. Install the API app from the App Store Sign in at cjdropshipping.com and open My CJ, then click Apps in the left menu and choose Install App. In the App Store overlay open the Others category, find API, and click the download icon on its card. Screen: https://www.cjdropshipping.com/my.html #### 2. Open the API page under Apps Click the new API entry under Apps in the left menu, or go straight to `my.html#/authorize/API`. Select the API tab rather than API Stores. Screen: https://www.cjdropshipping.com/my.html#/authorize/API #### 3. Create an API Key Click Add API and type a name you will recognise later, such as `PopMCP`, into API Key Name. Leave Same As API Key Name ticked for API Store Name, set Type to API Key, then click Confirm. #### 4. Copy the key from the API Key & MCP Token column Find the row whose Type is API Key and whose Status reads Activated. Click the copy icon in the API Key & MCP Token column instead of revealing the value and retyping it. #### 5. Paste the key into PopMCP Paste the value into the API Key field in PopMCP and click Connect. ### Fields PopMCP asks for - API Key (apiKey) [required]: My CJ → Apps → Install App → install "API" (Others category), then Authorization → Add API → set Type to API Key → Confirm → copy the key from the API Key column. Stored encrypted and used server-side only to mint CJ access tokens. If the key is ever rotated in CJ, reconnect here with the new one. ### Verify PopMCP flips CJ Dropshipping to Connected and a first tool call, such as listing product categories, returns CJ data instead of an auth error. ### Troubleshooting #### Authentication fails right after connecting Cause: The key was retyped or truncated, so the `CJUserNum@api@` prefix is missing or a character was dropped. Fix: Return to Apps → API and use the copy icon in the API Key & MCP Token column, then reconnect in PopMCP. #### There is no API entry under Apps in the left menu Cause: The API app has not been installed from Apps → Install App, in the Others category of the App Store. Fix: Install the API app first, then reload my.html#/authorize/API. #### Too-many-requests errors during the first minutes Cause: CJ limits the token endpoint to one call per second and returns the same cached access token for 24 hours. Repeated reconnects trip the limit. Fix: Wait a minute and reconnect once. Do not re-save the connector repeatedly. #### Connector worked, then started returning auth errors Cause: The key was deleted or regenerated in CJ, or the 180-day refresh token lapsed after a long idle period. Fix: Create a fresh key with Add API and reconnect PopMCP with the new value. #### Not sure whether the key you pasted is complete Cause: CJ keys carry an account prefix. A value without `@api@` in the middle is a partial copy. Fix: Reveal the key with the eye icon and check it reads `CJUserNum@api@` followed by a long token. --- ## Clay URL: https://www.docs.popmcp.com/docs/integrations/clay/ Summary: Connect Clay to find people and companies, run your enrichment functions and workflows at any scale, and read your Clay tables. You paste one Clay API key. It belongs to your Clay user and works in the workspace you create it in. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.clay.com/public/v0 - Credentials screen: https://app.clay.com/workspaces/~/api-and-cli?tab=api-keys - Provider docs: https://developers.clay.com/public-api/authentication ### Before you begin - A Clay account and the workspace you want the AI to work in - API access turned on for each Clay function the AI should run (Functions, Details, API). Without it a run answers 404. - Clay credits for function and workflow runs. Searches spend no credits but count toward your plan's result limits. - A Clay Enterprise plan, only if you want the AI to query Clay tables ### Get your credentials #### 1. Open API keys in Clay Sign in to Clay, switch to the workspace you want to connect, and open API and CLI, then the API keys tab. If your workspace does not show API and CLI, look under Settings, Account, API keys. Screen: https://app.clay.com/workspaces/~/api-and-cli?tab=api-keys #### 2. Create a key and copy it Create a new API key, name it `PopMCP` so you can recognize it later, and copy it straight away: Clay returns the full key only once. Screen: https://app.clay.com/workspaces/~/api-and-cli?tab=api-keys #### 3. Turn on API access for the functions the AI will run Open Functions, select a function, open Details and enable API. Copy the function's `t_...` id (or its URL) so you can hand it to the AI, because the Public API cannot list functions. Turning on MCP or Claygent access does not turn on API access. Screen: https://app.clay.com/functions #### 4. Paste the key into PopMCP In PopMCP, paste the key into API key and connect. There is no OAuth app or redirect URL to set up. ### Fields PopMCP asks for - API key (apiKey) [required]: In Clay, open API and CLI, then the API keys tab. Create a key and copy it (Clay shows it only once). It works for the workspace you created it in. Stored encrypted and used only on our servers. ### Verify PopMCP shows Clay as Connected with your workspace name and email, and clay_get_credit_balance returns the workspace's credit balances without spending any. ### Troubleshooting #### "Clay rejected this API key" Cause: Clay answered 401 or 403 (body: "Authentication failed"): the key was revoked, mistyped or cut off. Fix: Create a new key under **API and CLI**, **API keys**, copy it while it is on screen, and paste it into **API key**. #### Running a function returns 404 Cause: API access is off for that function, the id is wrong, or the function lives in a different workspace from the key. Fix: Open the function under **Functions**, **Details**, enable **API**, and give the AI its `t_...` id or URL from the same workspace as the key. #### A search returns HTTP 402 Cause: The search hit your plan's result limit. Free and Trial plans cap a search at 50 results. Fix: Narrow the search or ask for fewer rows, or move to a plan with higher limits. #### Table queries fail Cause: Tables are an Enterprise feature, and there is no endpoint that lists tables. Fix: On Enterprise, give the AI the table's `t_...` id from its URL (app.clay.com/workspaces//tables/t_...). #### A run stays in_progress or answers 202 Cause: Runs are asynchronous, and 202 means the run has not finished. Fix: Poll again after a few seconds, or use clay_run_routine_and_wait for up to 100 rows, which waits and returns every row's result. #### 429 Too Many Requests Cause: The workspace went over Clay's per-workspace request rate. Fix: Wait for the Retry-After interval Clay sends and retry. PopMCP retries rate-limited calls automatically. --- ## ClickUp URL: https://www.docs.popmcp.com/docs/integrations/clickup/ Summary: Connect ClickUp to manage tasks, lists, folders, spaces, custom fields, goals, time tracking, docs, and chat. You paste one value into PopMCP: your ClickUp Personal API Token, a single string beginning with pk_. - Auth: API credentials - Setup time: 2 min - API base URL: https://api.clickup.com/api/v2 - Credentials screen: https://app.clickup.com/settings/apps - Provider docs: https://developer.clickup.com/docs/authentication ### Before you begin - Any ClickUp account, including Free Forever - Membership of every Workspace you want the MCP to reach. A personal token carries your own access and nothing more. - No admin role required. Anyone with a ClickUp login can generate a personal token. ### Get your credentials #### 1. Open your personal settings Sign in at app.clickup.com and click your avatar in the top-right corner. Choose Settings. Screen: https://app.clickup.com/settings/profile #### 2. Open Apps in the settings sidebar Under My Settings in the sidebar, click Apps. The API Token block sits at the top of the page. Screen: https://app.clickup.com/settings/apps #### 3. Generate and copy the token Click Generate, or Regenerate if a token already exists. Click Copy to put the `pk_` value on your clipboard. Screen: https://app.clickup.com/settings/apps #### 4. Paste the token into PopMCP In PopMCP, paste the value into API token and click Save. ### Fields PopMCP asks for - API token (apiToken) [required]: In ClickUp, open your avatar (top-right) → Settings → Apps → API Token, then Generate (or copy) your Personal API Token. It starts with pk_. An OAuth2 access token works here too. Stored encrypted; used server-side only. ### Verify PopMCP shows the ClickUp connection as Connected and the workspace picker fills with the ClickUp Workspaces your account belongs to. ### Troubleshooting #### There is no API Token block on the settings page Cause: You opened Workspace settings from the Workspace avatar in the top-left. The personal token lives in your own settings. Fix: Open **Settings** from your avatar in the top-right, then click **Apps** in the sidebar. #### 401 with `Token not found` or `OAUTH_017` Cause: The token was pasted with a `Bearer ` prefix, or truncated when copied. Fix: Re-copy with the **Copy** button and paste the raw value. It must start with `pk_` and contain no spaces. ClickUp expects the raw token in the `Authorization` header with no prefix, which PopMCP handles. #### `Team not authorized` on some Spaces or Lists Cause: Personal tokens only reach Workspaces your own user is a member of. Fix: Have a Workspace owner invite your user, or generate the token from an account that already has access. #### 429 Too Many Requests Cause: You crossed the per-token per-minute rate limit for your plan. Fix: Wait for the window in the `X-RateLimit-Reset` header and reduce polling frequency in your automations. #### The token stopped working overnight Cause: Somebody clicked **Regenerate**, which invalidates the previous token instantly. Fix: Generate a fresh token and paste the new value into PopMCP. --- ## Cloudflare URL: https://www.docs.popmcp.com/docs/integrations/cloudflare/ Summary: Connect Cloudflare to manage zones, DNS, cache, SSL, firewall rules, Workers, and analytics across your accounts. One Cloudflare API token, prefixed cfut_ and shown once, scoped to the accounts, zones and permissions PopMCP should manage. - Auth: API credentials - Setup time: 5 min - API base URL: https://api.cloudflare.com/client/v4 - Credentials screen: https://dash.cloudflare.com/profile/api-tokens - Provider docs: https://developers.cloudflare.com/fundamentals/api/get-started/create-token/ ### Before you begin - Cloudflare account on any plan, including Free - Super Administrator, or a role that includes API token creation, if you want an account-owned token - Know which zones PopMCP should touch, because token resources are fixed at creation time ### Get your credentials #### 1. Open the API Tokens page Sign in at `dash.cloudflare.com`, click the user icon at the top right and choose My Profile, then API Tokens. For a token that should outlive your own account, go to Manage Account → API Tokens instead. Screen: https://dash.cloudflare.com/profile/api-tokens #### 2. Pick a template or start a custom token Click Create Token, then pick a template such as Edit zone DNS, or scroll to Create Custom Token and click Get started. #### 3. Set the permissions and the resources they apply to Name the token `PopMCP` and add one permission row per group, choosing Account, User or Zone and then Edit or Read. Restrict Account Resources and Zone Resources to the accounts and domains PopMCP should manage. #### 4. Review the summary and create the token Check the permission list on the summary screen, then click Create Token. Click Edit token first if a zone or permission is wrong. #### 5. Copy the token value Copy the `cfut_` value from the success screen and paste it into PopMCP's API token field. ### Fields PopMCP asks for - API token (apiToken) [required]: In Cloudflare: My Profile → API Tokens → Create Token. Pick a template (e.g. "Edit zone DNS") or a custom token scoped to the accounts/zones and permissions you need. Copy the token (shown once) and paste it here. Account-owned tokens (Manage Account → API Tokens) also work. Stored encrypted. ### Verify PopMCP shows the connector as Connected and lists your zones, and the token returns "This API Token is valid and active" from /user/tokens/verify. ### Troubleshooting #### 10000 Authentication error Cause: The token was pasted with the word Bearer, surrounding quotes or a trailing newline. Fix: Paste only the raw cfut_ value with no whitespace. #### 9109 Unauthorized to access requested resource Cause: The permission exists but the zone or account was not included under Zone Resources. Fix: Edit the token and add the zone, or switch Zone Resources to All zones from an account. #### Tools can read but every write fails Cause: The permission row was set to Read rather than Edit. Fix: Edit the token, change the level to Edit and save. #### The token worked, then stopped Cause: A TTL end date was set, or Client IP Address Filtering excludes PopMCP's egress addresses. Fix: Remove the TTL and the IP filter, or create a replacement token without them. #### You closed the success screen before copying Cause: Cloudflare shows the token secret once. Fix: Open the token from the API Tokens list, choose Roll, and copy the new value. #### 429 Too Many Requests Cause: Cloudflare caps API traffic at 1,200 requests per five minutes per user, and dashboard activity counts toward it. Fix: Wait five minutes and batch the work. --- ## Superhuman Docs URL: https://www.docs.popmcp.com/docs/integrations/superhuman-docs/ Summary: Connect Superhuman Docs (formerly Coda) to read and edit docs, pages and tables, add and update rows, run buttons and automations, and manage sharing. You paste one value into PopMCP: a Superhuman Docs API token, generated under Account settings, API settings in Superhuman Docs (formerly Coda). - Auth: API credentials - Setup time: 1 min - API base URL: https://docs.superhuman.com/apis/v1 - Credentials screen: https://docs.superhuman.com/account - Provider docs: https://docs.superhuman.com/developers/apis/v1 ### Before you begin - A Superhuman Docs account on any plan, free included. Coda was renamed Superhuman Docs in July 2026 and existing accounts carried over - Access to the docs you want the AI to work with: the token reaches only what you can open - To create docs or pages: the Doc Maker role in the workspace ### Get your credentials #### 1. Sign in to Superhuman Docs (formerly Coda) Sign in at docs.superhuman.com with the account whose docs the AI should reach. Old coda.io addresses still work and open the same account. Screen: https://docs.superhuman.com #### 2. Open Account settings, then API settings Click your profile picture at the top right and choose Account settings. Scroll down to the API settings section, which lists the tokens you already have. Screen: https://docs.superhuman.com/account #### 3. Generate a token, restricted if you like Choose Generate API token and give it a name such as PopMCP. Leave it unrestricted so the AI can reach every doc you can open, or use Add restrictions to limit it to the docs or tables you choose, with read only, write only, or read and write access. Then generate it. Screen: https://docs.superhuman.com/account #### 4. Copy the token Copy the token straight away: it is shown only once. If you lose it, delete it from the list and generate a new one. Screen: https://docs.superhuman.com/account #### 5. Paste the token into PopMCP In PopMCP, paste the token into API token and connect. PopMCP checks it by asking Superhuman Docs who it belongs to, then stores it encrypted. ### Fields PopMCP asks for - API token (apiToken) [required]: In Superhuman Docs (formerly Coda), open Account settings, scroll to API settings and choose Generate API token. Copy it straight away, it is shown only once. Stored encrypted and used only on our servers. ### Verify PopMCP marks the Superhuman Docs connection Verified with your name and email, and notes when the token is restricted. Asking the AI to list your docs returns the docs you have opened recently. ### Troubleshooting #### "Superhuman Docs did not accept this API token. In Superhuman Docs (formerly Coda) open Account settings, find API settings, generate a new token and paste the whole token." Cause: The token was copied in part, pasted with extra text around it, or deleted. Fix: Generate a new token under **Account settings**, **API settings** and paste only the token itself. #### A doc is missing from the list of docs Cause: Superhuman Docs lists only docs you have opened at least once, and a restricted token lists only the docs it covers. Fix: Open the doc once in Superhuman Docs, or give the AI the doc's link; PopMCP takes the doc id out of it. Check the token's restrictions if it still cannot reach the doc. #### Tools fail with 403 on one doc Cause: The token is restricted away from that doc, or your own account cannot open it. Fix: Generate a token that covers the doc, or ask the doc's owner to share it with you. #### A row or page the AI just added does not show up yet Cause: Superhuman Docs queues every change and applies it a few seconds later, and reads can lag recent edits by a few seconds. Fix: Wait a few seconds. The AI can check with get_mutation_status, using the request id the change returned. #### Writing a row fails with 400 Cause: The column is calculated by a formula, the column name does not exist, or the table named is a view rather than the table itself. Fix: Write to the base table and to columns without a formula. get_doc_overview lists each table's columns and marks calculated ones. #### Tools fail with 429 Cause: Superhuman Docs limits each user: about 10 writes and 100 reads every 6 seconds, and 4 doc listings every 6 seconds. Fix: PopMCP retries automatically. For large jobs, ask the AI to batch rows into one call instead of one call per row. --- ## Confluence URL: https://www.docs.popmcp.com/docs/integrations/confluence/ Summary: Connect Confluence to search, read and write pages and blog posts, organize spaces, comment, label, and manage attachments and page access. You enter three values into PopMCP: your Confluence Cloud site (yourcompany.atlassian.net), the email you sign in to Atlassian with, and an Atlassian API token, either a classic one or one with scopes. - Auth: API credentials - Setup time: 4 min - API base URL: https://YOUR-SITE.atlassian.net/wiki/api/v2 - Credentials screen: https://id.atlassian.com/manage-profile/security/api-tokens - Provider docs: https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/ ### Before you begin - A Confluence Cloud site on atlassian.net. Confluence Server and Confluence Data Center are not supported - An Atlassian account that can open Confluence on that site. The MCP works as this account and sees only the spaces and pages it can see - Access to the inbox of your Atlassian email: if you sign in with a password or a third-party login, Atlassian emails a one-time code before it lets you create a token - Permission to create API tokens. An organization admin can block them for managed accounts through an authentication policy ### Get your credentials #### 1. Copy your Confluence site address Open Confluence in your browser and copy the host from the address bar, for example `yourcompany.atlassian.net` (Confluence itself lives under `/wiki`). The name on its own (`yourcompany`) or a link to any page is enough for PopMCP. Older sites that still answer on `yourcompany.jira.com` work too. Screen: https://YOUR-SITE.atlassian.net/wiki (replace YOUR-SITE with your Confluence site) #### 2. Open API tokens in your Atlassian account Go to `id.atlassian.com`, open Security and click Create and manage API tokens, or use the direct link. If Atlassian asks you to verify your identity, enter the one-time code it emails you. Screen: https://id.atlassian.com/manage-profile/security/api-tokens #### 3. Create a classic API token Click Create API token. Name it `PopMCP`, choose an expiry date between 1 and 365 days from today, and click Create. When the token expires, the connection stops working until you paste a new one. Screen: https://id.atlassian.com/manage-profile/security/api-tokens #### 4. Copy the token Click Copy to clipboard in the dialog. Tokens created now start with `ATATT`. Atlassian does not show the token again, so paste it somewhere safe or straight into PopMCP. Screen: https://id.atlassian.com/manage-profile/security/api-tokens #### 5. Or create a token with scopes To limit what the MCP can do, click Create API token with scopes instead. Name it and set its expiry, choose Confluence as the app, then tick the scopes the tools need: `read:page:confluence`, `read:space:confluence`, `read:comment:confluence`, `read:attachment:confluence`, `read:label:confluence` and `read:content-details:confluence` (search and users) for reading, and `write:page:confluence`, `write:comment:confluence`, `write:label:confluence` and `write:attachment:confluence` to change things. Click Create and copy the token. PopMCP detects a scoped token when you connect and sends it through Atlassian's API gateway, which is the only place Atlassian accepts it. Screen: https://id.atlassian.com/manage-profile/security/api-tokens #### 6. Enter the three values in PopMCP In PopMCP, fill in Confluence site with your site address, Atlassian email with the email you sign in to Atlassian with, and API token with the token you copied. Connect, and PopMCP checks the token against your site (and Atlassian's API gateway for a scoped token) straight away. ### Fields PopMCP asks for - Confluence site (site) [required]: The address you open Confluence at. The name on its own (yourcompany) or a link to any page works too. - Atlassian email (email) [required]: The email you sign in to Atlassian with. The MCP works as this person and sees only what they can see in Confluence. - API token (apiToken) [required]: At id.atlassian.com go to Security, then Create and manage API tokens, then Create API token. Name it PopMCP, choose when it expires (a year at most) and copy it. A token with scopes works too: give it the Confluence scopes the MCP should use. Stored encrypted. ### Verify PopMCP marks the Confluence connection Verified, labelled with your site (yourcompany.atlassian.net) and a note saying which Atlassian user it acts as. For a scoped token it also notes that Confluence only allows what the scopes cover. Asking the AI to find a page you know returns its real title and link. ### Troubleshooting #### "Confluence rejected that email and API token for yourcompany.atlassian.net." Cause: The email is not the one the Atlassian account signs in with, the token was copied incompletely or has expired, or the account cannot open Confluence on that site. Fix: Check the email under **Email** in your Atlassian account, create a fresh token and paste it in one piece, and confirm you can open Confluence on that site in your browser. #### "There is no Atlassian Cloud site at yourcompany.atlassian.net." Cause: The site name is mistyped or belongs to a different Atlassian organization. Fix: Copy the host from your browser's address bar while Confluence is open and paste it into **Confluence site**. #### "yourcompany.atlassian.net is an Atlassian site, but Confluence did not answer there." Cause: The site exists but has no Confluence on it, for example a Jira-only site. Fix: Use the site where your spaces live. Its address is in the browser when you open a Confluence page. #### The site address is refused as "not a Confluence Cloud site" Cause: The address is a Confluence Server or Data Center host, or anything other than an atlassian.net (or older jira.com) site. Fix: This connector works with Confluence Cloud only. Enter your site's atlassian.net address. #### Some tools answer 401 while others work Cause: The connection uses a token with scopes, and those tools need a scope it was not given. Fix: Create a new token with the missing scopes (or a classic token) and reconnect Confluence with it. #### A page you can see answers 404 Cause: Confluence answers 404 both when a page does not exist and when the connected account cannot see it, for example because of a page restriction or space permission. Fix: Check the page id or link, and that the connected account can open the page in Confluence. #### There is no way to create an API token, or a working token suddenly stops Cause: Your organization admin blocks API tokens for managed accounts through an authentication policy, or the token reached its expiry date (one year at most). Fix: Ask your Atlassian organization admin to allow API tokens for your account, or create a new token and reconnect. --- ## Constant Contact URL: https://www.docs.popmcp.com/docs/integrations/constant-contact/ Summary: Connect Constant Contact to manage contacts, lists and tags, build and send email campaigns, run events and automations, and track opens and clicks. You paste the API Key (client ID) and a generated client secret of an app you create in Constant Contact's V3 developer portal, then sign in to Constant Contact and approve access. - Auth: OAuth authorization - Setup time: 5 min - API base URL: https://api.cc.email/v3 - Credentials screen: https://app.constantcontact.com/pages/dma/portal - Provider docs: https://developer.constantcontact.com/api_guide/oauth2-authorization/server-flow ### Approval required before this works A new Constant Contact V3 app is private: only the Constant Contact user who created it can authorize it. Connecting your own account works the moment the app exists, but Constant Contact must approve the app before any other account can sign in through it. - Typical wait: Not published. Constant Contact's developer guide says only to contact support to start the approval process and gives no timeframe, so treat any figure you see elsewhere as unofficial. - Cost: Constant Contact's developer guide lists no fee for creating an app or for its approval. You need a Constant Contact account to sign in to the developer portal. - Blocked until approved: Signing in any Constant Contact account other than the one that created the app. Your own account is not blocked. An agency that wants to connect several client accounts through one app is blocked until approval, and a sign-in with any other account fails. - Works meanwhile: Everything for your own account: create the app, add PopMCP's Redirect URI, generate the client secret and connect. Every tool works straight away for the account that created the app. Other accounts can each create their own app and connect without waiting for approval. ### Before you begin - A Constant Contact account you can sign in to. Create the app while signed in to the account you want to connect: until Constant Contact approves an app, only the user who created it can authorize it. - PopMCP's Redirect URI from the connect form: https://app.popmcp.com/api/providers/constant-contact/callback - A user role that can reach the data you want. Constant Contact limits some user roles regardless of the permissions an app asks for. ### Get your credentials #### 1. Open My Applications Go to app.constantcontact.com/pages/dma/portal and sign in with the Constant Contact account you want to connect. The My Applications page lists your apps. Click New Application. Screen: https://app.constantcontact.com/pages/dma/portal #### 2. Create the application Enter a name your users will recognize, such as `PopMCP`: Constant Contact shows it when asking for access. Choose Authorization Code Flow and Implicit Flow, choose Long Lived Refresh Tokens (Rotating Refresh works too), and click Create. Screen: https://app.constantcontact.com/pages/dma/portal #### 3. Add PopMCP's Redirect URI Back on My Applications, click edit next to the new app. In the Redirect URI section add `https://app.popmcp.com/api/providers/constant-contact/callback` exactly as PopMCP shows it, then click Save. Screen: https://app.constantcontact.com/pages/dma/portal #### 4. Copy the API Key and generate a client secret On the app's Details view, copy the API Key. Click Generate Client Secret and copy the secret straight away: Constant Contact shows it once, and generating another one replaces it. Click Save. Screen: https://app.constantcontact.com/pages/dma/portal #### 5. Paste both into PopMCP and sign in Paste the API Key into API key (client ID) and the secret into Client secret, then click Sign in with Constant Contact. Sign in with the same account that created the app and approve access. ### Fields PopMCP asks for - API key (client ID) (clientId) [required]: Only needed to use your own app. In Constant Contact's developer portal (app.constantcontact.com/pages/dma/portal) choose New Application, pick "Authorization Code Flow and Implicit Flow" and "Long Lived Refresh Tokens", add the redirect URI shown here, then copy the API Key and generate a client secret. - Client secret (clientSecret) [required]: Generate it on the app's page (Constant Contact shows it once). Stored encrypted and used only on our server. ### Callback URL to register https://app.popmcp.com/api/providers/constant-contact/callback ### Scopes requested - account_read - contact_data - campaign_data - offline_access - account_update ### Verify PopMCP shows Constant Contact as Connected under your organization name, and constant_contact_get_account_summary returns that account's organization_name and contact_email. ### Troubleshooting #### "Constant Contact did not accept the app's API key and client secret" Cause: Constant Contact answered invalid_client: the API Key or secret was mistyped, or a newer secret was generated after you copied this one. Fix: Open the app on **My Applications**, click **Generate Client Secret**, click **Save**, and paste the new secret and the **API Key** into PopMCP again. #### Constant Contact shows a redirect_uri error instead of the sign-in page Cause: PopMCP's callback is not registered under **Redirect URI** on the app, or differs by a character. Fix: Add `https://app.popmcp.com/api/providers/constant-contact/callback` under **Redirect URI**, click **Save**, and connect again. #### "Constant Contact signed in but refused to read the account" Cause: You signed in with an account other than the one that created the app, and Constant Contact has not approved the app yet, or not every permission was approved. Fix: Sign in with the account that created the app and approve every permission. To connect other accounts through this app, call Constant Contact support on 866-289-2101 to start the approval process. #### "Constant Contact's authorization code expired before it could be used" Cause: Authorization codes last 5 minutes and work once. Fix: Start the connection again and finish the sign-in without leaving the page open. #### "Constant Contact signed in but issued no refresh token" Cause: The sign-in did not grant offline_access, so the connection would stop within a day. Fix: Connect again and approve every permission on the consent screen. #### 429 with quota_exceeded or throttled Cause: Your app's API key used its 10,000 requests for the day (quota_exceeded) or went over 4 requests a second (throttled). Every account connected through the app shares the same budget. Fix: Wait for the daily reset at 00:00 UTC, or spread calls out. Bulk tools such as import_contacts_json and export_contacts_csv do in one request what would take hundreds of single calls. #### "Constant Contact no longer accepts this sign-in" Cause: Access was revoked, the app or its secret changed, or the refresh token expired after 180 days unused. Fix: Reconnect Constant Contact to sign in again. --- ## Contentful URL: https://www.docs.popmcp.com/docs/integrations/contentful/ Summary: Connect Contentful to search, write and publish entries, manage content types, assets and locales, schedule releases, and run webhooks. You paste one value into PopMCP: a Contentful personal access token (a CMA token starting with CFPAT-), created under Settings, CMA tokens in the Contentful web app. Then you pick the spaces to connect. - Auth: API credentials - Setup time: 2 min - API base URL: https://api.contentful.com - Credentials screen: https://app.contentful.com/ - Provider docs: https://www.contentful.com/developers/docs/references/authentication/ ### Before you begin - A Contentful account with access to at least one space. Any plan works, including the free one - Your own Contentful role is the ceiling: the token can read and change only what you can in the web app, so ask a space admin if you need more access - EU data residency accounts work the same way: sign in at app.eu.contentful.com and PopMCP finds the region itself ### Get your credentials #### 1. Sign in and open a space Sign in at app.contentful.com (EU data residency accounts use app.eu.contentful.com) and open any space with the space selector in the top left. The token you create works for every space your user can open, so any one will do. Screen: https://app.contentful.com/ #### 2. Open Settings, then CMA tokens Click Settings and choose CMA tokens from the menu. Under Personal access tokens, click Create personal access token. Screen: https://app.contentful.com/account/profile/cma_tokens #### 3. Name it, pick an expiry and generate Enter a name such as PopMCP and pick an expiry. Click Generate. When the token expires you paste a new one into PopMCP, so a longer expiry means fewer reconnects. Screen: https://app.contentful.com/account/profile/cma_tokens #### 4. Copy the token Copy the token right away: Contentful shows it once. It starts with `CFPAT-`. If you lose it, revoke it and create a new one. Screen: https://app.contentful.com/account/profile/cma_tokens #### 5. Paste it into PopMCP and pick your spaces In PopMCP, paste the token into Personal access token and connect. PopMCP lists every space your user can open: pick the ones to connect and the PopMCP workspace each one goes into. Tools use the master environment; to use another, open More options and type its id under Environment. ### Fields PopMCP asks for - Personal access token (accessToken) [required]: In Contentful: open any space, then Settings > CMA tokens > Create personal access token. Give it a name, pick an expiry, click Generate and copy it right away (Contentful shows it once). It starts with CFPAT-. Stored encrypted and used server-side only. - Environment (environmentId): The environment tools use unless told otherwise. Leave blank for master. ### Verify PopMCP marks each connection Verified with the space's name (Contentful · Marketing site) and notes when the account uses EU data residency. Asking the AI for the content model or the latest entries returns them from that space. ### Troubleshooting #### "Contentful did not accept this token." Cause: The token was copied incompletely, has expired or was revoked. Fix: Create a new token under **Settings**, **CMA tokens** and paste only the token itself, which starts with CFPAT-. #### "That is a Content Delivery API key, which can only read published content." Cause: A key from **Settings**, **API keys** was pasted. Those keys only read published content and cannot reach the management API. Fix: Create a personal access token under **Settings**, **CMA tokens** instead. #### "This token can no longer open the connected space." Cause: Your user was removed from the space, or the space was deleted. Fix: Ask a space admin to add you back, or reconnect with a token from a user who is a member. #### "The space has no environment called ..." Cause: The Environment typed under More options does not exist in the space. Fix: Leave it blank for master, or copy the environment id from **Settings**, **Environments**. #### Writes fail with 403 AccessDenied Cause: Your Contentful role does not allow that change in this space, for example editing content types or publishing. Fix: A space admin can do it, or can give your role the permission under **Settings**, **Roles & permissions**. #### "This space has no Content Delivery API key for the master environment yet." Cause: Delivery, Preview and GraphQL tools need a delivery key and the space has none for that environment. Fix: Create one under **Settings**, **API keys** with access to the environment, then try again. #### Tools fail with 429 Cause: Contentful allows 7 management requests a second by default. Fix: Wait a second and retry; PopMCP retries automatically. Avoid running many calls at once. --- ## Crisp URL: https://www.docs.popmcp.com/docs/integrations/crisp/ Summary: Connect Crisp to read and send conversation messages, manage contacts and visitors, run campaigns, and use the helpdesk. You paste three values into PopMCP: your Crisp Website ID, which is a UUID, plus both halves of a website API token, the token identifier and the secret token key. - Auth: API credentials - Setup time: 4 min - API base URL: https://api.crisp.chat/v1 - Credentials screen: https://app.crisp.chat/settings/ - Provider docs: https://docs.crisp.chat/guides/rest-api/authentication/website-token/ ### Before you begin - A Crisp workspace on any plan. Website tokens need no Marketplace account and no approval - Owner-level access to the workspace. Workspace Settings → Advanced configuration is hidden from ordinary operators - Somewhere safe to paste the token pair immediately, because Crisp shows the key exactly once ### Get your credentials #### 1. Open Workspace Settings Click Settings at the bottom of the left sidebar, then switch to the Workspace Settings tab. Screen: https://app.crisp.chat/settings/ #### 2. Copy your Website ID Open Setup & Integrations and click Copy next to Website ID. Copy the UUID, not the workspace display name above it. Screen: https://app.crisp.chat/settings/ #### 3. Generate a website API token Open Advanced configuration in the same Workspace Settings tab and scroll to the API Token section. Click Generate Token. #### 4. Copy both halves of the token pair Click Copy credentials, then paste the identifier and the key somewhere safe before you close the panel. #### 5. Paste all three values into PopMCP Fill Website ID, Token Identifier and Token Key in PopMCP, then click Connect. ### Fields PopMCP asks for - Website ID (websiteId) [required]: In Crisp: Settings → Workspace Settings → Setup Instructions. It's a UUID. You can also paste a dashboard URL (https://app.crisp.chat/website//…); we'll extract the id. This is the workspace the MCP is locked to. - Token Identifier (identifier) [required]: Settings → Workspace Settings → Advanced configuration → API Token → Generate Token. Copy the identifier (the left half of the pair). Shown only once. - Token Key (key) [required]: The secret key (the right half of the token pair), shown only once when you generate the token. Sent as HTTP Basic auth and stored encrypted; used server-side only. ### Verify PopMCP marks Crisp as Connected, names the workspace it locked onto, and a first tool call such as listing recent conversations returns real threads instead of a 401. ### Troubleshooting #### 401 Unauthorized on every call Cause: Identifier and key were pasted into each other's field, or extra whitespace was copied with the key. Fix: Re-paste carefully. The identifier is the shorter left-hand value. If in doubt, generate a fresh token and reconnect. #### 403 on a workspace you can see in the dashboard Cause: The Website ID belongs to a different workspace than the one the token was generated in. Website tokens are single-workspace. Fix: Copy the Website ID from Setup & Integrations of the same workspace where you generated the token. #### Requests start failing part-way through the day Cause: Website tokens are capped at 10,000 requests per day, and a stricter per-route limiter sits on top of that. Fix: Back off and retry after a pause. If you need a larger quota, move to a Marketplace plugin token instead of a website token. #### Advanced configuration is not in the menu Cause: You are signed in as an operator rather than an owner of the workspace. Fix: Ask a workspace owner to generate the token, or have them raise your role. #### You generated an MCP Server Token but PopMCP wants a pair Cause: The Advanced configuration page offers both an API Token and a separate MCP Server Token. PopMCP uses the REST API pair. Fix: Use Generate Token in the API Token section and copy the identifier and key it returns. --- ## Customer.io URL: https://www.docs.popmcp.com/docs/integrations/customerio/ Summary: Connect Customer.io to manage people and segments, run campaigns and broadcasts, send transactional messages, and track delivery performance. You paste one Customer.io service account token starting with sa_live_, then pick which Customer.io workspace to connect. An App API key is optional and only adds the classic App API tools. - Auth: API credentials - Setup time: 4 min - API base URL: https://us.fly.customer.io (EU accounts: https://eu.fly.customer.io); Track and transactional calls use track.customer.io or track-eu.customer.io - Credentials screen: https://fly.customer.io/settings/api_credentials?keyType=service_accounts - Provider docs: https://docs.customer.io/ai/cli/service-accounts/ ### Before you begin - A Customer.io account in the US or EU data center. PopMCP detects which one. - Access to Account Settings, API Credentials. A user service account only reaches the workspaces its creator can open; only admins can create a system service account, which covers every workspace. - The Customer.io workspace you want connected. Each one maps to its own PopMCP workspace. ### Get your credentials #### 1. Quickest path: copy a token from fly.customer.io/cli Open `https://fly.customer.io/cli`, sign in to Customer.io and copy the token it shows. It starts with `sa_live_`. Then jump to the last step. Prefer to create and name the token yourself? Follow the next three steps instead. Screen: https://fly.customer.io/cli #### 2. Create a service account Go to Account Settings then API Credentials and open the Service Accounts tab. Click Create Service Account, enter a name such as `PopMCP`, choose the type (a user account inherits your permissions; a system account takes a role and covers every workspace) and click Create. Screen: https://fly.customer.io/settings/api_credentials?keyType=service_accounts #### 3. Create a token with No expiration Expand the service account and click Create Token. Enter a Name, set Expiration to No expiration, and for a system account choose a Role. Leave Read-only unticked unless the AI should only read (it permanently limits a user token to GET requests). Click Create. Screen: https://fly.customer.io/settings/api_credentials?keyType=service_accounts #### 4. Copy the token Copy the `sa_live_` value straight away and keep it somewhere safe. Customer.io shows it only once; if it's lost, create another token on the same service account. Screen: https://fly.customer.io/settings/api_credentials?keyType=service_accounts #### 5. Optional: create an App API key Skip this unless you want the classic App API tools (the `app_` tools). Transactional sends and the Track API already work through the token. On the App API Keys tab, click Create App API Key for the workspace you will connect and copy the key. Screen: https://fly.customer.io/settings/api_credentials #### 6. Paste the token into PopMCP Paste the token into Service account token and, if you made one, the key into App API key (optional). PopMCP tries Customer.io's US data center and then the EU one, lists every workspace the token can open, and lets you assign each to a PopMCP workspace. ### Fields PopMCP asks for - Service account token (serviceAccountToken) [required]: Quickest: open fly.customer.io/cli, sign in, and copy the token it shows. Or in Customer.io: Settings → API Credentials → Service Accounts → Create Service Account → Create Token (choose No expiration). A user service account token gets your own permissions; a system one with an Admin role reaches every workspace. Stored encrypted, used server-side only. - App API key (optional) (appApiKey): Leave empty unless you want the classic App API tools (app_*): everything else, including transactional sends and the Track API, works without it. Settings → API Credentials → App API Keys → Create App API Key, for the workspace you're connecting. ### Verify PopMCP shows Customer.io as Verified, labelled with your account and workspace name, such as `Acme · Production`. Ask for the five most recently updated people: customerio_list_customers returns real profiles from that workspace instead of a 401. ### Troubleshooting #### "Customer.io didn't accept that service account token in its US or EU data center" Cause: The token was copied incompletely, or it was revoked, deleted or has expired. Fix: Create a new token on the Service Accounts tab with Expiration set to No expiration, and paste the whole sa_live_ value. #### "That looks like an App API key" when you paste into the first field Cause: An App API key or Track API key was pasted instead of a service account token. Fix: Put a service account token (starts with sa_live_) in Service account token. The App API key can go in App API key (optional). #### "This service account token can't see any Customer.io workspace" Cause: A user service account only reaches the workspaces its creator can open, and that person has none, or the account has no workspace access yet. Fix: Give the creator access to the workspace, or have an admin create a system service account with a role. #### Tools start failing with "Customer.io no longer accepts this connection's service account token" Cause: The token reached its expiration date, or someone revoked it or deleted the service account. Fix: Create a new token with No expiration and reconnect Customer.io in PopMCP. #### An edit answers 428 capability_required, or 403 agent_editing_disabled Cause: Customer.io wants a person to approve some live changes (deleting an automation, merging profiles, editing a running automation), or the workspace blocks agent edits to live data. A read-only token also gets 403 on writes. Fix: Make that change in Customer.io yourself, or use a token without Read-only. PopMCP can't grant Customer.io's approval for you. #### Track tools say the workspace has no Track API key yet Cause: PopMCP reads the workspace's Track API Site ID and key through the token, and this workspace has never had one. Fix: Create one under Account Settings, API Credentials, Track API Keys (or ask the AI to run customerio_create_api_credential), then retry. #### "That App API key belongs to a different Customer.io workspace" Cause: The optional App API key was created for another workspace than the one you picked. Fix: Create an App API key for the connected workspace, or leave the field empty. --- ## DataForSEO URL: https://www.docs.popmcp.com/docs/integrations/data-for-seo/ Summary: Connect DataForSEO to pull SERP results, keyword data, backlinks, on-page audits, and domain and content analytics. You paste two values into PopMCP: the API login and the auto-generated API password shown on the DataForSEO **API Access** page. The API password is not the password you sign in to the dashboard with. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.dataforseo.com/v3 - Credentials screen: https://app.dataforseo.com/api-access - Provider docs: https://docs.dataforseo.com/v3/auth/ ### Before you begin - A DataForSEO account. Registration is free, the sandbox is free, and live endpoints draw on your balance - Permission to view the API password. Restricted sub-accounts see "You do not have permission to get API password" in place of the value - If the account uses the IP Access whitelist on the API Settings page, PopMCP's outbound IPs must be added or every call is rejected ### Get your credentials #### 1. Sign in to the DataForSEO dashboard Go to app.dataforseo.com and sign in. Register first if you do not have an account. Screen: https://app.dataforseo.com/login #### 2. Open API Access Click API Access in the left menu, under the APIs block. Screen: https://app.dataforseo.com/api-access #### 3. Copy the API login and API password Click Click to Copy next to the credentials. If the password is hidden because registration was more than 24 hours ago, click Send by e-mail instead. Screen: https://app.dataforseo.com/api-access #### 4. Check the IP Access whitelist is not blocking PopMCP Click API Settings in the left menu and open the IP Access section. Leave the list empty to accept requests from anywhere, or click Add IP and add PopMCP's egress addresses. Screen: https://app.dataforseo.com/api-settings #### 5. Paste both values into PopMCP Fill API Login and API Password in PopMCP, then click Connect. ### Fields PopMCP asks for - API Login (login) [required]: Your DataForSEO API login, shown on app.dataforseo.com/api-access (usually your account email). Sent as the username half of an Authorization: Basic header. - API Password (password) [required]: The separate auto-generated API password on the same API Access page, NOT your dashboard login password. Sent as the password half of the Basic header, stored encrypted, used server-side only. ### Verify PopMCP shows DataForSEO as Connected and a first call, for example a SERP or Labs request, returns a task with status_code 20000 and your remaining balance rather than an authentication error. ### Troubleshooting #### 40101 Authentication failed Cause: The dashboard sign-in password was pasted instead of the auto-generated API password. Fix: Copy the API password field on app.dataforseo.com/api-access. If it is no longer shown, use Send by e-mail or Reset API password, then reconnect. #### Correct credentials are still rejected Cause: The account's IP Access whitelist is populated and does not include PopMCP's outbound IP. Fix: Add the IP under IP Access on the API Settings page, or clear the list to remove the restriction. #### The API password field is blank or greyed out Cause: More than 24 hours have passed since registration, or the signed-in user is a restricted sub-account. Fix: Click Send by e-mail, or sign in as the account owner. Restricted users see a permission message in place of the value. #### Payment-required or insufficient-funds errors Cause: Live endpoints are billed per call and the account balance has run out. Fix: Top up under Payments, or point the connector at the free sandbox while testing. #### Sporadic failures under load Cause: The 2,000 requests per minute ceiling or the 30-simultaneous-request cap on database-backed APIs was hit. Fix: Batch up to 100 tasks per task_post request and back off on retries. Contact DataForSEO support for a higher limit. --- ## Discord URL: https://www.docs.popmcp.com/docs/integrations/discord/ Summary: Connect Discord to post, read and search messages, run threads and forum posts, moderate members, manage roles and channels, and schedule events. You paste one value into PopMCP: the token of a bot you create for free in the Discord Developer Portal (Bot, Reset Token). It has three parts separated by dots and is about 70 characters long. There is no review and nothing to pay. You then pick which of the bot's servers to connect. - Auth: API credentials - Setup time: 4 min - API base URL: https://discord.com/api/v10 - Credentials screen: https://discord.com/developers/applications - Provider docs: https://discord.com/developers/docs/quick-start/getting-started ### Before you begin - A Discord account with two-factor authentication switched on is easiest: Discord may ask for a 2FA code when you reset a bot token - A server where you have the Manage Server permission (owners and admins do), so you can add the bot to it - A bot of its own for PopMCP is best. A bot you already run elsewhere works too: PopMCP only calls Discord's API and never takes over the bot's connection ### Get your credentials #### 1. Create an application Open the Discord Developer Portal at discord.com/developers/applications and sign in. Click New Application, type a name such as `Acme Assistant` (the bot's name in your server, which you can change later), tick the box to agree to the Developer Terms of Service and Developer Policy, and click Create. Every new application comes with a bot user. Screen: https://discord.com/developers/applications #### 2. Copy the bot token In the app's settings open Bot in the left sidebar. Under Token click Reset Token, confirm with Yes, do it! (Discord may ask for your 2FA code or password), then click Copy. Discord shows the token only this once. Anyone who has it controls the bot, so keep it private; if it leaks, click Reset Token again and reconnect with the new one. Screen: https://discord.com/developers/applications #### 3. Turn on Message Content and Server Members Still on the Bot page, scroll to Privileged Gateway Intents and switch on Message Content Intent (so the AI can read what people write; without it message text comes back empty except messages that mention the bot) and Server Members Intent (so it can list members and see who joins). Leave Presence Intent off. Click Save Changes. Bots that can see fewer than 10,000 users switch these on freely. Screen: https://discord.com/developers/applications #### 4. Choose what the bot may do Open Installation. Under Installation Contexts keep Guild Install ticked. Under Install Link choose Discord Provided Link. In Default Install Settings, for Guild Install add the scopes `applications.commands` and `bot`; a Permissions list appears. Pick what the AI should be able to do, for example View Channels, Send Messages, Send Messages in Threads, Create Public Threads, Manage Messages, Pin Messages, Embed Links, Attach Files, Read Message History, Add Reactions, Manage Channels, Manage Roles, Manage Webhooks, Create Events, Timeout Members, Kick Members and Ban Members. Click Save Changes, then Copy the install link. Screen: https://discord.com/developers/applications #### 5. Add the bot to your server Paste the install link into your browser. Choose Add to server, pick your server from the list (you need the Manage Server permission there), check the permissions and click Authorize. The bot now shows in the server's member list. To connect more servers, open the same link again for each one. #### 6. Paste the token into PopMCP and pick the server In PopMCP, open Discord in the Marketplace, paste the token into Bot token and connect. PopMCP lists the servers your bot is in: choose one or more and the workspace each belongs to, and each server becomes its own connection. If the bot is in no server yet, PopMCP shows the link that adds it. ### Fields PopMCP asks for - Bot token (botToken) [required]: In the Discord Developer Portal (discord.com/developers/applications) click New Application, name it and create it. Open Bot, click Reset Token and copy the token (Discord shows it once). On the same page turn on Message Content Intent and Server Members Intent. Then add the bot to your server: Installation, Install Link, open it and pick your server. Stored encrypted. ### Verify PopMCP checks that the token belongs to a bot, lists the bot's servers for you to choose from, then confirms the bot is in the chosen server and names the connection after it. It notes when Message Content Intent or Server Members Intent is off and which recommended permissions the bot's role is missing. Asking the AI for a server overview (discord_get_server_overview) or to read your general channel confirms it works. ### Troubleshooting #### "Discord rejected this bot token. Copy a fresh one: in the Developer Portal open your app, go to Bot, click Reset Token and copy the token it shows." Cause: Part of the token was missed when copying, or the token was reset in the Developer Portal since it was copied. Fix: On the Bot page click **Reset Token**, copy the whole token in one go and paste it into PopMCP. #### "That is the Application ID, not the bot token." or "That is the app's Public Key, not the bot token." Cause: A value from General Information was copied instead of the token. Fix: Open **Bot**, click **Reset Token** and copy the token it shows. The token has two dots in it. #### "That is a user account's token, not a bot's." Cause: The value came from a Discord user account rather than a bot. Discord does not allow automating user accounts. Fix: Create an application in the Developer Portal and use its bot's token. #### "Your bot is not in any server yet. Add it to your server first." Cause: The bot was never added to a server, or was removed from all of them. Fix: Open the link PopMCP shows (or the Install Link on the Installation page), pick your server, click Authorize, then connect again. #### Messages come back with empty text Cause: Message Content Intent is off for the bot, so Discord hides the text of messages that do not mention it. Fix: On the Bot page switch on **Message Content Intent**, click **Save Changes**, and read the channel again. #### "The bot is missing a permission for this" Cause: The bot's role lacks the permission the action needs, the channel's own permissions block it, or the member or role being changed ranks above the bot's role. Fix: In Discord open Server Settings, Roles, choose the bot's role and switch the permission on (or edit the channel's permissions). For roles and moderation, drag the bot's role above the roles it should manage. #### "Your bot is not in this server any more" Cause: Someone removed the bot from the server, or the server was deleted. Fix: Add the bot again with its install link, then reconnect Discord in PopMCP. #### "channel ... is not in the server" Cause: The channel belongs to a different server. Each connection only reaches the one server it was made for. Fix: Connect that server too (choose it in the server list when you connect) and ask the AI to use that connection. --- ## DocuSign URL: https://www.docs.popmcp.com/docs/integrations/docusign/ Summary: Connect DocuSign to send documents for signature, track envelope status, and manage recipients, templates, and bulk sends. You paste your Docusign app's Integration Key (Client ID) and a generated Secret Key (Client Secret) into PopMCP, plus "demo" in the Environment box if the key was made in the developer sandbox. - Auth: OAuth authorization - Setup time: 8 min - API base URL: https://demo.docusign.net/restapi for developer accounts. For production, the per-account base URI returned by /oauth/userinfo, for example https://na4.docusign.net/restapi - Credentials screen: https://admin.docusign.com/apps-and-keys - Provider docs: https://developers.docusign.com/platform/auth/authcode/ ### Approval required before this works Docusign must approve your integration key for production through the Go-Live process in Apps & Keys before it can touch a real Docusign account. - Typical wait: Instant for integrations that pass the built-in validation; Docusign states that submissions flagged for manual review are 'typically completed within 48 hours or less' - Cost: Free to apply, but the production account must be on a plan that includes API access for the integration type you pick; embedded integrations need a special licence arranged with Docusign sales - Blocked until approved: Nothing against production. Until go-live, the integration key authenticates only against the demo environment (account-d.docusign.net / demo.docusign.net); calls to the production base path (account.docusign.net / na*.docusign.net) fail, so no real, legally binding envelopes can be sent. - Works meanwhile: Everything else. A free Docusign developer account gives instant credentials and a full demo environment - OAuth Authorization Code Grant, JWT, envelopes, templates, webhooks - all working end to end against demo. The 20-API-call prerequisite was removed in the 2025 streamlined go-live, so you no longer have to farm calls first. ### Before you begin - Docusign eSignature account. A free developer account at developers.docusign.com works for testing. - Account Administrator permissions. Apps and Keys is hidden from non-admin users. - For a production account, an integration key that has passed Docusign's Go-Live promotion if it was originally created in the demo environment ### Get your credentials #### 1. Open Apps and Keys Sign in as an account administrator and go to Settings → Integrations → Apps and Keys. Production accounts use `admin.docusign.com/apps-and-keys` and developer accounts use `admindemo.docusign.com/apps-and-keys`. Screen: https://admin.docusign.com/apps-and-keys #### 2. Create an app for PopMCP Click ADD APP AND INTEGRATION KEY, enter `PopMCP` as the App Name, then click ADD. #### 3. Copy the Integration Key Find the PopMCP row, open its ACTIONS menu and choose EDIT. In General Info, click the copy icon next to Integration Key and paste that GUID into PopMCP's Integration Key (Client ID) field. #### 4. Answer Yes to storing a secret, then add a secret key In the Authentication section, under User Application, answer Yes to "Is your application able to securely store a client secret?". Click ADD SECRET KEY, copy the generated value into PopMCP's Secret Key (Client Secret) field, then click SAVE. #### 5. Register PopMCP's redirect URI Scroll to Additional settings and click ADD URI under Redirect URIs. Paste the callback URL exactly as PopMCP prints it, then click SAVE. #### 6. Fill in the Environment box in PopMCP Leave Environment blank for a live Docusign account. Type `demo` only if the Integration Key came from a developer account. ### Fields PopMCP asks for - Auth type (connectionType): Create an app under Settings → Apps and Keys (or the developer dashboard). The OAuth flow keeps your DocuSign login on DocuSign's side. - Integration Key (Client ID) (clientId) [required]: Your app's "Integration Key" from Apps and Keys. - Secret Key (Client Secret) (clientSecret) [required]: Generate a "Secret Key" on your app (Authentication → confidential). Stored encrypted; used server-side only and never shown again. - Environment (environment): Leave blank for a live DocuSign account (Production). Enter "demo" only if your Integration Key was created in the DocuSign developer (demo) environment. ### Callback URL to register https://app.popmcp.com/api/providers/docusign/callback ### Scopes requested - signature - extended ### Verify The Docusign connector in PopMCP flips to Connected and shows the Docusign account name and account ID it bound to. Asking for your recent envelopes returns real envelope IDs and statuses. ### Troubleshooting #### invalid_client on connect Cause: The Integration Key and Secret Key are from different environments, or the secret was truncated when copied. Keys are not shared between demo and production. Fix: Confirm the Environment field matches where the key was created (blank for production, demo for developer), then generate a fresh Secret Key and paste it again. #### The redirect URI is not registered for the client_id Cause: PopMCP's callback URL is missing from the app's Redirect URIs list, or differs in case, protocol or trailing slash. Fix: Copy the callback exactly as PopMCP prints it into Additional settings, Redirect URIs, and save. #### consent_required Cause: The Docusign user has not granted the signature and extended scopes to this integration key, or an admin has locked down individual consent. Fix: Re-run the connect flow and accept the consent screen. On locked-down accounts, ask an admin to grant admin consent for the integration key. #### Works in demo but 401s in production Cause: The integration key was created in the developer environment and never promoted. Fix: Run Docusign's Go-Live process to promote the key to production, or create a new key directly in the production account and leave Environment blank. --- ## Dodo Payments URL: https://www.docs.popmcp.com/docs/integrations/dodo-payments/ Summary: Connect Dodo Payments to take payments and subscriptions, and manage customers, products, discounts, refunds, and payouts. You paste one Dodo Payments API key into PopMCP, plus the word "test" or "live" in the Environment box to say which mode that key belongs to. - Auth: API credentials - Setup time: 3 min - API base URL: https://live.dodopayments.com (test mode: https://test.dodopayments.com) - Credentials screen: https://app.dodopayments.com/ - Provider docs: https://docs.dodopayments.com/api-reference/introduction ### Approval required before this works Dodo Payments' compliance team must approve your merchant account (identity, business and bank verification) before live-mode keys can take real payments or pay out. - Typical wait: Docs state typical verification time of 1-3 business days (excluding weekends and public holidays), and that most reviews finish within 72 hours; appeals are quoted at more than 48 working hours - Cost: Free - Blocked until approved: Live payments and payouts. A live-mode API key exists from day one, but until verification is approved the account cannot accept real charges and no money can be paid out to your bank account. - Works meanwhile: The test-mode API key works immediately at signup - full integration, products, subscriptions, licence keys, webhooks and the CLI/MCP tooling all run against test mode with no review. ### Before you begin - Dodo Payments merchant account with access to the business dashboard - Account Verification completed if you want a live-mode key that can move real money. Test mode works from day one. ### Get your credentials #### 1. Pick the mode you want a key for Open `app.dodopayments.com` and use the mode switch at the bottom of the left sidebar to put the dashboard in Test mode or Live mode. Screen: https://app.dodopayments.com/ #### 2. Open Developer, then API Keys In the left sidebar click Developer, then API Keys. #### 3. Add a key and grant write access Click Add API Key, name it `PopMCP`, and leave Enable write access ticked. Click Create. #### 4. Copy the key before you close the dialog Click Copy, paste the key into PopMCP's API key field, then click Done. #### 5. Tell PopMCP which mode the key is in In PopMCP type `test` in Environment for a Test Mode key, or `live` for a Live Mode key. Leaving it blank defaults to live. ### Fields PopMCP asks for - API key (apiKey) [required]: Dodo dashboard → Developer → API Keys. Use a test-mode key for the sandbox or a live-mode key for production. Stored encrypted; used server-side only. The connection is locked to this key's account. - Environment (environment): Type "test" if you pasted a test-mode (sandbox) key, or "live" for a production key. Defaults to live. If the mode does not match the key, we tell you which one to use. ### Verify PopMCP shows the Dodo Payments connector as Connected with the business name and the mode it detected. Asking for your recent payments returns real payment IDs such as pay_… from that environment. ### Troubleshooting #### 401 Unauthorized on every call Cause: The key was revoked, mistyped, or belongs to the other mode. Test keys are rejected by live.dodopayments.com and live keys by test.dodopayments.com. Fix: Re-copy the key from Developer, API Keys, and make sure the Environment field says the same mode the dashboard was in when you created it. #### 403 on anything that creates or changes data Cause: The key was created with Enable write access unchecked, so it is read-only. Fix: Create a new key with Enable write access ticked and swap it into PopMCP. #### You lost the key before copying it Cause: Dodo displays the full key only in the creation dialog. Fix: Delete the key from Developer, API Keys, and create a replacement. #### Live payments fail even though the key works Cause: Live Mode is available immediately, but real payments and payouts only switch on after Account Verification. Fix: Finish the verification flow in the dashboard, or use a test-mode key until it clears. #### 429 Too Many Requests Cause: Default Tier 0 limits are 40 requests per second and 240 per minute. Fix: Slow the request rate and watch the X-RateLimit-Remaining and X-RateLimit-Reset headers, or ask Dodo support about a higher tier. --- ## Dropbox URL: https://www.docs.popmcp.com/docs/integrations/dropbox/ Summary: Connect Dropbox to find, read, upload and organize files and folders, share links and folders, request files, and manage your team. You create a scoped app in the Dropbox App Console, tick the permissions PopMCP uses and add PopMCP's redirect URI, then enter the app's App key and App secret in PopMCP and sign in to Dropbox to approve access. - Auth: OAuth authorization - Setup time: 4 min - API base URL: https://api.dropboxapi.com/2 - Credentials screen: https://www.dropbox.com/developers/apps - Provider docs: https://docs.dropboxapi.com/dropbox-api/docs/get-started/tutorial/app-console ### Before you begin - A Dropbox account on any plan, Basic (free) included. Sign in to the App Console with the account you want to connect: a new app works for your own account straight away, with no review by Dropbox. - PopMCP's redirect URI from the connect form: https://app.popmcp.com/api/providers/dropbox/callback - Only for the team admin tools (members, groups, team folders, devices, legal holds and the activity log): a Dropbox team plan and a team admin account. ### Get your credentials #### 1. Open the App Console Go to dropbox.com/developers/apps and sign in with the Dropbox account you want to connect. Click Create app. Screen: https://www.dropbox.com/developers/apps #### 2. Create a scoped app with Full Dropbox access Under Choose an API pick Scoped access. Under Choose the type of access you need pick Full Dropbox so the AI can reach every folder (App folder would limit it to one folder of its own). Name the app, such as `PopMCP for Acme` (Dropbox does not allow the word Dropbox in app names), and click Create app. Screen: https://www.dropbox.com/developers/apps/create #### 3. Tick the permissions and submit Open the Permissions tab. Under Individual Scopes tick account_info.write, files.metadata.write, files.content.write, files.content.read, sharing.write, file_requests.write and contacts.write (ticking a write box ticks its read box too), then click Submit at the bottom. Leave files.permanent_delete unticked unless you want the AI to delete files for good. A team admin who wants the team tools also ticks the Team Scopes before submitting. Screen: https://www.dropbox.com/developers/apps #### 4. Add PopMCP's redirect URI Open the Settings tab. Under OAuth 2, enter `https://app.popmcp.com/api/providers/dropbox/callback` in Redirect URIs exactly as PopMCP shows it and click Add. Screen: https://www.dropbox.com/developers/apps #### 5. Copy the App key and App secret Still on Settings, copy the App key, then click Show next to App secret and copy it too. Screen: https://www.dropbox.com/developers/apps #### 6. Enter both in PopMCP and sign in Enter the App key in App key and the secret in App secret, then click Sign in with Dropbox. Sign in with the same Dropbox account and click Allow on Dropbox's access page. A team admin who ticked the Team Scopes signs in as the admin and approves access for the team. ### Fields PopMCP asks for - App key (clientId) [required]: Only needed to use your own app. In the Dropbox App Console (dropbox.com/developers/apps) click Create app, choose Scoped access and Full Dropbox, name it and create it. On the Permissions tab tick account_info.write, files.metadata.write, files.content.write, files.content.read, sharing.write, file_requests.write and contacts.write (ticking a write box ticks its read box too), then click Submit. On the Settings tab add the redirect URI shown here under OAuth 2, Redirect URIs, and copy the App key and App secret (click Show). - App secret (clientSecret) [required]: On the app's Settings tab click Show next to App secret and copy it. Stored encrypted and used only on our server. - Team admin tools (teamAccess): ### Callback URL to register https://app.popmcp.com/api/providers/dropbox/callback ### Scopes requested - account_info.read - files.metadata.read - files.content.read - sharing.read - file_requests.read - account_info.write - files.metadata.write - files.content.write - sharing.write - file_requests.write - contacts.write ### Verify PopMCP shows Dropbox as Connected under your name and email, and dropbox_list_folder with the path "" lists the top of your Dropbox. ### Troubleshooting #### Dropbox shows an error about the redirect URI instead of asking for access Cause: PopMCP's callback is not in the app's Redirect URIs, or differs by a character. Fix: On the app's **Settings** tab, under **OAuth 2**, add `https://app.popmcp.com/api/providers/dropbox/callback` to **Redirect URIs** and click **Add**. Then connect again. #### "Dropbox did not accept the App key and App secret" Cause: The App key or App secret was mistyped, or they come from different apps. Fix: On the app's **Settings** tab copy the **App key**, click **Show** next to **App secret**, copy it, and enter both in PopMCP again. #### "Your Dropbox app has no file permissions yet" Cause: The app's Permissions tab was not submitted, so the sign-in granted only basic account information. Fix: On the **Permissions** tab tick the scopes from the steps, click **Submit**, then connect again. #### A tool answers missing_scope Cause: The app does not have the permission that tool needs, or it was added after you connected. Fix: Tick the permission the message names on the **Permissions** tab, click **Submit**, then reconnect Dropbox in PopMCP so the new sign-in includes it. #### A team tool says it needs a team admin connection Cause: The connection is linked to one account, and team tools act on the whole team. Fix: As a Dropbox team admin, tick the **Team Scopes** on the app's **Permissions** tab, click **Submit**, and reconnect Dropbox. #### Someone else cannot sign in through your app Cause: A new app links only the account that created it. Fix: On the **Settings** tab click **Enable additional users**, or have each person create an app of their own. #### Team folders are missing from listings Cause: In a team with a team space, team folders live above your own folder. Fix: Ask the AI to look in the team space: the tools take path_root "team_space" and then list from the top of the team's space. #### 429 too_many_requests or too_many_write_operations Cause: Dropbox limits each account, and many changes to the same folder at once also collide. Fix: Wait for the time Dropbox gives and try again, and use the batch tools for many files. #### "Dropbox no longer accepts this connection's sign-in" Cause: Access was removed in Dropbox (Settings, Connected apps), the app's secret changed, or the app was deleted. Fix: Reconnect Dropbox to sign in again. --- ## Dropbox Sign URL: https://www.docs.popmcp.com/docs/integrations/dropbox-sign/ Summary: Connect Dropbox Sign to send documents for signature, track and manage requests, download signed PDFs, and use templates. You paste one Dropbox Sign API key into PopMCP, plus the word "test" in the Key type box if it came from a free test-mode API account. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.hellosign.com/v3 - Credentials screen: https://app.hellosign.com/home/myAccount#api - Provider docs: https://developers.hellosign.com/api/reference/ ### Approval required before this works Production (legally binding) signature requests require a paid Dropbox Sign API plan, and any embedded or OAuth integration must additionally pass Dropbox Sign's app approval review before it can leave test mode. - Typical wait: Paid plan: instant on purchase. App approval: no SLA published by Dropbox Sign - the docs state no timeframe; submissions are worked through with an API support specialist, so budget days, not minutes - Cost: App approval is free; production use requires a paid Dropbox Sign API plan (API plans are sold separately from the standard eSignature seat plans - see sign.dropbox.com pricing for current tiers) - Blocked until approved: Any non-test request. Without a paid API plan the API returns HTTP 402 on production calls, and embedded signing/requesting/templates and OAuth flows stay locked to test mode until the app is approved. Test-mode signature requests are watermarked and are not legally binding. - Works meanwhile: Everything, in test mode: an API key from the account's API settings works immediately, and test_mode=1 on requests (plus testMode / skipDomainVerification in the embedded client.open() call) exercises the full flow including endpoints otherwise restricted to paid plans. Dropbox Sign explicitly allows completing app approval before buying a plan. ### Before you begin - Dropbox Sign account. Sign up free at app.sign.dropbox.com. - Account owner or an admin who can see the API tab. Ordinary team members cannot reveal keys. - A paid API plan (Essentials or above) if you need real, legally binding signature requests. The free API tier is test mode only. ### Get your credentials #### 1. Open your API settings Sign in at `app.sign.dropbox.com`, then click API in the left sidebar. The API settings page opens at `app.hellosign.com/home/myAccount#api`. Screen: https://app.hellosign.com/home/myAccount#api #### 2. Create or reveal your API key Under API key, click Create Key for a new key, or Reveal Key to show an existing one. #### 3. Copy the key into PopMCP Click Reveal Key, copy the full string, and paste it into PopMCP's API key field. #### 4. Set the Key type Type `test` in PopMCP's Key type field if the account is on the free API tier. Leave it blank, or type `live`, on a paid Essentials, Standard or Premium API plan. ### Fields PopMCP asks for - API key (apiKey) [required]: Dropbox Sign → Settings → API → API Keys → copy your API key (or create one). Stored encrypted; used server-side only via HTTP Basic auth. - Key type (mode): Enter "test" if this is a free/sandbox API key. Sandbox keys can ONLY create test (non-binding) signature requests, so the connection will auto-send everything in test_mode for you. Leave blank (or "live") for a paid API plan key that sends real, legally-binding documents. ### Verify PopMCP shows the Dropbox Sign connector as Connected with your account email. Listing signature requests returns real request IDs, and anything created on a test key comes back flagged as test mode. ### Troubleshooting #### 401 Unauthorized Cause: The key was mistyped or truncated, or it was deleted from Settings, API. Fix: Reveal the key again in Settings, API, and paste the whole string. If it is gone, click Create Key and use the new one. #### Upgrade required, or non-test requests rejected Cause: The account is on the free API tier, which can only create test signature requests that are not legally binding. Fix: Enter "test" as the Key type so PopMCP sends everything in test mode, or upgrade to an Essentials or higher API plan. #### Documents arrive watermarked as a test and cannot be legally signed Cause: Key type is still set to "test" on a paid plan. Fix: Clear the Key type field, or set it to "live", and reconnect. #### You cannot see the API tab at all Cause: You are signed in as a team member rather than the account owner or an admin. Fix: Ask the account owner to reveal the key, or to grant you admin rights on the Dropbox Sign team. #### Revoking a key broke other tools Cause: Keys never expire and cannot be moved between accounts, so a shared key is often reused across integrations. Fix: Issue a separate key per integration and rotate them one at a time. --- ## eBay URL: https://www.docs.popmcp.com/docs/integrations/ebay/ Summary: Connect eBay to manage listings and inventory, process orders and fulfillment, run promoted campaigns, and search products. You end up pasting your eBay Production keyset's App ID (Client ID) and Cert ID (Client Secret) plus the RuName string from your Redirect URL settings into PopMCP, then approving the connection on eBay. - Auth: OAuth authorization - Setup time: 15 min - API base URL: https://api.ebay.com - Credentials screen: https://developer.ebay.com/my/keys - Provider docs: https://developer.ebay.com/api-docs/static/oauth-authorization-code-grant.html ### Approval required before this works eBay's Buy APIs are partner-only: production access must be applied for through the eBay Partner Network and cleared by eBay's Application Growth Check, and every production keyset must first clear the mandatory Marketplace Account Deletion/Closure notification step. - Typical wait: Account-deletion compliance step: instant once you opt out or eBay validates your notification endpoint. Buy API partner approval: not published - eBay states there is no guarantee an application is approved - Cost: Free - registering for the eBay Developers Program, creating keysets and applying to the Partner Network cost nothing - Blocked until approved: Buy APIs (Browse beyond the open subset, Feed, Marketing, Offer, Order/checkout) return no production data until eBay Partner Network approval plus the Application Growth Check pass. Separately, a brand-new production keyset is disabled and every production call fails until you subscribe to or opt out of marketplace account deletion notifications. - Works meanwhile: A lot. eBay Developers Program registration and both keysets (Sandbox and Production) are self-serve and instant. The Sell APIs (Inventory, Fulfilment, Account, Marketing, Analytics) work against your own seller account with the production keyset as soon as the deletion-notification step is done - no partner approval involved. The full Sandbox environment is available for everything immediately. ### Before you begin - A free eBay Developers Program account, registered at developer.ebay.com with an existing eBay user account - An eBay seller account on the marketplace you want to manage, for the Sell APIs - A Production keyset. New developer accounts are issued Sandbox keys first and must complete their developer account details before eBay releases Production keys - The PopMCP callback URL shown on the eBay connect form, which goes into the RuName's 'Your auth accepted URL' field ### Get your credentials #### 1. Open the Application Keys page Sign in at developer.ebay.com, open the Hi, menu in the top right and choose Application Keysets. The direct link is developer.ebay.com/my/keys. Screen: https://developer.ebay.com/my/keys #### 2. Create a Production keyset if you do not have one If the Production tab is empty, type an Application Title and click Create a keyset. Fill in your developer account contact details if eBay asks for them. Screen: https://developer.ebay.com/my/keys #### 3. Copy the App ID and Cert ID On the Production keyset copy App ID (Client ID) and Cert ID (Client Secret). Leave Dev ID alone, PopMCP does not use it. Screen: https://developer.ebay.com/my/keys #### 4. Create a RuName pointing at the PopMCP callback Next to the Production App ID (Client ID) click User Tokens, then click Add eBay Redirect URL. Paste the PopMCP callback URL into Your auth accepted URL, tick OAuth Enabled, and click Save. Screen: https://developer.ebay.com/my/auth #### 5. Copy the RuName and finish in PopMCP Copy the generated RuName string, not the URL above it. In PopMCP paste the App ID, Cert ID and RuName, set Marketplace to `EBAY_US`, leave Environment blank, then click Connect and approve the permissions on eBay. ### Fields PopMCP asks for - Auth type (connectionType): Create an app keyset under developer.ebay.com → Application Keys. The OAuth flow keeps your eBay login on eBay's side; we only ever store the resulting tokens. - App ID (Client ID) (clientId) [required]: Your keyset's App ID (Client ID) from developer.ebay.com → Application Keys (use the Production keyset unless you picked Sandbox below). - Cert ID (Client Secret) (clientSecret) [required]: Your keyset's Cert ID (Client Secret), shown next to the App ID. Stored encrypted; used server-side only and never shown again. - RuName (Redirect URL name) (ruName) [required]: The RuName string from your Redirect URL settings (NOT a URL). Its "Your auth accepted URL" must be set to the callback URL shown above. - Marketplace (marketplaceId): The eBay marketplace this connection operates on (default EBAY_US). Sent automatically as the X-EBAY-C-MARKETPLACE-ID header + a matching language on every call. Examples: EBAY_US, EBAY_GB, EBAY_DE, EBAY_AU, EBAY_CA, EBAY_FR, EBAY_IT, EBAY_ES. - Environment (environment): Leave blank for a live eBay account (Production). Enter "sandbox" only if your keyset was created in eBay's Sandbox. ### Callback URL to register https://app.popmcp.com/api/providers/ebay/callback ### Scopes requested - https://api.ebay.com/oauth/api_scope - https://api.ebay.com/oauth/api_scope/sell.inventory - https://api.ebay.com/oauth/api_scope/sell.inventory.readonly - https://api.ebay.com/oauth/api_scope/sell.account - https://api.ebay.com/oauth/api_scope/sell.account.readonly - https://api.ebay.com/oauth/api_scope/sell.fulfillment - https://api.ebay.com/oauth/api_scope/sell.fulfillment.readonly - https://api.ebay.com/oauth/api_scope/sell.marketing - https://api.ebay.com/oauth/api_scope/sell.marketing.readonly - https://api.ebay.com/oauth/api_scope/sell.analytics.readonly - https://api.ebay.com/oauth/api_scope/sell.finances - https://api.ebay.com/oauth/api_scope/sell.payment.dispute - https://api.ebay.com/oauth/api_scope/sell.item.draft - https://api.ebay.com/oauth/api_scope/sell.item - https://api.ebay.com/oauth/api_scope/sell.reputation - https://api.ebay.com/oauth/api_scope/sell.reputation.readonly - https://api.ebay.com/oauth/api_scope/sell.stores - https://api.ebay.com/oauth/api_scope/sell.stores.readonly - https://api.ebay.com/oauth/api_scope/commerce.identity.readonly - https://api.ebay.com/oauth/api_scope/commerce.catalog.readonly - https://api.ebay.com/oauth/api_scope/commerce.notification.subscription - https://api.ebay.com/oauth/api_scope/commerce.notification.subscription.readonly ### Verify PopMCP redirects you to eBay's consent screen. Approve it, and the connector card returns showing Connected with your eBay username and the marketplace you chose. ### Troubleshooting #### invalid_client on connect Cause: The App ID and Cert ID come from different keysets, or you pasted Sandbox keys while leaving Environment blank for production. Fix: Take both values from the same Production keyset, or type 'sandbox' in the Environment field if you deliberately used Sandbox keys. #### 'The redirect_uri is invalid' or unauthorized_client Cause: The RuName's 'Your auth accepted URL' does not exactly match the callback URL PopMCP shows. Fix: Edit the Redirect URL under User Tokens so the accepted URL matches character for character, including https and any trailing path, then save and retry. #### You pasted a URL into the RuName field Cause: RuName is an eBay-generated identifier, not the redirect URL itself. Fix: Go back to User Tokens and copy the RuName string shown under the redirect entry. #### The Production tab has no Create a keyset button Cause: eBay has not released Production keys for the developer account yet. Fix: Open your account details in the developer portal, complete the contact and business information, then reload the Application Keys page. #### Insufficient permissions on a Sell API call Cause: The consent grant predates a scope, or the eBay account is not a seller on that marketplace. Fix: Disconnect and reconnect in PopMCP so the consent screen re-requests every scope, and confirm the account is a registered seller on the chosen marketplace. --- ## Ecwid URL: https://www.docs.popmcp.com/docs/integrations/ecwid/ Summary: Connect Ecwid to manage products, variations, orders, customers, categories, discount coupons, and store settings. You end up pasting your numeric Ecwid store ID and the secret token from your custom app's Details page into PopMCP. - Auth: API credentials - Setup time: 6 min - API base URL: https://app.ecwid.com/api/v3/{storeId} - Credentials screen: https://my.ecwid.com/#develop-apps - Provider docs: https://docs.ecwid.com/get-started/make-your-first-api-request ### Approval required before this works Ecwid exposes its REST API only to stores on a paid plan - the docs state plainly that 'Only stores on paid plans can access API', so a free store cannot use the API no matter how the custom app is configured. There is no review or application for the API itself. - Typical wait: None for the API itself - upgrading the plan enables it immediately. Changes to an app's access scopes are handled by Ecwid API Support 'in 24 hours or less' on business days. - Cost: A paid Ecwid plan (the free plan is excluded; Ecwid does not publish a per-tier API mapping, so check the current plan page before committing). Ecwid grants a free upgrade to a paid plan for developers building a store customization, an integration for a working store, a public App Market app, or Instant Site templates - you email API Support to request it. Creating the custom app and its tokens is free. - Blocked until approved: Every REST call. On a free store, plan-gated calls come back as HTTP 402 NOT_AVAILABLE_ON_CURRENT_PLAN, so nothing - products, orders, customers - can be read or written. There is also no test mode in the Ecwid API, so Ecwid recommends a separate test store rather than experimenting against a live one. - Works meanwhile: On any paid store there is nothing to wait for: opening the app dashboard auto-generates your first custom app with default scopes (read/write products and categories, read store profile, read/change placed and unfinished orders) and both a public and a secret access token immediately. ### Before you begin - A paid Ecwid plan. The REST API is not available on the Free plan - Store owner access, or a staff account with full control panel access - A custom app on the store. Ecwid creates one automatically the first time you open the app dashboard at my.ecwid.com/#develop-apps - For anything beyond the default permissions, a scope request emailed to Ecwid API support before the extra scopes appear on the app ### Get your credentials #### 1. Open the app dashboard Sign in to the Ecwid control panel and open Apps → Develop apps, or go straight to my.ecwid.com/#develop-apps. Screen: https://my.ecwid.com/#develop-apps #### 2. Open the app's Details page Click the custom app and open its Details page. Click Install first if the app is not installed on this store. Screen: https://my.ecwid.com/#develop-apps #### 3. Copy the secret token In the Access tokens section copy the value next to Secret token. Ignore Public token, it only reads public storefront data. Screen: https://my.ecwid.com/#develop-apps #### 4. Read your store ID Take the numeric Store ID from the footer of any Ecwid admin page, or from an admin URL such as `my.ecwid.com/store/10012345`. Screen: https://my.ecwid.com/ #### 5. Paste both values into PopMCP In PopMCP put the number into Store ID and the `secret_` value into Secret token, then click Connect. ### Fields PopMCP asks for - Store ID (storeId) [required]: Your numeric Ecwid store ID, shown in the Ecwid admin footer and in admin page URLs. Paste just the number, or an admin/API URL that contains it; we'll pull it out. - Secret token (secretToken) [required]: Ecwid control panel → Apps → develop apps (my.ecwid.com/#develop-apps) → open your custom app → Details → copy the secret token. It grants full REST access (per the app's permissions) and does not expire. Stored encrypted; used server-side only. Note: the Ecwid REST API requires a paid Ecwid plan. ### Verify The Ecwid card in PopMCP flips to Connected, and a test call such as 'list products' returns items from your catalog. ### Troubleshooting #### 401 Unauthorized Cause: You used the public token, or the token belongs to a different store. Fix: Copy the Secret token from the Details page of the app installed on this exact store. Tokens are per store. #### 403 Forbidden on a specific call Cause: The custom app does not hold that access scope. Fix: Email Ecwid API support to add the scope, reinstall the app, then reconnect with the newly issued secret token. #### Token stopped working suddenly Cause: The app was uninstalled and reinstalled, which regenerates both tokens. Fix: Copy the new secret token from the Details page and update the PopMCP connection. #### 'Store not found' or 404 Cause: Wrong store ID. Fix: Re-read the store ID from the admin page footer, or paste an admin URL and let PopMCP extract the number. #### The Develop apps page offers no API access Cause: The store is on the Free plan. Fix: Upgrade to any paid Ecwid plan, then reopen the app dashboard. --- ## ElevenLabs URL: https://www.docs.popmcp.com/docs/integrations/eleven-labs/ Summary: Connect ElevenLabs to turn text into speech, design and clone voices, transcribe and dub audio, and build voice agents. You end up pasting a single ElevenLabs API key, the `sk_...` string sent as the `xi-api-key` header, into PopMCP. That is the only field. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.elevenlabs.io/v1 - Credentials screen: https://elevenlabs.io/app/settings/api-keys - Provider docs: https://elevenlabs.io/docs/api-reference/introduction ### Before you begin - An ElevenLabs account on any plan, including Free - A Full Seat on the workspace, which is what personal API key creation requires - For a key that survives people leaving the team, a multi-seat plan plus workspace admin rights so you can create a service account key instead ### Get your credentials #### 1. Open your API keys settings Sign in at elevenlabs.io, click your profile icon in the top right and choose Settings, then open API Keys. The direct link is elevenlabs.io/app/settings/api-keys. Screen: https://elevenlabs.io/app/settings/api-keys #### 2. Create a key for PopMCP Click Create API Key, name it `PopMCP`, and leave Expire After on Never. Leave the scope and IP restrictions switched off. Screen: https://elevenlabs.io/app/settings/api-keys #### 3. Copy the key before closing the dialog Copy the `sk_` string straight away, ElevenLabs shows the full key only once. #### 4. Paste it into PopMCP In PopMCP paste the key into API key and click Connect. #### 5. Optional: use a service account key instead For a key that outlives one person, click your profile icon, choose Workspace settings and open the Service Accounts tab. Create a key there and paste that one into PopMCP. ### Fields PopMCP asks for - API key (apiKey) [required]: ElevenLabs dashboard → Settings → API Keys → Create/Copy. Stored encrypted; used server-side only (sent in the xi-api-key header). The connection is locked to this key's workspace. ### Verify The ElevenLabs card in PopMCP shows Connected with your workspace name, and a test 'list voices' call returns your voice library. ### Troubleshooting #### 401 Unauthorized Cause: The key was truncated on copy, it was revoked, or it passed its Expire After date. Fix: Create a fresh key under Settings → API Keys with Expire After set to Never, then paste the complete sk_ string. #### missing_permissions on some tools only Cause: The key was created with endpoint scope restrictions. Fix: Create a new key with restrictions turned off, or add the specific scopes the failing tools need. #### 403 on every call from your server Cause: The key has an IP allowlist that does not cover the calling host. Fix: Edit the key and add the caller's public IP or CIDR range, or remove the allowlist. #### quota_exceeded Cause: The key hit its credit quota, or the workspace ran out of characters for the month. Fix: Raise or clear the key's credit quota on the API Keys page, or top up the plan. #### The key was disabled without you doing anything Cause: GitHub secret scanning found the key in a public repository and ElevenLabs disabled it, reporting disable_reason exposed_publicly. Fix: Create a replacement key, update PopMCP, and remove the leaked key from the repository history. #### 401 detected_unusual_activity Cause: ElevenLabs blocks Free-tier API traffic it flags as abusive, commonly from VPN, proxy or datacentre IPs. Fix: Upgrade the workspace to any paid plan, then reconnect. --- ## Etsy URL: https://www.docs.popmcp.com/docs/integrations/etsy/ Summary: Connect Etsy to manage listings and inventory, publish products, process orders, and handle payments for your shop. You end up pasting your Etsy app's Keystring (the OAuth client id) and its Shared Secret from the Etsy Developer Portal into PopMCP. - Auth: OAuth authorization - Setup time: 10 min, plus Etsy's app review - API base URL: https://api.etsy.com/v3 - Credentials screen: https://www.etsy.com/developers - Provider docs: https://developers.etsy.com/documentation/essentials/authentication/ ### Approval required before this works Which gate you hit depends on app type. Etsy's docs say Seller Apps are approved automatically for eligible sellers, but a Personal App "goes through a deeper review process than Seller Apps", and serving sellers at production scale needs a separately reviewed Commercial Access upgrade. - Typical wait: Seller App: Etsy states eligible sellers are "approved within minutes, with no manual review queue". Personal App and Commercial Access: Etsy publishes no figure and says only that "Commercial Access requests are reviewed manually. Review time may vary depending on your proposed use case." Developers in Etsy's own community forums report waits of several days to several weeks, with 20+ days per attempt not unusual. - Cost: Free. Etsy charges nothing for registration, review, or the Commercial Access upgrade. - Blocked until approved: Until the app is approved the keystring is inactive and every request fails, so no OAuth consent screen, no listings, orders, inventory, or shop data. An approved Seller App is still scoped to your own shop only. A Personal App works for other sellers at limited scale; serving sellers at production scale requires the Commercial Access upgrade. - Works meanwhile: If you are an active Etsy seller in good standing, register a Seller App: eligible sellers are approved within minutes with no manual review queue, and that key works immediately against your own shop. Build and test the entire integration on it while the Personal App or Commercial Access request is pending. ### Before you begin - An Etsy account signed in to etsy.com - An Etsy shop if you register a seller app, since seller apps only reach your own shop - Acceptance of the Etsy API Terms of use - Etsy approval. Every app is reviewed before its keystring goes live. Seller apps get a light review. Personal and commercial apps get a deeper one. ### Get your credentials #### 1. Open the Etsy Developer Portal and pick an app type Sign in at etsy.com/developers to land on the Dashboard. Click Get started under Create a seller app if the connection only touches your own shop, or under Create a personal app if it needs to reach beyond it. Screen: https://www.etsy.com/developers/ #### 2. Register the app Fill in what you are building and how you will use the API, then tick the box accepting the API Terms of use. Name the app `PopMCP` and click Register to submit it for review. The seller form sits at `etsy.com/developers/register-seller-app` and the personal one at `etsy.com/developers/register`. Screen: https://www.etsy.com/developers/register-seller-app #### 3. Wait for the app to be approved Return to the Dashboard and check the app's row. Wait until its status reads Approved. Screen: https://www.etsy.com/developers/ #### 4. Copy the keystring and reveal the shared secret Open the approved app from Your Apps and copy the Keystring. Click the visibility icon next to Shared Secret, then copy that value too. Screen: https://www.etsy.com/developers/your-apps #### 5. Register PopMCP's callback URL, then paste both values On the app's Callback URLs tab, add the callback URL PopMCP prints on its Etsy connect screen, character for character. Paste the keystring into API Key (keystring) and the secret into Shared Secret in PopMCP, then click connect. Screen: https://www.etsy.com/developers/your-apps ### Fields PopMCP asks for - Auth type (connectionType): Create an app at etsy.com/developers/your-apps. Etsy uses PKCE, so no client secret is sent during sign-in. Your Etsy login stays on Etsy's side. - API Key (keystring) (clientId) [required]: Your app's "Keystring" from etsy.com/developers/your-apps. This is the OAuth client id. - Shared Secret (sharedSecret) [required]: Your app's Shared Secret (same page as the keystring). Etsy requires it in the x-api-key header on every request. Stored encrypted; used server-side only. ### Callback URL to register https://app.popmcp.com/api/providers/etsy/callback ### Scopes requested - shops_r - shops_w - listings_r - listings_w - listings_d - transactions_r - transactions_w - address_r - email_r ### Verify The Etsy connector in PopMCP flips to Connected and shows your shop name, and a shop or listings tool returns your real listings. ### Troubleshooting #### 403 on every call right after registering Cause: The app has not been approved yet, so the keystring is inactive. Fix: Check the app's row on the Developer Portal Dashboard and wait until it reads Approved. #### invalid_api_key or 401 from the token endpoint Cause: The shared secret was copied while still masked, or the keystring and secret came from two different apps. Fix: Reveal the shared secret with the visibility icon and re-copy both values from the same app page. #### redirect_uri mismatch during sign-in Cause: PopMCP's callback URL is not registered on the Etsy app, or it differs by a trailing slash or by http versus https. Fix: Copy the callback URL exactly as PopMCP prints it into the app's Callback URLs list. #### 429 Too Many Requests Cause: The app exceeded its Queries Per Second or Queries Per Day allowance. Fix: Honour the retry-after header, then email developer@etsy.com with your use case to request higher limits. #### Seller app cannot see another shop's data Cause: Seller apps are scoped to the registering account's own shop by design. Fix: Register a personal app instead, and request an upgrade to commercial access if you need more scale. #### Every request fails with a malformed key error Cause: Only the keystring was sent in the x-api-key header. Fix: Etsy v3 wants keystring and shared secret joined by a colon. Confirm both fields are filled in PopMCP. --- ## Eventbrite URL: https://www.docs.popmcp.com/docs/integrations/eventbrite/ Summary: Connect Eventbrite to create and publish events, set up tickets and discount codes, track orders and sales, find attendees, and manage venues. You paste one value into PopMCP: the Private token of an API key in your Eventbrite account (Account Settings, Developer Links, API Keys). If your login belongs to several organizations, you then choose which one the connection is for. - Auth: API credentials - Setup time: 2 min - API base URL: https://www.eventbriteapi.com/v3 - Credentials screen: https://www.eventbrite.com/platform/api-keys - Provider docs: https://www.eventbrite.com/platform/docs/authentication ### Before you begin - An Eventbrite account you manage events with. API access is free on every Eventbrite plan - To change events, tickets and orders, a role in the organization that allows it (an admin can do everything) - Refunds through the API are switched on by Eventbrite for selected organizations only; everything else works for every organizer ### Get your credentials #### 1. Sign in and open Account Settings Sign in at eventbrite.com with the login you manage your events with. Open the account menu at the top right and choose Account Settings. Screen: https://www.eventbrite.com/account-settings/ #### 2. Open API Keys under Developer Links In the left sidebar, open Developer Links and click API Keys. If a key is already listed, skip to the step that shows its tokens. Screen: https://www.eventbrite.com/platform/api-keys #### 3. Create an API key (only if none is listed) Click Create API Key. Under Contact Information enter your first and last name. Under Application Details enter any Application URL (your website is fine), an Application Name such as PopMCP and a short Description. Leave OAuth Redirect URI empty. Tick I have read the terms of use and click Create Key. Eventbrite reviews nothing here: the key works at once. Screen: https://www.eventbrite.com/platform/api-keys #### 4. Show the tokens and copy the Private token On the key's row click Show API key, client secret and tokens. Four values appear. Copy the Private token: it is the one that acts for your account. The API key, the client secret and the public token are different values and are not accepted. Screen: https://www.eventbrite.com/platform/api-keys #### 5. Paste the token into PopMCP and choose the organization In PopMCP, paste the token into Private token and connect. PopMCP checks it and lists the Eventbrite organizations your login belongs to; choose the one this connection is for (each organization goes into its own workspace). The connection is then locked to that organization. ### Fields PopMCP asks for - Private token (accessToken) [required]: In Eventbrite: Account Settings, Developer Links, API Keys. If no key is listed, click Create API Key (your name, an application name, URL and description, tick the terms box, Create Key). Then click Show API key, client secret and tokens and copy the Private token. Stored encrypted. ### Verify PopMCP marks the Eventbrite connection Verified with your organization's name and records the login's name and email. Asking the AI to list your upcoming events returns them with their status and dates. ### Troubleshooting #### "Eventbrite did not accept this token. Copy the Private token (not the API key, client secret or public token)..." Cause: The API key, client secret or public token was pasted, the token was copied incompletely, or the key was deleted. Fix: Open **API Keys**, click **Show API key, client secret and tokens** and copy the **Private token** again, on its own. #### "This Eventbrite login does not belong to any organization yet" Cause: The login has never created or managed an event, so Eventbrite has not made an organization for it. Fix: Sign in at eventbrite.com and start creating an event once (Eventbrite creates the organization), then connect again. #### "This Eventbrite login no longer belongs to the organization" Cause: You were removed from the organization the connection was made for, or it was closed. Fix: Ask an admin of that organization to add you back, or reconnect Eventbrite and choose another organization. #### Creating an event fails with NO_PACKAGE_SELECTED Cause: The organization has not chosen an Eventbrite package yet. Fix: Choose one in Eventbrite when you create your first event, or ask the AI to read the current one with get_organization_package. #### Publishing fails Cause: Eventbrite publishes an event only with a name, a description, an organizer, at least one ticket type and, for paid tickets, payout settings. Fix: The error names what is missing. Add it (payout settings are under Manage Event, Payments in Eventbrite), then publish again. #### Tools fail with 429 Cause: Eventbrite allows 2,000 calls an hour and 48,000 a day per token, and 200 an hour for creating, copying and publishing events. Fix: Wait and retry. Ask for fewer, larger pages and use the overview tools instead of one call per event. --- ## Facebook URL: https://www.docs.popmcp.com/docs/integrations/facebook/ Summary: Connect Facebook to publish and schedule posts, photos, videos and Reels, reply to comments and reviews, answer Messenger, and track performance. You end up pasting the App ID and App Secret of a Meta app that has Facebook Login for Business added and PopMCP's callback URL whitelisted. - Auth: OAuth authorization - Setup time: 20 min (plus App Review if non-admins will connect) - API base URL: https://graph.facebook.com - Credentials screen: https://developers.facebook.com/apps - Provider docs: https://developers.facebook.com/docs/pages-api/getting-started ### Approval required before this works Meta's own access-levels doc states "Business Verification is required to get Advanced Access" and that "in some cases additional App Review on an individual permission and feature basis might be required". Without Advanced Access on the Pages permissions the app only works for people who hold a role on it. - Typical wait: Meta does not publish an SLA for either step. Developers commonly report Business Verification completing in a few days to about two weeks, and App Review in anywhere from 2 business days to several weeks; a rejection sends the permission back to the start of the queue. Treat any specific figure as a report, not a commitment. - Cost: No fee. Business Verification requires uploading company registration or similar documents, and Meta must be able to match the business to public records. - Blocked until approved: With Standard Access only, Meta states that "permissions with Standard Access can only be requested from app users who have a role on the requesting app". Every token minted for anyone else comes back without the Pages scopes, so reading or publishing to a client's or customer's Page fails. pages_show_list, pages_read_engagement, pages_manage_posts, pages_manage_metadata, pages_messaging and read_insights are all affected. - Works meanwhile: Standard Access is granted automatically, so the full integration can be built and tested end to end against Pages you administer, using accounts added to the app as admins, developers, or testers. Add each teammate's Page under an app role and everything behaves exactly as it will in production. ### Before you begin - A Facebook account registered as a developer at developers.facebook.com - Admin (or full task access) on the Facebook Page you want PopMCP to manage - A Meta Business portfolio to attach the app to - Business verification plus App Review approval before anyone who is not an app admin, developer or tester can connect - A public Privacy Policy URL, because App settings / Basic will not save without one ### Get your credentials #### 1. Create a Meta app for your Page Go to My Apps and click Create app, enter an app name and contact email, then click Next. On the use case screen select Manage everything on your Page, attach a business portfolio, and finish the wizard. Screen: https://developers.facebook.com/apps/create/ #### 2. Whitelist PopMCP's callback URL In the left nav open Facebook Login for Business and click Settings. Paste the callback URL from PopMCP's connect screen into Valid OAuth Redirect URIs under Client OAuth settings, then click Save changes. Screen: https://developers.facebook.com/apps #### 3. Add the Page permissions your tools need Open App review and then Permissions and features. Add `pages_show_list`, `pages_read_engagement`, `pages_manage_posts`, `pages_manage_engagement`, `pages_manage_metadata`, `pages_messaging` and `read_insights`. Screen: https://developers.facebook.com/apps #### 4. Copy the App ID and App Secret Open App settings and then Basic. Copy the App ID, click Show next to App secret and re-enter your Facebook password, then paste both values into PopMCP. Screen: https://developers.facebook.com/apps #### 5. Submit for review and switch the app Live Complete Verification and Data handling questions, then submit the Page permissions under App review. Once approved, open Go live and switch the app to Live. Screen: https://developers.facebook.com/apps ### Fields PopMCP asks for - App ID (clientId) [required]: Your Facebook app's App ID from developers.facebook.com/apps (App settings, Basic). The app needs the Facebook Login product added, and the callback URL above listed under Valid OAuth Redirect URIs. - App Secret (clientSecret) [required]: Same screen as the App ID (click Show). Stored encrypted, used server-side only, and never sent to the browser or to any tool. ### Callback URL to register https://app.popmcp.com/api/providers/facebook/callback ### Scopes requested - public_profile - pages_show_list - pages_read_engagement - pages_read_user_content - pages_manage_posts - pages_manage_engagement - pages_manage_metadata - pages_manage_cta - pages_messaging - read_insights - business_management - leads_retrieval - publish_video ### Verify Saving the App ID and App Secret opens the Facebook OAuth window. After you approve and pick a Page, the connector shows the Page name with a green Connected badge and the Page tools appear in your tool list. ### Troubleshooting #### "URL Blocked: This redirect failed because the redirect URI is not whitelisted" Cause: The callback URL is missing from Valid OAuth Redirect URIs, or differs by a trailing slash or http versus https. Fix: Copy the callback URL straight out of PopMCP into Facebook Login for Business, Settings, and save again. Meta matches the URI character for character. #### Facebook Login for Business is not in the left nav Cause: Use-case apps expose the settings through the use case instead of as a top-level product. Fix: Open Use cases, click Customize on Manage everything on your Page, then open Settings. Apps created years ago list it as plain Facebook Login. #### Error 200: "Requires pages_manage_posts permission" Cause: The permission was never added to the app, or it is added but unapproved and the connecting user is not an app admin, developer or tester. Fix: Add the permission under App review, and while it is unapproved add the person under App roles as an admin, developer or tester. #### "Error validating application. Invalid application ID" or error 101 Cause: The App ID or App Secret was mistyped, or the secret was rotated after you pasted it. Fix: Re-copy both values from App settings, Basic, and re-save the PopMCP connection. #### Only your own Page appears and nobody else can connect Cause: The app is still in Development mode. Fix: Finish business verification and App Review, then switch the app to Live from Go live. --- ## Figma URL: https://www.docs.popmcp.com/docs/integrations/figma/ Summary: Connect Figma to read files and frames, export assets, pull design tokens and copy, reply to comments, browse team libraries, and watch for changes. You paste one value into PopMCP: a Figma personal access token (it starts with figd_), generated in Figma under Settings, Security. Organization and Enterprise admins can paste a plan access token instead. - Auth: API credentials - Setup time: 2 min - API base URL: https://api.figma.com - Credentials screen: https://www.figma.com/settings - Provider docs: https://developers.figma.com/docs/rest-api/personal-access-tokens/ ### Before you begin - A Figma account on any plan, the free Starter plan included - Access in Figma to the files and teams you want the AI to work with: the token reaches exactly what your account can open - A Dev or Full seat if the AI will read files often: Figma gives View and Collab seats only a few file reads and image exports a month through its API ### Get your credentials #### 1. Sign in to Figma and open Settings Sign in at figma.com. In the file browser click your account menu (your name, top left) and choose Settings. Screen: https://www.figma.com/settings #### 2. Open Security and click Generate new token In Settings open the Security tab. Under Personal access tokens, click Generate new token. Tokens you made before are listed here too, with when each was last used. Screen: https://www.figma.com/settings #### 3. Name the token, set 90 days and every permission Name it PopMCP. Set Expiration to 90 days, the longest Figma allows (tokens that never expire were removed in 2025). Figma shows one dropdown per permission: give each its highest option, Read-only or Write where offered, so every PopMCP tool works. Then click Generate token. Screen: https://www.figma.com/settings #### 4. Copy the token Figma shows the token once, right after you generate it. Copy it now: if you close the dialog first, generate a new one. Screen: https://www.figma.com/settings #### 5. Optional: copy your team's link Figma has no way for an app to look up your teams, so PopMCP can take your team's link. Open the team in the file browser's sidebar and copy the address from the browser bar: the number after /team/ is the team id. With it, the AI can list your team's folders, files and library without asking. Screen: https://www.figma.com/files/team #### 6. Add the token in PopMCP In PopMCP, paste the token into Personal access token. If you copied a team link, open More options and paste it into Team link. Then connect: PopMCP checks the token by reading your Figma profile. ### Fields PopMCP asks for - Personal access token (personalAccessToken) [required]: In Figma click your account menu (top left), choose Settings, open the Security tab and, under Personal access tokens, click Generate new token. Name it PopMCP, set Expiration to 90 days (the longest Figma allows), set each permission to its highest option (Read-only, or Write where offered), click Generate token and copy it (Figma shows it once). Stored encrypted. - Team link (optional) (teamUrl): Optional. Open your team in Figma's file browser and copy the address from the browser bar (it has /team/ and a number in it). With it the AI can list your team's folders, files and library without asking which team. Figma has no way to look teams up. ### Verify PopMCP marks the Figma connection Verified with your Figma handle and email (a plan access token shows as Figma plan access token). Asking the AI to outline a file from its link returns the file's pages and top-level frames. ### Troubleshooting #### "Figma did not accept this token. It may have expired (personal access tokens last 90 days at most), been revoked, or been copied only in part." Cause: The token expired, was revoked in Settings, Security, or was copied incompletely. Fix: Generate a new token under **Settings**, **Security**, **Personal access tokens** and paste the whole value. #### "That is a Figma link, not a token." Cause: A file or team address was pasted into the token field. Fix: Paste the token (it starts with figd_) into **Personal access token**, and a team link only into **Team link** under **More options**. #### A tool fails with "Invalid scope(s)" Cause: The token was generated without the permission that tool needs (for example Comments left at Read-only, or File metadata at No access). Fix: Generate a new token with that permission at Read-only or Write, keep the others, and reconnect Figma in PopMCP with it. #### File reads or image exports fail with 429 after a few calls Cause: Figma limits file JSON, node reads and image exports (Tier 1) by seat: View and Collab seats get only a few a month, Dev and Full seats 10 to 20 a minute. Fix: Ask for single frames or the file outline instead of whole files, export several frames in one request, wait the time Figma's answer gives, or use an account with a Dev or Full seat. #### The AI asks which team Cause: Figma has no API that lists your teams, and no team link was saved on the connection. Fix: Give the team page's link in the chat, or reconnect and paste it into **Team link** under **More options**. #### Variables tools answer 403 Cause: Figma's Variables API is available only to members of Enterprise organizations. Fix: Use extract_design_tokens for published styles on any plan, or connect with an account in an Enterprise organization. --- ## Firecrawl URL: https://www.docs.popmcp.com/docs/integrations/firecrawl/ Summary: Connect your own Firecrawl account to fetch public web pages as clean text, map and crawl sites, search the web, and watch pages for changes that matter. You paste one value into PopMCP: a Firecrawl API key starting with fc-, copied from the API Keys page of your Firecrawl dashboard. - Auth: API credentials - Setup time: 2 min - API base URL: https://api.firecrawl.dev/v2 - Credentials screen: https://www.firecrawl.dev/app/api-keys - Provider docs: https://docs.firecrawl.dev/introduction ### Before you begin - A Firecrawl account. The free plan includes 1,000 credits a month and needs no card - Enough credits for what you plan to run: every fetch, crawl, search and watch check spends credits from your own plan - Pages you want to read must be public. PopMCP refuses cookies, logins and custom headers for this connector ### Get your credentials #### 1. Sign up or sign in at firecrawl.dev Create a Firecrawl account or sign in. A new account starts on the free plan with 1,000 credits a month; you can upgrade later under Settings, Billing. Screen: https://www.firecrawl.dev/app #### 2. Open API Keys and copy your key In the dashboard, open API Keys. Copy the key that is there, or create a new one so PopMCP has a key of its own that you can revoke separately. Keys start with `fc-`, belong to your Firecrawl team, and have no access levels to choose. Screen: https://www.firecrawl.dev/app/api-keys #### 3. Check your credit balance Open Usage to see how many credits are left in the current billing cycle. PopMCP reads the same balance when you connect. As a guide: one page fetched, screenshotted or mapped is 1 credit, extracting fields is 5 credits a page, a search is 2 credits per 10 results, and each watch check is 1 credit per watched page. Screen: https://www.firecrawl.dev/app #### 4. Paste the key into PopMCP In PopMCP, paste the key into API key and connect. PopMCP checks it by reading your remaining credits from Firecrawl. ### Fields PopMCP asks for - API key (apiKey) [required]: Sign in at firecrawl.dev, open API Keys and copy your key (it starts with fc-). Stored encrypted and used only on our servers. ### Verify PopMCP marks the Firecrawl connection Verified as your Firecrawl account and records the credits remaining. Asking the AI to read a public page, such as your own homepage, returns its content as markdown. ### Troubleshooting #### "Firecrawl rejected this API key. Copy it again from firecrawl.dev (API Keys) and paste only the key, which starts with fc-." Cause: The key was copied incompletely, pasted with extra text around it, or revoked. Fix: Copy the key again from **API Keys** and paste only the key itself. If it was revoked, create a new one. #### Tools fail with 402 Cause: Your Firecrawl team has run out of credits for the billing cycle. Fix: Wait for the next cycle, upgrade the plan, or on a paid plan turn on pay-as-you-go under **Settings**, **Billing**. get_credit_usage shows the balance. #### Tools fail with 429 Cause: You went past your plan's per-minute rate limit or its concurrent browser limit. The free plan allows 2 crawls a minute and 2 concurrent browsers. Fix: Wait a minute and retry, run fewer pages at once, or move to a plan with higher limits. #### "Firecrawl tools fetch public pages only, so cookies cannot be sent" Cause: The request asked for something PopMCP does not allow on this connector: custom headers, cookies, an Authorization value, a saved browser profile, a robots.txt override, or browser actions that type, press keys or run scripts. Fix: Remove those options. Pages behind a login are out of scope; wait, click, scroll and screenshot actions are allowed. #### "This schedule checks more often than once an hour." Cause: A watch was set to check more often than hourly. Each check spends credits on every watched page, so this can use a free plan's monthly credits in a day. Fix: Pick hourly or daily, or confirm the faster schedule so the AI resends it with allowSubHourly set to true. #### A crawl stops at 50 pages Cause: crawl_site fetches 50 pages unless told otherwise, and PopMCP caps a crawl at 500 pages. Fix: Ask for a larger limit, up to 500, or use map_site first and crawl only the section you need. #### You cannot revoke the old key Cause: Firecrawl requires every team to keep at least one active key. Fix: Create the new key first, update PopMCP with it, then revoke the old one. --- ## Fireflies URL: https://www.docs.popmcp.com/docs/integrations/fireflies/ Summary: Connect Fireflies to search meetings, read summaries and action items, pull transcripts, share recordings, and send the notetaker into live calls. You end up pasting the single API key shown on the Developer Settings page in Fireflies into PopMCP. - Auth: API credentials - Setup time: 2 min - API base URL: https://api.fireflies.ai/graphql - Credentials screen: https://app.fireflies.ai/integrations/custom/fireflies - Provider docs: https://docs.fireflies.ai/getting-started/quickstart ### Before you begin - A Fireflies account you can sign in to at app.fireflies.ai - A Business or Enterprise plan for real workloads. Free is capped at 50 API requests a day and Pro at 500. - Your workspace admin must not have disabled Integrations for the team ### Get your credentials #### 1. Open Integrations and find the Fireflies API card Sign in at app.fireflies.ai and click Integrations in the left sidebar. Type `Fireflies API` into the search field and open that card. Screen: https://app.fireflies.ai/integrations #### 2. Click Get API Key Click Get API Key on the Fireflies API page. Fireflies redirects you to Developer Settings. Screen: https://app.fireflies.ai/integrations/custom/fireflies #### 3. Copy the key from Developer Settings Copy the value shown under API Key. You can come back to it any time through Settings, the Personal tab, then MCP & Dev Tools and Developer Settings. Screen: https://app.fireflies.ai/settings #### 4. Paste the key into PopMCP Open the Fireflies connector in PopMCP, paste the key into API key, and save. ### Fields PopMCP asks for - API key (apiKey) [required]: In Fireflies, open Integrations, choose Fireflies API, and copy the API key shown there. Stored encrypted and used server side only. The key inherits your Fireflies permissions and plan, and stays valid until you regenerate it. Free plans allow 50 requests a day and Pro 500 a day, so a Business plan is best for heavy use. ### Verify The Fireflies connector in PopMCP shows Connected, and a meetings-search tool returns your recent Fireflies transcripts with their titles and dates. ### Troubleshooting #### 401 Unauthorized Cause: The key was truncated when copied, or it was regenerated in Fireflies after you saved it. Fix: Re-copy the key from Settings, Personal, MCP & Dev Tools, Developer Settings, and paste it into PopMCP again. #### The Integrations card shows no key Cause: Fireflies moved the key out of the integration card and into Developer Settings. Fix: Click Get API Key on the card, or go straight to Settings and open Developer Settings under MCP & Dev Tools. #### Rate limit errors after a handful of calls Cause: The account is on Free at 50 requests a day, or Pro at 500 a day. Fix: Upgrade to Business or Enterprise, which allow up to 60 requests a minute. #### Sending the notetaker into a live call fails repeatedly Cause: The Add to Live endpoint is limited to 3 requests per 20 minutes. Fix: Wait out the window rather than retrying. Each retry consumes one of the three. #### Sharing a recording returns an error Cause: The Share Meeting endpoint allows 10 requests an hour, with up to 50 email addresses per request. Fix: Batch recipients into one request instead of sending one request per person. #### Tools return no meetings even though the connection works Cause: The key carries only your own Fireflies permissions, and the meetings belong to teammates. Fix: Have the meetings shared with your user, or connect with an account that can see them. --- ## Fish Audio URL: https://www.docs.popmcp.com/docs/integrations/fish-audio/ Summary: Connect Fish Audio to synthesize speech, clone and manage voices, and transcribe audio from your voice model library. You end up pasting one Fish Audio secret key, created on the API Keys page and shown only once, into PopMCP, plus an optional TTS model id such as s2.1-pro. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.fish.audio - Credentials screen: https://fish.audio/app/api-keys/ - Provider docs: https://docs.fish.audio/api-reference/introduction ### Before you begin - A Fish Audio account signed in at fish.audio - API credit topped up if you plan to use a paid model. The s2.1-pro-free tier costs nothing but carries no latency guarantee. - API credit is separate from the playground quota included with a Premium plan ### Get your credentials #### 1. Open the API Keys page Sign in at fish.audio and click API Keys under Developer in the left sidebar. You can also go straight to `fish.audio/app/api-keys/`. Screen: https://fish.audio/app/api-keys/ #### 2. Create a key Click Create API Key and type `PopMCP` into Key name. Choose Never Expire under Expiration, then click Create. Screen: https://fish.audio/app/api-keys/ #### 3. Copy the key before you close the dialog Click Copy API key in the Save your API key dialog and paste it into your password manager. Click I've saved my key to close. #### 4. Paste the key into PopMCP and pick a model Paste the secret into API key on PopMCP's Fish Audio form. Leave TTS model (optional) blank to use `s2.1-pro-free`, or enter `s2.1-pro`, `s2-pro` or `s1` to bill against your API credit. ### Fields PopMCP asks for - API key (apiKey) [required]: Fish Audio dashboard (fish.audio) → Go to App → API Keys → Create/Copy. Stored encrypted; used server-side only (sent as Authorization: Bearer). The connection is locked to this key's account. - TTS model (optional) (model): Which backend engine text-to-speech uses. Leave blank for s2.1-pro-free, the free developer tier that works for every key with no credit usage. Enter s2.1-pro (flagship), s2-pro, or s1 to use a paid model for higher quality (requires API credit). ### Verify The Fish Audio connector in PopMCP shows Connected, and a text-to-speech tool returns playable audio. The call also appears under API Billing in the Fish Audio dashboard. ### Troubleshooting #### 401 Unauthorized Cause: The key was pasted with surrounding whitespace, or it has since been deleted or has expired. Fix: Check the key's row on the API Keys page reads Active, and create a fresh key if it reads Expired. #### The connection worked and then stopped after a month Cause: The key was created with a 7, 30 or 90 day expiry. Fix: Create a replacement key with Never Expire and update it in PopMCP. #### Payment or insufficient-credit error on a paid model Cause: The s2.1-pro, s2-pro and s1 models consume API credit, which is separate from any Premium playground quota. Fix: Top up API credit under API Billing, or clear the TTS model field so the connection falls back to s2.1-pro-free. #### Requests queue or fail under load Cause: Every key on the account shares one concurrency allowance, which starts at 5 concurrent requests. Fix: Shorten requests, or top up $100 or more to move to 15 concurrent requests. Topping up $1,000 or more unlocks 50. #### API access suddenly suspended across all keys Cause: The Fish Audio account was scheduled for closure, which suspends every key immediately. Fix: Contact Fish Audio support to reinstate the account before reconnecting. --- ## FreshBooks URL: https://www.docs.popmcp.com/docs/integrations/freshbooks/ Summary: Connect FreshBooks to manage clients, invoices, estimates, expenses, payments, projects, time tracking, and reports. You end up pasting the Client ID and Client Secret of a Private App you register in the FreshBooks Developer Portal. - Auth: OAuth authorization - Setup time: 6 min - API base URL: https://api.freshbooks.com - Credentials screen: https://my.freshbooks.com/#/developer - Provider docs: https://www.freshbooks.com/api/authentication ### Before you begin - A FreshBooks account on any plan, including a trial - Signed in as the account owner or an admin who can open the Developer Portal - The PopMCP callback URL from the connect screen, because FreshBooks only accepts HTTPS redirect URIs with no query string ### Get your credentials #### 1. Copy the PopMCP callback URL On the PopMCP FreshBooks connect screen, copy the Callback URL printed above the credential fields. Paste it later exactly as PopMCP prints it. #### 2. Open the Developer Portal Sign in at my.freshbooks.com, click the cog icon at the bottom of the left sidebar, and choose Developer Portal. Screen: https://my.freshbooks.com/#/developer #### 3. Create a Private App Click Create New App, type a name into Application Name, and set Application Type to Private App. Screen: https://my.freshbooks.com/#/developer #### 4. Add the redirect URI and the scopes Paste the PopMCP callback URL into Redirect URIs and click the checkmark to add it. Tick the boxes you need in the Read Scopes and Write Scopes columns, then click Save. Screen: https://my.freshbooks.com/#/developer #### 5. Copy the Client ID and Client Secret into PopMCP Open the app from the All Apps list and scroll to the bottom of the page. Copy the Client ID and Client Secret into PopMCP, click Connect, and approve the FreshBooks authorization screen. Screen: https://my.freshbooks.com/#/developer ### Fields PopMCP asks for - Auth type (connectionType): Create an app in the FreshBooks Developer Portal (my.freshbooks.com → Settings → Developer Portal). Enable all scopes for full coverage. The OAuth flow keeps your FreshBooks login on FreshBooks' side. - Client ID (clientId) [required]: Your app's "Client ID" from the FreshBooks Developer Portal. - Client secret (clientSecret) [required]: Your app's "Client Secret". Stored encrypted; used server-side only and never shown again. ### Callback URL to register https://app.popmcp.com/api/providers/freshbooks/callback ### Verify PopMCP shows the FreshBooks connection as Connected with your business name, and asking it to list your most recent clients or invoices returns real rows from your account. ### Troubleshooting #### invalid_redirect_uri when you click Connect Cause: The redirect URI on the FreshBooks app does not match the PopMCP callback URL exactly, or it uses http:// or carries a query string. Fix: Re-copy the callback URL from the PopMCP connect screen into Redirect URIs, one per line, HTTPS only, then save. #### 403 on some tools but not others Cause: The token was issued without the matching scope. FreshBooks cannot add scopes to an already-issued access token. Fix: Tick the missing scope on the app, disconnect in PopMCP, then reconnect so a fresh token is issued. #### 401 Unauthorized on every tool call Cause: The refresh token was revoked, which happens when the app is deleted or a new secret is generated. Fix: Re-copy the Client Secret from the bottom of the app page into PopMCP and reconnect to run the OAuth flow again. #### The Developer Portal link is missing from the cog menu Cause: You are signed in as a team member rather than the account owner or an admin. Fix: Sign in as the account owner, or open my.freshbooks.com/#/developer directly with an admin login. --- ## Freshdesk URL: https://www.docs.popmcp.com/docs/integrations/freshdesk/ Summary: Connect Freshdesk to manage support tickets, contacts, companies, agents, time tracking, and the knowledge base. You end up pasting your Freshdesk helpdesk domain and the personal API key revealed on your agent Profile Settings page. PopMCP sends it as HTTP Basic auth with the key as the username. - Auth: API credentials - Setup time: 3 min - API base URL: https://YOUR-DOMAIN.freshdesk.com/api/v2 - Credentials screen: https://YOUR-DOMAIN.freshdesk.com/a/profiles/edit (replace YOUR-DOMAIN with your Freshdesk domain) - Provider docs: https://developers.freshdesk.com/api/ ### Before you begin - A Freshdesk account on any plan, including trials - A verified agent login, because Freshdesk hides the API key until the agent's email is verified - An agent whose role can see every group and ticket you want the AI to reach, because the key inherits that agent's permissions ### Get your credentials #### 1. Note your helpdesk domain Sign in to the agent portal and read the host in the address bar. In `https://acme.freshdesk.com` the domain is acme. #### 2. Open Profile Settings Click your profile picture in the top-right corner of the agent portal and choose Profile Settings. Screen: https://YOUR-DOMAIN.freshdesk.com/a/profiles/edit (replace YOUR-DOMAIN with your Freshdesk domain) #### 3. Click View API key On the right pane of the profile page, below the change password block, click View API key and complete the captcha. Screen: https://YOUR-DOMAIN.freshdesk.com/a/profiles/edit (replace YOUR-DOMAIN with your Freshdesk domain) #### 4. Paste the domain and key into PopMCP Copy the revealed key, then paste the domain into Freshdesk domain and the key into API key in PopMCP. Click Connect. ### Fields PopMCP asks for - Freshdesk domain (domain) [required]: The first part of your Freshdesk URL: https://.freshdesk.com. You can paste the full URL and we'll extract the domain. This is the account the MCP is locked to. - API key (apiKey) [required]: In Freshdesk: click your profile picture (top-right) → Profile Settings → 'View API Key' (complete the captcha). The key inherits the permissions of that agent. Stored encrypted. ### Verify PopMCP shows the Freshdesk connection as Connected against your domain, and asking it to list recent tickets returns real ticket subjects and IDs from your helpdesk. ### Troubleshooting #### 401 Unauthorized on every call Cause: The key was copied with surrounding whitespace, or it belongs to a different Freshdesk domain than the one entered. Fix: Re-copy the key from Profile Settings on the same helpdesk and confirm the domain field matches the host in the address bar. #### The View API key button does not appear Cause: The agent's email address has not been verified. Freshdesk only shows the key to verified agents. Fix: Open the Freshdesk verification email for that agent, or resend it from Admin then Agents, verify, then reload Profile Settings. #### 403 Forbidden on some tickets or groups Cause: The key inherits the creating agent's role, so a restricted-scope agent cannot see other groups' tickets. Fix: Generate the key from an agent with a broader role, or widen that agent's ticket scope in Admin then Roles. #### 429 Too Many Requests Cause: The hourly API call budget for your plan was exhausted, often by a bulk export. Fix: Wait for the window to reset and space out bulk operations. The Retry-After response header says how long to wait. --- ## Freshsales URL: https://www.docs.popmcp.com/docs/integrations/freshsales/ Summary: Connect Freshsales to manage contacts, sales accounts, deals, products, tasks, appointments, and sales activities. You end up pasting your Freshsales bundle alias and the API key from the API Settings tab of Profile Settings. PopMCP sends it as an Authorization: Token token= header. - Auth: API credentials - Setup time: 3 min - API base URL: https://YOUR-BUNDLE.myfreshworks.com/crm/sales/api - Credentials screen: https://YOUR-BUNDLE.myfreshworks.com/crm/sales/personal-settings/api-settings (replace YOUR-BUNDLE with your Freshsales bundle) - Provider docs: https://developers.freshworks.com/crm/api/ ### Before you begin - A Freshsales or Freshworks CRM account on any plan - A user login that can see the records you want the AI to reach, because the key inherits that user's permissions and territory scope - Know whether your account sits on the newer myfreshworks.com host or the legacy freshsales.io host ### Get your credentials #### 1. Open Profile Settings Sign in to Freshsales, click your profile picture in the top-right corner, and select Profile Settings. Screen: https://YOUR-BUNDLE.myfreshworks.com/crm/sales/personal-settings (replace YOUR-BUNDLE with your Freshsales bundle) #### 2. Open the API Settings tab In Profile Settings click the API Settings tab. The key sits in Your API key, with Bundle alias printed directly below it. Screen: https://YOUR-BUNDLE.myfreshworks.com/crm/sales/personal-settings/api-settings (replace YOUR-BUNDLE with your Freshsales bundle) #### 3. Copy the bundle alias into the domain field Paste Bundle alias into PopMCP's Freshsales domain field. Newer accounts read `acme.myfreshworks.com` and legacy accounts read `acme.freshsales.io`. #### 4. Paste the API key and connect Copy the value from Your API key into PopMCP's API key field and click Connect. ### Fields PopMCP asks for - Freshsales domain (domain) [required]: Your Freshsales URL host, e.g. your-company.myfreshworks.com (newer accounts) or your-company.freshsales.io (legacy). You can paste just the first part (your-company) or the full URL. We'll work it out. This is the account the MCP is locked to. - API key (apiKey) [required]: In Freshsales: click your profile picture (top-right) → Settings → 'API Settings' → copy 'Your API key'. The key inherits the permissions of that user. Stored encrypted. ### Verify PopMCP shows the Freshsales connection as Connected against your bundle alias, and asking it to list recent contacts or open deals returns real records from your CRM. ### Troubleshooting #### 401 Authentication Failure Cause: The key was pasted with the `Token token=` prefix included, or it belongs to a different Freshworks bundle than the domain entered. Fix: Paste only the raw key value from the API Settings tab, and confirm the domain matches the bundle alias printed under it. #### 404 on every endpoint Cause: The domain field points at the wrong host, for example freshsales.io for an account that lives on myfreshworks.com. Fix: Copy the bundle alias exactly as Freshsales prints it on the API Settings tab and reconnect. #### 403 Access Denied on some records Cause: The key inherits the permissions and territory scope of the user who owns it. Fix: Generate the key from a user with wider record access, or broaden that user's role in Admin Settings. #### 429 Too many requests Cause: The account exceeded 1,000 API requests in the rolling hour. Fix: Wait for the hour to reset and batch requests instead of looping record by record. --- ## Ghost URL: https://www.docs.popmcp.com/docs/integrations/ghost/ Summary: Connect Ghost to write and publish posts, send newsletters, and manage pages, tags, members, tiers, offers, comments, and site analytics. You paste two values into PopMCP: your Ghost site's API URL and the Admin API key of a custom integration, both copied from Settings, Integrations in Ghost Admin. The Content API key on the same screen is optional. - Auth: API credentials - Setup time: 2 min - API base URL: https://YOUR-SITE/ghost/api/admin/ - Credentials screen: https://YOUR-SITE/ghost/#/settings/integrations (replace YOUR-SITE with your Ghost site) - Provider docs: https://docs.ghost.org/admin-api ### Approval required before this works No one reviews you, but on Ghost(Pro) the Admin API only comes with a plan that includes custom integrations: Starter does not. Self-hosted Ghost sites have no gate at all. - Typical wait: None - the integration and its keys appear the moment an Administrator adds it - Cost: Per ghost.org/pricing (billed yearly): Starter $18/month has no custom integrations, Admin API or webhooks; Publisher $29/month, Business $199/month and Custom plans include them. Self-hosting Ghost is free. - Blocked until approved: Everything. On Ghost(Pro) Starter the Add custom integration button asks you to upgrade, so there is no Admin API key to paste and no webhooks. - Works meanwhile: Run a free self-hosted Ghost site (or a trial on a higher plan) to connect and try every tool before upgrading the live site. ### Before you begin - A Ghost(Pro) site on the Publisher, Business or Custom plan, or a self-hosted Ghost 5 or 6 site reachable over https. Ghost(Pro) Starter does not include custom integrations - An Administrator or Owner account on the site: only they can add custom integrations - Optional: your own staff access token, if you want analytics, newsletter email reports, snippets and settings changes as well ### Get your credentials #### 1. Open Settings in Ghost Admin Sign in to Ghost Admin at your site address followed by `/ghost`, for example `https://yoursite.ghost.io/ghost`, as an Administrator or the Owner. Click the Settings gear at the bottom left. Screen: https://YOUR-SITE/ghost/#/settings (replace YOUR-SITE with your Ghost site) #### 2. Add a custom integration In Settings, go to Advanced and open Integrations. On the Custom tab, click Add custom integration, name it `PopMCP` and click Add. On Ghost(Pro) Starter the button asks you to upgrade: custom integrations start on the Publisher plan. Screen: https://YOUR-SITE/ghost/#/settings/integrations (replace YOUR-SITE with your Ghost site) #### 3. Copy the API URL and the Admin API key The new integration shows three values. Copy API URL into the API URL field in PopMCP and Admin API key (24 characters, a colon, then 64 characters) into the Admin API key field. If you also want the optional Content API tools, copy the Content API key; it goes under More options in PopMCP. Click Save in Ghost. Screen: https://YOUR-SITE/ghost/#/settings/integrations (replace YOUR-SITE with your Ghost site) #### 4. Optional: use your staff access token instead Integration keys cannot read analytics, newsletter email reports or snippets, or change site settings. For those, click your avatar at the bottom left of Ghost Admin and choose Your profile (or open Settings, Staff and click your own name). Near the bottom, under Staff access token, copy the token and paste it into the Admin API key field instead. It has the same shape and acts as you, with your role. Screen: https://YOUR-SITE/ghost/#/settings/staff (replace YOUR-SITE with your Ghost site) #### 5. Paste the values into PopMCP and connect In PopMCP open Ghost, paste the API URL and the Admin API key (or your staff access token), add the Content API key under More options if you copied it, and click Connect Ghost. PopMCP checks that the address is a Ghost site and that the key works, then names the connection after your site. Screen: https://app.popmcp.com/marketplace ### Fields PopMCP asks for - API URL (apiUrl) [required]: Shown on your custom integration in Ghost Admin. Your site address works too. - Admin API key (adminApiKey) [required]: From the same integration. A staff access token (Settings, Staff, your user) also works and unlocks analytics, email reports and settings tools. Stored encrypted. - Content API key (contentApiKey): Optional. Only for the Content API tools, which read what the public sees. Shown on the same integration. ### Verify PopMCP checks that the address answers as a Ghost site, then that Ghost accepts the key, and marks the connection Verified under your site title, noting whether it uses an integration key or a staff token and whose. Asking the AI for a site overview returns your published, draft and scheduled post counts and your members. ### Troubleshooting #### "... does not answer like a Ghost site ..." Cause: The address is not your Ghost site or admin domain, or the site is offline or private to your network. Fix: Copy the **API URL** from your integration in Ghost Admin (Settings, Integrations) and paste exactly that. The site must be reachable from the internet over https. #### "Ghost at ... rejected this Admin API key ..." Cause: The key was cut off when copied, the integration was deleted, or the key or staff token was regenerated. Fix: Copy the Admin API key again from the integration, or the staff access token from your profile, and paste the whole value. #### "That is the Content API key ..." Cause: The shorter Content API key went into the Admin API key field. Fix: Paste the Admin API key, the longer one with a colon, into that field. The Content API key goes under More options. #### A tool answers that it is not open to Custom Integration keys Cause: Ghost lets integration keys reach only some areas. Analytics, newsletter email reports, snippets and settings changes need a staff user. Fix: Edit the connection and paste your staff access token (Your profile, Staff access token) in place of the integration key. #### Add custom integration asks you to upgrade Cause: Ghost(Pro) Starter does not include custom integrations or the Admin API. Fix: Upgrade to Publisher or higher under Settings, Billing in Ghost Admin, or connect a self-hosted Ghost site. --- ## GitHub URL: https://www.docs.popmcp.com/docs/integrations/github/ Summary: Connect GitHub to read and edit code, review and merge pull requests, manage issues and projects, and run and debug Actions workflows. You paste one value into PopMCP: a GitHub personal access token, either a classic token starting with ghp_ (the link on the connect form pre-ticks its scopes) or a fine-grained token starting with github_pat_. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.github.com - Credentials screen: https://github.com/settings/tokens - Provider docs: https://github.com/settings/tokens/new?description=PopMCP&scopes=repo,workflow,project,gist,read:org,notifications,read:user,user:email ### Before you begin - A GitHub account with a verified email address, since GitHub asks for one before it issues a token - Access to the repositories and organizations you want the MCP to reach. A token can never see more than your own account can - For organizations that use SAML single sign-on, an active SSO session so you can authorize a classic token for that organization - A decision on classic or fine-grained: classic reaches every repository you can open, fine-grained reaches one owner and the repositories you pick ### Get your credentials #### 1. Open GitHub's token page from the PopMCP form Sign in to GitHub, then click the link under Personal access token on the PopMCP connect form. It opens New personal access token (classic) with the note `PopMCP` and the recommended scopes already ticked. To get there by hand: your profile picture, Settings, Developer settings, Personal access tokens, Tokens (classic), then Generate new token and Generate new token (classic). Screen: https://github.com/settings/tokens/new?description=PopMCP&scopes=repo,workflow,project,gist,read:org,notifications,read:user,user:email #### 2. Choose an expiry and generate the token Under Expiration, pick how long the token should last, or Custom for a date. When it expires the connection stops working and you paste a new token, so choose a period you are comfortable renewing. Leave the ticked scopes as they are and click Generate token at the bottom of the page. Screen: https://github.com/settings/tokens/new?description=PopMCP&scopes=repo,workflow,project,gist,read:org,notifications,read:user,user:email #### 3. Copy the token while it is on screen GitHub shows the new token once, at the top of Tokens (classic). Click the copy icon next to it. The value starts with `ghp_`. Screen: https://github.com/settings/tokens #### 4. Or create a fine-grained token for chosen repositories If you want the MCP limited to particular repositories, open Fine-grained tokens and click Generate new token instead. Enter a Token name, pick the Resource owner (you or one organization) and an Expiration, set Repository access to Only select repositories and pick them. Under Permissions, give Read and write to the repository permissions the tools need, such as Contents, Issues, Pull requests, Actions and Workflows, then click Generate token and copy the `github_pat_` value. Screen: https://github.com/settings/personal-access-tokens/new #### 5. Authorize a classic token for SAML single sign-on, if your organization uses it Back on Tokens (classic), click Configure SSO next to the token and click Authorize beside each organization the MCP should reach. Skip this for personal repositories and for fine-grained tokens, which are authorized when you create them. Screen: https://github.com/settings/tokens #### 6. Paste the token into PopMCP In PopMCP, paste the token into Personal access token and connect. PopMCP checks it against GitHub straight away and labels the connection with your GitHub login. ### Fields PopMCP asks for - Personal access token (personalAccessToken) [required]: Open the link below: it takes you to GitHub's token page with the right permissions already ticked. Press Generate token, copy it and paste it here. Fine-grained tokens (github_pat_) work too if you want to limit access to chosen repositories. Stored encrypted. ### Verify PopMCP marks the GitHub connection Verified and labels it with your login, such as @octo-dana. Asking the AI to list your repositories, or the open pull requests in one of them, returns real results. ### Troubleshooting #### "GitHub rejected this token. It may be mistyped, expired or revoked." Cause: The token was copied incompletely, has passed its expiry date, or was deleted on GitHub. Fix: Generate a new token from the link on the PopMCP form and paste the whole value, with no `Bearer` prefix or quotes. #### "That does not look like a GitHub token." Cause: Something other than a personal access token was pasted, such as an OAuth app's client secret, an SSH key or a GitLab token. Fix: Paste a classic token (`ghp_`) or a fine-grained token (`github_pat_`) from **Developer settings**, **Personal access tokens**. #### Your organization's repositories return 403 or 404 while personal ones work Cause: The organization enforces SAML single sign-on and the classic token is not authorized for it, or the organization blocks classic tokens. GitHub answers 404 for anything a token cannot see. Fix: On **Tokens (classic)**, click **Configure SSO** and **Authorize** the organization. If the organization blocks classic tokens, create a fine-grained token with that organization as **Resource owner**. #### A fine-grained token only reads public data in an organization Cause: The organization requires approval for fine-grained tokens, and the token is still pending. Fix: Ask an organization owner to approve the request under the organization's personal access token settings. Until then the token can only read public resources. #### Check runs, packages or your personal projects fail with a fine-grained token Cause: GitHub does not let fine-grained tokens call the Checks API, read Packages or reach user-owned Projects. Fix: Connect a classic token instead if you need checks_list_for_ref, the packages_ tools or projects owned by your user account. #### Editing a file under .github/workflows is refused Cause: The token lacks the workflow scope (classic) or the Workflows permission (fine-grained). Fix: Create a new token with workflow ticked, or add the Workflows permission to the fine-grained token, and reconnect. #### "GitHub is rate limiting this token right now." Cause: The token used up its 5,000 requests for the hour, or hit a secondary limit such as too many writes in a minute. Fix: Wait for the hourly window to reset (GitHub reports it in the `x-ratelimit-reset` header), then ask for fewer or smaller pages. --- ## GitLab URL: https://www.docs.popmcp.com/docs/integrations/gitlab/ Summary: Connect GitLab to read and edit code, review and merge merge requests, manage issues and epics, and run and debug CI/CD pipelines. You paste a GitLab personal access token with the api scope (it starts with glpat- on gitlab.com), plus your GitLab's address only if you run GitLab Self-Managed or Dedicated. - Auth: API credentials - Setup time: 3 min - API base URL: https://gitlab.com/api/v4 - Credentials screen: https://gitlab.com/-/user_settings/personal_access_tokens - Provider docs: https://gitlab.com/-/user_settings/personal_access_tokens?name=PopMCP&description=Lets+your+AI+assistant+work+with+GitLab+through+PopMCP&scopes=api ### Before you begin - A GitLab account on gitlab.com, or on your own GitLab Self-Managed or Dedicated instance - Membership of the groups and projects the MCP should reach, with the role the work needs (for example Developer to push or run pipelines, Maintainer to merge into a protected branch) - Personal access tokens allowed for your account. An administrator can switch them off, and a group or instance can require fine-grained tokens instead of legacy ones - For Self-Managed: an https address that is reachable from the internet, because PopMCP's servers call it ### Get your credentials #### 1. Open GitLab's token page from the PopMCP form Sign in to gitlab.com, then click the link under Personal access token on the PopMCP connect form. It opens a legacy personal access token form with the name `PopMCP`, a description and the `api` scope already filled in. To get there by hand: select your avatar, Edit profile, then Access > Personal access tokens, and choose Legacy token from the Generate token dropdown. Screen: https://gitlab.com/-/user_settings/personal_access_tokens?name=PopMCP&description=Lets+your+AI+assistant+work+with+GitLab+through+PopMCP&scopes=api #### 2. Pick an expiry date and check the scope Set Expiration date. GitLab caps it at 365 days from today unless your administrator changed the limit, and the connection stops working on that date. Under the scopes, keep `api` ticked so every tool can work. For an AI that should only read, untick `api` and tick `read_api` instead. Screen: https://gitlab.com/-/user_settings/personal_access_tokens?name=PopMCP&description=Lets+your+AI+assistant+work+with+GitLab+through+PopMCP&scopes=api #### 3. Generate the token and copy it Click Generate token. GitLab shows the new token once, at the top of the page. Copy it with the copy button; on gitlab.com it starts with `glpat-`. Screen: https://gitlab.com/-/user_settings/personal_access_tokens #### 4. Or create a fine-grained token for chosen groups and projects GitLab 18.10 and later also offer fine-grained tokens (generally available since 19.2). From the Generate token dropdown choose Fine-grained token, fill in Name, Description and Expiration date, pick the groups and projects under Group and project access, then under Add resource permissions select each resource the AI should use and its permission. Click Generate token and copy it. Tools outside what you grant are refused by GitLab, and GitLab is still extending fine-grained support for GraphQL, so the work item and GraphQL tools may not work with one. Screen: https://gitlab.com/-/user_settings/personal_access_tokens #### 5. On GitLab Self-Managed or Dedicated, create the token on your own GitLab The form's link always opens gitlab.com. For your own instance, open your GitLab's address followed by `/-/user_settings/personal_access_tokens` and create the token there the same way. A token made on gitlab.com is not accepted by another GitLab, and the reverse. Screen: https://gitlab.example.com/-/user_settings/personal_access_tokens?name=PopMCP&scopes=api (replace gitlab.example.com with your GitLab domain) #### 6. Paste the token into PopMCP In PopMCP, paste the token into Personal access token. For Self-Managed or Dedicated, also enter your instance in GitLab address (self-managed only), for example `https://gitlab.example.com`; leave it empty for gitlab.com. Connect, and PopMCP checks the token against that GitLab straight away. ### Fields PopMCP asks for - Personal access token (personalAccessToken) [required]: Open the link below: GitLab's token page opens with the name and the api scope filled in. Pick an expiry date (GitLab allows up to a year), press Generate token, copy it and paste it here. On GitLab Self-Managed or Dedicated, create it on your own GitLab instead: its token page is your GitLab's address followed by /-/user_settings/personal_access_tokens. Project and group access tokens work too. Stored encrypted. - GitLab address (self-managed only) (gitlabUrl): Leave empty for gitlab.com. For GitLab Self-Managed or Dedicated, enter its address and paste a personal access token created there: its token page is that address followed by /-/user_settings/personal_access_tokens (the link above opens gitlab.com's). ### Verify PopMCP marks the GitLab connection Verified as your username, such as @dana.reyes (followed by on gitlab.example.com for your own instance), and notes the date the token expires. Asking the AI to list your projects or your open merge requests returns real results from that GitLab. ### Troubleshooting #### "GitLab (gitlab.com) did not accept this token. It may have expired or been revoked, or it was created on a different GitLab." Cause: The token expired, was revoked, was copied incompletely, or was created on gitlab.com while the connection points at your own instance (or the other way round). Fix: Create a new token on the same GitLab the connection points at, and enter that GitLab's address in **GitLab address (self-managed only)** if it is not gitlab.com. #### "This token cannot read the API. Create a token with the api scope (or read_api for read-only use)" Cause: The token was created with only read_user, read_repository or another scope that does not include the API. Fix: Create a new token from the form's link, which ticks api, or tick read_api for read-only use. #### "That is a deploy token, which only works for git and the registries." Cause: A deploy, runner, pipeline trigger, feed or CI/CD job token was pasted. None of them can use the API. Fix: Paste a personal access token (or a project or group access token) from **Edit profile**, **Access**, **Personal access tokens**. #### "No GitLab answered at gitlab.example.com. Check the address" Cause: The address is mistyped, the instance only serves plain http, or it sits behind a firewall or VPN that PopMCP's servers cannot get through. Fix: Enter the https address you open GitLab at, such as `https://gitlab.example.com`, and make sure it is reachable from the internet. #### Reads work but writes fail with insufficient_scope Cause: The token has read_api, not api. Fix: Create a token with the api scope and reconnect. PopMCP's own read-only setting still decides whether write tools run. #### A merge, push or pipeline run fails with 403 Cause: Your GitLab role in that project does not allow the action, for example Developer to push or run pipelines, or Maintainer to merge into a protected branch. Fix: Ask a project Maintainer or Owner for the role the work needs. The token can never do more than your account. #### You cannot create a legacy token Cause: Your instance or top-level group requires fine-grained personal access tokens (the Require fine-grained personal access tokens after a specific date setting), or an administrator disabled personal access tokens. Fix: Create a fine-grained token with permissions on the groups and projects you need, or ask your administrator which kind of token is allowed. --- ## Gmail URL: https://www.docs.popmcp.com/docs/integrations/gmail/ Summary: Connect Gmail to search and read email, send replies and forwards, draft messages, manage labels and filters, and keep the inbox triaged. You end up pasting a Google OAuth Client ID and Client Secret from a Web application client you register in the Google Cloud console, with the three Gmail scopes added on its Data access page. - Auth: OAuth authorization - Setup time: 12 min - API base URL: https://gmail.googleapis.com/gmail/v1 - Credentials screen: https://console.cloud.google.com/auth/clients - Provider docs: https://developers.google.com/workspace/gmail/api/guides ### Approval required before this works Every useful Gmail scope is classified restricted (mail.google.com, gmail.readonly, gmail.modify, gmail.compose, gmail.insert, gmail.metadata, gmail.settings.basic, gmail.settings.sharing), so Google must verify your OAuth client before it can leave Testing. Because a connector moves that data through a third-party server, Google additionally requires an annual CASA security assessment by a Google-empanelled assessor. - Typical wait: Google says restricted scope verification 'can potentially take several weeks to complete'. Brand verification alone is 2-3 business days. Recertification is required at least every 12 months from your assessor's Letter of Assessment approval date. - Cost: Google charges nothing for verification itself and publishes no price for the assessment. The CASA assessment is paid to a third-party App Defense Alliance assessor who sets its own fee; third-party writeups commonly report Tier 2 quotes in the mid-hundreds to low-thousands of USD per year, with Tier 3 and large-vendor engagements higher. Treat any specific figure as a quote to confirm with an assessor, not a list price. - Blocked until approved: Until verification lands the OAuth client stays in Testing publishing status: only hand-added test users can consent (the Cloud console caps this at 100), every one of them sees the unverified-app warning screen, and Google issues refresh tokens that expire in 7 days for External-type clients, so the connector dies with invalid_grant roughly weekly. You cannot onboard arbitrary end users at all. - Works meanwhile: Everything works fully for the hand-added test users, provided they re-consent weekly. Documented paths that skip verification entirely: an Internal-type app in a Google Workspace or Cloud Identity organisation, where restricted and sensitive scopes need no Google review (a service account with domain-wide delegation covers server-to-server Workspace mailbox access the same way); an app used only by yourself or a small group of people you know personally, which stays unverified and keeps the warning screen; and gmail.send alone, which is only a sensitive scope, so it needs standard verification (Google states 3-5 business days) and no CASA. ### Before you begin - A Google account, plus a Google Cloud project you own (free, no billing card needed) - Owner or Editor role on that Cloud project. Viewer cannot create OAuth clients - The PopMCP callback URL from the Gmail connect form. Copy it before you start - Willingness to publish the app. An External app left in Testing gets a refresh token Google expires after 7 days, and all three Gmail scopes here are restricted - Personal Gmail accounts can only use the External audience. Internal requires a Google Workspace organisation ### Get your credentials #### 1. Create a Cloud project and enable the Gmail API Pick or create a project in the Cloud console, then go to APIs & Services → Library and search for Gmail API. Open its card and click Enable. Screen: https://console.cloud.google.com/flows/enableapi?apiid=gmail.googleapis.com #### 2. Fill in the consent screen under Google Auth Platform Open Google Auth Platform → Branding and enter App name, User support email and a developer contact address, then click Save. Choose External as the user type unless everyone using this connector sits inside your Workspace organisation. Screen: https://console.cloud.google.com/auth/branding #### 3. Add the three Gmail scopes on Data access Go to Data access and click Add or remove scopes. Paste `https://mail.google.com/`, `https://www.googleapis.com/auth/gmail.settings.basic` and `https://www.googleapis.com/auth/gmail.settings.sharing` into the Manually add scopes box, click Add to table, then Update and Save. Screen: https://console.cloud.google.com/auth/scopes #### 4. Publish the app on the Audience page Open Audience and check Publishing status. If it reads Testing, click Publish app and confirm. Screen: https://console.cloud.google.com/auth/audience #### 5. Create a Web application OAuth client Click Clients → Create client and set Application type to Web application. Under Authorized redirect URIs click Add URI, paste the callback URL from PopMCP's Gmail connect form exactly as shown, then click Create. Screen: https://console.cloud.google.com/auth/clients/create #### 6. Copy the client ID and secret into PopMCP Copy Client ID and Client secret from the OAuth client created dialog into PopMCP's OAuth Client ID and OAuth Client Secret fields. If the dialog is already gone, open the client and click Add secret. ### Fields PopMCP asks for - OAuth Client ID (clientId) [required]: Google Cloud Console → Google Auth Platform → Clients → Create client → Web application, with the callback URL above under Authorized redirect URIs. Enable the Gmail API on the same project first (APIs & Services → Library → Gmail API → Enable), or the Gmail permissions won't be offered. - OAuth Client Secret (clientSecret) [required]: Shown once, in the popup right after you create the client. Google hashes it and never shows it again; if you closed that popup, open the client and add a new secret. Stored encrypted here and used server-side only. TWO THINGS TO CHECK FIRST: (1) In Google Auth Platform → Data access, add all three Gmail scopes — https://mail.google.com/, gmail.settings.basic and gmail.settings.sharing. (2) In Google Auth Platform → Audience, if the status says "Testing", click "Publish app". Testing-mode apps get a refresh token Google expires after exactly 7 days, so the connection would work for a week and then stop. Publishing needs no Google review; it only adds a one-time "Google hasn't verified this app" screen where you click Advanced and continue. ### Callback URL to register https://app.popmcp.com/api/providers/google/callback ### Scopes requested - https://mail.google.com/ - https://www.googleapis.com/auth/gmail.settings.basic - https://www.googleapis.com/auth/gmail.settings.sharing ### Verify In PopMCP, click Connect, choose the Google account, pass the "Google hasn't verified this app" screen via Advanced → Go to (app), and tick all requested Gmail permissions. The connector shows Connected and a message-search tool returns real threads from the inbox. ### Troubleshooting #### Error 400: redirect_uri_mismatch Cause: The Authorized redirect URI does not byte-for-byte match the callback URL PopMCP uses. Fix: Re-copy the callback URL from the PopMCP connect form into Clients → your client → Authorized redirect URIs and save. Allow a couple of minutes to propagate. #### invalid_grant after about a week Cause: The app is still in Testing, so Google expires the refresh token seven days after consent. Fix: Go to Google Auth Platform → Audience → Publish app, then reconnect in PopMCP. #### The consent screen never asks for the settings permissions Cause: gmail.settings.basic and gmail.settings.sharing were not added on the Data access page. Fix: Add both scopes under Data access → Add or remove scopes → Manually add scopes, click Update and Save, then disconnect and reconnect so consent is re-requested. #### Scopes do not appear in the picker on Data access Cause: Only scopes belonging to enabled APIs are listed, and the Gmail API is off on this project. Fix: Enable Gmail API under APIs & Services → Library, then reopen Data access. #### 429 or 403 rateLimitExceeded during a large sync Cause: The ceiling of 6,000 quota units per minute per user per project was hit. A single messages.send costs 100 units, so bulk work burns through it quickly. Fix: Let the connector back off and retry. Spread bulk operations out rather than requesting a full mailbox scan at once. --- ## GoHighLevel URL: https://www.docs.popmcp.com/docs/integrations/go-high-level/ Summary: Connect GoHighLevel to manage contacts, conversations, pipelines, calendars, invoices, and marketing for your sub-account. You end up pasting two things into PopMCP: a Private Integration Token (a one-time-visible string starting with pit-) and the Location ID of the sub-account it should control. - Auth: API credentials - Setup time: 6 min - API base URL: https://services.leadconnectorhq.com - Credentials screen: https://app.gohighlevel.com/ - Provider docs: https://marketplace.gohighlevel.com/docs/ ### Before you begin - A HighLevel (GoHighLevel) sub-account you can open - Admin user on that sub-account, or agency access to it - Private Integrations visible under Settings. On older accounts you may have to switch it on under Settings -> Labs first - A free slot for a new token. Each location holds at most 5 Private Integration Tokens ### Get your credentials #### 1. Open the sub-account and copy its Location ID Switch into the sub-account PopMCP should control and open Settings -> Business Profile. Copy the `/location//` segment out of the address bar. Screen: https://app.gohighlevel.com/ #### 2. Go to Settings -> Private Integrations In the sub-account left nav click Settings, then Private Integrations in the settings list. If the item is missing, switch it on under Settings -> Labs and reload. Screen: https://app.gohighlevel.com/ #### 3. Name the integration and tick the scopes Click Create new Integration, name it `PopMCP`, and write a one-line description. Tick View/Edit Contacts, View/Edit Conversations, View/Edit Opportunities, View Calendars and Edit Calendar Events, plus the invoice scopes if you bill through HighLevel. #### 4. Copy the token before you close the dialog Click Copy token on the `pit-...` value in the confirmation dialog. If you lose it, delete the integration and create a new one. #### 5. Paste the token and Location ID into PopMCP Put the `pit-...` string in Private Integration Token and the sub-account id in Location ID (sub-account), then click Connect. ### Fields PopMCP asks for - Private Integration Token (token) [required]: HighLevel → Settings → Private Integrations → Create new integration → select scopes → copy the token (shown once). Sent as Authorization: Bearer. Stored encrypted, used server-side only. Grant every scope you want the AI to use (e.g. contacts, conversations, opportunities, calendars, invoices, payments). A call to an ungranted scope is rejected. - Location ID (sub-account) (locationId) [required]: The sub-account this connection controls. Find it in the sub-account under Settings → Business Info, or copy it from the app URL (the /location// segment). Paste just the id, or a URL that contains it. We'll pull it out. Every call is scoped to this sub-account automatically. ### Verify PopMCP shows the connector as Connected and names the sub-account (for example "Northwind Dental") next to it. Ask the assistant to list a few recent contacts. If that returns rows, both the token and the Location ID are right. ### Troubleshooting #### 401 Unauthorized on every call Cause: The token was copied with trailing whitespace, was rotated or deleted, or you pasted an agency-level token while asking for sub-account data. Fix: Create a fresh Private Integration inside the sub-account itself and paste the new pit- token. #### 403 Forbidden on some tools only Cause: That endpoint's scope was not ticked when the integration was created. A call to an ungranted scope is rejected outright. Fix: Open Settings -> Private Integrations, use the row menu to Edit the integration, add the missing scope, then reconnect in PopMCP. #### Connection saves but returns data for the wrong business Cause: The Location ID came from a different sub-account, or from an agency-level URL. Fix: Switch into the correct sub-account, re-copy the /location// segment from the URL, and update the Location ID field. #### Private Integrations is missing from the Settings list Cause: The feature has not been switched on for the account. Fix: Go to Settings -> Labs, enable Private Integrations, reload, and the menu item appears. #### "Cannot create more integrations" Cause: The location already holds the maximum of 5 Private Integration Tokens. Fix: Delete an unused integration, then create the PopMCP one. #### The token stops working after a scheduled rotation Cause: Someone used "Rotate and expire this token later" on the row menu, which retires the old value. Fix: Copy the new token from the rotation dialog and paste it into PopMCP before the old one expires. --- ## Google Ads URL: https://www.docs.popmcp.com/docs/integrations/google-ads/ Summary: Connect Google Ads to manage campaigns, ad groups, ads, keywords, and budgets, and track conversions and performance. You end up with three values: an OAuth Client ID and Client Secret from a Google Cloud project, plus a 22-character developer token from your Google Ads manager account's API Center. - Auth: OAuth authorization - Setup time: 20 min, plus a few business days if your developer token still needs review - API base URL: https://googleads.googleapis.com - Credentials screen: https://console.cloud.google.com/auth/clients - Provider docs: https://developers.google.com/google-ads/api/docs/start ### Approval required before this works A new developer token is now usually auto-granted Explorer Access, which already reads and writes real advertising accounts but is capped at 2,880 operations per day and blocks planning, account-creation, user-management and billing services. Lifting those limits requires the Google Ads API team to approve a Basic Access application on your manager (MCC) account, and Google still falls back to production-blocked Test Account Access when it cannot review a signup automatically. - Typical wait: Google states the Basic Access review typically takes 5 business days, and Standard Access roughly 10 business days. The developer token policy page commits to nothing firmer than 'the developer token review process can take some time to complete', and applicants commonly report waits longer than the stated 5 days. - Cost: Free. Google charges nothing for a developer token or for either access-level review. - Blocked until approved: On Explorer Access, production data is readable but you are hard-capped at 2,880 operations/day against real accounts and these services return errors: CustomerService.CreateCustomerClient (account creation), CustomerUserAccessService and CustomerUserAccessInvitationService (user management), KeywordPlanService, KeywordPlanIdeaService, AudienceInsightsService and ReachPlanService (all keyword and reach planning), and PaymentsAccountService, BillingSetupService, AccountBudgetProposalService and InvoiceService (billing). So keyword research, forecasting and invoice pulls fail outright before approval. If Google assigns Test Account Access instead, every request against a production account fails and no real campaign, spend or conversion data is readable at all. - Works meanwhile: On Explorer Access: full OAuth, GAQL reporting, campaign and ad-group mutates against live accounts, within the 2,880 ops/day ceiling. On Test Account Access: complete end-to-end development against test accounts created under a test manager account at 15,000 ops/day, with fabricated data and no serving. ### Before you begin - A Google Ads manager (MCC) account. The API Center only exists there, and it cannot be a test manager account. - Owner or Editor on a Google Cloud project. A free project is fine, and the Google Ads API carries no Cloud charge. - A live company website URL and a monitored contact email, both asked for on the API Access form. - A developer token above Test Account access. New tokens only reach Google Ads test accounts until you apply for Explorer, Basic or Standard. ### Get your credentials #### 1. Enable the Google Ads API on your Cloud project Pick or create a project in the project chip at the top, then open APIs & Services → Library. Search for Google Ads API and click Enable. Screen: https://console.cloud.google.com/apis/library/googleads.googleapis.com #### 2. Publish the OAuth app Open Google Auth Platform → Branding and fill in App name and User support email. Then open Audience, set User type to External, and click Publish app. Screen: https://console.cloud.google.com/auth/audience #### 3. Create a Web application OAuth client Go to Google Auth Platform → Clients and click Create client, then set Application type to Web application and paste PopMCP's callback URL into Authorized redirect URIs. Click Create, then copy the Client ID and Client secret from the dialog. Screen: https://console.cloud.google.com/auth/clients #### 4. Apply for a developer token in the API Center Sign in to your Google Ads manager (MCC) account and open Admin → API Center, or go straight to ads.google.com/aw/apicenter. Complete the API Access form, accept the terms, and submit it. Screen: https://ads.google.com/aw/apicenter #### 5. Paste all three values into PopMCP Copy the 22-character Developer token from the API Center. In PopMCP fill OAuth Client ID, OAuth Client Secret and Developer Token, save, then run the Google Ads sign-in. Screen: https://ads.google.com/aw/apicenter ### Fields PopMCP asks for - OAuth Client ID (clientId) [required]: From your Google Cloud project → APIs & Services → Credentials → OAuth client. - OAuth Client Secret (clientSecret) [required]: Stored encrypted; used server-side only and never shown again. - Developer Token (developerToken) [required]: From your Google Ads Manager (MCC) account → Tools & Settings → API Center. Required on every Google Ads API call. ### Callback URL to register https://app.popmcp.com/api/providers/google/callback ### Scopes requested - https://www.googleapis.com/auth/adwords ### Verify The Google Ads connector in PopMCP flips to Connected after the Google sign-in, and asking for your accessible customer accounts returns your real account names and 10-digit customer IDs. ### Troubleshooting #### DEVELOPER_TOKEN_NOT_APPROVED Cause: Your token is still at Test Account access, so it can only call Google Ads test accounts. Fix: Apply for a higher access level in the API Center. Explorer reaches production accounts at a low daily cap, and Basic or Standard requires review. Point the connection at a test account in the meantime. #### accessNotConfigured, Google Ads API has not been used in project ... Cause: The Google Ads API is not enabled on the Cloud project that owns the OAuth client. Fix: Enable Google Ads API in APIs & Services → Library on that exact project, then retry after a minute. #### redirect_uri_mismatch on the consent screen Cause: The callback URL on the OAuth client does not match the one PopMCP sends, often by a trailing slash. Fix: Copy PopMCP's callback URL from the connector page and paste it into Authorized redirect URIs. Do not retype it. #### The connection works for a week, then invalid_grant Cause: The Cloud project's OAuth app is still in Testing, and Google expires those refresh tokens after 7 days. Fix: Open Google Auth Platform → Audience, click Publish app, then reconnect once to get a durable refresh token. #### Google shows a "Google hasn't verified this app" warning Cause: The app is published but not verified, which is normal for an internal integration using only the adwords scope. Fix: Click Advanced, then continue. The warning appears once per user. #### There is no API Center in my Google Ads account Cause: You are signed in to a regular Google Ads account, or to a test manager account. Fix: Create or switch to a real manager (MCC) account at ads.google.com and open Admin → API Center there. One token then covers the accounts under it. #### USER_PERMISSION_DENIED on a customer account Cause: The Google account you signed in with has no access to that Google Ads customer, or the call is not going through the manager account. Fix: Grant that Google account access in Google Ads → Admin → Access and security, then reconnect. --- ## Google Analytics 4 URL: https://www.docs.popmcp.com/docs/integrations/google-analytics/ Summary: Connect Google Analytics 4 to run analytics reports, view realtime data, explore audiences, and manage properties. You end up with two values from one Google Cloud OAuth client, the Client ID (…apps.googleusercontent.com) and the Client secret (GOCSPX-…), which you paste into PopMCP's OAuth Client ID and OAuth Client Secret fields. - Auth: OAuth authorization - Setup time: 12 min - API base URL: https://analyticsdata.googleapis.com/v1beta - Credentials screen: https://console.cloud.google.com/auth/clients - Provider docs: https://developers.google.com/analytics/devguides/reporting/data/v1 ### Before you begin - A Google account with at least Viewer access on the GA4 property you want to read - A Google Cloud project you can edit. The free tier is fine, because the Analytics APIs cost nothing - The PopMCP callback URL, copied from the connector screen before you start - Editor or Owner on the Cloud project, so you can enable APIs and create OAuth clients ### Get your credentials #### 1. Pick or create a Google Cloud project Open the Google Cloud console and click the project picker in the top bar. Select an existing project, or click New project and name it `popmcp-analytics`. Screen: https://console.cloud.google.com/projectcreate #### 2. Enable both Analytics APIs Go to APIs & Services → Library, search for Google Analytics Data API and click Enable. Return to the library and do the same for the Google Analytics Admin API. Screen: https://console.cloud.google.com/apis/library #### 3. Fill in Branding, then publish the app Open Google Auth Platform → Branding and enter the App name and User support email. Open Audience, set User type to External, and click Publish app. Screen: https://console.cloud.google.com/auth/audience #### 4. Create a Web application OAuth client Go to Google Auth Platform → Clients and click Create client. Set Application type to Web application, name it `PopMCP`, then click Add URI under Authorized redirect URIs and paste the callback URL copied from PopMCP. Screen: https://console.cloud.google.com/auth/clients/create #### 5. Copy the Client ID and secret into PopMCP Copy both values from the OAuth client created dialog before you close it. Paste them into PopMCP's OAuth Client ID and OAuth Client Secret fields, click Connect, and pick the Google account with access to your GA4 property. Screen: https://console.cloud.google.com/auth/clients ### Fields PopMCP asks for - OAuth Client ID (clientId) [required]: From your Google Cloud project → APIs & Services → Credentials → OAuth client. Make sure the Google Analytics Admin API and Analytics Data API are enabled for that project first (APIs & Services → Library). - OAuth Client Secret (clientSecret) [required]: Stored encrypted; used server-side only and never shown again. ### Callback URL to register https://app.popmcp.com/api/providers/google/callback ### Scopes requested - https://www.googleapis.com/auth/analytics.readonly - https://www.googleapis.com/auth/analytics.edit ### Verify PopMCP lists your GA4 properties by name after the consent screen, and asking for last week's sessions by channel returns numbers that match the Google Analytics UI. ### Troubleshooting #### Error 400: redirect_uri_mismatch Cause: The Authorized redirect URI on the OAuth client is not byte-identical to the callback PopMCP sends. Fix: Copy the callback straight out of PopMCP, paste it into Google Auth Platform → Clients → your client → Authorized redirect URIs, save, and retry. Changes can take a few minutes to propagate. #### The connection works for a week, then fails with invalid_grant Cause: The OAuth app is still in Testing, so Google expires its refresh tokens after exactly 7 days. Fix: Google Auth Platform → Audience → Publish app, then reconnect once in PopMCP to mint a fresh refresh token. #### 403 accessNotConfigured or SERVICE_DISABLED Cause: The Analytics Data API or the Analytics Admin API was never enabled on the project that owns this client. Fix: APIs & Services → Library, enable both Google Analytics Data API and Google Analytics Admin API on the same project, then retry. #### Connected, but no properties are listed Cause: The Google account you consented with has no GA4 access, or you picked the wrong account at the chooser. Fix: Give that account at least Viewer on the property in GA4 Admin → Property access management, then disconnect and reconnect. #### 429 RESOURCE_EXHAUSTED on big date ranges Cause: Wide reports burn core tokens fast on standard properties. Fix: Narrow the date range or the number of dimensions, or spread requests out. The hourly bucket refills every hour. --- ## Google BigQuery URL: https://www.docs.popmcp.com/docs/integrations/google-bigquery/ Summary: Connect Google BigQuery to explore datasets and tables, run SQL and check its cost first, load and change data, and manage scheduled queries. You end up pasting the OAuth Client ID and Client Secret of a Web application client you create in the Google Cloud console, then picking the Google Cloud project where BigQuery queries run and are billed. - Auth: OAuth authorization - Setup time: 10 min - API base URL: https://bigquery.googleapis.com/bigquery/v2 - Credentials screen: https://console.cloud.google.com/auth/clients - Provider docs: https://cloud.google.com/bigquery/docs/reference/rest ### Before you begin - A Google account that can use BigQuery: a role that can run jobs, such as BigQuery Job User or BigQuery User, on the project queries will run in, and BigQuery Data Viewer or higher on the datasets you want read - A Google Cloud project you own for the OAuth client, with Owner or Editor so you can enable APIs and create OAuth clients - Billing on the project queries run in, or the BigQuery sandbox. The sandbox gives 1 TiB of queries a month and 10 GiB of storage, but no DML, no streaming inserts and no Data Transfer Service, so scheduled queries need billing - The PopMCP callback URL, copied from the Google BigQuery connect form before you start - Personal gmail.com accounts can only use the External audience. Internal needs a Google Workspace organisation ### Get your credentials #### 1. Check the BigQuery APIs are enabled Pick the project in the top bar and open APIs & Services → Library. Search for BigQuery API: Google turns it on automatically in new projects, so click Enable only if an older project shows it off. If the AI should work with scheduled queries and transfers, open BigQuery Data Transfer API and click Enable as well. Screen: https://console.cloud.google.com/apis/library/bigquerydatatransfer.googleapis.com #### 2. Fill in the Google Auth Platform branding Open Google Auth Platform → Branding. If it says Google Auth platform not configured yet, click Get Started. Enter an App name and a User support email, choose External under Audience unless every user sits in your Workspace organisation, add an Email address under Contact Information, agree to the user data policy, then click Continue and Create. Screen: https://console.cloud.google.com/auth/branding #### 3. Publish the app Open Google Auth Platform → Audience. If Publishing status reads Testing, click Publish app and confirm. Publishing needs no review from Google; it only means the consent screen will show a one-time unverified-app warning. Screen: https://console.cloud.google.com/auth/audience #### 4. Create a Web application OAuth client Open Google Auth Platform → Clients and click Create client. Set Application type to Web application, name it `PopMCP BigQuery`, click Add URI under Authorized redirect URIs, paste the callback URL from the PopMCP connect form exactly as shown, and click Create. If you already made a client here for another PopMCP Google connector, the same one works. Screen: https://console.cloud.google.com/auth/clients/create #### 5. Copy the Client ID and Client Secret Copy the Client ID and Client secret from the OAuth client created dialog before you close it. If the dialog is already gone, open the client from Clients and click Add secret to mint a new one. Screen: https://console.cloud.google.com/auth/clients #### 6. Paste the values into PopMCP, authorize, and pick the project On PopMCP's Google BigQuery connect form, paste the values into OAuth Client ID and OAuth Client Secret. Under Extra permissions, tick Query Google Sheets and Drive tables only if a table reads from a Sheet or Drive file, and Create and edit scheduled queries and transfers only if the AI should create or change them. Click Authorize with Google, click Advanced on the Google hasn't verified this app screen and continue, leave every box ticked, then choose the project to run queries in. ### Fields PopMCP asks for - OAuth Client ID (clientId) [required]: Google Cloud Console → Google Auth Platform → Clients → Create client → Web application, with the callback URL above under Authorized redirect URIs. If you already made a client for another Google connector here, the same one works. The BigQuery API is on by default in new projects. To manage scheduled queries, also enable the BigQuery Data Transfer API (APIs & Services → Library). - OAuth Client Secret (clientSecret) [required]: Shown once, in the popup right after you create the client. If you closed that popup, open the client and add a new secret. Stored encrypted here, used server-side only. IMPORTANT: in Google Auth Platform → Audience, if the status says "Testing", click "Publish app" first. Testing-mode apps get a refresh token that Google expires after exactly 7 days, so the connection would work for a week and then stop. Publishing does not require Google's review. It only adds a one-time "Google hasn't verified this app" screen, where you click Advanced and continue. - Extra permissions (extraAccess): Leave both off unless you need them. Without them the connection asks Google for BigQuery access only. ### Callback URL to register https://app.popmcp.com/api/providers/google/callback ### Scopes requested - https://www.googleapis.com/auth/bigquery ### Verify After consent PopMCP lists the projects the Google account holds a role on. Pick one and the connector shows Connected with the project's name and id. PopMCP checks it by listing the project's datasets and dry-running SELECT 1, so nothing is billed. Ask the AI to list your datasets and their names come back. ### Troubleshooting #### Error 400: redirect_uri_mismatch Cause: The Authorized redirect URI on the client does not exactly match the callback URL PopMCP sends, usually a trailing slash or http instead of https. Fix: Open the client under Google Auth Platform → Clients and paste the callback URL straight from the PopMCP connect form. Changes can take a few minutes to take effect. #### The connection works for about a week, then stops with invalid_grant Cause: The app is still in Testing on the Audience page, so Google expired the refresh token 7 days after consent. PopMCP reports it as Google's 7 day Testing-mode expiry. Fix: Go to Google Auth Platform → Audience, click Publish app, then reconnect Google BigQuery in PopMCP. #### Access Denied: Project PROJECT_ID: User does not have bigquery.jobs.create permission in project PROJECT_ID Cause: The Google account can see data but has no role that runs jobs in the project you picked, so every query fails. Fix: Grant the account BigQuery Job User (or BigQuery User) on that project in IAM & Admin → IAM, or reconnect and pick a project where it can run jobs. Tables elsewhere stay readable by their full project.dataset.table name. #### The project you want is missing from the picker Cause: The picker only lists projects where the account holds a project-level role. A dataset shared with you directly does not make its project appear. Fix: Pick a project you can run jobs in, then query the shared tables by their full project.dataset.table name. #### Access Denied: BigQuery BigQuery: Permission denied while getting Drive credentials Cause: The table reads from a Google Sheet or Drive file, and the connection was made without the Drive permission, or the Google account cannot open that file. Fix: Disconnect, then connect again with Query Google Sheets and Drive tables ticked and both boxes left ticked on the consent screen. Make sure the file is shared with that Google account. #### Query exceeded limit for bytes billed: 107374182400 Cause: PopMCP sends a 100 GiB maximumBytesBilled with every query by default, and BigQuery refused this one before running it, at no charge. Fix: Run dry_run_query to see the size, select fewer columns or filter on a partition, or pass a higher maximumBytesBilled when you really mean to scan that much. #### Creating a scheduled query fails with "needs the Google Cloud permission, which this connection was not given" Cause: Google only accepts its broad Google Cloud permission for creating or editing transfer configs, and Create and edit scheduled queries and transfers was not ticked when you connected. Fix: Disconnect Google BigQuery in PopMCP and connect again with that option ticked. Check the BigQuery Data Transfer API is enabled and the project has billing. --- ## Google Business Profile URL: https://www.docs.popmcp.com/docs/integrations/google-business-profile/ Summary: Connect Google Business Profile to read and reply to reviews, update hours and photos, publish offers and events, and track calls and directions. You end up pasting an OAuth Client ID and Client Secret from a Google Cloud project that has been approved for Business Profile API access and has the Business Profile APIs enabled. - Auth: OAuth authorization - Setup time: 20 min setup, then days waiting on Google's approval - API base URL: https://mybusinessaccountmanagement.googleapis.com/v1 - Credentials screen: https://console.cloud.google.com/auth/clients - Provider docs: https://developers.google.com/my-business/content/overview ### Approval required before this works Google manually reviews a Business Profile API access request tied to your specific Google Cloud project, and until it is approved the APIs are not even selectable in the Cloud console for your account and the project's quota stays at 0 queries per minute. - Typical wait: Google does not publish a review time; the docs only say a follow-up email is sent after review. Developers commonly report a few days to a few weeks, with a resubmission after rejection adding another cycle. - Cost: Free - Blocked until approved: All Business Profile API use. Google states the API is 'only visible in the Google Cloud console to users who submit and receive approval for their Google Account through the access request form', so before approval you cannot enable the seven Business Profile APIs on the project at all. Once enabled, an unapproved project sits at 0 QPM, so accounts.list, locations, reviews, posts and performance calls fail on quota even with a valid access token. - Works meanwhile: Limited. You can create the Google Cloud project, configure the OAuth consent screen and get the profile itself in order (verified, 60+ days old, website live), but you cannot enable the APIs or make any call until access is granted. Check status in Cloud Console quota: 0 QPM means still pending, 300 QPM is the approved default for the Account Management, Performance, Verifications, Lodging, Place Actions, Notifications and Business Information APIs. ### Before you begin - A Google Business Profile that has been verified and active for 60+ days, with you as owner or manager - A website representing the business listed on that profile. Google checks for it on the access form - Approved Business Profile API access. Every new Cloud project sits at 0 QPM until Google reviews the request, which takes days - A Google Cloud project where you are Owner or Editor - Willingness to click Publish app on Google Auth Platform. Testing-mode apps get refresh tokens that expire after 7 days ### Get your credentials #### 1. Request Business Profile API access and wait for approval Open the GBP API contact form and pick Application for Basic API Access, signing in as an owner or manager of the profile. Track the result under IAM & Admin -> Quotas & system limits, where 0 QPM means pending and 300 QPM means approved. Screen: https://support.google.com/business/contact/api_default #### 2. Enable the Business Profile APIs on the project Open APIs & Services -> Library, search each API by name, and click Enable on it. Enable Google My Business API, My Business Account Management API, My Business Business Information API, My Business Q&A API, My Business Place Actions API, My Business Verifications API, My Business Notifications API, My Business Lodging API and Business Profile Performance API. Screen: https://console.cloud.google.com/apis/library #### 3. Publish the app on Google Auth Platform -> Audience Fill in app name, support email and domain under Google Auth Platform -> Branding, then open Audience. If Publishing status reads Testing, click Publish app. Screen: https://console.cloud.google.com/auth/audience #### 4. Create a Web application OAuth client Open Google Auth Platform -> Clients, click Create client, set Application type to Web application, and name it `PopMCP`. Under Authorized redirect URIs paste the exact callback URL shown above the credential fields in PopMCP. Screen: https://console.cloud.google.com/auth/clients #### 5. Copy the Client ID and Client Secret from the dialog Copy Client ID and Client secret out of the OAuth client created dialog into PopMCP's OAuth Client ID and OAuth Client Secret fields. If the dialog is already closed, open the client and click Add secret. ### Fields PopMCP asks for - OAuth Client ID (clientId) [required]: Google Cloud Console → Google Auth Platform → Clients → Create client → Web application, with the callback URL above under Authorized redirect URIs. On the same project, enable the Business Profile APIs you want (APIs & Services → Library): Account Management and Business Information are the minimum; add My Business Q&A, Place Actions, Verifications, Notifications, Lodging and Business Profile Performance for the rest of the tools. They are separate APIs with SEPARATE quotas, so enabling only one is a common cause of a connection that half works. - OAuth Client Secret (clientSecret) [required]: Shown once, in the popup right after you create the client. Google hashes it and never shows it again. If you closed that popup, open the client and add a new secret. Stored encrypted here, used server-side only. TWO setup steps catch almost everyone: (1) Request Business Profile API access at https://developers.google.com/my-business/content/prereqs — every new Cloud project starts at 0 requests per minute and stays there until Google approves you, which takes days; you can check under IAM & Admin → Quotas (0 = not approved, 300 = approved). (2) In Google Auth Platform → Audience, if the status says "Testing", click "Publish app" — Testing-mode apps get a refresh token Google expires after exactly 7 days, so the connection would work for a week and then stop. Publishing needs no Google review; it only adds a one-time unverified-app screen where you click Advanced and continue. ### Callback URL to register https://app.popmcp.com/api/providers/google/callback ### Scopes requested - https://www.googleapis.com/auth/business.manage ### Verify After you paste the client ID and secret, PopMCP opens Google's consent screen. Approve it, clicking Advanced then Continue if the unverified-app warning appears, and the connector flips to Connected with your business account listed. Ask the assistant to list your locations. Real names coming back means the APIs are enabled and the quota is live. ### Troubleshooting #### 403 with "has not been used in project" or a 0-quota error Cause: The specific Business Profile API for that tool is not enabled, or Google has not approved the project yet. Fix: Enable that exact API in APIs & Services -> Library, then confirm IAM & Admin -> Quotas & system limits shows 300 rather than 0 for it. #### Connection works for a week and then breaks Cause: The OAuth app is still in Testing, so Google expires the refresh token after 7 days. Fix: Google Auth Platform -> Audience -> Publish app, then reconnect in PopMCP to mint a fresh refresh token. #### redirect_uri_mismatch on the consent screen Cause: The Authorized redirect URI on the client is not byte-for-byte the callback URL PopMCP uses. Fix: Copy the callback URL straight from the PopMCP connect form into the client's Authorized redirect URIs, with no trailing slash differences. #### Google My Business API cannot be found in the API Library Cause: That API only becomes visible to projects whose access request Google has approved. Fix: Submit the GBP API contact form and wait for the approval email before retrying. #### Reviews load but photo or post edits fail with rate errors Cause: Business Information edits are capped at 10 per minute per profile and that limit cannot be raised. Fix: Batch edits and space them out. The cap is per Business Profile, not per project. --- ## Google Calendar URL: https://www.docs.popmcp.com/docs/integrations/google-calendar/ Summary: Connect Google Calendar to see what is coming up, book and reschedule meetings, add Google Meet links, check who is free, and manage sharing. You end up pasting a Google OAuth Client ID and Client Secret from a Web application client you register in the Google Cloud console. - Auth: OAuth authorization - Setup time: 10 min - API base URL: https://www.googleapis.com/calendar/v3 - Credentials screen: https://console.cloud.google.com/auth/clients - Provider docs: https://developers.google.com/workspace/calendar/api/guides/overview ### Approval required before this works Google's Trust and Safety team must verify your OAuth app before it can request the sensitive Calendar scopes (calendar, calendar.events) from users outside your own test list or Workspace organization. - Typical wait: Google states sensitive scope verification typically takes 3-5 business days; developers regularly report several weeks when a demo video or privacy policy has to be resubmitted - Cost: Free. Calendar scopes are sensitive, not restricted, so no third-party CASA security assessment is involved. - Blocked until approved: Public distribution only. Until verification passes, an external OAuth app stays capped at its test-user list (100 accounts), every user sees the unverified-app warning screen, and an app left in Testing status is issued refresh tokens that expire after 7 days, so long-lived unattended syncing breaks weekly. - Works meanwhile: Everything functional. Enable the Calendar API, create OAuth credentials, add yourself and colleagues as test users, and read/write calendars and events immediately at full quota. An app configured with the 'Internal' user type inside your own Workspace organization is not put through verification at all. ### Before you begin - A Google account, plus a Google Cloud project you own (free, no billing card needed) - Owner or Editor role on that Cloud project. Viewer cannot create OAuth clients - The PopMCP callback URL from the Google Calendar connect form. Copy it before you start - The Internal audience requires a Google Workspace organisation. Personal accounts get External only ### Get your credentials #### 1. Create or select a Google Cloud project Open the Cloud console and pick a project from the picker in the top bar, or click New project. Keep that same project selected for every step below. Screen: https://console.cloud.google.com/projectcreate #### 2. Enable the Google Calendar API Go to APIs & Services → Library, search for Google Calendar API and open its card. Click Enable. Screen: https://console.cloud.google.com/flows/enableapi?apiid=calendar-json.googleapis.com #### 3. Fill in Branding, then publish the app on Audience Open Google Auth Platform → Branding and enter App name, User support email and a developer contact address, then Save. Switch to Audience and click Publish app if Publishing status shows Testing. Screen: https://console.cloud.google.com/auth/audience #### 4. Open Clients and start a new OAuth client In the Google Auth Platform nav click Clients, then click Create client. Screen: https://console.cloud.google.com/auth/clients #### 5. Register a Web application client with the callback URL Set Application type to Web application and give the client a recognisable name. Under Authorized redirect URIs click Add URI, paste the callback URL from PopMCP's Google Calendar connect form exactly as shown, then click Create. Screen: https://console.cloud.google.com/auth/clients/create #### 6. Copy the client ID and secret into PopMCP Copy Client ID and Client secret from the OAuth client created dialog into PopMCP's OAuth Client ID and OAuth Client Secret fields. If the dialog is already closed, open the client and click Add secret. ### Fields PopMCP asks for - OAuth Client ID (clientId) [required]: Google Cloud Console → Google Auth Platform → Clients → Create client → Web application, with the callback URL above under Authorized redirect URIs. Enable the Google Calendar API on the same project first (APIs & Services → Library → Google Calendar API → Enable), or the Calendar permission won't be offered. - OAuth Client Secret (clientSecret) [required]: Shown once, in the popup right after you create the client. Google hashes it and never shows it again. If you closed that popup, open the client and add a new secret. Stored encrypted here, used server-side only. IMPORTANT: in Google Auth Platform → Audience, if the status says "Testing", click "Publish app" first. Testing-mode apps get a refresh token that Google expires after exactly 7 days, so the connection would work for a week and then stop. Publishing does not require Google's review. It only adds a one-time "Google hasn't verified this app" screen, where you click Advanced and continue. ### Callback URL to register https://app.popmcp.com/api/providers/google/callback ### Scopes requested - https://www.googleapis.com/auth/calendar ### Verify In PopMCP, click Connect, choose the Google account, click through the "Google hasn't verified this app" screen with Advanced → Go to (app), and grant calendar access. The connector shows Connected and an upcoming-events tool returns real entries from your calendar. ### Troubleshooting #### Error 400: redirect_uri_mismatch Cause: The Authorized redirect URI on the client differs from the callback URL PopMCP sends. Fix: Paste the callback URL straight from the PopMCP connect form into Clients → your client → Authorized redirect URIs. Check http vs https and the trailing slash. #### Works for 7 days then invalid_grant Cause: The app was left in Testing on the Audience page, so Google expires the refresh token seven days after consent. Fix: Go to Google Auth Platform → Audience → Publish app, then reconnect in PopMCP. #### 403 accessNotConfigured Cause: The Google Calendar API is not enabled on the project that owns the OAuth client. Fix: Go to APIs & Services → Library → Google Calendar API → Enable on the same project, then retry. #### 403 rateLimitExceeded when syncing many calendars Cause: The ceiling of 600 requests per minute per user was hit. Fix: Retry with exponential backoff and narrow the time window or calendar list you ask PopMCP to sweep. #### The client secret is no longer visible in full Cause: Google hashes the secret after creation and only ever shows the last four characters. Fix: Open the client in Clients and click Add secret to mint a fresh one, then paste it into PopMCP. --- ## Google Docs URL: https://www.docs.popmcp.com/docs/integrations/google-docs/ Summary: Connect Google Docs to find, read and write documents in Markdown, edit and format text, tables and sections, fill templates, comment, and share the file. You end up pasting the OAuth Client ID and Client Secret of a Web application client you create in the Google Cloud console, on a project where both the Google Docs API and the Google Drive API are enabled. - Auth: OAuth authorization - Setup time: 10 min - API base URL: https://docs.googleapis.com/v1/documents - Credentials screen: https://console.cloud.google.com/auth/clients - Provider docs: https://developers.google.com/workspace/docs/api/how-tos/overview ### Approval required before this works The connection asks your OAuth client for the full Drive scope (drive), which Google's Docs API scope table labels Restricted. Serving users beyond your own team therefore needs Google's restricted-scope verification, plus a security assessment because the data passes through a server. - Typical wait: Google says restricted-scope verification 'can potentially take several weeks to complete', and brand verification typically takes 2-3 business days. The security assessment must be renewed at least every 12 months. - Cost: Verification itself is free. The security assessment is run under the App Defense Alliance's CASA framework by a Google-approved assessor who sets its own fee, so budget from a quote rather than a figure found online. - Blocked until approved: Wide distribution only. An unverified app shows the "Google hasn't verified this app" screen and is limited to 100 new users. Left in Testing, only listed test users can sign in and their refresh tokens expire 7 days after consent. - Works meanwhile: Everything, for your own team. Publish the app on the Audience page without submitting it for verification, click Advanced on the warning screen when you connect, and the connection keeps working past 7 days. An Internal app inside your Google Workspace organisation is not put through verification. ### Before you begin - A Google account that can open the documents you want the AI to work on, plus a Google Cloud project you own. Creating one is free and the Docs and Drive APIs need no billing account - Owner or Editor role on that Cloud project, so you can enable APIs and create OAuth clients - Both the Google Docs API and the Google Drive API enabled on the same project, because Docs alone cannot find, rename, share or export a document - The PopMCP callback URL, copied from the Google Docs connect form before you start - Personal gmail.com accounts can only use the External audience. Internal needs a Google Workspace organisation ### Get your credentials #### 1. Enable the Google Docs API and the Google Drive API Pick or create a project in the top bar, then open APIs & Services → Library. Search for Google Docs API and click Enable, then come back and do the same for Google Drive API. Screen: https://console.cloud.google.com/apis/library/docs.googleapis.com #### 2. Fill in the Google Auth Platform branding Open Google Auth Platform → Branding. If it says Google Auth platform not configured yet, click Get Started. Enter an App name and a User support email, choose External under Audience unless every user sits in your Workspace organisation, add an Email address under Contact Information, agree to the user data policy, then click Continue and Create. Screen: https://console.cloud.google.com/auth/branding #### 3. Publish the app Open Google Auth Platform → Audience. If Publishing status reads Testing, click Publish app and confirm. Publishing needs no review from Google; it only means the consent screen will show a one-time unverified-app warning. Screen: https://console.cloud.google.com/auth/audience #### 4. Create a Web application OAuth client Open Google Auth Platform → Clients and click Create client. Set Application type to Web application, name it `PopMCP Docs`, click Add URI under Authorized redirect URIs, paste the callback URL from the PopMCP connect form exactly as shown, and click Create. If you already made a client here for another PopMCP Google connector, you can reuse it. Screen: https://console.cloud.google.com/auth/clients/create #### 5. Copy the Client ID and Client Secret Copy the Client ID and Client secret from the OAuth client created dialog before you close it. If the dialog is already gone, open the client from Clients and click Add secret to mint a new one. Screen: https://console.cloud.google.com/auth/clients #### 6. Paste both values into PopMCP and authorize On PopMCP's Google Docs connect form, paste the values into OAuth Client ID and OAuth Client Secret, then click Authorize with Google. Choose the Google account whose documents the AI should reach. On the Google hasn't verified this app screen click Advanced and continue to your app, then allow the Google Drive permission. ### Fields PopMCP asks for - OAuth Client ID (clientId) [required]: Google Cloud Console → Google Auth Platform → Clients → Create client → Web application, with the callback URL above under Authorized redirect URIs. On the same project, enable BOTH the Google Docs API and the Google Drive API (APIs & Services → Library). Docs alone cannot find, rename, share or export a document, so Drive is what makes those work. - OAuth Client Secret (clientSecret) [required]: Shown once, in the popup right after you create the client. Google hashes it and never shows it again. If you closed that popup, open the client and add a new secret. Stored encrypted here, used server-side only. IMPORTANT: in Google Auth Platform → Audience, if the status says "Testing", click "Publish app" first. Testing-mode apps get a refresh token that Google expires after exactly 7 days, so the connection would work for a week and then stop. Publishing does not require Google's review. It only adds a one-time "Google hasn't verified this app" screen, where you click Advanced and continue. ### Callback URL to register https://app.popmcp.com/api/providers/google/callback ### Scopes requested - https://www.googleapis.com/auth/drive ### Verify After consent PopMCP shows Google Docs as Connected with the Google account's name and email. If the Docs API was left off, the connect stops with "The Google Docs API is not enabled in your Google Cloud project" instead. Ask the AI to list your documents and real document titles come back from your Drive. ### Troubleshooting #### Error 400: redirect_uri_mismatch Cause: The Authorized redirect URI on the client does not exactly match the callback URL PopMCP sends, usually a trailing slash or http instead of https. Fix: Open the client under Google Auth Platform → Clients and paste the callback URL straight from the PopMCP connect form. Changes can take a few minutes to take effect. #### The connection works for about a week, then stops with invalid_grant Cause: The app is still in Testing on the Audience page, so Google expired the refresh token 7 days after consent. PopMCP reports it as Google's 7 day Testing-mode expiry. Fix: Go to Google Auth Platform → Audience, click Publish app, then reconnect Google Docs in PopMCP. Reconnecting without publishing only buys another 7 days. #### Connecting fails with "The Google Docs API is not enabled in your Google Cloud project" Cause: PopMCP probes the Docs API while connecting, and Google answered SERVICE_DISABLED for the project that owns the OAuth client. Fix: Enable Google Docs API in APIs & Services → Library on that same project, wait a minute, then connect again. #### Finding, sharing or exporting a document fails with 403 accessNotConfigured, or "Google Drive API has not been used in project" Cause: Only the Docs API was enabled. Search, rename, move, share, export and template copies all go through the Drive API. Fix: Enable Google Drive API in APIs & Services → Library on the same project, then retry. #### Error 400: admin_policy_enforced on Google's sign-in screen Cause: Your Google Workspace admin restricts which third-party apps can reach Drive, and this OAuth client is not trusted. Fix: Ask the admin to allow the client ID under the Admin console's API controls (Manage third-party app access), or connect with an account outside that restriction. #### 429 Too many requests during a long run of edits Cause: A per-minute Docs quota ran out. Writes are the tightest: 60 per minute per user. Fix: Wait a minute and retry. Ask for several changes in one call (insert_markdown or batch_update_document) instead of one request per edit. #### The client secret is no longer visible in full Cause: Google hashes the secret after creation and only ever shows the last four characters. Fix: Open the client under Clients and click Add secret, then update PopMCP and reconnect. --- ## Google Drive URL: https://www.docs.popmcp.com/docs/integrations/google-drive/ Summary: Connect Google Drive to search files, read and write documents, organize folders, manage sharing, and track comments and changes. You end up pasting a Google OAuth Client ID and Client Secret from a Web application client you register in the Google Cloud console. - Auth: OAuth authorization - Setup time: 10 min - API base URL: https://www.googleapis.com/drive/v3 - Credentials screen: https://console.cloud.google.com/auth/clients - Provider docs: https://developers.google.com/workspace/drive/api/guides/about-sdk ### Approval required before this works The broad Drive scopes (drive, drive.readonly, drive.metadata, drive.activity) are Google restricted scopes, which need OAuth app verification plus an annual third-party CASA security assessment from a Google-approved assessor before the app can serve the public. - Typical wait: Google says restricted scope verification 'can potentially take several weeks to complete' and does not guarantee a timeframe; the CASA assessment is a separate engagement with an authorized lab and must be repeated at least every 12 months from the Letter of Assessment approval date. - Cost: Verification itself is free. The mandatory annual CASA assessment is paid directly to an App Defense Alliance authorized lab, and neither Google nor the ADA publishes pricing, so budget from an actual quote rather than a figure found online. Cost scales with the assurance level your data handling requires. - Blocked until approved: Public distribution with full-Drive access. Unverified, the app is limited to 100 test users, shows the unverified-app warning, and in Testing status issues refresh tokens that expire after 7 days. Restricted-scope data cannot be handled for outside users until the Letter of Assessment lands. - Works meanwhile: A great deal. The drive.file scope (create and open only the files the user picks, typically via the Google Picker) is documented by Google as non-sensitive and needs no verification at all, so an upload/open-this-file connector can ship immediately. Full-Drive access also works right away for yourself and up to 100 test users, and an 'Internal' Workspace app is not put through verification. ### Before you begin - A Google account, plus a Google Cloud project you own (creating one is free and needs no billing card) - Owner or Editor role on that Cloud project. Viewer cannot create OAuth clients - The PopMCP callback URL, shown on the Google Drive connect form. Copy it before you start - The Internal audience needs a Google Workspace organisation. Personal gmail.com accounts only get External ### Get your credentials #### 1. Create or select a Google Cloud project Open the Cloud console and pick a project from the picker in the top bar, or click New project. Keep that same project selected for every step below. Screen: https://console.cloud.google.com/projectcreate #### 2. Enable the Google Drive API Go to APIs & Services → Library, search for Google Drive API and open its card. Click Enable. Screen: https://console.cloud.google.com/flows/enableapi?apiid=drive.googleapis.com #### 3. Fill in Branding, then publish the app on Audience Open Google Auth Platform → Branding and enter App name, User support email and a developer contact address, then Save. Switch to Audience and click Publish app if Publishing status shows Testing. Screen: https://console.cloud.google.com/auth/audience #### 4. Open Clients and start a new OAuth client In the Google Auth Platform nav click Clients, then click Create client. Screen: https://console.cloud.google.com/auth/clients #### 5. Register a Web application client with the callback URL Set Application type to Web application and give the client a name you will recognise. Under Authorized redirect URIs click Add URI, paste the callback URL from the PopMCP Google Drive connect form exactly as shown, then click Create. Screen: https://console.cloud.google.com/auth/clients/create #### 6. Copy the client ID and secret into PopMCP Copy Client ID and Client secret out of the OAuth client created dialog and paste them into PopMCP's OAuth Client ID and OAuth Client Secret fields. If the dialog is already closed, open the client and click Add secret. ### Fields PopMCP asks for - OAuth Client ID (clientId) [required]: Google Cloud Console → Google Auth Platform → Clients → Create client → Web application, with the callback URL above under Authorized redirect URIs. Enable the Google Drive API on the same project first (APIs & Services → Library → Google Drive API → Enable), or the Drive permission won't be offered. - OAuth Client Secret (clientSecret) [required]: Shown once, in the popup right after you create the client. Google hashes it and never shows it again. If you closed that popup, open the client and add a new secret. Stored encrypted here, used server-side only. IMPORTANT: in Google Auth Platform → Audience, if the status says "Testing", click "Publish app" first. Testing-mode apps get a refresh token that Google expires after exactly 7 days, so the connection would work for a week and then stop. Publishing does not require Google's review. It only adds a one-time "Google hasn't verified this app" screen, where you click Advanced and continue. ### Callback URL to register https://app.popmcp.com/api/providers/google/callback ### Scopes requested - https://www.googleapis.com/auth/drive ### Verify Back in PopMCP, click Connect, pick the Google account, click through the "Google hasn't verified this app" screen with Advanced → Go to (app), and grant Drive access. The connector flips to Connected and the Drive tools list files from your account. ### Troubleshooting #### Error 400: redirect_uri_mismatch Cause: The Authorized redirect URI on the client does not exactly match the callback URL PopMCP sends. Fix: Copy the callback URL straight from the PopMCP connect form into Clients → your client → Authorized redirect URIs. Watch for http vs https and a trailing slash. Changes can take a few minutes to propagate. #### Connection works for a week then stops with invalid_grant Cause: The app is still in Testing on the Audience page. Google expires refresh tokens issued to test users after exactly 7 days. Fix: Go to Google Auth Platform → Audience → Publish app, then reconnect in PopMCP to obtain a non-expiring refresh token. #### 403 accessNotConfigured, or "API has not been used in project" Cause: The Google Drive API was never enabled on the project that owns the OAuth client. Fix: Enable Google Drive API in APIs & Services → Library on the same project, wait a minute, then retry. #### Error 403: access_denied on the consent screen Cause: The app is External and still in Testing while the Google account is not on the test-user list, or the audience is Internal and the account sits outside the Workspace organisation. Fix: Publish the app, or add the account under Audience → Test users. #### The client secret is no longer visible in full Cause: Google hashes the secret after creation and only ever shows the last four characters. Fix: Open the client in Clients and click Add secret to mint a fresh one, then paste it into PopMCP. --- ## Google Gemini URL: https://www.docs.popmcp.com/docs/integrations/google-gemini/ Summary: Connect Google Gemini to generate text, images, and video, analyze documents and media, create embeddings, and run batch and research jobs. You paste one value into PopMCP: a Gemini API key created in Google AI Studio. Keys made since May 28, 2026 start with AQ., older ones with AIza, and both work. - Auth: API credentials - Setup time: 3 min - API base URL: https://generativelanguage.googleapis.com/v1beta - Credentials screen: https://aistudio.google.com/apikey - Provider docs: https://ai.google.dev/gemini-api/docs/api-key ### Before you begin - A Google account that can sign in to Google AI Studio and accept its terms of service - A Google Cloud project for the key. New AI Studio users get a default project made for them; if you already use Google Cloud, AI Studio does not create one, so you import a project first - Permission to create API keys on that project, such as the Editor role (it includes apikeys.keys.create and iam.serviceAccountApiKeyBindings.create) - Billing linked to the project only if you want image generation, Veo video, Pro models or the Batch API. Creating the key is free ### Get your credentials #### 1. Open the API keys page in Google AI Studio Sign in at aistudio.google.com with your Google account and accept the terms if asked. Open Dashboard in the left panel and choose API keys, or go straight to the API keys link below. Screen: https://aistudio.google.com/apikey #### 2. Import your Cloud project, if you already use Google Cloud New AI Studio users already have a default project and can skip this step. Otherwise open Dashboard → Projects, click Import projects, search for the project by name or ID, select it and click Import. #### 3. Create the API key Back on API keys, click Create API key. Give the key a name such as `PopMCP`, choose the project it should belong to, confirm, and copy the new key. If Create API key is unavailable, you lack permission to create keys on that project: ask an admin for the Editor role, or use a project that is not tied to an organisation. Screen: https://aistudio.google.com/apikey #### 4. Set up billing if you need images, video or Pro models Optional. A free-tier key covers the Flash text models, embeddings and File Search. For image generation, Veo video, Pro models and the Batch API, click Set up billing in the Billing Tier column next to the project, pick or add a Cloud Billing account, and prepay at least $5, or choose a postpay plan if you are offered one. Screen: https://aistudio.google.com/apikey #### 5. Paste the key into PopMCP In PopMCP, paste the key into Gemini API key and save. PopMCP lists the models the key can use and runs a free token count to check it, so nothing is billed. ### Fields PopMCP asks for - Gemini API key (apiKey) [required]: Open Google AI Studio (aistudio.google.com/apikey), click Create API key, and copy it. Creating a key is free; image, video and Pro models need billing enabled on its project. Stored encrypted and used server-side only. ### Verify PopMCP shows the connection as Connected, labelled Gemini API key followed by the key's last four characters. Ask the AI to list the models the key can use; on a free-tier key, image and Veo models only start working once billing is set up. ### Troubleshooting #### "Google says this API key is not valid" or "Google did not accept this key" Cause: Part of the key was missed when copying, or the key was deleted. A bad AIza key answers 400 API_KEY_INVALID and a bad AQ. key answers 401. Fix: Copy the whole key again from the API keys page in AI Studio, or create a new one, and paste only the key with no quotes or spaces. #### "Google blocks this key for the Gemini API" (API_KEY_SERVICE_BLOCKED) Cause: It is an older AIza key with no API restrictions. The Gemini API rejects unrestricted standard keys. Fix: Restrict it with Add restrictions → Restrict to Gemini API only on the API keys page, or create a new key in AI Studio. #### "The Gemini API (Generative Language API) is not enabled for this key's Google Cloud project" Cause: The key was made in the Google Cloud console on a project where the Generative Language API is off. Fix: Enable the Generative Language API on that project, or create the key in Google AI Studio, which turns it on for you. #### "Google does not offer the Gemini API free tier in this region" Cause: The free tier is not available where the project is used, so Google answers FAILED_PRECONDITION. Fix: Click Set up billing for the project in AI Studio, then connect again. #### Image, Veo or Pro model calls fail with 403 or 429 while text works Cause: The key's project is on the free tier, which does not cover those models. Fix: Set up billing for the project in AI Studio. The key stays the same, so there is nothing to change in PopMCP. #### 429 RESOURCE_EXHAUSTED during a busy run Cause: A requests-per-minute, tokens-per-minute or requests-per-day limit ran out. Limits are per project, so every key in the project shares them, and a spend cap over a rolling 10 minutes can apply on paid tiers. Fix: Wait and retry; daily counts reset at midnight Pacific time. Check AI Studio's rate limit page for the project's current limits, and link billing to move up a tier. #### "This project's prepaid Gemini credits are used up" Cause: The project is on prepaid billing and its balance reached zero. Fix: Add credit on the AI Studio Billing page, then retry. --- ## Google Merchant Center URL: https://www.docs.popmcp.com/docs/integrations/google-merchant-center/ Summary: Connect Google Merchant Center to manage product feeds, listings, local inventory, promotions, and performance reports. You end up pasting an OAuth Client ID and Client Secret from a Google Cloud project that has the Merchant API enabled and has been registered as a developer against your Merchant Center account. - Auth: OAuth authorization - Setup time: 12 min - API base URL: https://merchantapi.googleapis.com - Credentials screen: https://console.cloud.google.com/auth/clients - Provider docs: https://developers.google.com/merchant/api ### Before you begin - A Google Merchant Center account with products or a feed - Admin access level in Merchant Center. Developer registration requires it - A Google Cloud project where you are Owner or Editor - The Google Account you sign in with must also be a user on the Merchant Center account ### Get your credentials #### 1. Enable the Merchant API on a dedicated Cloud project Pick or create a project of your own, open APIs & Services -> Library, search for Merchant API, and click Enable. Enable `merchantapi.googleapis.com`, not the legacy Content API for Shopping. Screen: https://console.cloud.google.com/apis/library/merchantapi.googleapis.com #### 2. Register the Cloud project as a developer on your Merchant Center account Sign in with an Admin-level Merchant Center account and call `accounts.developerRegistration.registerGcp` for that account, passing the project you just enabled. Wait about five minutes before your first API call. Screen: https://developers.google.com/merchant/api/guides/quickstart/registration #### 3. Fill in the branding and publish the app Under Google Auth Platform -> Branding set the app name, logo, support email and your homepage, privacy policy and terms links. Then open Audience and click Publish app if Publishing status reads Testing. Screen: https://console.cloud.google.com/auth/audience #### 4. Create a Web application OAuth client Go to Google Auth Platform -> Clients, click Create client, choose Application type Web application, and name it `PopMCP`. Paste the exact callback URL from the PopMCP connect form under Authorized redirect URIs. Screen: https://console.cloud.google.com/auth/clients #### 5. Copy the Client ID and Client Secret straight away Copy both values out of the OAuth client created dialog into PopMCP's OAuth Client ID and OAuth Client Secret fields. If the dialog is gone, open the client and click Add secret. ### Fields PopMCP asks for - OAuth Client ID (clientId) [required]: From your Google Cloud project → APIs & Services → Credentials → OAuth client. Enable the Merchant API on the same project. - OAuth Client Secret (clientSecret) [required]: Stored encrypted; used server-side only and never shown again. ### Callback URL to register https://app.popmcp.com/api/providers/google/callback ### Scopes requested - https://www.googleapis.com/auth/content ### Verify PopMCP opens Google's consent screen. Approve it and the connector flips to Connected with your Merchant Center account id shown. Ask the assistant to list a handful of products. Real titles coming back means the API is enabled, the scope is granted, and developer registration went through. ### Troubleshooting #### 401 "GCP project with id ... is not registered with the merchant account" Cause: Developer registration was never run for this Cloud project. There is no Merchant Center UI for it, the registerGcp API call is the only way. Fix: Run accounts.developerRegistration.registerGcp with an Admin Merchant Center login, then retry after about 5 minutes. #### Authentication errors when using an API key Cause: Merchant API does not support API keys at all. Fix: Use the OAuth client ID and secret. That is what PopMCP's two fields are for. #### Consent succeeds but no products are visible Cause: The Google Account that signed in is not a user on the Merchant Center account, or is on a different sub-account. Fix: Add that email on the Merchant Center Access and services page with at least Standard access, Admin for registration, then reconnect. #### Connection stops working after about a week Cause: The OAuth app is still in Testing status, so the refresh token expires in 7 days. Fix: Google Auth Platform -> Audience -> Publish app, then reconnect in PopMCP. #### 403 SERVICE_DISABLED for merchantapi.googleapis.com Cause: The Merchant API is enabled on a different project than the one the OAuth client belongs to. Fix: Confirm the project picker matches, then enable Merchant API in APIs & Services -> Library on that project. --- ## Google Search Console URL: https://www.docs.popmcp.com/docs/integrations/google-search-console/ Summary: Connect Google Search Console to review search analytics, inspect pages, manage sitemaps, and track query performance. You end up with two values from one Google Cloud OAuth client, the Client ID (…apps.googleusercontent.com) and the Client secret (GOCSPX-…), which you paste into PopMCP's OAuth Client ID and OAuth Client Secret fields. - Auth: OAuth authorization - Setup time: 10 min - API base URL: https://searchconsole.googleapis.com/webmasters/v3 - Credentials screen: https://console.cloud.google.com/auth/clients - Provider docs: https://developers.google.com/webmaster-tools/v1/api_reference_index ### Before you begin - A Google account that is a verified owner or a delegated user on the Search Console property - A Google Cloud project you can edit. The Search Console API is free - The PopMCP callback URL, copied from the connector screen before you start - Editor or Owner on the Cloud project, so you can enable APIs and create OAuth clients ### Get your credentials #### 1. Enable the Google Search Console API Pick your project in the project picker in the top bar, then go to APIs & Services → Library. Search for Google Search Console API and click Enable. Screen: https://console.cloud.google.com/apis/library/searchconsole.googleapis.com #### 2. Fill in Branding, then publish the app Open Google Auth Platform → Branding and enter the App name and User support email. Open Audience, set User type to External, and click Publish app. Screen: https://console.cloud.google.com/auth/audience #### 3. Create a Web application OAuth client Go to Google Auth Platform → Clients and click Create client. Choose Application type → Web application, name it `PopMCP`, then click Add URI under Authorized redirect URIs and paste the callback URL copied from PopMCP. Screen: https://console.cloud.google.com/auth/clients/create #### 4. Copy the Client ID and secret into PopMCP Copy both values from the OAuth client created dialog before you close it. Paste them into PopMCP's OAuth Client ID and OAuth Client Secret fields, click Connect, and choose the Google account that owns your Search Console property. Screen: https://console.cloud.google.com/auth/clients ### Fields PopMCP asks for - OAuth Client ID (clientId) [required]: From your Google Cloud project → APIs & Services → Credentials → OAuth client. Make sure the Search Console API is enabled for that project first (APIs & Services → Library). - OAuth Client Secret (clientSecret) [required]: Stored encrypted; used server-side only and never shown again. ### Callback URL to register https://app.popmcp.com/api/providers/google/callback ### Scopes requested - https://www.googleapis.com/auth/webmasters ### Verify After consenting, PopMCP lists your verified Search Console properties, and a query for last month's top queries returns the same clicks and impressions you see in the Performance report. ### Troubleshooting #### Error 400: redirect_uri_mismatch Cause: The Authorized redirect URI on the client differs from the callback PopMCP sends, often by a trailing slash or http versus https. Fix: Copy the callback out of PopMCP and paste it into Google Auth Platform → Clients → your client → Authorized redirect URIs, save, wait a minute, then retry. #### invalid_grant about a week after connecting Cause: The OAuth app was left in Testing, so Google expired the refresh token after 7 days. Fix: Google Auth Platform → Audience → Publish app, then reconnect once in PopMCP. Publishing needs no Google review and only adds a one-time unverified-app screen. #### 403 User does not have sufficient permission for site Cause: The Google account you consented with is not a verified owner or user of that property. Fix: In Search Console → Settings → Users and permissions, add that account with Full or Owner for sitemap writes, then reconnect. #### Property list is empty, or a domain property is missing Cause: Domain properties are addressed as sc-domain:example.com and only appear if that exact property is verified for the account. Fix: Verify the domain property in Search Console, or connect using the URL-prefix property you already own. #### 429 or quota exceeded during bulk query pulls Cause: Search Analytics is capped at 1,200 queries per minute per site and per user. Fix: Batch fewer date ranges at once and let PopMCP back off. The per-minute bucket resets on its own. --- ## Google Sheets URL: https://www.docs.popmcp.com/docs/integrations/google-sheets/ Summary: Connect Google Sheets to find spreadsheets, read and write rows, add and format tabs, sort and filter data, build charts, and share the file. You end up pasting the OAuth Client ID and Client Secret of a Web application client you register in the Google Cloud console under Google Auth Platform > Clients. - Auth: OAuth authorization - Setup time: 12 min - API base URL: https://sheets.googleapis.com/v4/spreadsheets - Credentials screen: https://console.cloud.google.com/auth/clients - Provider docs: https://developers.google.com/workspace/sheets/api/guides/concepts ### Approval required before this works Google Cloud Console labels the spreadsheets and spreadsheets.readonly scopes Sensitive, so Google's Trust and Safety team must verify your OAuth app before those scopes can be granted to users beyond your test list or your own Workspace organization. - Typical wait: Google states sensitive scope verification typically takes 3-5 business days; developers commonly report one to several weeks in practice - Cost: Free. The Sheets scopes are sensitive, not restricted, so no paid CASA security assessment applies unless you also request full Drive scopes. - Blocked until approved: Public distribution only. Unverified external apps are capped at their test-user list (100 accounts), show the unverified-app warning screen, and in Testing status get refresh tokens that expire after 7 days, which breaks scheduled or unattended sheet syncs. - Works meanwhile: Full read/write on any spreadsheet, immediately, for yourself and up to 100 test users. The drive.file scope is documented by Google as non-sensitive and, combined with the Google Picker, lets a production app read and write only user-selected spreadsheets with no verification at all. An 'Internal' Workspace app is not put through verification. ### Before you begin - A Google account that can create Google Cloud projects, with no billing account required for the Sheets or Drive API - Both the Google Sheets API and the Google Drive API enabled on the same project, because Sheets alone cannot search, list or share a spreadsheet - The OAuth app moved to In production on the Audience page, because Testing-mode refresh tokens expire after 7 days - PopMCP's callback URL copied from the connect form, to paste under Authorized redirect URIs ### Get your credentials #### 1. Enable the Sheets API and the Drive API Pick or create a project in the top bar, then open APIs & Services > Library. Search for Google Sheets API and click Enable, then come back and do the same for Google Drive API. Screen: https://console.cloud.google.com/apis/library/sheets.googleapis.com #### 2. Fill in the Google Auth Platform branding Open Google Auth Platform > Branding. On a project that has never been configured, enter App name, User support email, set Audience to External, add a Developer contact email, and click Create. Screen: https://console.cloud.google.com/auth/branding #### 3. Publish the app Open Google Auth Platform > Audience. If Publishing status reads Testing, click Publish app and confirm. Screen: https://console.cloud.google.com/auth/audience #### 4. Create a Web application OAuth client Open Google Auth Platform > Clients and click Create client. Set Application type to Web application, name it `PopMCP`, click Add URI under Authorized redirect URIs, paste the callback URL from the PopMCP connect form, and click Create. Screen: https://console.cloud.google.com/auth/clients/create #### 5. Copy the Client ID and Client Secret Copy the Client ID and Client secret from the OAuth client created dialog before closing it. #### 6. Paste both values into PopMCP and authorize Enter the OAuth Client ID and OAuth Client Secret in PopMCP and click connect. Approve the Drive scope on Google's consent screen. ### Fields PopMCP asks for - OAuth Client ID (clientId) [required]: Google Cloud Console → Google Auth Platform → Clients → Create client → Web application, with the callback URL above under Authorized redirect URIs. On the same project, enable BOTH the Google Sheets API and the Google Drive API (APIs & Services → Library). Sheets alone cannot list, search or share a spreadsheet, so Drive is what makes finding one by name work. - OAuth Client Secret (clientSecret) [required]: Shown once, in the popup right after you create the client. Google hashes it and never shows it again. If you closed that popup, open the client and add a new secret. Stored encrypted here, used server-side only. IMPORTANT: in Google Auth Platform → Audience, if the status says "Testing", click "Publish app" first. Testing-mode apps get a refresh token that Google expires after exactly 7 days, so the connection would work for a week and then stop. Publishing does not require Google's review. It only adds a one-time "Google hasn't verified this app" screen, where you click Advanced and continue. ### Callback URL to register https://app.popmcp.com/api/providers/google/callback ### Scopes requested - https://www.googleapis.com/auth/drive ### Verify PopMCP shows Google Sheets as Connected with your Google account's email, and a search for a spreadsheet by name returns results from your Drive. ### Troubleshooting #### Error 400: redirect_uri_mismatch Cause: The Authorized redirect URI in the client does not exactly match the callback PopMCP sends, usually a missing trailing slash or http instead of https. Fix: Open the client under Google Auth Platform > Clients and paste the callback URL straight from the PopMCP connect form. Changes can take a few minutes to propagate. #### Connection works for about a week then returns invalid_grant Cause: The project is still in Testing, so Google expired the refresh token seven days after consent. Fix: Go to Google Auth Platform > Audience, click Publish app, then disconnect and reconnect in PopMCP to mint a fresh refresh token. #### 403 accessNotConfigured or "Google Drive API has not been used in project" Cause: Only the Sheets API was enabled on the project. Fix: Enable the Google Drive API in APIs & Services > Library on the same project, then retry. It can take a minute to take effect. #### "Google hasn't verified this app" warning on the consent screen Cause: The client is published but not through Google's verification review, which is expected for an internal-use client. Fix: Click Advanced, then Go to (unsafe), and continue. Complete App name, user support email and developer contact under Google Auth Platform > Branding if the screen is blocked instead of warned. #### Client secret is gone Cause: Google hashes the secret and shows only the last four characters after the creation dialog closes. Fix: Open the client under Clients, click Add Secret, then update PopMCP and reconnect. --- ## Google Slides URL: https://www.docs.popmcp.com/docs/integrations/google-slides/ Summary: Connect Google Slides to find and read decks, add slides with their text, fill templates, format text and shapes, add images, tables and charts, comment, and share the file. You end up pasting the OAuth Client ID and Client Secret of a Web application client you create in the Google Cloud console, on a project where both the Google Slides API and the Google Drive API are enabled. - Auth: OAuth authorization - Setup time: 10 min - API base URL: https://slides.googleapis.com/v1/presentations - Credentials screen: https://console.cloud.google.com/auth/clients - Provider docs: https://developers.google.com/workspace/slides/api/guides/overview ### Approval required before this works The connection asks your OAuth client for the full Drive scope (drive), which Google's Slides API scope table labels Restricted. Serving users beyond your own team therefore needs Google's restricted-scope verification, plus a security assessment because the data passes through a server. - Typical wait: Google says restricted-scope verification 'can potentially take several weeks to complete', and brand verification typically takes 2-3 business days. The security assessment must be renewed at least every 12 months. - Cost: Verification itself is free. The security assessment is run under the App Defense Alliance's CASA framework by a Google-approved assessor who sets its own fee, so budget from a quote rather than a figure found online. - Blocked until approved: Wide distribution only. An unverified app shows the "Google hasn't verified this app" screen and is limited to 100 new users. Left in Testing, only listed test users can sign in and their refresh tokens expire 7 days after consent. - Works meanwhile: Everything, for your own team. Publish the app on the Audience page without submitting it for verification, click Advanced on the warning screen when you connect, and the connection keeps working past 7 days. An Internal app inside your Google Workspace organisation is not put through verification. ### Before you begin - A Google account that can open the presentations you want the AI to work on, plus a Google Cloud project you own. Creating one is free and the Slides and Drive APIs need no billing account - Owner or Editor role on that Cloud project, so you can enable APIs and create OAuth clients - Both the Google Slides API and the Google Drive API enabled on the same project, because Slides alone cannot find, copy or share a deck. The Google Sheets API is optional, for placing spreadsheet charts on slides - The PopMCP callback URL, copied from the Google Slides connect form before you start - Personal gmail.com accounts can only use the External audience. Internal needs a Google Workspace organisation ### Get your credentials #### 1. Enable the Google Slides API and the Google Drive API Pick or create a project in the top bar, then open APIs & Services → Library. Search for Google Slides API and click Enable, then come back and do the same for Google Drive API. If you want the AI to put charts from your spreadsheets on slides, enable Google Sheets API as well. Screen: https://console.cloud.google.com/apis/library/slides.googleapis.com #### 2. Fill in the Google Auth Platform branding Open Google Auth Platform → Branding. If it says Google Auth platform not configured yet, click Get Started. Enter an App name and a User support email, choose External under Audience unless every user sits in your Workspace organisation, add an Email address under Contact Information, agree to the user data policy, then click Continue and Create. Screen: https://console.cloud.google.com/auth/branding #### 3. Publish the app Open Google Auth Platform → Audience. If Publishing status reads Testing, click Publish app and confirm. Publishing needs no review from Google; it only means the consent screen will show a one-time unverified-app warning. Screen: https://console.cloud.google.com/auth/audience #### 4. Create a Web application OAuth client Open Google Auth Platform → Clients and click Create client. Set Application type to Web application, name it `PopMCP Slides`, click Add URI under Authorized redirect URIs, paste the callback URL from the PopMCP connect form exactly as shown, and click Create. If you already made a client here for another PopMCP Google connector, you can reuse it. Screen: https://console.cloud.google.com/auth/clients/create #### 5. Copy the Client ID and Client Secret Copy the Client ID and Client secret from the OAuth client created dialog before you close it. If the dialog is already gone, open the client from Clients and click Add secret to mint a new one. Screen: https://console.cloud.google.com/auth/clients #### 6. Paste both values into PopMCP and authorize On PopMCP's Google Slides connect form, paste the values into OAuth Client ID and OAuth Client Secret, then click Authorize with Google. Choose the Google account whose presentations the AI should reach. On the Google hasn't verified this app screen click Advanced and continue to your app, then allow the Google Drive permission. ### Fields PopMCP asks for - OAuth Client ID (clientId) [required]: Google Cloud Console → Google Auth Platform → Clients → Create client → Web application, with the callback URL above under Authorized redirect URIs. On the same project, enable BOTH the Google Slides API and the Google Drive API (APIs & Services → Library). Slides alone cannot list, search, copy or share a presentation, so Drive is what makes finding a deck by name and working from templates possible. Optional: enable the Google Sheets API too, so charts from your spreadsheets can be listed and placed on slides. - OAuth Client Secret (clientSecret) [required]: Shown once, in the popup right after you create the client. Google hashes it and never shows it again. If you closed that popup, open the client and add a new secret. Stored encrypted here, used server-side only. IMPORTANT: in Google Auth Platform → Audience, if the status says "Testing", click "Publish app" first. Testing-mode apps get a refresh token that Google expires after exactly 7 days, so the connection would work for a week and then stop. Publishing does not require Google's review. It only adds a one-time "Google hasn't verified this app" screen, where you click Advanced and continue. ### Callback URL to register https://app.popmcp.com/api/providers/google/callback ### Scopes requested - https://www.googleapis.com/auth/drive ### Verify After consent PopMCP shows Google Slides as Connected with the Google account's name and email. If the Slides API was left off, the connect stops with "The Google Slides API is not enabled in your Google Cloud project" instead. Ask the AI to list your presentations and real deck names come back from your Drive. ### Troubleshooting #### Error 400: redirect_uri_mismatch Cause: The Authorized redirect URI on the client does not exactly match the callback URL PopMCP sends, usually a trailing slash or http instead of https. Fix: Open the client under Google Auth Platform → Clients and paste the callback URL straight from the PopMCP connect form. Changes can take a few minutes to take effect. #### The connection works for about a week, then stops with invalid_grant Cause: The app is still in Testing on the Audience page, so Google expired the refresh token 7 days after consent. PopMCP reports it as Google's 7 day Testing-mode expiry. Fix: Go to Google Auth Platform → Audience, click Publish app, then reconnect Google Slides in PopMCP. Reconnecting without publishing only buys another 7 days. #### Connecting fails with "The Google Slides API is not enabled in your Google Cloud project" Cause: PopMCP probes the Slides API while connecting, and Google answered SERVICE_DISABLED for the project that owns the OAuth client. Fix: Enable Google Slides API in APIs & Services → Library on that same project, wait a minute, then connect again. #### Finding, copying or sharing a deck fails with 403 accessNotConfigured, or "Google Drive API has not been used in project" Cause: Only the Slides API was enabled. Listing, copying, moving and sharing presentations all go through the Drive API. Fix: Enable Google Drive API in APIs & Services → Library on the same project, then retry. #### list_sheet_charts or insert_sheets_chart fails with "Google Sheets API has not been used in project" Cause: Placing a spreadsheet chart reads the spreadsheet through the Sheets API, which is optional and was not enabled. Fix: Enable Google Sheets API on the same project. Nothing else in the connector needs it. #### Error 400: admin_policy_enforced on Google's sign-in screen Cause: Your Google Workspace admin restricts which third-party apps can reach Drive, and this OAuth client is not trusted. Fix: Ask the admin to allow the client ID under the Admin console's API controls (Manage third-party app access), or connect with an account outside that restriction. #### 429 Too many requests while reading or rendering many slides Cause: A per-minute Slides quota ran out. Thumbnails are the tightest: 60 per minute per user. Fix: Wait a minute and retry. Render fewer slides at a time, and use read_presentation for text instead of thumbnails. --- ## Google Data Studio URL: https://www.docs.popmcp.com/docs/integrations/google-data-studio/ Summary: Connect Google Data Studio to find reports and data sources, audit and change who can open them, and build new reports from your templates. You end up pasting the OAuth Client ID and Client Secret of an Internal Web application client from a Google Cloud project with the Data Studio API turned on, after a Google Workspace super admin has authorized that Client ID for the Data Studio scopes under domain-wide delegation. - Auth: OAuth authorization - Setup time: 10 min - API base URL: https://datastudio.googleapis.com/v1 - Credentials screen: https://console.cloud.google.com/apis/library/datastudio.googleapis.com - Provider docs: https://developers.google.com/looker-studio/integrate/api ### Approval required before this works Google opens the Data Studio API only to Google Workspace or Cloud Identity accounts, after a super admin authorizes the app once. Personal Gmail accounts cannot use it. - Typical wait: None from Google. The admin step takes a minute, and Google says it can take up to 24 hours to apply - Cost: The API is free. It needs a Google Workspace subscription or Cloud Identity, whose Free edition costs nothing. - Blocked until approved: Everything. Until a super admin authorizes the app, Google refuses the sign-in with Error 400: invalid_scope, and a personal account cannot be authorized at all. - Works meanwhile: Create the Google Cloud project, turn on the Data Studio API and make the Internal OAuth client, then send its Client ID to your admin. ### Before you begin - A Google Workspace or Cloud Identity account. Google opens the Data Studio API (now named Data Studio API) only to accounts that belong to such an organization; personal gmail.com accounts cannot use it - A super administrator of that Workspace organization for one step in the Admin console, or the role yourself - A Google Cloud project in your organization where you can turn on APIs and create OAuth clients (Owner or Editor). The API is free - The PopMCP callback URL, copied from the Google Data Studio connect form before you start - Data Studio was renamed Data Studio in April 2026: the console, Google's docs and the app may show either name ### Get your credentials #### 1. Turn on the Data Studio API Pick or create a project of your Workspace organization in the top bar, then open APIs & Services → Library. Search for Data Studio API (older consoles list it as Data Studio API; the service name is `datastudio.googleapis.com`), open its card and click Enable. Screen: https://console.cloud.google.com/apis/library/datastudio.googleapis.com #### 2. Set up Google Auth Platform with an Internal audience Open Google Auth Platform → Branding. If it says Google Auth platform not configured yet, click Get Started. Enter an App name and a User support email, choose Internal under Audience, add an Email address under Contact Information, agree to the user data policy, then click Continue and Create. Do not add the Data Studio scopes on Data access: your admin authorizes them in the Admin console instead. Screen: https://console.cloud.google.com/auth/branding #### 3. Create a Web application OAuth client Open Google Auth Platform → Clients and click Create client. Set Application type to Web application, name it `PopMCP Data Studio`, click Add URI under Authorized redirect URIs, paste the callback URL from the PopMCP connect form exactly as shown, and click Create. Screen: https://console.cloud.google.com/auth/clients/create #### 4. Copy the Client ID and Client Secret Copy the Client ID and Client secret from the OAuth client created dialog before you close it. If the dialog is already gone, open the client from Clients and click Add secret to make a new one. Your admin needs the Client ID in the next step. Screen: https://console.cloud.google.com/auth/clients #### 5. Have a Workspace super admin authorize the Client ID A super administrator opens the Google Admin console at admin.google.com → Security → Access and data control → API controls → Manage Domain Wide Delegation and clicks Add new. They enter your Client ID, add each of these under OAuth Scopes: `https://www.googleapis.com/auth/datastudio`, `https://www.googleapis.com/auth/datastudio.readonly` and `https://www.googleapis.com/auth/userinfo.email` (the connect form has them ready to copy), then click Authorize. Google says this can take up to 24 hours, though it is usually quicker. Screen: https://admin.google.com/ac/owl/domainwidedelegation #### 6. Paste the values into PopMCP and sign in with Google On PopMCP's Google Data Studio connect form, paste the values into OAuth Client ID and OAuth Client Secret and click Sign in with Google. Choose your work account. Google signs you in without a consent screen when the admin step is done, and PopMCP connects as that account. ### Fields PopMCP asks for - OAuth Client ID (clientId) [required]: In Google Cloud Console, in a project of your Workspace organization: turn on the Data Studio API (APIs & Services → Library), set Google Auth Platform → Audience to Internal, then Clients → Create client → Web application with the callback URL above under Authorized redirect URIs. - OAuth Client Secret (clientSecret) [required]: Shown when you create the client. Stored encrypted and used server-side only. - Scopes your Workspace super admin authorizes (adminScopes): Before you sign in, a Google Workspace super admin adds your Client ID with these scopes: Admin console → Security → Access and data control → API controls → Manage Domain Wide Delegation → Add new. Until then Google shows "Error 400: invalid_scope" (it can take up to 24 hours to apply). Personal Gmail accounts cannot use Data Studio's API. ### Callback URL to register https://app.popmcp.com/api/providers/google/callback ### Scopes requested - https://www.googleapis.com/auth/datastudio - https://www.googleapis.com/auth/userinfo.email ### Verify After you sign in PopMCP shows Connected under your work email. Ask the AI to list your Data Studio reports and their titles and links come back. ### Troubleshooting #### Google shows Error 400: invalid_scope Cause: Your organization has not authorized this Client ID for the Data Studio scopes, or authorized a different Client ID or fewer scopes. Google refuses every app a Workspace admin has not authorized. Fix: Ask a super admin to add the exact Client ID with all three scopes under Security, Access and data control, API controls, Manage Domain Wide Delegation, then try again. It can take up to 24 hours to apply. #### "This is a personal Google account" when connecting Cause: You signed in with a gmail.com account. Google opens the Data Studio API only to Google Workspace and Cloud Identity accounts. Fix: Sign in with your work account. To reach reports a personal account owns, share them with your work account first. #### Access blocked: the app can only be used within its organization Cause: The OAuth app is Internal and you signed in with an account from another organization. Fix: Sign in with an account of the organization that owns the Google Cloud project, or create the client in a project of your own organization. #### Error 400: redirect_uri_mismatch Cause: The Authorized redirect URI on the client does not exactly match the callback URL PopMCP sends, usually a trailing slash or http instead of https. Fix: Open the client under Google Auth Platform → Clients and paste the callback URL straight from the PopMCP connect form. Changes can take a few minutes to apply. #### 403 saying the Data Studio API has not been used in the project or is disabled Cause: The API is not turned on in the project that owns the OAuth client. Fix: Turn on the Data Studio API in APIs & Services → Library on that same project, wait a minute, then retry. #### A sharing change is refused because the connection can read only Cause: Google granted only datastudio.readonly, usually because the admin authorized just that scope, or the connection is read-only in PopMCP. Fix: Have the admin add https://www.googleapis.com/auth/datastudio to the Client ID and reconnect, and allow write actions on the connection in PopMCP. --- ## Google Tag Manager URL: https://www.docs.popmcp.com/docs/integrations/google-tag-manager/ Summary: Connect Google Tag Manager to audit your containers, add and change tags, triggers and variables, switch on built-in variables, and publish or roll back versions. You end up pasting the OAuth Client ID and Client Secret of a Web application client from a Google Cloud project with the Tag Manager API enabled, then choosing which Tag Manager account the connection works in. - Auth: OAuth authorization - Setup time: 10 min - API base URL: https://tagmanager.googleapis.com/tagmanager/v2 - Credentials screen: https://console.cloud.google.com/auth/clients - Provider docs: https://developers.google.com/tag-platform/tag-manager/api/v2 ### Before you begin - A Google account with access to the Tag Manager account. Reading needs Read on a container, editing needs Edit, creating versions needs Approve, publishing needs Publish, and managing users needs the account's Administrator role - A Google Cloud project you own, with Owner or Editor so you can enable APIs and create OAuth clients. The Tag Manager API itself is free - Ideally a project used only for this connection: Google allows 25 Tag Manager API requests per 100 seconds and 10,000 a day per Cloud project, shared by everything that uses it - The PopMCP callback URL, copied from the Google Tag Manager connect form before you start - Personal gmail.com accounts can only use the External audience. Internal needs a Google Workspace organisation ### Get your credentials #### 1. Enable the Tag Manager API Pick or create a project in the top bar, then open APIs & Services → Library. Search for Tag Manager API, open its card and click Enable. Screen: https://console.cloud.google.com/apis/library/tagmanager.googleapis.com #### 2. Fill in the Google Auth Platform branding Open Google Auth Platform → Branding. If it says Google Auth platform not configured yet, click Get Started. Enter an App name and a User support email, choose External under Audience unless every user sits in your Workspace organisation, add an Email address under Contact Information, agree to the user data policy, then click Continue and Create. Screen: https://console.cloud.google.com/auth/branding #### 3. Publish the app Open Google Auth Platform → Audience. If Publishing status reads Testing, click Publish app and confirm. Publishing needs no review from Google. Screen: https://console.cloud.google.com/auth/audience #### 4. Create a Web application OAuth client Open Google Auth Platform → Clients and click Create client. Set Application type to Web application, name it `PopMCP Tag Manager`, click Add URI under Authorized redirect URIs, paste the callback URL from the PopMCP connect form exactly as shown, and click Create. Screen: https://console.cloud.google.com/auth/clients/create #### 5. Copy the Client ID and Client Secret Copy the Client ID and Client secret from the OAuth client created dialog before you close it. If the dialog is already gone, open the client from Clients and click Add secret to mint a new one. Screen: https://console.cloud.google.com/auth/clients #### 6. Paste the values into PopMCP, authorize, and pick the Tag Manager account On PopMCP's Google Tag Manager connect form, paste the values into OAuth Client ID and OAuth Client Secret. Leave Tag Manager API requests per 100 seconds empty unless Google raised your project's quota. Click Authorize with Google, sign in with the account that has Tag Manager access, if Google shows a Google hasn't verified this app screen click Advanced and continue, and leave every Tag Manager permission ticked. Back in PopMCP, choose the Tag Manager account for this workspace. ### Fields PopMCP asks for - OAuth Client ID (clientId) [required]: Google Cloud Console → Google Auth Platform → Clients → Create client → Web application, with the callback URL above under Authorized redirect URIs. Enable the Tag Manager API on the same project first (APIs & Services → Library → Tag Manager API → Enable). - OAuth Client Secret (clientSecret) [required]: Shown once, right after you create the client. Stored encrypted here and used server-side only. In Google Auth Platform → Audience, if the status says "Testing", click "Publish app" first: Testing apps get a sign-in that Google ends after 7 days. Publishing needs no review from Google. On the consent screen, leave every Tag Manager permission ticked; a permission left off makes the tools that need it refuse with that reason. - Tag Manager API requests per 100 seconds (quotaPer100Seconds): Google gives every Cloud project 25 by default, and PopMCP spaces calls to stay under it. Change this only if Google raised your project's Tag Manager API quota (Google Cloud Console → IAM & Admin → Quotas). ### Callback URL to register https://app.popmcp.com/api/providers/google/callback ### Scopes requested - https://www.googleapis.com/auth/tagmanager.edit.containers - https://www.googleapis.com/auth/tagmanager.edit.containerversions - https://www.googleapis.com/auth/tagmanager.publish - https://www.googleapis.com/auth/tagmanager.delete.containers - https://www.googleapis.com/auth/tagmanager.manage.users - https://www.googleapis.com/auth/tagmanager.manage.accounts ### Verify After the consent screen PopMCP lists the Tag Manager accounts the Google account can open. Pick one and the connector shows Connected under that account's name. Ask the AI to list the containers and their GTM- ids come back. ### Troubleshooting #### Error 400: redirect_uri_mismatch Cause: The Authorized redirect URI on the client does not exactly match the callback URL PopMCP sends, usually a trailing slash or http instead of https. Fix: Open the client under Google Auth Platform → Clients and paste the callback URL straight from the PopMCP connect form. Changes can take a few minutes to take effect. #### The connection works for about a week, then stops with invalid_grant Cause: The app is still in Testing on the Audience page, so Google expired the refresh token 7 days after consent. PopMCP reports it as Google's 7 day Testing-mode expiry. Fix: Go to Google Auth Platform → Audience, click Publish app, then reconnect Google Tag Manager in PopMCP. #### A tool answers "needs the Tag Manager permission … which this connection was not granted. Nothing was sent." Cause: Google's consent screen gives each Tag Manager permission its own checkbox, and that one was left unticked. If edit containers itself was unticked, the connect stops with "Google didn't grant access to Tag Manager" instead. Fix: Disconnect and reconnect Google Tag Manager, and leave every Tag Manager permission ticked on the consent screen. #### 403 accessNotConfigured, or "Tag Manager API has not been used in project" Cause: The Tag Manager API is not enabled on the project that owns the OAuth client. Fix: Enable Tag Manager API in APIs & Services → Library on that same project, wait a minute, then retry. #### 403 saying the connected Google account's role in Tag Manager does not allow this Cause: The OAuth grant is fine, but the user's role in Tag Manager is too low for the action, for example Edit when publishing needs Publish. Fix: In Tag Manager, an account Administrator opens Admin → User Management and raises the container permission (Read, Edit, Approve or Publish), or you connect with an account that already has it. #### Calls wait, or are refused with "allows 25 requests per 100 seconds for this Google Cloud project" Cause: Google caps the Tag Manager API at 0.25 requests per second and 10,000 a day per Cloud project and answers anything over with 403. Other tools on the same project count too. Fix: Retry after the time PopMCP gives, and read in bulk (get_live_version returns a whole container). For more, apply for a higher quota in the Cloud console and enter the new number in Tag Manager API requests per 100 seconds. #### No Tag Manager account appears after you authorize Cause: The Google account you signed in with has not been added to any Tag Manager account. Fix: Reconnect with the Google account listed under Admin → User Management in Tag Manager, or ask an account Administrator to add yours. --- ## Gorgias URL: https://www.docs.popmcp.com/docs/integrations/gorgias/ Summary: Connect Gorgias to manage support tickets, messages, customers, macros, tags, views, and satisfaction surveys. You paste three things into PopMCP: your Gorgias domain (acme.gorgias.com), the account email that Gorgias shows as Username, and the API key it shows as Password (API Key) on Settings, Account, REST API. - Auth: API credentials - Setup time: 3 min - API base URL: https://YOUR-SUBDOMAIN.gorgias.com/api - Credentials screen: https://YOUR-SUBDOMAIN.gorgias.com/app/settings/rest-api (replace YOUR-SUBDOMAIN with your Gorgias subdomain) - Provider docs: https://developers.gorgias.com/reference/introduction ### Before you begin - A Gorgias helpdesk account. The REST API is available on all Helpdesk plans. - The Admin role or account owner. Gorgias states that only the account owner and admins can access the API credentials and create API keys. - The subdomain of the helpdesk you want to connect. Credentials are locked to one Gorgias account. ### Get your credentials #### 1. Sign in and note your Gorgias domain Sign in at gorgias.com/login. Whatever you type into URL of your Gorgias helpdesk is the Gorgias domain PopMCP asks for. Screen: https://www.gorgias.com/login #### 2. Open Settings, then REST API Click the Settings icon in the bottom-left corner of the helpdesk. In the menu find Account and select REST API. Screen: https://YOUR-SUBDOMAIN.gorgias.com/app/settings/rest-api (replace YOUR-SUBDOMAIN with your Gorgias subdomain) #### 3. Create a key if the Password field is empty If Password (API Key) shows a Create API Key button instead of a value, click it. The key is generated immediately and appears beside the other credentials. Screen: https://YOUR-SUBDOMAIN.gorgias.com/app/settings/rest-api (replace YOUR-SUBDOMAIN with your Gorgias subdomain) #### 4. Copy the username and the key Click Copy next to Username, then Copy next to Password (API Key). #### 5. Paste the three values into PopMCP Enter the Gorgias domain, the Account email and the API key in PopMCP's Gorgias form, then save. ### Fields PopMCP asks for - Gorgias domain (domain) [required]: Your Gorgias subdomain, e.g. your-company.gorgias.com (or just your-company). This is the account the MCP is locked to. - Account email (email) [required]: The email of your Gorgias account, used as the API username for Basic auth. - API key (apiKey) [required]: Gorgias → Settings → REST API. Copy the API key shown there. Stored encrypted. ### Verify PopMCP marks the Gorgias connector Connected and a first tool call such as listing tickets returns your recent tickets instead of an auth error. ### Troubleshooting #### 401 Unauthorized Cause: The email and API key do not match, or the key was reset in Gorgias. Fix: Re-open Settings, Account, REST API, copy Username and Password (API Key) again, and re-save the PopMCP connection. #### Everything broke right after someone clicked Reset Cause: Reset mints a new key and invalidates the old one immediately. Fix: Copy the new key from the same page and re-save it in PopMCP. #### 403 Forbidden on some endpoints Cause: The Gorgias user behind the key is an agent without admin permissions. Fix: Generate the key from an account owner or admin, or raise that user's role under Settings, Users. #### 404 on every call Cause: Wrong subdomain. The credentials belong to a different Gorgias account. Fix: Check the host in your browser address bar while signed in and use exactly that subdomain. #### 429 Too Many Requests Cause: API-key integrations are limited to 40 requests per 20-second window. Fix: Wait for the number of seconds in the Retry-after header. PopMCP retries automatically. --- ## Helium 10 URL: https://www.docs.popmcp.com/docs/integrations/helium-10/ Summary: Connect Helium 10 to research keywords and products, track keyword ranks, audit and write Amazon listings, and see profit, inventory and ad performance. Nothing is typed into PopMCP. You click Authorize with Helium 10, sign in to Helium 10 and approve PopMCP on Helium 10's consent screen. PopMCP is already a registered Helium 10 client, so there is no API key, developer app or callback URL to set up. The account needs Helium 10's Diamond plan or above. - Auth: OAuth authorization - Setup time: 2 min - API base URL: https://mcp.helium10.com/mcp - Credentials screen: https://members.helium10.com - Provider docs: https://kb.helium10.com/hc/en-us/articles/51580564409883-Getting-Started-with-Helium-10-MCP ### Approval required before this works Helium 10 includes its MCP only with the Diamond plan and above, so PopMCP can connect a Diamond or Enterprise account but not a Platinum one. Nobody at Helium 10 reviews anything: there is no application and no approval wait, only the plan. - Typical wait: None. Once the account is on Diamond or above, connecting takes about 2 minutes. - Cost: Helium 10's pricing page (checked October 2026) lists Diamond at US$359/month, or US$279/month billed annually, and Enterprise at US$1,499/month. Platinum, at US$129/month, does not include the MCP. - Blocked until approved: Everything. On a plan without the MCP the Helium 10 sign-in still succeeds, but Helium 10 offers the account no tools, so PopMCP stops the connect with a message that Diamond is needed. - Works meanwhile: Nothing through PopMCP, because a plan without the MCP gives the connection no tools at all. Once the account is upgraded, clicking Authorize with Helium 10 again is all it takes. ### Before you begin - A Helium 10 account on the Diamond plan or above (Enterprise included). Helium 10 only includes its MCP from Diamond up, so a Platinum account cannot connect - The sign-in for that account at members.helium10.com - Pop-up blockers must allow the Helium 10 authorization window to open - Only if the AI should publish listings to Amazon or change ad campaigns: an owner or admin in PopMCP to allow write actions ### Get your credentials #### 1. Make sure the account is on Diamond or above Decide which Helium 10 account the AI should use and check its plan. The Helium 10 MCP comes with Diamond and Enterprise; Platinum and the plans below it do not have it. On those plans the sign-in still goes through, but Helium 10 gives PopMCP no tools and the connect stops, so upgrade first. Helium 10 lists its plans at helium10.com/pricing. Screen: https://www.helium10.com/pricing/ #### 2. Start the connection from PopMCP Open the Helium 10 connector in PopMCP and click Authorize with Helium 10. There are no fields to fill in: no API key, no developer app and nothing to register. #### 3. Sign in to Helium 10 in the popup The authorization window opens on members.helium10.com. Sign in with the account on Diamond or above. If you have more than one Helium 10 login, use the one with that plan. #### 4. Click Authorize on Helium 10's consent screen Helium 10 then shows a consent screen naming PopMCP and the one permission it asks for, `mcp:tools`. Click Authorize. Helium 10 passes the sign-in back to PopMCP, which checks which tools the account has and finishes the connection. #### 5. Check the connection in PopMCP The Helium 10 card in PopMCP reads Connected. PopMCP mirrors Helium 10's own MCP server live, so the connection has every tool Helium 10 gives this account, grouped into keyword research, product research, Brand Analytics, Keyword Tracker, listings, Listing Builder, Profits, Inventory and Ads. `helium10_list_tools` and `helium10_call_tool` also reach any tool Helium 10 adds after you connect. To cut PopMCP off later, disconnect it here or remove the connected app in Helium 10's Account Settings. ### Scopes requested - mcp:tools ### Verify The Helium 10 card in PopMCP shows Connected. Asking the AI for the connection profile (`helium10_connection_profile`) lists the account's tools by toolset, and asking which keywords one of your ASINs ranks for (`helium10_get_keywords_by_asin`) returns keywords with search volume rather than an authorization error. ### Troubleshooting #### Connect says the Diamond plan is needed, or the account has no Helium 10 tools Cause: The Helium 10 account is below Diamond. Sign-in works on Platinum and lower plans, but Helium 10 gives those accounts no MCP tools, so PopMCP has nothing to mirror and stops the connect. Fix: Upgrade the account to Diamond or Enterprise, or sign in with an account that has one, then click Authorize with Helium 10 again. #### The authorization window never opens Cause: A pop-up blocker is stopping the Helium 10 sign-in window. Fix: Allow pop-ups for PopMCP in your browser and click Authorize with Helium 10 again. #### "Your Helium 10 sign-in has ended..." Cause: Helium 10 signs a connection out after a period of inactivity, and also when PopMCP is removed from the connected apps in Helium 10's Account Settings. Fix: Reconnect Helium 10 in PopMCP. It is one click on Authorize with Helium 10, a sign-in and Authorize; nothing else needs redoing. #### Publishing a listing or changing an ad campaign is held back Cause: Only two Helium 10 tools change anything: helium10_sync_listing_to_amazon, which overwrites the live Amazon listing, and helium10_manage_ads_campaigns, which changes bids and budgets. PopMCP holds both until an owner or admin allows write actions. Fix: Ask an owner or admin to allow write actions for Helium 10 in PopMCP. Drafting with Listing Builder (generate_listing, rewrite_listing_section) changes nothing on Amazon and works without it. --- ## Help Scout URL: https://www.docs.popmcp.com/docs/integrations/help-scout/ Summary: Connect Help Scout to manage conversations, customers, mailboxes, users, workflows, reports, and the docs knowledge base. You paste the App ID and App Secret of a Help Scout My App (the OAuth2 client_id and client_secret) into PopMCP, plus an optional Docs API key if you want the knowledge-base tools. - Auth: API credentials - Setup time: 5 min - API base URL: https://api.helpscout.net/v2 - Credentials screen: https://secure.helpscout.net/apps/ - Provider docs: https://developer.helpscout.com/mailbox-api/overview/authentication/ ### Approval required before this works Help Scout excludes API and integration access from its Free plan, so the account must be on a paid Standard plan or higher before any credentials return data - no human review is involved. - Typical wait: Immediate once the account is on a paid plan - Cost: Standard plan is USD 25 per user per month as listed on Help Scout's pricing page (Plus USD 45, Pro USD 75); higher tiers raise API rate limits and unlock the reporting endpoints - Blocked until approved: On the Free plan the Mailbox API 2.0 and integrations are not available at all (Help Scout's own docs state the Free plan does not include access to the API or integrations), so OAuth tokens cannot read or write conversations, customers, or mailboxes. On Standard the API works at up to 200 calls/minute but the reporting endpoints return nothing - those need Plus (400/min) or Pro (800/min). - Works meanwhile: You can read the docs and write the integration against the documented schema, and on a paid plan the OAuth2 app itself is created instantly with no review. ### Before you begin - A Help Scout account on a paid plan. The free plan has no API access. Standard allows 200 calls per minute, Plus 400, Pro 800. - An active, invited Help Scout user. Credentials must belong to one or the token endpoint returns 401. - For the optional Docs key only, access to the Docs API Keys tab on your Authentication page. ### Get your credentials #### 1. Open Your Profile, then My Apps Sign in at secure.helpscout.net, click your avatar in the top right and choose Your Profile. Click My Apps in the left menu. Screen: https://secure.helpscout.net/apps/ #### 2. Create the app Click Create My App, name it PopMCP, and put any URL into Redirection URL. Click Create. Screen: https://secure.helpscout.net/apps/ #### 3. Copy the App ID and App Secret Open the new app and copy the App ID and the App Secret. These are the OAuth2 `client_id` and `client_secret`. Screen: https://secure.helpscout.net/apps/ #### 4. Optional: copy a Docs API key Only needed for the knowledge-base tools. Open Your Profile, click Authentication in the left menu, select the Docs API Keys tab and copy a key. Screen: https://secure.helpscout.net/users/ #### 5. Paste the values into PopMCP Enter the App ID, the App Secret and, if you have one, the Docs API Key in PopMCP's Help Scout form, then save. ### Fields PopMCP asks for - App ID (appId) [required]: In Help Scout go to Your Profile → My Apps → Create My App (App Type: any; for a redirect URL you can use a placeholder like https://www.google.com; it isn't used). Copy the App ID. It's the OAuth2 client_id. - App Secret (appSecret) [required]: From the same My Apps screen, copy the App Secret (the OAuth2 client_secret). Stored encrypted and used server-side only to mint a short-lived access token. - Docs API Key (optional) (docsApiKey): Optional. Only needed for the knowledge-base (Docs) tools. In Help Scout go to Your Profile → Authentication → API Keys and copy a Docs API key. Leave blank if you don't use Help Scout Docs. ### Verify PopMCP shows Help Scout as Connected and a first tool call returns your inboxes. If you supplied a Docs key, the knowledge-base tools list your Docs collections too. ### Troubleshooting #### 401 Unauthorized on every call Cause: App ID and App Secret do not match, the app was deleted, or the user who owns it is no longer active on the account. Fix: Re-open Your Profile, My Apps, confirm the app still exists, and re-copy both values into PopMCP. #### invalid_client from the token endpoint Cause: A space or newline was pasted with the App Secret. Fix: Re-copy the secret with the copy button instead of selecting the text by hand. #### 403 on Inbox API endpoints Cause: The account is on the free plan, which has no API access. Fix: Move to Standard or above, or connect a different Help Scout account. #### Reporting endpoints return 403 while everything else works Cause: Reporting endpoints are excluded on the Standard plan. Fix: Upgrade to Plus or Pro. #### Docs tools fail while everything else works Cause: Missing or wrong Docs API key. It is a different credential from the App ID and App Secret. Fix: Copy a key from Your Profile, Authentication, Docs API Keys and paste it into the optional field. #### 429 Too Many Requests Cause: The plan rate limit was reached. Write requests count as two calls. Fix: Wait the number of seconds in X-RateLimit-Retry-After, or move to a higher Help Scout plan. --- ## HeyGen URL: https://www.docs.popmcp.com/docs/integrations/heygen/ Summary: Connect HeyGen to generate AI avatar videos, manage avatars and voices, and translate, lip-sync, and template your videos. You paste one value into PopMCP: the HeyGen API key created in Settings, API, which PopMCP sends as the X-Api-Key header. - Auth: API credentials - Setup time: 2 min - API base URL: https://api.heygen.com - Credentials screen: https://app.heygen.com/home?from=&nav=API - Provider docs: https://docs.heygen.com/reference/authentication ### Before you begin - A HeyGen account you can sign into at app.heygen.com - Access to the workspace whose credits PopMCP should spend. Keys are issued per workspace. - Credits or a wallet balance on that workspace. Every render draws the balance down. ### Get your credentials #### 1. Open the API dashboard Sign in at app.heygen.com and open Settings, then API. The direct link is `https://app.heygen.com/home?from=&nav=API`. Screen: https://app.heygen.com/home?from=&nav=API #### 2. Create the key and copy it Click Create new key, name it PopMCP, and copy the value straight away. Screen: https://app.heygen.com/home?from=&nav=API #### 3. Check the key works Run `curl -X GET "https://api.heygen.com/v3/users/me" -H "X-Api-Key: $HEYGEN_API_KEY"`. A 200 with your account details confirms the key is live. #### 4. Paste the key into PopMCP Enter the value in API key on PopMCP's HeyGen form, then save. ### Fields PopMCP asks for - API key (apiKey) [required]: HeyGen dashboard → Settings → API (or Space Settings → API Token). Sent as the X-Api-Key header. Stored encrypted; used server-side only. The connection is locked to this key's account. ### Verify PopMCP shows HeyGen as Connected and the avatar and voice listing tools return your workspace's avatars and voices instead of an authentication error. ### Troubleshooting #### 401 unauthorized Cause: The key was mistyped, truncated, or deleted from Settings, API. Fix: Create a fresh key, copy it with the copy button, and re-save the PopMCP connection. #### You closed the dialog before copying the key Cause: The full value is only shown at creation time. Fix: Delete that key on the API page and create a new one. #### Videos fail with an insufficient-credits error Cause: The workspace behind the key has no remaining credits or wallet balance. Fix: Top up the wallet, or issue a key from a workspace that has credits. #### 429 Too Many Requests Cause: A rate limit was hit, or more than 10 video jobs are running at once on Pay-as-you-go. Fix: Wait for the Retry-After interval, let running renders finish, or ask HeyGen to raise the quota. #### Tools see the wrong avatars Cause: The key was created while a different workspace was selected. Fix: Switch to the correct workspace in app.heygen.com and create a new key there. --- ## HubSpot URL: https://www.docs.popmcp.com/docs/integrations/hubspot/ Summary: Connect HubSpot to manage contacts, companies, deals, tickets, custom objects, pipelines, lists, and marketing. You end up with one HubSpot access token (it looks like pat-na1-…) that you paste into PopMCP's "Private App access token" field. - Auth: API credentials - Setup time: 6 min - API base URL: https://api.hubapi.com - Credentials screen: https://app.hubspot.com/l/legacy-apps - Provider docs: https://developers.hubspot.com/docs/guides/apps/private-apps/overview ### Before you begin - A HubSpot account on any tier, including Free - Super Admin permissions, because only Super Admins can see or create private apps and service keys - A list of the data you want PopMCP to reach, since you tick the scopes yourself and a missing scope fails at call time - Somewhere safe to store the token. It is revealed only behind a Show token click and is treated as a password ### Get your credentials #### 1. Open Legacy apps in HubSpot In the main left sidebar click Development, then click Legacy apps. Screen: https://app.hubspot.com/l/legacy-apps #### 2. Create a private app and name it Click Create legacy app in the top right and choose Private. On the Basic Info tab, name the app `PopMCP`. #### 3. Grant the scopes PopMCP needs Open the Scopes tab and search for the objects you want to reach. Tick at least `crm.objects.contacts.read` and `crm.objects.contacts.write`, plus a write scope for anything PopMCP should change. Screen: https://app.hubspot.com/l/legacy-apps #### 4. Create the app and copy the access token Click Create app in the top right, then Continue creating in the confirmation dialog. On the Auth tab click Show token, then Copy. Screen: https://app.hubspot.com/l/legacy-apps #### 5. Paste the token into PopMCP Open the HubSpot connector in PopMCP and paste the value into Private App access token. Click Connect. ### Fields PopMCP asks for - Private App access token (accessToken) [required]: HubSpot → Settings → Integrations → Private Apps → (create or open an app) → Auth tab → Access token. Grant the scopes for the data you want the MCP to reach. Stored encrypted. ### Verify PopMCP shows HubSpot as Connected with your Hub ID, and asking it for your five most recently created contacts returns real records instead of a scope error. ### Troubleshooting #### 401 Unauthorized on every call Cause: The token was truncated on copy, or the private app was deleted or rotated after you pasted it. Fix: Reopen the app's Auth tab, click Show token then Copy rather than selecting the masked text by hand, and re-paste it into PopMCP. HubSpot does not email or rotate the token on a schedule, so the same value stays valid until you rotate it. #### 403 with MISSING_SCOPES on some tools only Cause: The token authenticated fine but the private app was never granted that object's scope. Fix: Development → Legacy apps → your app → Scopes → Add new scope, tick the missing scope, then Update and Save. The existing token picks up the new scope with no re-copy needed. #### I cannot see Legacy apps or Private apps anywhere Cause: You are not a Super Admin, or your account can no longer create legacy private apps. HubSpot is winding legacy private apps down in favour of account service keys. Fix: Ask a Super Admin to create it, or use the replacement path: Development → Keys → Service keys → Create service key, add the same scopes, then Show and Copy. The resulting pat-na1 token works in the same PopMCP field. #### 429 Too Many Requests during a large sync Cause: You hit the per-app burst limit of 100 to 190 requests per 10 seconds. Fix: Let PopMCP retry, narrow the request, or add the API add-on to raise the ceiling to 200 requests per 10 seconds. --- ## Hunter URL: https://www.docs.popmcp.com/docs/integrations/hunterio/ Summary: Connect Hunter to find and verify professional email addresses, enrich people and companies, and manage your leads and outreach campaigns. One Hunter API key, generated on the API keys page of your Hunter dashboard, pasted into PopMCP's API key field. - Auth: API credentials - Setup time: 2 min - API base URL: https://api.hunter.io/v2 - Credentials screen: https://hunter.io/api-keys - Provider docs: https://hunter.io/api-documentation/v2 ### Before you begin - A Hunter account, including the Free plan with its smaller monthly request allowance - Sign in as the account whose data PopMCP should see, because the connection is locked to that key's account - Enough monthly search and verification credits on the plan for the tools you intend to run ### Get your credentials #### 1. Sign in to Hunter Sign in at hunter.io with the account that owns the data you want PopMCP to reach. Screen: https://hunter.io/users/sign_in #### 2. Open the API keys page Open hunter.io/api-keys from the account menu. Existing keys are listed with their name, masked value and creation date. Screen: https://hunter.io/api-keys #### 3. Generate a key named for PopMCP Click Create a new API key, name it `PopMCP`, then click Create. Copy the value with the Copy button rather than by selecting the text. Screen: https://hunter.io/api-keys #### 4. Paste the key into PopMCP In PopMCP, open the Hunter connector and paste the value into API key. Click Connect. ### Fields PopMCP asks for - API key (apiKey) [required]: Hunter dashboard (hunter.io) → sign in → account menu → API → copy your API key. Stored encrypted; used server-side only (sent as the api_key parameter). The connection is locked to this key's account. ### Verify PopMCP marks the Hunter connector Connected and shows your Hunter account email and remaining monthly credits. A test Domain Search returns email results for the domain you try. ### Troubleshooting #### 401 Unauthorized on every call Cause: The key was mistyped, carries a trailing space, or was deleted from hunter.io/api-keys. Fix: Re-copy the key from hunter.io/api-keys with the copy button rather than by selecting text, then re-save the PopMCP connection. #### Requests succeed but return no emails and no error Cause: Your monthly credits are exhausted, or the domain has no public addresses in Hunter's index. Fix: Check the remaining credits on your Hunter dashboard, then upgrade the plan or wait for the monthly reset. #### 429 Too Many Requests Cause: You crossed a per-endpoint rate limit. Discover is the tightest at 5 requests per second. Fix: Slow the calls down and retry. The limits are per second and per minute, so a short pause clears them. #### Data looks like a different company's Cause: The key belongs to a different Hunter account, such as a personal one rather than the team workspace. Fix: Sign out, sign in as the correct account, generate a fresh key there and reconnect. #### Deleting a key broke another tool Cause: Hunter keys are account-wide and often shared across the browser extension, the Sheets add-on and other integrations. Fix: Keep one named key per integration so you can delete the PopMCP key on its own. --- ## Instagram URL: https://www.docs.popmcp.com/docs/integrations/instagram/ Summary: Connect Instagram to publish posts, reels, stories and carousels, moderate and reply to comments, answer DMs and @mentions, and track account and per-post performance. You end up pasting the Instagram app ID and Instagram app secret from the Business login settings panel, not the Meta App ID shown in App settings. - Auth: OAuth authorization - Setup time: 15 min (plus App Review if non-admins will connect) - API base URL: https://graph.instagram.com - Credentials screen: https://developers.facebook.com/apps - Provider docs: https://developers.facebook.com/docs/instagram-platform/instagram-api-with-instagram-login ### Approval required before this works Meta must grant Advanced Access to the Instagram permissions through App Review, and the owning business must pass Meta Business Verification, before the app can serve any Instagram professional account you do not own. - Typical wait: 2-4 weeks typical end to end; individual review rounds are often a few business days but rejections restart the clock and business verification can add over a week - Cost: Free (Meta charges nothing for App Review or Business Verification, though verification may require official company documents) - Blocked until approved: Until Advanced Access is granted, the app only works for Instagram accounts that hold a role on the app itself. Real customers cannot connect their own accounts - OAuth for outside users fails or returns empty data, so no third-party media reading, publishing, comment moderation, insights, or messaging works in production. - Works meanwhile: Standard Access works immediately: create the app in the Meta App Dashboard, add your own Instagram professional account as an Instagram Tester, and build and test the entire OAuth flow, publishing, comments, insights and messaging against accounts you own or manage. That working demo is exactly what the review submission requires. ### Before you begin - An Instagram professional account (Business or Creator), because personal accounts cannot be connected - A Facebook account registered as a developer at developers.facebook.com - A public Privacy Policy URL, a deauthorize callback URL and a data deletion request URL - App Review approval for instagram_business_content_publish, manage_comments, manage_messages and manage_insights before anyone outside your app roles can connect ### Get your credentials #### 1. Create a Meta app with the Instagram use case At My Apps click Create app, name the app and click Next. Select the Manage messaging and content on Instagram use case and finish the wizard. Screen: https://developers.facebook.com/apps/create/ #### 2. Open API setup with Instagram business login Click Instagram in the left nav and open the API setup with Instagram business login tab. Scroll to 3. Set up Instagram business login and click Business login settings. Screen: https://developers.facebook.com/apps #### 3. Add PopMCP's redirect URI In Business login settings paste PopMCP's callback URL into OAuth redirect URIs. Fill in Deauthorize callback URL and Data deletion request URL, then click Save. Screen: https://developers.facebook.com/apps #### 4. Copy the Instagram app ID and secret into PopMCP Back on API setup with Instagram business login, copy the Instagram app ID and click Show to reveal the Instagram app secret. Paste both into PopMCP. Screen: https://developers.facebook.com/apps #### 5. Request permissions and submit for App Review Open App review and then Permissions and features, and request `instagram_business_basic`, `instagram_business_content_publish`, `instagram_business_manage_comments`, `instagram_business_manage_messages` and `instagram_business_manage_insights`. Complete Verification and Data handling questions, then submit. Screen: https://developers.facebook.com/apps ### Fields PopMCP asks for - Instagram App ID (clientId) [required]: From the Meta App Dashboard: your app → Instagram → "API setup with Instagram business login" → "Set up Instagram business login" → Business login settings. This is the INSTAGRAM App ID, which is different from the Meta App ID at the top of the dashboard. - Instagram App secret (clientSecret) [required]: The Instagram app secret from the same Business login settings panel. Stored encrypted; used server-side only and never shown again. ### Callback URL to register https://app.popmcp.com/api/providers/instagram/callback ### Scopes requested - instagram_business_basic - instagram_business_content_publish - instagram_business_manage_comments - instagram_business_manage_messages - instagram_business_manage_insights ### Verify Saving the credentials opens the Instagram authorization screen. Once you approve, the connector shows your @handle and account type, and the publishing and insights tools appear. ### Troubleshooting #### "Invalid platform app" or the token exchange returns a client_id mismatch Cause: The Meta App ID was pasted instead of the Instagram app ID. Fix: Re-copy the value from Instagram, API setup with Instagram business login, Set up Instagram business login. It is a different number from the one in App settings, Basic. #### "Redirect URI is not supported" Cause: The callback URL is missing from OAuth redirect URIs or differs by a trailing slash. Fix: Paste PopMCP's callback URL into Business login settings exactly as shown and save. #### OAuth succeeds but publishing returns a permission error Cause: instagram_business_content_publish has not passed App Review and the connecting account is not in App roles. Fix: Submit the scope for App Review, or add the Instagram account under App roles while testing. #### "The account is not a professional account" Cause: The Instagram account is still a personal account. Fix: In the Instagram mobile app switch to a Business or Creator account, then reconnect. --- ## Instantly URL: https://www.docs.popmcp.com/docs/integrations/instantly/ Summary: Connect Instantly to run cold email campaigns, add and work leads, reply from the Unibox, warm up sending accounts, and track results. You paste one value into PopMCP: an Instantly API v2 key with the all:all scope, shown once when you create it. An agency's admin-workspace key also reaches every client sub-workspace in its workspace group. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.instantly.ai/api/v2 - Credentials screen: https://app.instantly.ai/app/settings/integrations - Provider docs: https://developer.instantly.ai/getting-started/getting-started ### Approval required before this works No one reviews you, but Instantly only answers API calls for workspaces on a paid plan. Its help center states that API access is available on all Outbound plans, and a workspace without an active paid plan gets HTTP 402 on every call. - Typical wait: None. The API answers as soon as the workspace has an active paid plan. - Cost: Growth, the entry Outreach plan, is listed at $47/month on instantly.ai/pricing, with a lower monthly rate when billed yearly. Hypergrowth ($97/month) and Light Speed ($358/month) cost more; Enterprise is custom. - Blocked until approved: Everything. PopMCP's connect check reads the workspace and gets 402, and every tool call fails the same way until the workspace is on a paid plan. - Works meanwhile: Read the API v2 documentation and plan which workspaces each PopMCP workspace should reach. Agencies can set up the workspace group and have each client accept the invitation, so the picker lists every sub-workspace on the first connect. ### Before you begin - An Instantly workspace on a paid plan. Instantly's help center says API access is available on all Outbound plans, and a workspace without an active paid plan answers API calls with HTTP 402. - Access to the workspace's Settings, Integrations page, where API keys are created - An API v2 key. Instantly deprecated API v1 on January 19, 2026, and v1 keys do not work with v2. - For agencies: the admin workspace of your Instantly workspace group, if one key should reach every client. Only sub-workspaces that accepted the group invitation are listed. ### Get your credentials #### 1. Open API Keys in your Instantly settings Sign in at app.instantly.ai and open Settings, then Integrations. In the left sidebar of the Integrations page, click API Keys. If you run a workspace group, do this while you are in the admin workspace. Screen: https://app.instantly.ai/app/settings/integrations #### 2. Create a key with the all:all scope Click Create API Key. Enter a name such as `PopMCP` (the name is only for display), select the `all:all` scope, and click Create. A narrower key also connects as long as it includes `workspaces:read`, but tools outside its scopes return 403. Screen: https://app.instantly.ai/app/settings/integrations #### 3. Copy the key while it is on screen Copy the key as soon as Instantly displays it. Instantly shows it only once and cannot recover it, so if you close the dialog first, delete that key and create another. Screen: https://app.instantly.ai/app/settings/integrations #### 4. Paste the key into PopMCP and pick the workspace In PopMCP, paste the key into Instantly API key and click Connect Instantly. PopMCP lists the key's own workspace plus every accepted sub-workspace in your workspace group. Tick the workspaces to connect, choose the PopMCP workspace each one goes into, and click the Connect button under the list. ### Fields PopMCP asks for - Instantly API key (apiKey) [required]: Instantly → Settings → Integrations → API Keys → Create API Key, scope all:all (at minimum include workspaces:read). Needs a paid Instantly plan. Stored encrypted and used server-side only. ### Verify PopMCP marks the connection Verified and labels it `Instantly · `. Asking the AI to list your campaigns returns your real campaign names, and the workspace tool reports the workspace's id, name and plan. ### Troubleshooting #### Instantly rejected this API key Cause: Instantly answered 401: the key was cut short when copying, it was deleted in Instantly, or it is an old API v1 key. Fix: Create a new key under Settings, Integrations, API Keys and paste it in full. API v1 keys never work with v2. #### This Instantly workspace has no active paid plan Cause: Instantly answers API calls with HTTP 402 when the workspace has no active paid plan. Fix: Upgrade the workspace to a paid plan in Instantly, then connect again. #### This API key isn't allowed to read your workspace Cause: The key was created without workspaces:read (or a broader scope that includes it), so PopMCP's verify call got 403. Fix: Create a replacement key with the all:all scope, or one that at least includes workspaces:read, and reconnect. #### Some tools work but others return 403 Cause: The key's scopes do not cover those tools. For example a key without emails:create cannot send Unibox replies. Fix: Check the scope named in the failing tool's description, then create a key with all:all and reconnect. #### The picker shows only one workspace Cause: The key belongs to a sub-workspace rather than the admin workspace, it lacks workspace_group_members:read, or the client workspaces have not accepted the group invitation. Fix: Create the key inside the admin workspace with all:all, make sure each client accepted the invitation, and reconnect. #### This API key can no longer act on the selected sub-workspace Cause: The sub-workspace left or was removed from your workspace group, so Instantly refuses the x-as-workspace switch PopMCP sends. Fix: Re-add the sub-workspace to the group in Instantly, then reconnect Instantly in PopMCP and pick it again. #### 429 Too Many Requests Cause: The workspace crossed Instantly's limit of 100 requests a second or 6,000 a minute, which every key in the workspace shares. Listing Unibox emails is throttled further, to 20 requests a minute. Fix: Wait a minute and retry. Ask the AI to filter Unibox reads (unread, received, one campaign) instead of paging through everything. --- ## Intercom URL: https://www.docs.popmcp.com/docs/integrations/intercom/ Summary: Connect Intercom to manage conversations, tickets, contacts, and companies, and publish help center articles and news. You paste the Access Token that Intercom's Developer Hub issues for a private app installed on your workspace, plus the one-word data region (us, eu or au) that workspace is hosted in. - Auth: API credentials - Setup time: 4 min - API base URL: https://api.intercom.io - Credentials screen: https://app.intercom.com/a/apps/_/developer-hub/app-packages - Provider docs: https://developers.intercom.com/docs/build-an-integration/learn-more/authentication ### Before you begin - An Intercom workspace on any plan. The Developer Hub is free. - A teammate account that can create apps in that workspace (Owner or Admin). - Knowing which region hosts your workspace: US, EU or Australia. ### Get your credentials #### 1. Open the Intercom Developer Hub Sign in to Intercom and go to app.intercom.com/a/apps/_/developer-hub. Click Your apps in the sidebar. Screen: https://app.intercom.com/a/apps/_/developer-hub/app-packages #### 2. Create a private app for PopMCP Click New app, type `PopMCP` in the name field, and pick your workspace from the Workspace dropdown. Click Create app. Screen: https://app.intercom.com/a/apps/_/developer-hub/app-packages #### 3. Copy the Access Token In the app sidebar open Configure → Authentication. Copy the value shown under Access Token. Screen: https://app.intercom.com/a/apps/_/developer-hub/app-packages #### 4. Paste the token and region into PopMCP Paste the token into Access token, then set Data region to `us`, `eu` or `au` to match your workspace. Leave the region blank for US. ### Fields PopMCP asks for - Access token (accessToken) [required]: Intercom Developer Hub → Your apps → (create or open an app) → Authentication → Access token. The token carries the permissions set on that app. Stored encrypted. - Data region (us, eu, or au) (region): Where your Intercom workspace is hosted: us (default, api.intercom.io), eu (api.eu.intercom.io), or au (api.au.intercom.io). Tokens only work against their own region's host. ### Verify The Intercom connection flips to Connected in PopMCP and its tools appear. Listing recent conversations returns real records from that workspace. ### Troubleshooting #### 401 Unauthorized on every call Cause: The token belongs to a workspace in a different data region than the one selected, or it was truncated when copied. Fix: Re-copy the whole Access Token from Configure → Authentication, then set Data region to us, eu or au to match your workspace. Each region has its own host: api.intercom.io, api.eu.intercom.io, api.au.intercom.io. #### 403 Forbidden on some endpoints only Cause: The app does not hold the permission that endpoint requires. Fix: Open the app in the Developer Hub, tick the missing read and write permissions, save, then reconnect in PopMCP. #### No Access Token shown on the Authentication page Cause: The app was never installed on a workspace. Fix: Go to Test and publish → Your workspaces and click Install app next to the workspace you want. The token then appears beside it. #### The connection stopped working after someone clicked Regenerate token Cause: Regenerating issues a new Access Token and invalidates the old one. Fix: Copy the new token from Configure → Authentication and update the PopMCP connection. --- ## Jira URL: https://www.docs.popmcp.com/docs/integrations/jira/ Summary: Connect Jira to search, create and update issues, move work through sprints and boards, log time, and handle service desk requests. You enter three values into PopMCP: your Jira Cloud site (yourcompany.atlassian.net), the email you sign in to Atlassian with, and an Atlassian API token, either a classic one or one with scopes. - Auth: API credentials - Setup time: 4 min - API base URL: https://YOUR-SITE.atlassian.net/rest/api/3 - Credentials screen: https://id.atlassian.com/manage-profile/security/api-tokens - Provider docs: https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/ ### Before you begin - A Jira Cloud site on atlassian.net. Jira Server and Jira Data Center are not supported - An Atlassian account that can open Jira on that site. The MCP works as this account and sees only what it can see - Access to the inbox of your Atlassian email: if you sign in with a password or a third-party login, Atlassian emails a one-time code before it lets you create a token - Permission to create API tokens. An organization admin can block them for managed accounts through an authentication policy ### Get your credentials #### 1. Copy your Jira site address Open Jira in your browser and copy the host from the address bar, for example `yourcompany.atlassian.net`. The name on its own (`yourcompany`) is enough for PopMCP. Older sites that still answer on `yourcompany.jira.com` work too. Screen: https://YOUR-SITE.atlassian.net (replace YOUR-SITE with your Jira site) #### 2. Open API tokens in your Atlassian account Go to `id.atlassian.com`, open Security and click Create and manage API tokens, or use the direct link. If Atlassian asks you to verify your identity, enter the one-time code it emails you. Screen: https://id.atlassian.com/manage-profile/security/api-tokens #### 3. Create a classic API token Click Create API token. Name it `PopMCP`, choose an expiry date between 1 and 365 days from today, and click Create. When the token expires, the connection stops working until you paste a new one. Screen: https://id.atlassian.com/manage-profile/security/api-tokens #### 4. Copy the token Click Copy to clipboard in the dialog. Tokens created now start with `ATATT`. Atlassian does not show the token again, so paste it somewhere safe or straight into PopMCP. Screen: https://id.atlassian.com/manage-profile/security/api-tokens #### 5. Or create a token with scopes To limit what the MCP can do, click Create API token with scopes instead. Name it and set its expiry, choose Jira as the app, then tick the scopes the tools need: `read:jira-work` and `read:jira-user` for reading, `write:jira-work` to create and change issues, the Jira Software scopes such as `read:board-scope:jira-software` and `read:sprint:jira-software` for boards and sprints, and `read:servicedesk-request` for service desks. Click Create and copy the token. PopMCP detects a scoped token when you connect and sends it through Atlassian's API gateway, which is the only place Atlassian accepts it. Screen: https://id.atlassian.com/manage-profile/security/api-tokens #### 6. Enter the three values in PopMCP In PopMCP, fill in Jira site with your site address, Atlassian email with the email you sign in to Atlassian with, and API token with the token you copied. Connect, and PopMCP checks the token against your site (and Atlassian's API gateway for a scoped token) straight away. ### Fields PopMCP asks for - Jira site (site) [required]: The address you open Jira at. The name on its own (yourcompany) works too. - Atlassian email (email) [required]: The email you sign in to Atlassian with. The MCP works as this person and sees only what they can see in Jira. - API token (apiToken) [required]: At id.atlassian.com go to Security, then Create and manage API tokens, then Create API token. Name it PopMCP, choose when it expires (a year at most) and copy it. A token with scopes works too: give it the Jira scopes the MCP should use. Stored encrypted. ### Verify PopMCP marks the Jira connection Verified, labelled with your site (yourcompany.atlassian.net) and a note saying which Atlassian user it acts as. For a scoped token it also notes that Jira only allows what the scopes cover. Asking the AI for your open issues returns real issue keys such as PAY-142. ### Troubleshooting #### "Jira rejected that email and API token for yourcompany.atlassian.net." Cause: The email is not the one the Atlassian account signs in with, the token was copied incompletely or has expired, or the account cannot open Jira on that site. Fix: Check the email under **Email** in your Atlassian account, create a fresh token and paste it in one piece, and confirm you can open Jira on that site in your browser. #### "There is no Jira Cloud site at yourcompany.atlassian.net." Cause: The site name is mistyped or belongs to a different Atlassian organization. Fix: Copy the host from your browser's address bar while Jira is open and paste it into **Jira site**. #### "yourcompany.atlassian.net is an Atlassian site, but Jira did not answer there." Cause: The site exists but has no Jira product on it, for example a Confluence-only site. Fix: Use the site where your Jira projects live. Its address is in the browser when you open a Jira board or issue. #### The site address is refused as "not a Jira Cloud site" Cause: The address is a Jira Server or Data Center host, or anything other than an atlassian.net (or older jira.com) site. Fix: This connector works with Jira Cloud only. Enter your site's atlassian.net address. #### Some tools answer 401 while others work Cause: The connection uses a token with scopes, and those tools need a scope it was not given. Fix: Create a new token with the missing scopes (or a classic token) and reconnect Jira with it. #### 403 on a project, board or admin tool Cause: Your Atlassian account lacks the Jira permission that operation needs, such as Browse projects, Administer projects or Jira administrator. Fix: Ask a Jira admin to grant the permission, or connect with the account of someone who has it. jira_describe_tool shows the permission a tool needs. #### There is no way to create an API token, or a working token suddenly stops Cause: Your organization admin blocks API tokens for managed accounts through an authentication policy, or the token reached its expiry date (one year at most). Fix: Ask your Atlassian organization admin to allow API tokens for your account, or create a new token and reconnect. --- ## Jotform URL: https://www.docs.popmcp.com/docs/integrations/jotform/ Summary: Connect Jotform to manage forms, questions, submissions, form properties, reports, folders, and uploaded files. A Jotform API key created on the Account API page, plus the data region your account is hosted in, us, eu or hipaa, both pasted into PopMCP. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.jotform.com - Credentials screen: https://www.jotform.com/myaccount/api - Provider docs: https://api.jotform.com/docs/ ### Before you begin - A Jotform account on any plan, Starter and Free included - Set the key to Full Access if PopMCP should create or edit forms, submissions and folders. Read Access limits it to reads - EU hosted accounts must enter region eu. HIPAA hosting requires an Enterprise HIPAA account and region hipaa ### Get your credentials #### 1. Open the API section of My Account Sign in and go to jotform.com/myaccount/api, or click your avatar, then Settings, then API. Click Create New Key on the right of the page. Screen: https://www.jotform.com/myaccount/api #### 2. Label the key and set it to Full Access Select the new key and give it a label such as `PopMCP`. Open the dropdown in the Permissions column and choose Full Access. Screen: https://www.jotform.com/myaccount/api #### 3. Copy the API key Copy the value from the API Key column for the `PopMCP` row. Screen: https://www.jotform.com/myaccount/api #### 4. Work out your data region Check the host you sign in on. www.jotform.com is region `us`, eu.jotform.com is `eu`, and hipaa.jotform.com is `hipaa`. #### 5. Paste both values into PopMCP In PopMCP, open the Jotform connector, paste the key into API key, then type `us`, `eu` or `hipaa` into Data region. Leave Data region blank to default to `us`. ### Fields PopMCP asks for - API key (apiKey) [required]: Create one at jotform.com → Account → API → Create New Key (https://www.jotform.com/myaccount/api). Give it Full Access for read+write tools, or Read Only to restrict to reads. Stored encrypted. - Data region (us, eu, or hipaa) (region): Where your Jotform account's data is hosted: us (default, api.jotform.com), eu (eu-api.jotform.com), or hipaa (hipaa-api.jotform.com, Enterprise HIPAA accounts). A key only works against its own region's host. Leave as us unless your account is on EU or HIPAA hosting. ### Verify PopMCP marks the Jotform connector Connected and a test call lists the forms on your account under the correct regional host. ### Troubleshooting #### 401 or "Invalid API Key" Cause: The key is correct but you are hitting the wrong regional host. An EU key sent to api.jotform.com will not authenticate. Fix: Set the Data region field to eu, or hipaa, to match where the account is hosted, then reconnect. #### 403 on any create or update Cause: The key's Permissions column is still Read Access. Fix: Go back to jotform.com/myaccount/api, open the Permissions dropdown for that key and switch it to Full Access. #### Requests start failing partway through the day Cause: You hit the plan's daily API call cap, 1,000 calls on Starter and 10,000 on Bronze. Fix: Wait for the counter to reset at midnight EST, or move to a higher plan. #### Forms are missing from the results Cause: The key belongs to a personal account rather than the team or Enterprise account that owns the forms. Fix: Create the key while signed in as the account that owns the forms, or ask the owner to issue one. #### Calls fail from PopMCP but work from your own machine Cause: The key has an IP Restriction set to your address. Fix: Clear the IP Restriction column for that key. --- ## Judge.me URL: https://www.docs.popmcp.com/docs/integrations/judgeme/ Summary: Connect Judge.me to read and moderate product reviews, reply to customers, send review requests, and pull your storefront review widgets. Your Judge.me shop domain in myshopify.com form plus the Private API token, both read off the View API tokens panel in Settings, Integrations. - Auth: API credentials - Setup time: 3 min - API base URL: https://judge.me/api/v1 - Credentials screen: https://app.judge.me/settings/integrations - Provider docs: https://judge.me/help/en/articles/8409180-using-judge-me-api ### Before you begin - A Judge.me account installed on a Shopify store. Judge.me is sunsetting WooCommerce, BigCommerce, Squarespace, Square, Duda and PrestaShop - Access to the Judge.me admin's Settings area, as store owner or a user granted admin permissions - Use the PRIVATE token. The public token is read only and works for widget GET calls ### Get your credentials #### 1. Open Settings, then Integrations From the Judge.me admin, open Settings and then Integrations. Click View API tokens in the top right corner. Screen: https://app.judge.me/settings/integrations #### 2. Copy the Private API token Copy the value labelled Your Private API Token. Do not copy Your Public API Token. Screen: https://app.judge.me/settings/integrations #### 3. Copy the shop domain from the same panel Copy Your Shop domain, shown in `something.myshopify.com` form. Screen: https://app.judge.me/settings/integrations #### 4. Paste both values into PopMCP In PopMCP, open the Judge.me connector, put the domain in Shop domain and the private token in Private API token. Click Connect. ### Fields PopMCP asks for - Shop domain (shopDomain) [required]: The Shop domain shown on the same View API tokens screen, usually in myshopify.com form. Pasting the full URL is fine; it is trimmed to the bare domain. - Private API token (apiToken) [required]: Judge.me admin → Settings → Integrations → View API tokens → copy the PRIVATE token (not the public one, which is read-only for widgets). Stored encrypted and used server-side only. ### Verify PopMCP marks the Judge.me connector Connected and a test review listing returns your store's recent reviews with the right product names. ### Troubleshooting #### 401 or an empty review list Cause: You pasted the public token instead of the private one. Fix: Reopen Settings, Integrations, View API tokens and copy the value labelled Your Private API Token. #### Requests return reviews for the wrong store, or none at all Cause: The shop domain is your custom storefront domain rather than the myshopify.com one Judge.me keys on. Fix: Use the exact Shop domain string shown on the API tokens panel, for example northwind-supply.myshopify.com. Pasting the full URL is fine, PopMCP trims it to the bare host. #### Duplicate reviews appear after one create call Cause: A known Judge.me issue when the cf_answers array is sent with non-empty values. Fix: Omit custom form answers when creating reviews through the API, or leave the array empty. #### Cannot find Settings, Integrations Cause: The store is on a platform Judge.me is sunsetting, or your user has no admin permission. Fix: Ask the store owner to open the page and share the private token, or check Judge.me access and user permissions. --- ## Kajabi URL: https://www.docs.popmcp.com/docs/integrations/kajabi/ Summary: Connect Kajabi to manage contacts, customers, offers, products, courses, orders, purchases, and transactions. You paste the Client ID and Client Secret of a Kajabi User API Key created on Settings, Public API. - Auth: API credentials - Setup time: 6 min - API base URL: https://api.kajabi.com/v1 - Credentials screen: https://app.kajabi.com/admin/settings/public_api - Provider docs: https://help.kajabi.com/api-reference/authentication ### Approval required before this works Kajabi gates the Public API behind billing: the docs state it "is included with the Pro Plan" and is "also available as a $25/mo add-on". - Typical wait: Immediate once the plan or add-on is purchased - Cost: Included on the Pro plan; otherwise a $25/month add-on, per Kajabi's own Public API getting-started doc. - Blocked until approved: Without the Pro plan or the paid add-on, the Settings > Public API screen issues neither the client_id/client_secret used for the OAuth client_credentials call nor a User API Key, so no access token can be minted and every endpoint is unreachable. - Works meanwhile: Nothing on the API side. Kajabi points Growth and Pro users who have not bought the add-on at webhooks, which it says "provide a similar purpose" for outbound event data. ### Before you begin - Kajabi Pro plan, or the Public API add-on at $25/mo enabled by support@kajabi.com on a lower plan - Owner or Subowner role. Only Owners and Subowners can create API keys - A Kajabi account user to attach the key to. The key acts as that user ### Get your credentials #### 1. Check that the Public API is on your plan The Public API ships with the Pro plan and is a $25/mo add-on on every other plan. Email support@kajabi.com to have it switched on. Screen: https://help.kajabi.com/articles/api-integrations/public-api/using-kajabis-public-api #### 2. Open Settings, then Public API Click Settings at the bottom of the left nav, then open Public API. Existing keys are listed under User API Keys. Screen: https://app.kajabi.com/admin/settings/public_api #### 3. Create a User API Key Click Create User API Key, name the key `PopMCP`, and pick the User it acts as. Tick the permissions PopMCP needs and click Create. Screen: https://app.kajabi.com/admin/settings/public_api #### 4. Copy the Client ID and Client Secret Find the new card headed PopMCP on the Public API page and copy Client ID and Client Secret. Screen: https://app.kajabi.com/admin/settings/public_api #### 5. Paste both values into PopMCP Put the Client ID in Client ID and the Client Secret in Client Secret, then click connect. ### Fields PopMCP asks for - Client ID (clientId) [required]: Kajabi → Settings → Public API (app.kajabi.com/admin/settings/public_api) → Create User API Key → copy the Client ID. Do NOT use the API Key under Settings → Account Details (that's the legacy Zapier credential). Only Owners/Subowners can create keys; the Public API needs the Pro plan or $25/mo add-on. - Client Secret (clientSecret) [required]: From the same Create User API Key screen, copy the Client Secret. Stored encrypted and used server-side only to mint a short-lived access token (the OAuth2 client_credentials grant). ### Verify PopMCP marks Kajabi as Connected and resolves your site name. The first call it makes is GET https://api.kajabi.com/v1/me with the minted bearer token. ### Troubleshooting #### 400 or 401 from /v1/oauth/token Cause: The pair is wrong, has been rotated, or you pasted the legacy API Key and API Secret from Settings, Account Details. That older pair is the Zapier credential and does not work against the v1 public API. Fix: Re-copy both values from Settings, Public API. If the key was rotated, every previously issued access token is dead, so paste the new pair. #### 403 insufficient permission to access the resource Cause: The User API Key was created without the permission checkbox that endpoint needs. Fix: Delete the key and create a new one with the missing view: permissions ticked. Permissions on an existing key cannot be edited in place. #### No Public API item under Settings Cause: The account is not on Pro and has no API add-on, or you are signed in below Subowner level. Fix: Ask an Owner to create the key, and email support@kajabi.com to add the $25/mo Public API add-on if you are not on Pro. #### Everything breaks right after someone clicks Rotate Cause: Rotate issues a fresh secret and invalidates every access token minted from the old pair. Fix: Copy the new Client ID and Client Secret from the key card and re-paste them into PopMCP. #### Calls stop working a few hours after connecting Cause: The access token from the client_credentials grant is short-lived and expires. Fix: Nothing to change in PopMCP, which re-mints tokens server-side. If it persists, the key was rotated or deleted in Kajabi. --- ## Kit URL: https://www.docs.popmcp.com/docs/integrations/kit/ Summary: Connect Kit to manage subscribers, tags, and forms, and build sequences, broadcasts, and segments for your audience. You paste one Kit V4 API key, minted under Settings, Developer in the V4 Keys section. - Auth: API credentials - Setup time: 2 min - API base URL: https://api.kit.com/v4 - Credentials screen: https://app.kit.com/account_settings/developer_settings - Provider docs: https://developers.kit.com/api-reference/authentication ### Before you begin - A Kit account, formerly ConvertKit. V4 keys are not plan-restricted - Access to the account's own settings. Keys are per-user, not per-team-member ### Get your credentials #### 1. Open your Developer settings Click Settings at the bottom left of the vertical nav and open Developer. You can also go straight to app.kit.com/account_settings/developer_settings. Screen: https://app.kit.com/account_settings/developer_settings #### 2. Add a new V4 key In the V4 Keys section click Add a new key and name it `PopMCP`. Click Create. Screen: https://app.kit.com/account_settings/developer_settings #### 3. Copy the key before you close the dialog Click Copy in the confirmation dialog and paste the value somewhere safe, then click Done. #### 4. Paste the key into PopMCP Drop the value into API key and click connect. ### Fields PopMCP asks for - API key (apiKey) [required]: In Kit go to Settings → Advanced → (or app.kit.com/account_settings/developer_settings) and create a V4 API key. Paste it here. It's sent as the X-Kit-Api-Key header and stored encrypted; used server-side only. ### Verify PopMCP marks Kit as Connected and the subscriber tools return your list. The first call it makes is GET https://api.kit.com/v4/account. ### Troubleshooting #### 401 Unauthorized on every call Cause: A V3 API key or V3 API secret was pasted instead of a V4 key, or the V4 key was reset after you copied it. Fix: Go back to Settings, Developer, look under V4 Keys rather than the V3 section, and add a new key. #### You closed the dialog without copying the key Cause: Kit reveals the key once, at creation. Fix: Edit the key and click Reset to issue a new value, then paste that into PopMCP. Resetting invalidates the old value immediately. #### 429 Too Many Requests Cause: API-key auth is capped at 120 requests per rolling 60 seconds. Fix: Space out bulk runs, or build a Kit OAuth app if you need the 600 per 60 seconds ceiling. #### 403 on bulk or purchase endpoints Cause: Those routes require OAuth, not an API key. Fix: Use the individual endpoints, or register a Kit app for OAuth access. #### You cannot find Settings in the nav Cause: Kit's vertical navigation moved Settings and the account menu to the bottom left of the screen. Fix: Look at the bottom left, or press the search field at the top of the nav and type Developer. --- ## Klaviyo URL: https://www.docs.popmcp.com/docs/integrations/klaviyo/ Summary: Connect Klaviyo to manage profiles and segments, run email and SMS campaigns and flows, and track customer events. You end up with one Klaviyo private API key (it starts with pk_) that you paste into PopMCP's "Private API key" field. - Auth: API credentials - Setup time: 3 min - API base URL: https://a.klaviyo.com/api - Credentials screen: https://www.klaviyo.com/settings/account/api-keys - Provider docs: https://developers.klaviyo.com/en/reference/api_overview ### Before you begin - A Klaviyo account on any plan, including free - The Owner or Admin role. Klaviyo restricts creating, cloning and deleting private keys to those two roles - A password manager or vault to paste the key into. Klaviyo never shows it again after creation ### Get your credentials #### 1. Open the API keys page in Klaviyo settings Click your account name in the bottom-left corner and choose Settings. Open API keys in the settings menu. Screen: https://www.klaviyo.com/settings/account/api-keys #### 2. Create a private API key Click Create Private API Key and give it a name you will recognise later, such as `PopMCP`. Select Full Access and click Create. Screen: https://www.klaviyo.com/settings/account/api-keys #### 3. Copy the key before you close the dialog Click the copy icon next to the key and paste it straight into your password manager. Click Done to close the dialog. #### 4. Paste the key into PopMCP Open the Klaviyo connector in PopMCP, paste the key into Private API key, and save. ### Fields PopMCP asks for - Private API key (apiKey) [required]: Klaviyo → Settings → API keys → Create a private key. Stored encrypted; never displayed after saving. ### Verify The Klaviyo connector in PopMCP flips to Connected and the tool list loads. Asking for your Klaviyo lists or metrics returns real names from your account. ### Troubleshooting #### 401 Unauthorized on every call Cause: You pasted the public Site ID, a short six-character string, instead of a private key. Or the key was deleted in Klaviyo. Fix: Private keys start with pk_ and are long. Create a fresh private key on the API keys page and paste that. #### 403 Forbidden on some tools only Cause: The key was created with Read-only or Custom Access and is missing the scope that tool needs. Fix: Klaviyo cannot edit scopes after creation. Delete the key and create a new one with Full Access, or with the specific scopes added. #### You closed the dialog without copying the key Cause: Klaviyo displays a private key exactly once. Fix: Delete that key from the API keys page and create a replacement, or use the three-dot menu and Clone to mint a new key with the same name and scopes. #### The API keys page is not visible, or Create Private API Key is greyed out Cause: Only Owner and Admin users can create, clone or delete a private API key. Fix: Ask an Owner or Admin to create the key, or to raise your role under Settings, Users. #### The key works but nothing rotates it Cause: Klaviyo does not expire private keys or email replacements on a schedule. Fix: Rotate on your own cadence. Clone the key, paste the new value into PopMCP, then delete the old key. --- ## Krafto URL: https://www.docs.popmcp.com/docs/integrations/krafto/ Summary: Connect Krafto to search fonts, motion graphics, templates, presets and 3D assets, check formats and licences, and download what you own. One value: a Krafto MCP access token. You create it in Krafto's MCP Dashboard, tick what it may do (search the catalog, read your library, download your assets, and anything more you want the AI to do) and paste it into PopMCP. No developer app, OAuth client or callback URL is involved, and a free Krafto account works. - Auth: API credentials - Setup time: 2 min - API base URL: https://mcp.trykrafto.xyz/mcp - Credentials screen: https://www.trykrafto.xyz/mcp/dashboard - Provider docs: https://www.trykrafto.xyz/docs/auth-scopes ### Before you begin - A Krafto account. The free plan works; paid plans (Krafto Go, Pro and Ultra, from US$5 a month) add more of the catalog to your plan - Access to Krafto's MCP Dashboard at trykrafto.xyz/mcp/dashboard while signed in - Only if the AI should claim free assets, change your wishlist, post reviews, create bundles or buy with your Krafto Wallet: an owner or admin in PopMCP to allow write actions ### Get your credentials #### 1. Open Krafto's MCP Dashboard Sign in to Krafto and open the MCP Dashboard (trykrafto.xyz/mcp/dashboard). This is where Krafto keeps the tokens AI clients use, and where you can revoke one later. Screen: https://www.trykrafto.xyz/mcp/dashboard #### 2. Create a token with the permissions the AI needs Create a new access token and name it `PopMCP`. Under permissions, tick Search catalog, Read your library and Download owned assets; add Account so the AI can see your plan and quota. Only tick claiming free assets, wishlist, reviews, bundles or Wallet spend if you want the AI to do those. Wallet spend lets it buy assets with your Krafto Wallet. #### 3. Copy the token Krafto shows the token once. Copy all of it (it starts with `mcp_live_`) and keep the page open until it is pasted into PopMCP. #### 4. Paste the token into PopMCP Open the Krafto connector in PopMCP, paste the token into Krafto MCP access token and click Connect Krafto. PopMCP checks the token with Krafto's MCP server and loads the tools it may use. #### 5. Check the connection in PopMCP The Krafto card in PopMCP reads Connected, with your Krafto name and plan when the token may read the account. Every tool on Krafto's own MCP server is mirrored as a `krafto_` tool, and a tool Krafto adds later is reachable at once through `krafto_call_tool`. Claims, wishlist, reviews, bundles and wallet purchases wait until an owner or admin allows write actions in PopMCP. ### Fields PopMCP asks for - Krafto MCP access token (accessToken) [required]: In Krafto, open the MCP Dashboard, create an access token, tick the permissions the AI should have, and copy it. Stored encrypted. ### Verify The Krafto card in PopMCP shows Connected. Asking the AI for the connection profile (`krafto_connection_profile`) lists the tools by area with the permission each needs, and asking it to find an asset (`krafto_search_assets`) returns matching assets with prices and formats rather than an authorization error. ### Troubleshooting #### "Krafto did not accept this connection's MCP access token" Cause: The token was revoked, expired, or only part of it was copied. Fix: Create a new token in Krafto's MCP Dashboard, copy all of it (it starts with mcp_live_) and reconnect Krafto in PopMCP. #### "Krafto accepted the token but offers it no tools" Cause: The token was created with no permissions ticked. Fix: Give it at least Search catalog, Read your library and Download owned assets in the MCP Dashboard, or create a new token with them, and connect again. #### A tool answers that the token is not allowed to use it Cause: The token lacks the permission that tool needs (Krafto answers SCOPE_UNAUTHORIZED). Fix: Tick that permission for the token in the MCP Dashboard. krafto_connection_profile lists the permission each tool needs. #### A download link is refused Cause: You do not own the asset, and it is neither free nor included in your plan. Fix: Check krafto_check_entitlement. A free or plan-included asset can be added with krafto_claim_free_asset once write actions are allowed; anything else has to be bought first. #### A download link stopped working Cause: Krafto signs download links for 15 minutes only. Fix: Ask the AI for a fresh link and download it straight away. --- ## Later Influence URL: https://www.docs.popmcp.com/docs/integrations/later/ Summary: Connect Later Influence to pull read-only influencer marketing reports on campaign, creator, and post performance. You paste a clientId and clientSecret that Later issues by hand for the Later Influence Reporting API. There is no self-serve console. - Auth: API credentials - Setup time: 10 min of work, plus a few business days for Later to provision the client - API base URL: https://reporting.api.later.com/v2 - Credentials screen: https://docs.reporting.api.later.com/getting-started - Provider docs: https://docs.reporting.api.later.com/getting-started ### Approval required before this works Later's own team must provision Reporting API credentials for your Later Influence instance; there is no self-serve console that issues a clientId/clientSecret. - Typical wait: not published - Cost: Not published. Later documents no separate API fee, and states no pricing or plan requirement for Reporting API access — confirm commercial terms with your Later account team. - Blocked until approved: Everything. The Reporting API is JWT-based: you exchange a clientId and clientSecret for a bearer token, and Later only hands those out on request, so no endpoint (instances, campaigns, platforms, creators, posts) can be called until they arrive. - Works meanwhile: You can read the public docs at docs.reporting.api.later.com and build/test your client against the documented request and response shapes, but no live call will authenticate. ### Before you begin - A Later Influence subscription, formerly Mavrck. The Reporting API does not exist for Later Social scheduling plans - A named Later account manager or CSM to raise the request with - Reporting API access enabled on your contract. Credentials are issued manually, not generated in-app - Read-only expectations. The API reports on campaigns, creators and posts and cannot publish or schedule ### Get your credentials #### 1. Check that you are on Later Influence Later's only public API is the read-only Later Influence Reporting API, which returns campaign, creator and post analytics. Confirm your plan with your account team before going further. Screen: https://docs.reporting.api.later.com/getting-started #### 2. Ask Later for Reporting API access Email your Later account team, or urvash.chheda@later.com, with the subject Reporting API access. Later provisions an OAuth client by hand and sends back a `clientId` and a `clientSecret`. Screen: https://docs.reporting.api.later.com/getting-started #### 3. Name every instance the client should cover Tell Later which instances, meaning your Later Influence workspaces, PopMCP should read. List all of them in the same email. Screen: https://docs.reporting.api.later.com/authentication #### 4. Test the pair against the token endpoint POST the `clientId` and `clientSecret` as JSON to https://reporting.api.later.com/oauth/token from a terminal. A working pair returns `{ "jwt": "..." }`. Screen: https://docs.reporting.api.later.com/authentication #### 5. Paste the pair into PopMCP Put the values in Client ID and Client secret, then click connect. ### Fields PopMCP asks for - Connection type (connectionType): Later's only public API is the read-only Later Influence Reporting API. It reports on campaign/creator/post analytics; it cannot post or schedule. - Client ID (clientId) [required]: Issued by Later alongside your clientSecret. Request Reporting API access from your Later account manager or urvash.chheda@later.com. - Client secret (clientSecret) [required]: The secret paired with your clientId. Stored encrypted; used server-side only to mint short-lived Bearer tokens. ### Verify PopMCP marks Later Influence as Connected and the instance list populates. The first call it makes is GET https://reporting.api.later.com/v2/instances with a freshly minted JWT. ### Troubleshooting #### 401 with type ANL_00401 Cause: The JWT is invalid, malformed or expired. Tokens last 12 hours. Fix: Re-authenticate against /oauth/token. If it fails immediately after saving, the clientId and clientSecret pair is wrong, so ask Later to re-issue. #### 403 with type ANL_00403 Cause: The credentials are valid but the client is disabled, has no accessible instances, or you asked for an instance outside its set. Fix: Contact your Later account team to enable the client or add the missing instances to it. Instances cannot be added from the Later app. #### 403 on /oauth/token plus a CORS policy or Failed to fetch error Cause: The call was made from a browser. The Reporting API is server-side only and sends no CORS headers. Fix: Test with curl or a backend HTTP client. This is expected behaviour, not an outage. #### 429 Too Many Requests Cause: More than 120 requests from one IP in a 60-second window. Fix: Back off exponentially. The X-Ratelimit-Limit and X-Ratelimit-Window headers on every response tell you where you stand. #### You expected to schedule or publish posts Cause: The Reporting API is read-only analytics for Later Influence. Later Social scheduling has no public API. Fix: Use the Later app for scheduling. PopMCP can only read reporting data. --- ## Lemon Squeezy URL: https://www.docs.popmcp.com/docs/integrations/lemon-squeezy/ Summary: Connect Lemon Squeezy to track sales, refund orders, manage subscriptions, customers, discount codes and license keys, and create checkout links. You paste one value into PopMCP: an API key made under Settings, API in your Lemon Squeezy dashboard. PopMCP then lists the stores the key reaches and you pick the one this connection is for. - Auth: API credentials - Setup time: 2 min - API base URL: https://api.lemonsqueezy.com/v1 - Credentials screen: https://app.lemonsqueezy.com/settings/api - Provider docs: https://docs.lemonsqueezy.com/api ### Before you begin - A Lemon Squeezy account with at least one store - For your real sales, a key made with Test Mode switched off. A key made in test mode sees test data only - No OAuth app, redirect URL or review is needed: the key is the whole setup ### Get your credentials #### 1. Sign in and check Test Mode Sign in at app.lemonsqueezy.com. At the bottom of the sidebar, under your store's name, is the Test Mode switch. A key made while it is on sees only test orders, subscriptions and customers; turn it off first if the AI should work with your real sales. If you run several stores, any one can be open: PopMCP lists every store the key reaches. Screen: https://app.lemonsqueezy.com #### 2. Open Settings, then API In the sidebar open Settings, then API. The page lists your API keys. Click the + button on the right of API keys to make a new one. Screen: https://app.lemonsqueezy.com/settings/api #### 3. Name the key and copy it Type a name you will recognise, such as PopMCP (names cannot be changed later), and submit. Lemon Squeezy shows the new key, a long string that starts with `eyJ`, in a window. Copy it with the copy button before you close the window: it is never shown again. Screen: https://app.lemonsqueezy.com/settings/api #### 4. Paste the key into PopMCP and pick the store In PopMCP, paste the key into API key and connect. PopMCP checks it, then lists every store it reaches. Choose the store for this workspace; to connect another store too, put it in a workspace of its own. ### Fields PopMCP asks for - API key (apiKey) [required]: In Lemon Squeezy open Settings, then API, click the plus button, name the key PopMCP and copy it. Stored encrypted and used only on our servers. ### Verify PopMCP marks the Lemon Squeezy connection Verified with the store's name, and adds (test mode) for a test key. Asking the AI for last month's sales, or for the newest orders, returns them from that store. ### Troubleshooting #### "Lemon Squeezy did not accept this API key. Keys expire after a year and can be deleted: make a new one in Lemon Squeezy, Settings > API, and paste the whole key." Cause: The key was copied only in part, was deleted, or is more than a year old. Fix: Make a new key under **Settings**, **API**, copy the whole key from the window and paste it again. #### "This API key does not reach any store yet." Cause: The account has no store set up yet. Fix: Finish creating a store in Lemon Squeezy, then connect again. #### "This API key no longer reaches the store this connection was made for." Cause: The key was replaced or the store was removed from the account. Fix: Make a key that covers the store and reconnect. #### The AI finds no orders or subscriptions you know exist Cause: The key was made in test mode, so it sees test data only. Fix: Switch Test Mode off, make a new key and reconnect with it. #### "Pass product_id to list variants" Cause: Variants, prices, files, order items and similar records carry no store, so on a store-bound connection they are listed per parent record. Fix: Let the AI find the parent first, for example list_products with include=variants, which returns every variant at once. #### A subscription change has no effect Cause: Subscriptions paid with PayPal cannot be changed through the API. Fix: Send the customer the update link from the subscription (urls.customer_portal_update_subscription) so they make the change in the customer portal. #### Tools fail with 429 Cause: The key made more than 300 requests in a minute (60 a minute for license key checks). Fix: Wait a minute and retry. PopMCP already retries a throttled request once it is allowed. --- ## Linear URL: https://www.docs.popmcp.com/docs/integrations/linear/ Summary: Connect Linear to create, assign, and track issues across projects, cycles, teams, and roadmaps for your software team. You paste one value into PopMCP: a Linear personal API key beginning with lin_api_, shown exactly once when you create it. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.linear.app/graphql - Credentials screen: https://linear.app/settings/account/security - Provider docs: https://linear.app/developers/graphql ### Before you begin - A Linear workspace you are a member of - Permission to create personal API keys. A workspace admin can switch this off for Members under Settings, Administration, API, Member API keys. - Membership of the teams whose issues you want the MCP to reach ### Get your credentials #### 1. Open Security & access in your account settings Press `G` then `S`, or click your workspace name and choose Settings. Under Account, click Security & access and scroll to Personal API keys. Screen: https://linear.app/settings/account/security #### 2. Create a new API key Click New API key and enter a label such as `PopMCP`. Choose Full access or tick individual permissions, set team access, then click Create. Screen: https://linear.app/settings/account/security #### 3. Copy the key while it is on screen Click Copy in the dialog. The value starts with `lin_api_` and Linear does not show it again. Screen: https://linear.app/settings/account/security #### 4. Paste the key into PopMCP In PopMCP, paste the value into API key and click Save. ### Fields PopMCP asks for - API key (apiKey) [required]: In Linear, open Settings → Security & access → "New API key", give it a label, create it, and paste it here. Stored encrypted; used server-side only. The key inherits your workspace permissions and doesn't expire until you revoke it. ### Verify PopMCP marks the Linear connection as Connected and an issue-listing tool returns real issue identifiers such as ENG-142 from the teams the key can reach. ### Troubleshooting #### 401 `Authentication required, not authenticated` Cause: The key was sent with a `Bearer ` prefix, or was pasted incomplete. Fix: Paste the raw `lin_api_` value with no prefix and no surrounding whitespace. Linear expects the bare key in the `Authorization` header and PopMCP sends it that way. #### There is no New API key button Cause: A workspace admin has restricted personal API key creation under Settings, Administration, API, Member API keys. Fix: Ask an admin to allow key creation for Members, or to issue a key on your behalf. #### You are on a page that only lists OAuth applications Cause: You opened the workspace-wide **API** page under **Administration**, which controls who may create keys. Fix: Go to **Account**, **Security & access** instead. Personal keys live there. #### Reads work but creating an issue fails with an access error Cause: The key was created with Read-only permissions, or scoped to a team that does not contain the target issue. Fix: Create a replacement key with Write or Full access and, if needed, All teams. #### 429 Too Many Requests Cause: You crossed the hourly request or GraphQL complexity budget. Quotas are per user and shared across all of that user's keys. Fix: Back off until the rolling hour clears, then request fewer fields or smaller pages per query. #### The key was lost before copying Cause: Linear displays a key only at creation time. Fix: Delete the key from **Security & access** and create a new one. --- ## LinkedIn URL: https://www.docs.popmcp.com/docs/integrations/linkedin/ Summary: Connect LinkedIn to publish posts to your profile and Company Pages, reply to comments, track page and follower analytics, run ad campaigns, and sync leads. You end up pasting the Client ID and Primary Client Secret from the Auth tab of your app in the LinkedIn Developer Portal, plus the list of API products that app has been granted. - Auth: OAuth authorization - Setup time: 15 min for a self-serve app, days to weeks if you need the Community Management or Advertising API - API base URL: https://api.linkedin.com/rest - Credentials screen: https://www.linkedin.com/developers/apps - Provider docs: https://learn.microsoft.com/en-us/linkedin/shared/authentication/authorization-code-flow ### Approval required before this works LinkedIn reviews and vets your app for the Community Management API before it can touch organization Pages or member post/profile analytics, and requires a second Standard-tier review before production volumes; only Sign In with LinkedIn and posting to the signed-in member's own feed are self-serve. - Typical wait: not published by LinkedIn; developers commonly report several days to a few weeks for Development tier and weeks to a few months for Standard tier - Cost: Free - Blocked until approved: Without Community Management approval you cannot read or post on a company Page (r_organization_social, w_organization_social, rw_organization_admin), read Page followers or social actions, or read member post/profile analytics (r_member_postAnalytics, r_member_profileAnalytics). On Development tier the app is capped at 500 API calls per 24h per app and 100 per member per 24h, BATCH_GET is blocked entirely and social-action webhooks are disabled — so it is a build-and-test tier, not production. - Works meanwhile: Yes. Create the app, get client id/secret instantly, and add the self-serve products 'Sign In with LinkedIn using OpenID Connect' and 'Share on LinkedIn' — those are granted immediately and let you run the full OAuth flow, read the member's basic profile and email, and publish/update/delete posts on the signed-in member's own feed via w_member_social. ### Before you begin - A LinkedIn member account that is a Super admin of the LinkedIn Page the app will be associated with - A LinkedIn Page to associate the app with, created first if you do not already have one - A Super admin of that Page available to open the verification link LinkedIn generates - Self-serve products only cover Sign In with LinkedIn using OpenID Connect and Share on LinkedIn, which posts to a personal profile - Posting to a Company Page requires the Community Management API, an approved product that asks for a registered company, a verified Page and a screencast of your integration - Ad campaign tools require Advertising API approval through the LinkedIn Marketing Partner process ### Get your credentials #### 1. Create the app against a LinkedIn Page Go to linkedin.com/developers/apps and click Create app. Enter the App name, pick the LinkedIn Page that owns it, add a Privacy policy URL and a square logo, tick the API Terms of Use box and click Create app. Screen: https://www.linkedin.com/developers/apps/new #### 2. Verify the app with a Page admin Open the Settings tab and click Verify next to the associated Page. Send the generated link to a Super admin of that Page, who opens it and confirms. Screen: https://www.linkedin.com/developers/apps #### 3. Request the API products you need Open the Products tab and click Request access on each product you need. Sign In with LinkedIn using OpenID Connect and Share on LinkedIn are granted straight away, and Community Management API and Advertising API go into review. Screen: https://www.linkedin.com/developers/apps #### 4. Add the PopMCP callback as an authorized redirect URL Open the Auth tab, click the pencil icon on OAuth 2.0 settings, then click Add redirect URL. Paste the callback from the PopMCP connect screen and click Update. Screen: https://www.linkedin.com/developers/apps #### 5. Copy the Client ID and Primary Client Secret Still on the Auth tab, find Application credentials and copy the Client ID. Click Show on the Primary Client Secret, click Copy, and paste both into PopMCP along with your granted products. Screen: https://www.linkedin.com/developers/apps ### Fields PopMCP asks for - Client ID (clientId) [required]: Your LinkedIn app's "Client ID" from linkedin.com/developers/apps → Auth. Add the callback URL above to that app's "Authorized redirect URLs for your app" first. - Client Secret (clientSecret) [required]: The app's Primary Client Secret (same Auth tab). Stored encrypted; used server-side only and never shown again. - API products your app has (products): share, community, advertising ### Callback URL to register https://app.popmcp.com/api/providers/linkedin/callback ### Verify PopMCP shows the LinkedIn connector as Connected with your member name, and the Company Page appears in the account picker if the Community Management API was granted. Access tokens last 60 days, so the connector shows a refresh date roughly two months out. ### Troubleshooting #### 401 with "Redirect_uri doesn't match" Cause: The callback PopMCP sends is not one of the Authorized redirect URLs on the Auth tab. Fix: Paste the exact callback from PopMCP into Auth, OAuth 2.0 settings, then Update. LinkedIn drops query strings, so do not add one. #### 401 "Invalid scope" on the authorization request Cause: PopMCP is asking for a scope your app has not been granted, usually an organization or ads scope. Fix: Check the scopes listed under OAuth 2.0 scopes on the Auth tab, request the matching product on the Products tab, and reconnect once it is approved. #### The Products tab shows everything as unavailable Cause: The app's LinkedIn Page association has not been verified. Fix: Open Settings, click Verify, then have a Super admin of the Page open the generated link. #### Newly granted product does not show its scopes Cause: The Auth tab caches the scope list from the previous page load. Fix: Reload the app page after the product moves to Added. #### Posting to a Company Page returns 403 ACCESS_DENIED Cause: Only Share on LinkedIn is granted, which covers the personal profile. Company Page publishing needs w_organization_social. Fix: Request the Community Management API on the Products tab and reconnect after approval. #### Connection stops working after about two months Cause: LinkedIn access tokens expire in 60 days and programmatic refresh tokens are enabled only for selected partners. Fix: Reconnect the connector in PopMCP to re-run the consent flow. --- ## LinkedIn Ads URL: https://www.docs.popmcp.com/docs/integrations/linkedin-ads/ Summary: Connect LinkedIn Ads to build and edit campaigns and ads, target and size audiences, pull performance and revenue reporting, manage matched audiences, track conversions, and collect leads. You end up pasting the Client ID and Client Secret of a LinkedIn developer app that has been approved for the Advertising API product. - Auth: OAuth authorization - Setup time: 15 min, plus LinkedIn's review of the Advertising API request - API base URL: https://api.linkedin.com/rest - Credentials screen: https://www.linkedin.com/developers/apps - Provider docs: https://learn.microsoft.com/en-us/linkedin/marketing/ ### Approval required before this works LinkedIn must approve your app for the Advertising API (Marketing Developer Platform) before ad account and ad reporting scopes are granted, and a second support-ticket review is needed to move from Development to Standard tier. - Typical wait: not published by LinkedIn; developers commonly report several days to a few weeks for Advertising API access and weeks to a few months for Standard tier or the restricted products - Cost: Free - Blocked until approved: Until Advertising API access is approved your app cannot be granted r_ads, rw_ads or r_ads_reporting, so no campaign data, no ad analytics and no campaign management calls work at all — OAuth will simply refuse to issue those scopes. On the Development tier that follows approval, reading is unlimited for ad accounts you administer but you may create only one test ad account via the API and edit at most five ad accounts; unlimited creation/editing needs Standard tier. - Works meanwhile: You can create the app in the LinkedIn Developer Portal and get client id/secret instantly, run OAuth with the self-serve Sign In with LinkedIn / Share on LinkedIn products, and build against the versioned API docs. Real ad data requires the approval. ### Before you begin - A LinkedIn Page you are a Super admin of. The Developer Portal will not let you create or verify an app without one - A LinkedIn member account with an ad account role of ACCOUNT_BILLING_ADMIN, ACCOUNT_MANAGER, CAMPAIGN_MANAGER or CREATIVE_MANAGER in Campaign Manager - Approval for the Advertising API product, requested from the app's Products tab. Every new app starts on the Development tier - For sponsored or organic posting, the Community Management API product on the same app - Development tier allows edits to only 5 ad accounts. Standard tier is a separate support-ticket request ### Get your credentials #### 1. Create a developer app tied to your LinkedIn Page Open the Developer Portal and choose My apps → Create app. Enter the app name, paste your company's LinkedIn Page URL, add a privacy policy URL and a logo, tick the Legal agreement box, then click Create app. Screen: https://www.linkedin.com/developers/apps/new #### 2. Verify the app from your LinkedIn Page Open the app's Settings tab and click Verify next to the LinkedIn Page. Copy the generated verification URL, open it while signed in as a Super admin of that Page, then click I'm done. Screen: https://www.linkedin.com/developers/apps #### 3. Request the Advertising API product Open the Products tab and click Request access on Advertising API, then complete the access form. Add Community Management API if PopMCP should publish sponsored or organic posts, and Lead Sync API for lead gen forms. Screen: https://www.linkedin.com/developers/apps #### 4. Add the PopMCP callback URL On the Auth tab, click the pencil next to OAuth 2.0 settings → Authorized redirect URLs for your app and use Add redirect URL to paste the callback URL from the PopMCP connect screen. Click Update. Screen: https://www.linkedin.com/developers/apps #### 5. Copy the Client ID and Client Secret Still on the Auth tab, copy Client ID and Primary Client Secret from the Application credentials card into the matching PopMCP fields. Scroll down to OAuth 2.0 scopes and check that `r_ads`, `rw_ads` and `r_ads_reporting` are listed. Screen: https://www.linkedin.com/developers/apps ### Fields PopMCP asks for - Client ID (clientId) [required]: LinkedIn Developer Portal → My apps → your app → Auth → Application credentials. The app needs the Advertising API product (and the Community Management API product if you want to publish sponsored posts). Add the callback URL above to the app's Authorized redirect URLs first. - Client Secret (clientSecret) [required]: Same Auth tab as the Client ID. Stored encrypted, used server-side only, and never sent to the browser or to any tool. ### Callback URL to register https://app.popmcp.com/api/providers/linkedin-ads/callback ### Scopes requested - r_ads - rw_ads - r_ads_reporting - r_basicprofile - r_organization_admin - rw_organization_admin - r_organization_social - w_organization_social - w_member_social - rw_conversions - r_marketing_leadgen_automation - r_events - rw_events ### Verify PopMCP shows the LinkedIn Ads connector as Connected, with your LinkedIn member name and a picker listing the nine-digit ad accounts you administer in Campaign Manager. ### Troubleshooting #### The connect popup dies with "unauthorized_scope_error" Cause: The app has not been approved for a product that grants one of the requested scopes. Usually the Advertising API is still in review, or Community Management was never requested. Fix: Open the app's Auth tab and compare the OAuth 2.0 scopes list against the scopes PopMCP asks for. Request the missing product on the Products tab and reconnect once it flips to Added. #### 401 "Redirect_uri doesn't match" Cause: The callback URL in the app's Auth tab differs from the one PopMCP sends. Often a trailing slash, http instead of https, or a URL typed but never saved with Update. Fix: Re-copy the callback URL from the PopMCP connect screen, paste it verbatim into Authorized redirect URLs, then click Update. #### Reads work but any campaign edit returns a 403 or ACL error Cause: Development tier allows edits on only five ad accounts, and only accounts explicitly mapped to the app. Fix: In the Developer Portal open Products → View Ad Accounts → Add Ad Account and paste the nine-digit ID from Campaign Manager. For unlimited accounts, raise a Standard tier request on the Developer Support Portal with a video of your workflow. #### The connection stops working after about two months Cause: LinkedIn access tokens live 60 days. Refresh tokens are only issued to apps that have programmatic refresh enabled. Fix: Reconnect the connector in PopMCP. For unattended refresh, ask LinkedIn Developer Support to enable programmatic refresh tokens for the app. #### The Products tab shows nothing to request Cause: The app is not verified against its LinkedIn Page. Fix: Open the Settings tab, click Verify, open the generated URL as a Page Super admin, and confirm. #### The app cannot be created because no Page is available Cause: LinkedIn will not issue Advertising API access to an app with no LinkedIn Page behind it, and you must be a Super admin of that Page. Fix: Create or claim the LinkedIn Page first, give yourself the Super admin role on it, then return to My apps → Create app. --- ## LiveChat URL: https://www.docs.popmcp.com/docs/integrations/livechat/ Summary: Connect LiveChat to manage chats and threads, send messages, handle transfers and tags, and read chat and agent reports. You end up pasting the Account ID and the Personal Access Token that the Text Developer Console shows you once, right after you create the token. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.livechatinc.com/v3.6 - Credentials screen: https://platform.text.com/console/settings/authorization - Provider docs: https://platform.text.com/docs/authorization/personal-access-tokens ### Before you begin - A LiveChat account on any plan, including the trial - An agent seat with the Owner or Administrator role. A Personal Access Token can never exceed the permissions of the agent who created it - Every scope picked at creation time. The Console does not let you edit a token's scopes afterwards ### Get your credentials #### 1. Sign in to the Developer Console Open platform.text.com/console and sign in with the same email you use for the LiveChat agent app. Screen: https://platform.text.com/console/ #### 2. Open Personal Access Tokens In the left sidebar go to Settings → Authorization → Personal Access Tokens. On older Console layouts the same screen sits under Tools → Personal Access Tokens. Screen: https://platform.text.com/console/settings/authorization #### 3. Create the token and select every scope Click Create new token +, enter `PopMCP` as the name, and tick every scope in the list. Click Create token +. Screen: https://platform.text.com/console/settings/authorization #### 4. Copy the Account ID and the Personal Access Token Copy Account ID and Personal Access Token into the matching PopMCP fields. If only the Base64 encoded token is visible, paste that into the Personal Access Token field and leave Account ID blank. Screen: https://platform.text.com/console/settings/authorization ### Fields PopMCP asks for - Account ID (accountId) [required]: Developer Console → Tools → Personal Access Tokens → create a token. Copy the "Account ID" shown on that screen. (If you only have the single "Base64 encoded token", paste it into the Personal Access Token field and leave this blank; we'll split it.) - Personal Access Token (pat) [required]: From the same screen, copy the "Personal Access Token". Select all scopes when creating it so no operation is blocked. Sent as HTTP Basic auth (account ID : token) and stored encrypted; used server-side only. ### Verify PopMCP shows the LiveChat connector as Connected and can list your recent chats and the agents on the licence without a 401. ### Troubleshooting #### 401 authentication_error Cause: The Account ID and token are mismatched, or a stray space was copied along with the token. Fix: Re-copy both values. LiveChat authenticates with HTTP Basic using account_id:personal_access_token, so if either half is wrong the whole pair fails. #### Some tools work but others return 403 with a missing-scope message Cause: The token was created with a narrow scope set, and scopes are immutable once the token exists. Fix: Create a new Personal Access Token with all scopes selected, paste it into PopMCP, then delete the old token in the Console. #### You closed the screen before copying the token Cause: The token value is displayed exactly once. Fix: Delete the token in the Console and create a replacement. There is no way to reveal an existing one. #### Agent-scoped calls fail even though the token is valid Cause: A Personal Access Token can never exceed the permissions of the agent who created it, so a token made by a normal agent cannot see other agents' chats. Fix: Recreate the token while signed in as the account Owner or an Administrator. #### The Authorization screen is not in the sidebar Cause: Older Console layouts put Personal Access Tokens under Tools rather than Settings. Fix: Open Tools → Personal Access Tokens, or go straight to platform.text.com/console/tools/personal-access-tokens. --- ## Magento URL: https://www.docs.popmcp.com/docs/integrations/magento/ Summary: Connect Magento to manage products, categories, inventory, orders, invoices, shipments, customers, and sales rules. You end up pasting your storefront URL plus the Access Token that Magento shows once, in the "Integration Tokens for Extensions" dialog, when you activate a new integration. - Auth: API credentials - Setup time: 10 min - API base URL: https:///rest/V1 - Credentials screen: https://store.example.com/admin/admin/integration/ (replace store.example.com with your Magento domain) - Provider docs: https://developer.adobe.com/commerce/webapi/get-started/authentication/gs-authentication-token/ ### Before you begin - Magento Open Source or Adobe Commerce 2.x with an HTTPS storefront - An Admin user whose role includes System → Extensions → Integrations. The Administrators role has it - Your own Admin password. Magento re-prompts for it before saving an integration - Ability to change Stores → Configuration and flush the cache. On 2.4.4 and newer, standalone bearer tokens are off by default ### Get your credentials #### 1. Open the Integrations grid and add a new integration In the Admin sidebar go to System → Extensions → Integrations, then click Add New Integration. #### 2. Name the integration and confirm your password On the Integration Info tab enter a Name such as `PopMCP` and a contact Email. Leave Callback URL and Identity link URL blank, then type your admin password under Your Password. #### 3. Grant resource access on the API tab, then Save Click the API tab and set Resource Access to All, or pick Custom and tick Sales, Catalog, Customers and Marketing. Click Save. #### 4. Activate it and copy the Access Token On the grid, click Activate in the integration's row and confirm with Allow. Copy the Access Token from the Integration Tokens for Extensions dialog, then click Done. #### 5. Allow the token to be used as a standalone bearer token Go to Stores → Settings → Configuration → Services → OAuth → Consumer Settings and set Allow OAuth Access Tokens to be used as standalone Bearer tokens to Yes. Click Save Config, flush the cache, then paste your storefront URL and the Access Token into PopMCP. ### Fields PopMCP asks for - Store URL (baseUrl) [required]: Your storefront base URL (e.g. https://store.example.com). We append /rest/V1 automatically. You can also paste the full REST base and we'll trim it. HTTPS is required. This is the store the MCP is locked to. - Integration Access Token (accessToken) [required]: Magento Admin → System → Extensions → Integrations → Add New Integration → name it, open the API tab and grant resource access → Save → click Activate → copy the "Access Token". ### Verify PopMCP shows the Magento connector as Connected, echoes back your store URL, and a product or order listing tool returns real rows from your catalogue. ### Troubleshooting #### Every call returns 401 "The consumer isn't authorized to access %resources" Cause: Standalone bearer-token use is disabled, which is the default on Magento 2.4.4 and later. Fix: Open Stores → Configuration → Services → OAuth → Consumer Settings, set the standalone Bearer tokens option to Yes, click Save Config, then flush the Magento cache. #### 404 on every endpoint Cause: The store URL was entered with a path already appended, or the store runs on a non-default store code so the REST route is /rest//V1. Fix: Enter only the origin, for example https://store.example.com. If your install uses store codes in URLs, use the store view's base URL so the code resolves. #### 403 on some resources but not others Cause: The integration was saved with Custom resource access and the required tree node was not ticked. Fix: Open System → Extensions → Integrations → Edit → API tab, set Resource Access to All or tick the missing branch, click Save, then click Reauthorize on the grid. #### You clicked Done without copying the Access Token Cause: The Integration Tokens for Extensions dialog is shown only at activation. Fix: Click Reauthorize on the integration row. Magento issues a fresh token set and shows the dialog again. The old token stops working. #### The connection is refused for using http:// Cause: PopMCP requires HTTPS for the store URL. Fix: Put a valid TLS certificate on the storefront and set the secure base URL in Stores → Configuration → General → Web. #### Saving the integration fails with a password error Cause: Magento re-verifies the signed-in admin's identity before writing the integration. Fix: Retype your own admin password in the Your Password field on the Integration Info tab, not the password of the account the integration represents. --- ## Mailchimp URL: https://www.docs.popmcp.com/docs/integrations/mailchimp/ Summary: Connect Mailchimp to manage audiences, members, segments, and tags, and run campaigns, automations, and reports. You end up with a single Mailchimp API key, ending in a data-centre suffix like -us21, that you paste into PopMCP's "API key" field. - Auth: API credentials - Setup time: 3 min - API base URL: https://.api.mailchimp.com/3.0 - Credentials screen: https://admin.mailchimp.com/account/api/ - Provider docs: https://mailchimp.com/developer/marketing/docs/fundamentals/ ### Before you begin - A Mailchimp account on any plan, including Free. - Owner or Admin user level. Manager and below cannot open the API keys page. - Somewhere safe to store the key, because Mailchimp shows it in full only once. ### Get your credentials #### 1. Open the API keys page Click your profile icon in the bottom-left corner and choose Profile, then open the Extras drop-down and pick API keys. The direct link is admin.mailchimp.com/account/api/, which redirects to your data centre. Screen: https://admin.mailchimp.com/account/api/ #### 2. Create a key and name it Click Create A Key, type a name you will recognise later such as `PopMCP`, and click Generate Key. Screen: https://admin.mailchimp.com/account/api/ #### 3. Copy the key before you close the dialog Click Copy Key to Clipboard, store the key somewhere safe, then click Done. Keep the trailing `-us21` style suffix on the end. #### 4. Paste the key into PopMCP Open the Mailchimp connector in PopMCP, paste the whole key including the suffix into API key, and save. ### Fields PopMCP asks for - API key (apiKey) [required]: Mailchimp → Account & billing → Extras → API keys → Create A Key. Copy the key (it ends with your datacenter, e.g. -us21). Stored encrypted. ### Verify The Mailchimp connector in PopMCP flips to Connected and the tool list loads. Asking for your audiences returns your real list names and subscriber counts. ### Troubleshooting #### 401 API Key Invalid Cause: The key was disabled or deleted in Mailchimp, or the user who owned it was removed from the account. Fix: Open Profile → Extras → API keys, create a fresh key, and paste the new value into PopMCP. #### Calls hit the wrong account, or 404 on every endpoint Cause: The data-centre suffix was trimmed when copying, so requests go to the wrong host. Fix: Paste the key exactly as Mailchimp gave it, including the trailing hyphen and data centre such as -us21. #### 429 Too Many Requests Cause: Mailchimp allows only 10 simultaneous connections per key, shared with every other integration and the Mailchimp web app. Fix: Retry after a moment, and give PopMCP a dedicated key so other tools do not eat the connection budget. #### The API keys page is missing from the Extras menu Cause: Your Mailchimp user level is below Admin. Fix: Ask the account Owner or an Admin to create the key, or to raise your user level in Account & billing → Settings → Users. #### The key stopped working after a staff change Cause: Mailchimp keys belong to the user who created them, and removing that user disables their keys. Fix: Have a current Owner or Admin generate a replacement key and paste it into PopMCP. --- ## MailerLite URL: https://www.docs.popmcp.com/docs/integrations/mailer-lite/ Summary: Connect MailerLite to manage subscribers, groups, segments, and custom fields, and build campaigns and automations. You end up pasting a single MailerLite API token, created under Integrations and shown only once. - Auth: API credentials - Setup time: 2 min - API base URL: https://connect.mailerlite.com/api - Credentials screen: https://dashboard.mailerlite.com/integrations/api - Provider docs: https://developers.mailerlite.com/docs/#mailerlite-api ### Before you begin - A MailerLite account on any plan. The API is available on Free and paid plans. - A user who can open the Integrations area of the account - The new MailerLite dashboard at dashboard.mailerlite.com. Tokens from the legacy Classic account do not work with the new API. ### Get your credentials #### 1. Open the API integration Sign in at dashboard.mailerlite.com and click Integrations in the left sidebar. Find the MailerLite API card and click Use next to API. Screen: https://dashboard.mailerlite.com/integrations #### 2. Generate a new token On the API screen, click Generate new token. Screen: https://dashboard.mailerlite.com/integrations/api #### 3. Name the token and set IP restrictions In the Create new API token dialog, type a name such as `PopMCP` in the Name field. Leave Allow any IP address selected, then click Create token. #### 4. Copy the token Click Copy to put the token on your clipboard, or Download to save it as a text file. Do this before you close the dialog. #### 5. Paste the token into PopMCP In PopMCP, paste the value into the API token field and click Save. ### Fields PopMCP asks for - API token (apiToken) [required]: In MailerLite go to Integrations → MailerLite API → Generate new token (give it a name). Copy it immediately. MailerLite shows it only once. It's sent as the Authorization: Bearer header and stored encrypted; used server-side only. ### Verify The MailerLite connector in PopMCP flips to Connected, and listing subscriber groups returns your real group names instead of an error. ### Troubleshooting #### 401 Unauthorized Cause: The token was truncated on copy, has been revoked, or belongs to a legacy MailerLite Classic account. Fix: Generate a fresh token at dashboard.mailerlite.com/integrations/api on the new dashboard and paste the whole string with no surrounding spaces. #### 403 Forbidden from a working token Cause: The token was created with an IP allowlist that does not include PopMCP's egress addresses. Fix: Create a replacement token with **Allow any IP address** selected, then delete the restricted one. #### 429 Too Many Requests Cause: You crossed the 120 requests per minute account limit, or the 5 per minute limit on import endpoints. Fix: Wait for the interval named in the Retry-After header. If a bulk import is running, let it finish first. #### The token screen is empty or missing Cause: You are still in the old MailerLite Classic interface. Fix: Switch to the new dashboard at dashboard.mailerlite.com. The new API lives at connect.mailerlite.com and only accepts tokens minted there. #### You closed the dialog without copying Cause: MailerLite shows the token value once and never redisplays it. Fix: Delete the token from the API tokens list and generate a replacement. --- ## Mailgun URL: https://www.docs.popmcp.com/docs/integrations/mailgun/ Summary: Connect Mailgun to send and schedule email, manage domains, templates, lists and suppressions, validate addresses, and track deliveries and opens. You paste one Mailgun API key. An Account API key reaches every domain in both the US and EU regions; a Domain Sending Key also connects, send-only, when you type its domain in the optional default sending domain field. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.mailgun.net (EU domains: https://api.eu.mailgun.net) - Credentials screen: https://app.mailgun.com/settings/api_security - Provider docs: https://documentation.mailgun.com/docs/mailgun/api-reference/authentication/ ### Before you begin - A Mailgun account with at least one sending domain. A sandbox domain, or a Free plan with no card on file, only delivers to Authorized Recipients until you add a custom domain. - The admin role on the Mailgun account, because only admins can create API keys - If you have several sending domains, the one tools should use when a request doesn't name one, such as mg.example.com - No region to look up: PopMCP finds US and EU domains itself ### Get your credentials #### 1. Open API Security Sign in at `app.mailgun.com` as an admin. Open the profile menu in the top right and choose API Security. Some Mailgun docs show the same page as Account Settings then API keys. Screen: https://app.mailgun.com/settings/api_security #### 2. Add a key with the Admin or Developer role Click Add new key, enter a description such as `PopMCP`, choose a role if your plan offers roles, and click Create Key. Admin reaches every tool. Developer covers everything except API keys, SMTP credentials and users. Analyst is read-only. A key's role can't be changed later, only replaced with a new key. Screen: https://app.mailgun.com/settings/api_security #### 3. Copy the key while it is shown Copy the new key straight away. It looks like 32 hex characters followed by two groups of 8, separated by hyphens. Mailgun shows a role-based key only once, so store it before closing the dialog. Screen: https://app.mailgun.com/settings/api_security #### 4. Check your sending domains Open Domains and note the domain tools should use by default, exactly as it is listed, for example `mg.example.com`. Using a Domain Sending Key instead of an account key? Select the domain, open its sending keys tab and click Add Sending Key; that key can only send mail for its own domain. Screen: https://app.mailgun.com/ #### 5. Paste the key into PopMCP Paste the key into API key. Fill Default sending domain (optional) only if you have several domains or pasted a Domain Sending Key. You never pick a region: PopMCP lists your domains on both the US and EU hosts and sends each call to the domain's own region. ### Fields PopMCP asks for - API key (apiKey) [required]: In Mailgun open API Security (profile menu, or app.mailgun.com/settings/api_security) and click Add new key. Admin unlocks every tool; Developer covers everything except API keys, SMTP credentials and users; Analyst is read-only. Stored encrypted and sent only to Mailgun. - Default sending domain (optional) (domain): Used when a tool isn't told which domain to act on. Leave it empty if you have one sending domain. Fill it in if you paste a Domain Sending Key, which can only send mail for its own domain. ### Verify PopMCP shows Mailgun as Verified with a label such as `Mailgun · mg.example.com (US)`, `Mailgun · 3 domains (US + EU)`, or `(send only)` for a Domain Sending Key. Ask for yesterday's failed deliveries: mailgun_list_events returns real events instead of an authentication error. ### Troubleshooting #### "Mailgun rejected this API key" when connecting Cause: The key was cut short, revoked or expired, it is a Domain Sending Key with no domain typed, or your Mailgun account restricts API access to an IP allowlist. Fix: Create a fresh Account API key under API Security with the Admin or Developer role and paste it whole. For a Domain Sending Key, also fill Default sending domain (optional). #### "That's the Public validation key, which can only validate addresses" Cause: The pubkey-... value was copied instead of an account key. Fix: Copy an Account API key from API Security (Add new key) instead. #### "The domain ... isn't in this Mailgun account" Cause: The default sending domain has a typo, or it is the From domain (example.com) rather than the Mailgun sending domain (mg.example.com). Fix: Copy the domain exactly as Mailgun lists it under Domains, or leave the field empty. #### "This Mailgun tool needs a domain and your account has several" Cause: No default sending domain is set and the request didn't name one. Fix: Tell the AI which domain to use, or reconnect with Default sending domain (optional) filled in. #### Sends from a sandbox domain fail with a message that the domain is not allowed to send Cause: Sandbox domains, and Free plans with no card on file, only deliver to Authorized Recipients. Fix: Add the recipient as an Authorized Recipient in Mailgun, or add and verify a custom sending domain. #### 403 "Valid credentials but access denied" on writes Cause: The key's role is too narrow for that action, for example an Analyst key trying to send or a Developer key managing API keys. Fix: Roles can't be edited. Create a new key with the Developer or Admin role and reconnect. #### "Domain not found" for a domain you know exists Cause: The domain sits in the other region or was created after you connected, and Mailgun's regional hosts don't see each other's domains. Fix: Try again once: PopMCP looks up a new domain's region the first time a tool uses it. If it persists, reconnect so PopMCP re-reads the domain list from both regions. --- ## Meta Ads URL: https://www.docs.popmcp.com/docs/integrations/meta-ads/ Summary: Connect Meta Ads to manage campaigns, ad sets, ads, and creatives, and track insights, audiences, and lead ads. You end up with a never-expiring System User access token from Meta Business settings, and optionally your app's App Secret, to paste into PopMCP. - Auth: API credentials - Setup time: 12 min - API base URL: https://graph.facebook.com - Credentials screen: https://business.facebook.com/settings/system-users - Provider docs: https://developers.facebook.com/docs/marketing-apis/overview ### Approval required before this works Meta must grant your app Advanced Access to the ads_management and ads_read permissions through App Review, and your business must pass Meta Business Verification, before the app can touch ad accounts belonging to people who have no role on your app. - Typical wait: Not published by Meta - there is no stated SLA. Business Verification is commonly reported to take several business days to about two weeks; App Review is often days but developers widely report weeks, especially on resubmission. Treat any figure as community-reported, not vendor-stated. - Cost: Free - Meta charges nothing for App Review or Business Verification; you supply company registration documents. - Blocked until approved: Without Advanced Access you cannot call the Marketing API on behalf of any third-party advertiser: 'Permissions with Standard Access can only be requested from app users who have a role on the requesting app', so every customer you did not add as an app admin/developer/tester returns a permissions error. Business Verification is a hard prerequisite - 'Advanced Access now requires Business Verification'. Separately, the Marketing API Access Tier (renamed from Ads Management Standard Access effective 4 May 2026) starts every app at Limited Access, which caps rate limits and withholds some endpoints until the app qualifies for Full Access. - Works meanwhile: Standard Access is available without review, so you can read and write ads on any ad account where the authorizing user has a role on your app. That covers the whole single-tenant case - your own or your agency's ad accounts - using a user token or a Business Manager system user token, with live data and no review at all. Build and test the entire integration this way. ### Before you begin - Admin role on the Meta business portfolio that owns the ad account. Only admins can create system users or generate their tokens. - A Meta app at developers.facebook.com with the Marketing API product added. - The ad account you want to reach must already be owned by, or shared with, that business portfolio. - Advanced access to ads_management, which usually needs App Review before the token works on ad accounts outside your own business. ### Get your credentials #### 1. Create a system user Open business.facebook.com/settings, pick the business portfolio that owns your ad account, then go to Users → System users and click Add. Name it `PopMCP`, choose the Admin system user role, and click Create system user. Screen: https://business.facebook.com/settings/system-users #### 2. Assign the ad account and the app Select the new system user and click Add assets. Under Ad accounts tick your account, turn on Manage campaigns, and click Save changes. Repeat with the Apps asset type and pick the Meta app whose credentials you will use. Screen: https://business.facebook.com/settings/system-users #### 3. Generate a never-expiring token On the system user, click Generate new token. Select your app, set Token expiration to Never, tick ads_management, ads_read and business_management, then click Generate token. Screen: https://business.facebook.com/settings/system-users #### 4. Copy the token now Click the copy icon in the confirmation dialog and store the token somewhere safe, then click OK. #### 5. Optionally add the App Secret, then paste into PopMCP If your app has Require app secret turned on, open developers.facebook.com/apps → your app → App settings → Basic and click Show next to App secret. In PopMCP paste the token into System User access token, paste the secret into App Secret (optional), and save. Screen: https://developers.facebook.com/apps ### Fields PopMCP asks for - System User access token (accessToken) [required]: Business Settings → Users → System users → (create or open one) → Generate token. Assign the ad account to the system user first, and grant ads_read or ads_management (plus business_management for catalog/business operations). Choose 'never' for expiry. Stored encrypted. - App Secret (optional) (appSecret): App Dashboard → Settings → Basic → App secret. When set, every call carries the computed appsecret_proof. Leave blank unless your app requires it. Stored encrypted. ### Verify The Meta Ads connector in PopMCP flips to Connected and lists your ad accounts by name and act_ id. Asking for last week's campaign spend returns real numbers. ### Troubleshooting #### OAuthException code 190: Invalid OAuth access token Cause: The token was revoked, the system user lost its app assignment, or a short-lived token from the Graph API Explorer was pasted instead of the system user token. Fix: Re-assign the app to the system user in Business settings and generate a fresh token with Token expiration set to Never. #### (#200) Requires ads_management permission Cause: The token was generated before the app had that permission, or only ads_read was ticked. Fix: Generate a new token with ads_management ticked. Permissions are fixed at generation time, so adding them later does not upgrade an existing token. #### (#100) Unsupported get request on act_XXXX Cause: The ad account was never assigned to the system user, or it is owned by a different business portfolio. Fix: Open Business settings → Users → System users → your user → Add assets → Ad accounts, tick the account and turn on Manage campaigns. #### The token never appears after clicking Generate new token Cause: The Meta app was not assigned to the system user, so there is nothing to select in the app dropdown. Fix: Add the app under the Apps asset type first, then generate the token. #### (#17) User request limit reached Cause: Meta's Business Use Case rate limits, which scale with the ad account's spend, have been hit. Fix: Slow down and retry later. The X-Business-Use-Case-Usage response header reports how much of the budget is consumed. #### Invalid appsecret_proof provided Cause: The App Secret belongs to a different app than the one the token was generated for. Fix: Clear the App Secret field, or paste the secret from the exact app you chose in the Generate token dialog. --- ## Microsoft Clarity URL: https://www.docs.popmcp.com/docs/integrations/microsoft-clarity/ Summary: Connect Microsoft Clarity to analyze traffic, engagement time, scroll depth, popular pages, and click quality metrics. You end up pasting one Clarity Data Export API token, a JWT generated by a project Admin under Settings and Data Export. - Auth: API credentials - Setup time: 3 min - API base URL: https://www.clarity.ms/export-data/api/v1 - Credentials screen: https://clarity.microsoft.com/projects - Provider docs: https://learn.microsoft.com/en-us/clarity/setup-and-installation/clarity-data-export-api ### Before you begin - A Microsoft Clarity project with the tracking code installed and collecting sessions - The Admin role on that project. Team members cannot manage API tokens. - The project you want to export open in Clarity. Tokens only return data for the project they were created in. ### Get your credentials #### 1. Open the project you want to export Sign in at clarity.microsoft.com and open the project from My Projects. Check that your role on it is Admin. Screen: https://clarity.microsoft.com/projects #### 2. Go to Settings and Data Export In the project, open Settings and select the Data Export tab. Click Generate new API token. #### 3. Name the token Type a name of 4 to 32 characters using letters, numbers, hyphens, underscores and periods. Spaces and characters such as `@ # $ % & * !` are rejected. #### 4. Copy the token Copy the JWT from the dialog and store it somewhere safe before closing. #### 5. Paste the token into PopMCP Paste the value into PopMCP's API token field and click Save. ### Fields PopMCP asks for - API token (token) [required]: In Clarity, open Settings → Data Export → Generate new API token (project admins only), give it a name, and copy the token. Paste it here. It's stored encrypted. Heads up: Clarity allows only 10 API requests per project per day. ### Verify The Clarity connector in PopMCP shows Connected, and asking for traffic or popular pages for the last day returns real session counts instead of a 401. ### Troubleshooting #### 401 Unauthorized Cause: Token missing, mistyped, expired, or deleted from the Data Export screen. Fix: Generate a new token under Settings and Data Export, then paste the full JWT. It is long, so check nothing was cut off. #### 403 Forbidden Cause: The token is not authorised for the operation, usually because the user who created it was removed from the project. Fix: Have a current project Admin delete the old token and generate a replacement. Microsoft recommends replacing tokens whenever a user loses project access. #### 429 Exceeded daily limit Cause: More than 10 API requests were made against this project in one day. Fix: Wait for the daily quota to reset and keep Clarity queries to a small number of broad requests. #### The Data Export tab is not visible Cause: Your role on the project is Team member rather than Admin. Fix: Ask a project Admin to generate the token, or have them change your role under Settings and Team. #### Fewer rows than expected Cause: Responses are capped at 1,000 rows and cannot be paginated. Fix: Narrow the request with dimensions rather than asking for one broad export. A single call accepts at most three dimensions. --- ## Miro URL: https://www.docs.popmcp.com/docs/integrations/miro/ Summary: Connect Miro to manage boards and sharing, and create sticky notes, shapes, text, cards, frames, and connectors. You end up pasting the Client ID and Client secret of a Miro app you create in your own Developer team. - Auth: OAuth authorization - Setup time: 6 min - API base URL: https://api.miro.com/v2 - Credentials screen: https://miro.com/app/settings/user-profile/apps - Provider docs: https://developers.miro.com/docs/getting-started-with-oauth ### Before you begin - A Miro account. The Free plan is enough to create an app. - A Developer team. Miro creates one at no cost the first time you build an app. - An Enterprise plan if you need the organizations:read and organizations:teams:read scopes - PopMCP's callback URL copied, ready to paste as the app's redirect URI ### Get your credentials #### 1. Open Your apps Click your avatar in the top right, choose Settings, then open the Your apps tab. Click + Create new app. Screen: https://miro.com/app/settings/user-profile/apps #### 2. Name the app and enable expiring tokens In the Create new app modal, type `PopMCP` in App name and tick Expire user authorization token. Click Create app. #### 3. Add the redirect URI On the app settings page, scroll to Redirect URI for OAuth2.0, paste PopMCP's callback URL and click Add. The URI must match what PopMCP sends, character for character. #### 4. Tick the permission scopes Scroll to Permissions and tick `boards:read`, `boards:write`, `identity:read` and `team:read`. Leave the `organizations:*` boxes clear unless your account is on Enterprise. #### 5. Copy the Client ID and Client secret Open App Credentials on the same page and copy Client ID and Client secret into the matching PopMCP fields. Save, then run the connect flow. Screen: https://miro.com/app/settings/user-profile/apps ### Fields PopMCP asks for - Auth type (connectionType): Create an app at miro.com/app/settings → "Create new app". Keep "Expiring token" enabled (the default) so access refreshes automatically, and enable the boards:read + boards:write scopes (plus organizations/teams scopes for Enterprise admin). - Client ID (clientId) [required]: Your app's "Client ID" from its App settings page on miro.com. - Client secret (clientSecret) [required]: Your app's "Client secret" from its App settings page. Stored encrypted; used server-side only and never shown again. ### Callback URL to register https://app.popmcp.com/api/providers/miro/callback ### Scopes requested - boards:read - boards:write - identity:read - team:read - team:write - organizations:read - organizations:teams:read ### Verify After the OAuth redirect completes, PopMCP shows the Miro connector as Connected with your Miro name attached, and asking it to list boards returns the boards in your team. ### Troubleshooting #### redirect_uri_mismatch during the connect flow Cause: The redirect URI on the Miro app does not exactly match the callback URL PopMCP sends. Fix: Re-copy PopMCP's callback URL and add it verbatim under Redirect URI for OAuth2.0. Scheme, host, path and any trailing slash all have to match. #### The connection stops working after about an hour Cause: The app was created without Expire user authorization token ticked, so Miro never issued a refresh token. Fix: That checkbox is fixed at creation time and cannot be edited afterwards. Create a new app with it ticked, move the redirect URI and scopes over, then reconnect. #### Authorisation fails when organizations scopes are requested Cause: The organizations:read and organizations:teams:read scopes are Enterprise only. Fix: Untick those scopes under Permissions unless your Miro account is on Enterprise, then reconnect. #### The app does not appear in your normal team Cause: Apps are created inside a Developer team, which is separate from your working team. Fix: Install the app to the team whose boards you want to reach using Install app and get OAuth token. #### 429 Too Many Requests on bulk board edits Cause: The app hit Miro's per-minute credit ceiling. Fix: Slow the run down and batch item creation. Creating or updating an item is a Level 2 call at 100 credits and 1,000 per minute, and deleting one is Level 3 at 500 credits and 200 per minute. --- ## Mixpanel URL: https://www.docs.popmcp.com/docs/integrations/mixpanel/ Summary: Connect Mixpanel to run segmentation, funnels, and retention, look up profiles, and export and ingest event data. A Mixpanel service account username and secret, the numeric project ID and your data region, plus an optional project token and GDPR OAuth token. - Auth: API credentials - Setup time: 6 min - API base URL: https://mixpanel.com/api - Credentials screen: https://mixpanel.com/settings/org#serviceaccounts - Provider docs: https://developer.mixpanel.com/reference/service-accounts ### Approval required before this works No one reviews anything, but Mixpanel's Query API (funnels, insights, segmentation, retention, profile event activity) is sold only with the Growth or Enterprise plan - a Free-plan project cannot call it however valid the service account is. - Typical wait: None - upgrading is self-serve in Mixpanel's billing settings and takes effect immediately - Cost: Mixpanel does not publish a flat price for Query API access. The Free plan covers up to 1M events/month and excludes the Query API. Growth is usage-based, advertised as 'Starts at $0' and priced by monthly event volume - use Mixpanel's own pricing calculator on mixpanel.com/pricing for a figure, since the published rate changes. Enterprise is custom-quoted by sales. - Blocked until approved: On the Free plan the Query API endpoints are not included in the plan, so you cannot programmatically pull formatted report data - Insights, Funnels, Retention, Segmentation or profile event activity. Mixpanel's docs state plainly that 'Users with a Growth or Enterprise plan can use our Query API to export formatted report data.' Free users are left exporting reports from the UI. Free does include ingestion and raw export API access. - Works meanwhile: Everything else works on Free with a service account created in seconds: event ingestion via the /track and /import endpoints, the Raw Event Export API, the Engage (user profiles) API, Lexicon/schema endpoints and the Identity APIs - the Free plan's feature list includes 'Ingestion & export API access'. If your connector only needs raw events and profiles, nothing is gated. ### Before you begin - Mixpanel account with Owner or Admin permissions on the organization, because Analysts and Consumers cannot create service accounts - The project you want PopMCP to read, since the connection is locked to one project ID - Know your data residency: US by default, or EU or India ### Get your credentials #### 1. Open Organization Settings and the Service Accounts tab Click the gear icon at the bottom of the left nav and choose Organization Settings, then select Service Accounts from the settings menu. EU residency orgs do this on `eu.mixpanel.com` and India orgs on `in.mixpanel.com`. Screen: https://mixpanel.com/settings/org#serviceaccounts #### 2. Add the service account Click Add Service Account, name it `popmcp`, and pick an Organization Role. Tick the projects it may reach and leave Expiration empty. #### 3. Copy the username and secret Copy both the generated username and the secret before you close the dialog. The username ends in `.mp-service-account`. #### 4. Find the numeric project ID Open Project Settings and read the Project ID on the Overview tab. It is also the number in any Mixpanel URL, such as `mixpanel.com/project/3210987/`. Screen: https://mixpanel.com/settings/project #### 5. Copy the Project Token only if PopMCP will write events Open Project Settings and the Access Keys tab, then copy the Project Token. Skip this step if PopMCP only queries data. Screen: https://mixpanel.com/settings/project #### 6. Paste everything into PopMCP Enter the username, secret and project ID, then set Region to `us`, `eu` or `in`. Leave GDPR OAuth Token blank unless you need the data deletion and retrieval endpoints. ### Fields PopMCP asks for - Service Account username (serviceAccountUsername) [required]: Mixpanel → Organization Settings → Service Accounts → Create. You must be an Owner or Admin. Choose the role + projects it can access. Copy the username shown after creation. Stored encrypted. - Service Account secret (serviceAccountSecret) [required]: Shown only once when the service account is created, so save it immediately. If you lost it, delete the service account and create a new one. Stored encrypted. - Project ID (projectId) [required]: The numeric project id. Find it in Mixpanel → Project Settings → Overview (or in any Mixpanel URL: mixpanel.com/project//…). The connection is locked to this one project. - Data region (us, eu, or in) (region): Where your Mixpanel data is hosted: us (default), eu (EU Data Residency), or in (India Data Residency). Requests must hit the matching regional host. Pick wrong and calls 401/return no data. - Project Token (optional) (projectToken): Optional. Project Settings → Access Keys → Project Token. Only needed to send live events/profiles (track, engage, groups) or evaluate feature flags. It's auto-injected so those tools work without you passing it. Batch /import works with just the service account. Stored encrypted. - GDPR OAuth Token (optional) (oauthToken): Optional. Only the GDPR API (data deletions & retrievals) requires this. It uses an OAuth bearer token (Organization Settings → generate a GDPR/OAuth token), not the service account. Leave blank if you don't need GDPR endpoints. Stored encrypted. ### Verify PopMCP shows the connector as Connected and names your project, and a test segmentation query returns event counts rather than a 401 Invalid credentials error. ### Troubleshooting #### 401 Invalid credentials Cause: Wrong regional host, or the username was pasted without its full .mp-service-account suffix. Fix: Copy the whole username string and set Region to us, eu or in to match the project's residency. #### Queries succeed but return no data Cause: The credentials are valid but aimed at the wrong regional host, so the project looks empty. Fix: Check whether you sign in at mixpanel.com, eu.mixpanel.com or in.mixpanel.com and set Region to match. #### 403 on one specific project Cause: That project was not ticked under Granted Projects when the service account was created. Fix: Delete and recreate the service account with the project selected, or create a project-level service account instead. #### You lost the secret Cause: Mixpanel displays the secret only on the creation dialog. Fix: Delete the service account under Organization Settings, Service Accounts, and create a new one. #### Ingestion tools fail with a missing token error Cause: The track, engage and groups endpoints need the Project Token, which is a separate credential. Fix: Copy the Project Token from Project Settings, Access Keys, into the optional Project Token field. #### Credentials stopped working after a few months Cause: An expiration date was set when the service account was created. Fix: Create a replacement service account with no expiration and rotate it on your own schedule. #### The Service Accounts tab is not visible Cause: Your organization role is below Admin. Fix: Ask an Owner or Admin to create the service account and hand you the username and secret. --- ## monday.com URL: https://www.docs.popmcp.com/docs/integrations/monday/ Summary: Connect monday.com to manage boards, groups, items, and columns, post updates, and run automations for your team. You paste one value into PopMCP: your monday.com personal API token, a long JWT-style string copied from the Developer Center. The API version box is optional and can stay blank. - Auth: API credentials - Setup time: 2 min - API base URL: https://api.monday.com/v2 - Credentials screen: https://YOUR-ACCOUNT.monday.com/apps/manage/tokens (replace YOUR-ACCOUNT with your monday.com account) - Provider docs: https://developer.monday.com/api-reference/reference/about-the-api-reference ### Before you begin - A monday.com account on any plan, including Free - The token mirrors your own UI permissions. You must already be able to see the boards you want the MCP to read or write. - Account admins can read the same token from Administration, Connections, Personal API token ### Get your credentials #### 1. Open the Developer Center Click your profile avatar in the top-right corner and choose Developers. The Developer Center opens in a new tab at `https://.monday.com/apps/manage/`. Screen: https://YOUR-ACCOUNT.monday.com/apps/manage/tokens (replace YOUR-ACCOUNT with your monday.com account) #### 2. Open the API token tab In the Developer Center left menu, click API token under API. Screen: https://YOUR-ACCOUNT.monday.com/apps/manage/tokens (replace YOUR-ACCOUNT with your monday.com account) #### 3. Reveal and copy the token Click Show, then select and copy the entire string. It is a long JWT value with two dots in it. Screen: https://YOUR-ACCOUNT.monday.com/apps/manage/tokens (replace YOUR-ACCOUNT with your monday.com account) #### 4. Paste it into PopMCP Paste the value into API token in PopMCP and click Save. Leave API version blank. ### Fields PopMCP asks for - API token (apiToken) [required]: In monday.com, click your avatar (bottom-left) → Developers → "My access tokens" → copy your token. Stored encrypted; used server-side only. The token doesn't expire and inherits your account permissions. - API version (optional) (apiVersion): ### Verify PopMCP reports the monday.com connection as Connected and a board listing tool returns your real board names. The underlying `me { id name }` query resolves to your monday user. ### Troubleshooting #### There is no Developers option in the avatar menu Cause: Your role does not expose the Developer Center on this account. Fix: Ask an account admin to read the value from **Administration**, **Connections**, **Personal API token**. #### 401 with `Not Authenticated` or `ApiKey is invalid` Cause: A partially copied token, or a stale one after somebody clicked **Regenerate**. Fix: Reveal the token again in the Developer Center, copy the entire string, and re-save it in PopMCP. #### `ComplexityException` or complexity budget exhausted Cause: GraphQL queries burned through the per-minute complexity points for your plan. Fix: Wait the number of seconds in `retry_in_seconds`, then ask for fewer columns or fewer items per page. #### Daily call limit reached Cause: Free, Basic and Standard accounts are capped at 1,000 API calls per day, resetting at midnight UTC. Fix: Wait for the reset or upgrade the monday plan. Pro and Enterprise get much larger soft limits. #### A field or argument suddenly errors Cause: The default API version rolled forward to a newer quarterly release with a breaking change. Fix: Set the optional **API version** field in PopMCP to the dated version your workflow was built against. --- ## Moz URL: https://www.docs.popmcp.com/docs/integrations/moz/ Summary: Connect Moz to check Domain Authority and Spam Score, explore backlinks and referring domains, research keywords, and manage your local listings. One Moz API token, created on the API Tokens & Quotas tab of the Moz API dashboard and pasted into PopMCP's API token field. PopMCP sends it as the x-moz-token header. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.moz.com/jsonrpc - Credentials screen: https://moz.com/api/dashboard - Provider docs: https://moz.com/api/docs/guides/getting-started ### Before you begin - A Moz account signed in at moz.com - A Moz API subscription. The Moz API is billed separately from Moz Pro, and even the free tier of 50 rows a month needs a valid, non-expired credit card on file - Room for another token. An account can hold at most 5 active API tokens at a time ### Get your credentials #### 1. Open the Moz API dashboard Sign in at moz.com and open moz.com/api/dashboard. The page lands on the API Tokens & Quotas tab, under the breadcrumb Home / Subscriptions API / Tokens & Quotas. Screen: https://moz.com/api/dashboard #### 2. Add a token Click + Add Token, type a description such as `PopMCP`, then click Create. Screen: https://moz.com/api/dashboard #### 3. Copy the token Copy the whole token from the new row with its copy control rather than selecting the text by hand. #### 4. Paste it into PopMCP Paste the token into PopMCP's API token field and connect. ### Fields PopMCP asks for - API token (apiToken) [required]: Moz API dashboard (moz.com/api/dashboard) → sign in → generate a token → copy it. Each account can hold up to 5 tokens. Stored encrypted; used server-side only (sent as the x-moz-token header). The connection is locked to this token's account. ### Verify PopMCP marks Moz as Connected, and asking it for the Domain Authority of a domain you know returns a DA and Spam Score rather than an authentication error. ### Troubleshooting #### "Missing or invalid authentication" (JSON-RPC error -32651, HTTP 401) Cause: The token was truncated on copy, has been deleted in the Moz dashboard, or belongs to a different Moz account. Fix: Re-open moz.com/api/dashboard, view the token there, copy the whole string with the copy control, then re-paste it into PopMCP. Generate a fresh token if the old one is gone. #### Calls authenticate but every metric comes back empty or zero Cause: The Moz account has no API rows left, or the plan never included API access. Authentication and quota are separate checks. Fix: Open the Usage Reporting tab on the API dashboard, then top up or upgrade the API plan before retrying. #### The + Add Token button will not create another token Cause: The account already holds the maximum of 5 active tokens. Fix: Delete a token you no longer use, after confirming nothing else depends on it, then create the new one. Deletion is immediate and breaks anything still calling with that token. #### You want to rotate the token without downtime Cause: Deleting a token takes effect straight away. Fix: Create the replacement first, paste it into PopMCP, confirm the connection still works, then delete the old token. --- ## n8n URL: https://www.docs.popmcp.com/docs/integrations/n8n/ Summary: Connect n8n to build, edit, run and debug workflows, manage executions, credentials, tags and data tables, and publish automations. You give PopMCP your n8n URL plus an n8n API key, an instance-level MCP access token, or both. Either token works alone; with both you get the full n8n API and n8n's own MCP builder tools. - Auth: API credentials - Setup time: 5 min - API base URL: https://YOUR-INSTANCE.app.n8n.cloud/api/v1 - Credentials screen: https://YOUR-INSTANCE.app.n8n.cloud/settings/api (replace YOUR-INSTANCE with your n8n instance) - Provider docs: https://docs.n8n.io/api/authentication/ ### Approval required before this works Only n8n Cloud is gated: n8n switches the public API off during the Cloud free trial, so an n8n API key needs a paid Cloud plan. Self-hosted n8n includes the API, and the instance-level MCP access token works during a trial too. - Typical wait: None. The n8n API page offers Create API key as soon as the Cloud plan is paid. - Cost: n8n's pricing page lists Cloud Starter at €20/month and Pro at €50/month, billed annually. Self-hosted instances are not gated. - Blocked until approved: Every n8n API tool on a Cloud trial: workflows, executions, credentials, tags, variables, projects, data tables and users. The trial's Settings, n8n API page shows Upgrade to use API instead of a key list. - Works meanwhile: Connect with just the n8n URL and an MCP access token from Settings, Instance-level MCP. n8n's own MCP tools (node search, node settings, validation and test runs) work during the trial; add an API key after upgrading. ### Before you begin - An n8n instance PopMCP can reach over public https: n8n Cloud, or a self-hosted n8n behind a domain with a certificate. Local and private-network addresses are refused. - For the n8n API key: a paid n8n Cloud plan or a self-hosted instance. n8n switches the public API off during the Cloud free trial, and a self-hosted instance must not set N8N_PUBLIC_API_DISABLED=true. - An n8n user who is allowed to create API keys. Without that permission n8n disables the Create API key button. - For the optional MCP access token: an n8n version with Settings, Instance-level MCP, and the instance owner or an admin to switch on MCP access. ### Get your credentials #### 1. Open Settings, n8n API Sign in to your n8n, open Settings and click n8n API. On n8n Cloud the address looks like `https://YOUR-INSTANCE.app.n8n.cloud/settings/api`. Screen: https://YOUR-INSTANCE.app.n8n.cloud/settings/api (replace YOUR-INSTANCE with your n8n instance) #### 2. Create a key that never expires Click Create API key. Enter a Label such as `PopMCP` and set Expiration to Never so the connection does not lapse. If your plan shows Scopes, choose All for every tool, or Read only for a look-only AI. Click Save. Screen: https://YOUR-INSTANCE.app.n8n.cloud/settings/api (replace YOUR-INSTANCE with your n8n instance) #### 3. Copy the API key n8n shows the full key once, in the API key created successfully dialog. Copy it, then click Done. Screen: https://YOUR-INSTANCE.app.n8n.cloud/settings/api (replace YOUR-INSTANCE with your n8n instance) #### 4. Optional: turn on instance-level MCP and copy its token Open Settings, Instance-level MCP and click Enable MCP access (owner or admin only). Under Connection details click Connect, switch to the API key tab, and copy the access token, or the whole Configuration JSON. Skip this step if you only want the n8n API tools. #### 5. Fill in the three fields in PopMCP In PopMCP, put the address you open n8n at into n8n URL (any page of your n8n works). Paste the key into n8n API key and, if you made one, the token or Configuration JSON into MCP access token (optional). Click Connect n8n. If the two tokens land in the wrong boxes, PopMCP routes each to the right place. ### Fields PopMCP asks for - n8n URL (instanceUrl) [required]: The address you open n8n at. Copying any page from your browser's address bar works. Self-hosted n8n needs a public https address. - n8n API key (apiKey): In n8n go to Settings, then n8n API, then Create an API key. Set Expiration to Never and copy the key. This covers the full n8n API: workflows, executions, credentials, tags, variables, projects, folders, data tables and users. Not available on n8n Cloud's free trial. - MCP access token (optional) (mcpToken): In n8n go to Settings, then Instance-level MCP, and select Enable MCP access. Then open Connect, switch to the API key tab and copy the token. Adds n8n's own tools for finding nodes, reading their exact settings, validating and testing workflows. ### Verify PopMCP shows n8n as Verified, labelled with your instance host and, when it can read your user, your email, for example `acme.app.n8n.cloud (dana@acme.com)`. Asking the AI to list your workflows returns your real workflow names, and with an MCP token the n8n_mcp_ tools appear too. ### Troubleshooting #### The n8n API page says Upgrade to use API Cause: n8n limits API access during the n8n Cloud free trial. PopMCP reports this as n8n refusing the API key. Fix: Connect with only the n8n URL and an MCP access token for now, or upgrade the Cloud plan and then create the API key. #### n8n rejected the API key Cause: n8n answered 401: the key expired, was deleted, or was copied incompletely. Fix: Create a new key under Settings, n8n API with Expiration set to Never and reconnect. #### No n8n API answered at your URL, or the URL is n8n's website Cause: The n8n URL points at the wrong place (n8n.io, app.n8n.cloud's account portal, or a typo), or a self-hosted instance sets N8N_PUBLIC_API_DISABLED=true. Fix: Copy the address bar while you are inside your n8n (on Cloud it looks like `https://YOUR-INSTANCE.app.n8n.cloud`), and make sure the public API is not disabled. #### PopMCP can only reach n8n on the public internet over https Cause: The URL is localhost, a private IP or plain http, which PopMCP refuses for safety. Fix: Use n8n Cloud, or publish your self-hosted n8n at a public https address through a reverse proxy or tunnel with a certificate. #### MCP access is turned off on this n8n instance Cause: n8n answered 404 `MCP access is disabled`: nobody has switched on instance-level MCP. Fix: Ask the instance owner or an admin to open Settings, Instance-level MCP and click Enable MCP access, then reconnect. #### n8n rejected the MCP access token Cause: Someone generated a new token on the API key tab, which revokes the previous one. Fix: Copy the current token from Settings, Instance-level MCP, Connect, API key and reconnect n8n in PopMCP. #### The AI cannot run or edit a workflow through the n8n_mcp_ tools Cause: n8n's MCP server only exposes workflows with Available in MCP switched on. Fix: In the workflow editor open the workflow menu, choose Settings and turn on Available in MCP, or let the AI use the n8n API tools, which reach every workflow. --- ## Netlify URL: https://www.docs.popmcp.com/docs/integrations/netlify/ Summary: Connect Netlify to publish and roll back sites, trigger builds, manage environment variables, forms, domains and DNS, and check deploys. You paste one value into PopMCP: a personal access token from your Netlify user settings (Applications, Personal access tokens). If your login belongs to several teams, you then choose which team the connection is for. - Auth: API credentials - Setup time: 1 min - API base URL: https://api.netlify.com/api/v1 - Credentials screen: https://app.netlify.com/user/applications#personal-access-tokens - Provider docs: https://docs.netlify.com/api/get-started/#authentication ### Before you begin - A Netlify login. Personal access tokens are free on every Netlify plan, including the free one - To change sites, deploys, environment variables or DNS, a team role that allows it (an Owner or Developer can do almost everything) - If your team requires SAML single sign-on, be logged in to the team with SSO when you create the token ### Get your credentials #### 1. Open Applications in your user settings Sign in at app.netlify.com. Click your avatar, choose User settings, then Applications. The page opens on Personal access tokens. Screen: https://app.netlify.com/user/applications#personal-access-tokens #### 2. Name the token and choose when it expires Click New access token. Enter a name that tells you what it is for, such as PopMCP. If your team uses SAML single sign-on, tick Allow access to my SAML-based Netlify team. Pick an Expiration date, then click Generate token. When the token expires, you connect again with a new one. Screen: https://app.netlify.com/user/applications#personal-access-tokens #### 3. Copy the token Netlify shows the token once, usually starting with nfp_. Copy it now: once you leave the page you cannot see it again. Then click Done. Screen: https://app.netlify.com/user/applications#personal-access-tokens #### 4. Paste the token into PopMCP and choose the team In PopMCP, paste the token into Personal access token and connect. PopMCP checks it and lists the Netlify teams your login belongs to; choose the team this connection is for (each team goes into its own workspace). The connection is then locked to that team. ### Fields PopMCP asks for - Personal access token (accessToken) [required]: In Netlify: click your avatar, User settings, Applications, Personal access tokens, New access token. Give it a name, pick an expiration (and tick Allow access to my SAML-based Netlify team if your team uses single sign-on), Generate token, and copy it right away: Netlify shows it once. Stored encrypted. ### Verify PopMCP marks the Netlify connection Verified with your team's name and records your login's name, email and the team's plan. Asking the AI to list your sites returns them with their URLs and latest deploy. ### Troubleshooting #### "Netlify did not accept this token..." Cause: The token expired on the date chosen when it was made, it was copied incompletely, it was deleted, or your Netlify password was reset (that cancels every token). Fix: Create a new token under **User settings**, **Applications**, **Personal access tokens** and connect again. #### "Netlify refused this token. If your team uses SAML single sign-on..." Cause: The team requires SAML SSO and the token was made without access to it. Fix: Log in to the team with SSO, create a new token with **Allow access to my SAML-based Netlify team** ticked, and connect with it. #### "This Netlify login can no longer open the team..." Cause: You were removed from the team the connection was made for, or the team was deleted. Fix: Ask a team Owner to add you back, or reconnect Netlify and choose another team. #### A tool answers that the site belongs to a different Netlify team Cause: The site, deploy or DNS zone is in another team than the one this connection is locked to. Fix: Connect that team too (it goes into its own workspace) and ask there, or pick a site of the connected team. #### Tools fail with 429 Cause: Netlify allows about 500 API requests a minute, and only 3 deploys a minute and 100 a day. Fix: Wait a minute and retry. For many files, deploy once with deploy_files instead of one deploy per file. --- ## Notion URL: https://www.docs.popmcp.com/docs/integrations/notion/ Summary: Connect Notion to create and update pages, query and build databases, edit block content, and search your workspace. A single Notion internal connection token that starts with ntn_ (older ones start with secret_), pasted into PopMCP's Internal Integration Secret field. - Auth: API credentials - Setup time: 6 min - API base URL: https://api.notion.com/v1 - Credentials screen: https://www.notion.so/developers/connections - Provider docs: https://developers.notion.com/docs/create-a-notion-integration ### Before you begin - Notion account on any plan, including Free - Workspace owner role, because only owners can create internal connections - At least one page or database you are willing to share with the connection ### Get your credentials #### 1. Open the Notion Developer portal Go to notion.so/developers/connections. In the sidebar, under Build, select Internal connections. Screen: https://www.notion.so/developers/connections #### 2. Create the internal connection Click Create a new connection. Enter a Name such as `PopMCP`, choose the Associated workspace, then click Save. #### 3. Turn on the capabilities you need Open the connection's Configuration tab and tick Read content, Update content and Insert content under Content Capabilities. Under User Capabilities, pick a read option only if you need people properties or comment authors. #### 4. Copy the internal integration secret Stay on Configuration and find the token field, labelled Internal Integration Secret in the classic view and Installation access token in the new portal. Click Show, then Copy. #### 5. Share the pages the connection may read Open the Content access tab and click Edit access, then pick the pages to share. You can also do it from Notion itself: open a page, click ••• at the top right, choose Connections, then Add connections and select your connection. ### Fields PopMCP asks for - Internal Integration Secret (apiToken) [required]: In Notion open notion.so/my-integrations → New integration (give it a name and pick your workspace) → on the Configuration tab copy the Internal Integration Secret (starts with ntn_, or secret_ for older integrations). Then SHARE pages with it: open a page → ••• → Connections → add your integration. The secret is sent as Authorization: Bearer, stored encrypted, and used server-side only. ### Verify PopMCP marks the Notion connector Connected, and a search tool call returns the pages you shared with the connection rather than an empty list. ### Troubleshooting #### 401 unauthorized, "API token is invalid" Cause: The token was retyped, truncated, or pasted with the word Bearer in front of it. Fix: Re-open Configuration, click Show then Copy, and paste only the ntn_ string into PopMCP. #### The token starts with secret_ instead of ntn_ Cause: Connections created before 25 September 2024 were issued secret_ tokens. Fix: Nothing to do. Older secret_ tokens still authenticate and PopMCP accepts both prefixes. #### object_not_found on a page you can clearly see in Notion Cause: The page was never shared with the connection. Notion hides unshared content rather than returning 403. Fix: Open the page, click ••• then Connections then Add connections, select your connection, and retry. #### Writes fail while reads work Cause: Update content and Insert content are switched off in Content Capabilities. Fix: Open the Configuration tab, tick the missing capability, and click Save changes. The token does not change. #### No Internal connections item in the developer sidebar Cause: You are a member or admin, not a workspace owner. Fix: Ask a workspace owner to create the connection and send you the token. #### 429 rate_limited Cause: More than roughly three requests per second on that connection. Fix: Let PopMCP back off and retry. Batch large reads rather than looping page by page. --- ## Okendo URL: https://www.docs.popmcp.com/docs/integrations/okendo/ Summary: Connect Okendo to manage storefront reviews and ratings, photo and video media, AI review summaries, and loyalty. A single value: your Okendo User ID, the store's subscriber UUID, copied from the Credentials card on Settings / Integrations and pasted into PopMCP's Okendo User ID field. - Auth: API credentials - Setup time: 2 min - API base URL: https://api.okendo.io/v1 - Credentials screen: https://reviews.okendo.io/admin/settings/integrations - Provider docs: https://docs.okendo.io/on-site/storefront-rest-api ### Approval required before this works Okendo gates Merchant API credentials behind plan entitlement: API access is included on the Advanced plan and above, and is sold as a paid add-on on the lower tiers. There is no application, review, or developer programme - only a billing entitlement. - Typical wait: No review queue - access is live as soon as the plan entitlement or paid add-on is applied to the store. Okendo does not publish a turnaround for the add-on, which is arranged through Okendo support or your CSM. - Cost: Okendo does not publish fixed plan prices - its pricing page quotes by monthly order volume, and the price of the API add-on for lower tiers is not published anywhere public. Get a quote from Okendo sales or your CSM; do not assume a figure. - Blocked until approved: Everything on the authenticated Merchant API: listing and moderating reviews, replying to reviews, customer profiles and activities, loyalty points/coupons/redemptions, surveys, settings, and webhook subscriptions. Concretely, without the entitlement the Okendo Admin > Settings > Integrations screen never surfaces an API key to copy, so no authenticated call can be made at all. - Works meanwhile: The Storefront REST API is a public on-site API addressed by your Subscriber ID rather than a secret Merchant API key, so published reviews, ratings, and Q&A can be read without the entitlement. On-site widgets and the Storefront JavaScript API also work on every tier. ### Before you begin - An Okendo account with Okendo Reviews installed on your store - Any Okendo plan. The User ID is a public storefront identifier, so no paid API add-on and no app review is needed - Access to the Okendo admin at reviews.okendo.io/admin, or the Okendo app tile in your Shopify or BigCommerce admin ### Get your credentials #### 1. Open the Okendo admin Go to reviews.okendo.io/admin and sign in, or open Apps in your store admin and click Okendo. Screen: https://reviews.okendo.io/admin/ #### 2. Open Settings, then Integrations Click Settings at the bottom of the dark left rail. In the secondary column that opens, choose Integrations under the Settings group. Screen: https://reviews.okendo.io/admin/settings/integrations #### 3. Copy the User ID Click the Okendo row inside the Credentials card to expand it, then copy the User ID with its copy button. Screen: https://reviews.okendo.io/admin/settings/integrations #### 4. Paste it into PopMCP Paste the UUID into PopMCP's Okendo User ID field and connect. ### Fields PopMCP asks for - Okendo User ID (subscriberId) [required]: Okendo app → Settings → Integrations → Credentials → Okendo User ID (also shown as your subscriber ID). This is a public storefront identifier (not a secret); it scopes the MCP to your store. ### Verify PopMCP marks Okendo as Connected, and asking it to list your latest reviews returns real review text and star ratings from your store rather than an empty list. ### Troubleshooting #### Tools succeed but every review list comes back empty Cause: The storefront API answers with HTTP 200 and an empty reviews array for a store id it does not recognise, so a mistyped UUID looks like a store with no reviews. Fix: Re-copy the User ID from the Credentials card with the copy button instead of typing it, and confirm you are in the Okendo account for the store you expect. #### You cannot reach the admin to read the ID Cause: Your session has expired or you only have access through the storefront. Fix: Read the same value off your live storefront instead. The Okendo widget script carries it as a `subscriberId` parameter. #### You cannot find a Settings then Integrations screen Cause: You are looking at the Okendo widget settings inside your ecommerce platform rather than the Okendo admin itself. Fix: Open reviews.okendo.io/admin directly, then click Settings at the bottom of the dark left rail. #### The User ID field is blank or the page will not load Cause: Your Okendo user has not been granted access to this store, or the session has expired. Fix: Sign out and back in. If it is still blank, ask an Okendo account admin to add you to the store or email solutions@okendo.io. --- ## Omnisend URL: https://www.docs.popmcp.com/docs/integrations/omnisend/ Summary: Connect Omnisend to manage contacts, events, and segments, and run email and SMS campaigns and automations for your store. One Omnisend API key, created under Store settings, Integrations & API, API keys, with the permissions it needs ticked. Omnisend shows the key once, so copy it before closing the dialog. - Auth: API credentials - Setup time: 4 min - API base URL: https://api.omnisend.com/api - Credentials screen: https://app.omnisend.com/integrations/api-keys - Provider docs: https://api-docs.omnisend.com/reference/authentication ### Before you begin - An Omnisend account with a connected store, on any plan including Free - A user who can open Store settings. Owners and admins can, restricted seats often cannot reach the API keys screen - Somewhere safe to paste the key immediately, because Omnisend never shows it again ### Get your credentials #### 1. Open the API keys screen Sign in at app.omnisend.com and click your profile in the top-right corner, then Store settings. Open Integrations & API and select API keys. Screen: https://app.omnisend.com/integrations/api-keys #### 2. Name the key and tick its permissions Click Create API key, name it `PopMCP`, then tick Campaigns, Contacts, Orders, Products, Carts and Events. Click Create API key to confirm. Screen: https://app.omnisend.com/integrations/api-keys #### 3. Copy the key before you close the dialog Click Copy API key and paste it somewhere safe. Omnisend shows the full key only on this screen. #### 4. Paste it into PopMCP Paste the key into PopMCP's API key field and connect. ### Fields PopMCP asks for - API key (apiKey) [required]: Omnisend dashboard → Store settings → Integrations & API → API keys (app.omnisend.com/integrations/api-keys) → Create API key, give it a name, and copy the key immediately (it's shown only once). Stored encrypted. ### Verify PopMCP shows Omnisend as Connected, and asking it to look up a contact by email returns that contact's subscription status and tags instead of an authentication error. ### Troubleshooting #### 401 Unauthorized on every call Cause: The key was mistyped, truncated on copy, or has since been deleted in Omnisend. Fix: Create a fresh key at app.omnisend.com/integrations/api-keys, copy it straight from the one-time dialog, and re-paste it into PopMCP. #### 403 Forbidden on some tools while others work Cause: The key was created without the permission that endpoint needs. Events left unticked, for example, blocks Flow triggers while contact lookups keep working. Fix: Create a new key with every required permission ticked, paste it into PopMCP, then delete the old key. There is no cap on how many keys you can create. #### The name you typed opened a setup wizard instead of the permission list Cause: Omnisend matches the key name against known apps and routes recognised names into that app's guided flow. Fix: Back out and enter an unrecognised name such as PopMCP to get the manual permission picker. #### 429 "Rate limit exceeded" Cause: You crossed the per-brand sliding-window limit of 400 requests a minute, or a tighter per-endpoint cap. Fix: Wait for the window to slide, honour the retryAfter value when the response includes one, and spread bulk work out rather than looping tightly over segments or analytics. #### You cannot find API keys in the menu Cause: Your seat does not have permission to open Store settings. Fix: Ask the Omnisend account owner to create the key, or to raise your role, then repeat the steps. --- ## OtterlyAI URL: https://www.docs.popmcp.com/docs/integrations/otterly/ Summary: Connect OtterlyAI to track how your brand shows up in AI search, see which pages get cited, read the answers themselves, and audit your site. You end up with a single OtterlyAI API key, prefixed oai_live_, that you paste into PopMCP's API key field. - Auth: API credentials - Setup time: 3 min - API base URL: https://data.otterly.ai/v1 - Credentials screen: https://app.otterly.ai/api-keys - Provider docs: https://docs.otterly.ai/authentication ### Approval required before this works OtterlyAI only lets accounts on the Standard, Premium, or Custom/Enterprise plan create an API key - the entry-level Lite plan has no API at all. There is no review or application, only the plan gate. - Typical wait: None - a key is generated instantly once the account is on a qualifying plan. - Cost: Otterly's public pricing page lists Standard at US$189/month and Premium at US$489/month (US$160 and US$422/month billed annually, a 15% annual discount). Lite at US$29/month does not include API access. Enterprise is custom, quoted from about US$1,000/month. - Blocked until approved: The entire Public API: no Bearer token can be minted on Lite, so every endpoint is unreachable - reading prompts, AI search results, citations, brand mentions and share-of-voice, and the write operations (running GEO Audits on demand, creating or deleting prompts and tags). - Works meanwhile: OtterlyAI offers a free trial for new users, which is the cheapest way to reach a real key - but Otterly does not document whether API access is enabled during the trial, so confirm it before planning around it. Otherwise there is no unauthenticated surface to build against; the connector cannot be exercised at all below Standard. ### Before you begin - OtterlyAI account on a paid plan or an active free trial - The Admin role on the OtterlyAI account. Only admins can create, rotate or revoke API keys - Access to the workspaces whose brand reports you want PopMCP to read ### Get your credentials #### 1. Sign in to the OtterlyAI dashboard Go to app.otterly.ai and sign in with an account that holds the Admin role. Screen: https://app.otterly.ai #### 2. Open Admin → API Keys In the left menu open Admin and click API Keys. The direct link is app.otterly.ai/api-keys. Screen: https://app.otterly.ai/api-keys #### 3. Create the key and pick its workspaces Click Create API key, name it `PopMCP`, tick every workspace PopMCP should read and set the access level to Read. Click Create key. Screen: https://app.otterly.ai/api-keys #### 4. Copy the key into PopMCP Click Copy and paste the value into PopMCP's API key field before you close the dialog. ### Fields PopMCP asks for - API key (apiKey) [required]: OtterlyAI dashboard (app.otterly.ai) → Settings → API Keys → Create API key. Pick the workspaces it may read and whether it gets read or read and write, then copy the key. It is shown only once. Stored encrypted and used server side only. ### Verify PopMCP shows the connection as Connected and the workspace picker lists the OtterlyAI workspaces you granted. Asking for your brand reports returns real report names rather than an empty list. ### Troubleshooting #### 401 Unauthorized Cause: The key was mistyped, truncated on paste, or revoked in OtterlyAI. Fix: Re-copy the key, checking it starts with oai_live_, or create a new one at app.otterly.ai/api-keys. #### The key is no longer on screen Cause: OtterlyAI shows the full secret once, at creation. Fix: Rotate or revoke the key on the API Keys page and create a replacement, then paste the new value into PopMCP. #### 403 Forbidden Cause: The access level is too low, or the workspace you are querying was not ticked when the key was created. Fix: Create a new key with Read access and every workspace PopMCP needs selected. #### The API Keys page is missing Cause: You are signed in as a workspace member rather than an account admin. Fix: Ask an OtterlyAI account admin to create the key, or have them grant you the Admin role. #### 429 Too Many Requests Cause: Your plan's Public API allowance for the current period is used up, or requests are arriving too fast. Fix: Wait and retry. Check the Usage tab on the API Keys page for current-period consumption and upgrade the plan if you keep hitting the ceiling. #### Reports come back empty Cause: The key is valid but scoped to a different workspace than the brand you are asking about. Fix: Check the Workspaces column on the API Keys page and create a replacement key that covers the right one. --- ## OneDrive URL: https://www.docs.popmcp.com/docs/integrations/onedrive/ Summary: Connect OneDrive to find, read and upload files, organize folders, share links with people, and restore earlier versions. You register an app in the Microsoft Entra admin center, copy its Application (client) ID and a client secret Value into PopMCP, then sign in with Microsoft and approve access to your OneDrive. - Auth: OAuth authorization - Setup time: 5 min - API base URL: https://graph.microsoft.com/v1.0 - Credentials screen: https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade - Provider docs: https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app ### Before you begin - A Microsoft account with OneDrive: a personal Microsoft account (OneDrive, Outlook.com, Hotmail or Live), or a work or school account on Microsoft 365 with a license that includes OneDrive. A work account's OneDrive must have been opened once in a browser so Microsoft has set it up. - A Microsoft Entra tenant you can register apps in: your organization's (members can register apps unless an admin turned that off, and the Application Developer role always can), or, with only a personal account, a tenant of your own such as the Default Directory of an Azure account. - PopMCP's Redirect URI from the connect form: https://app.popmcp.com/api/providers/microsoft/callback - Only for Files shared with me (other people's files, a colleague's or a team's drive): in most organizations an administrator approves that permission once. Your own files never need an admin by Microsoft's rules. ### Get your credentials #### 1. Open App registrations Go to entra.microsoft.com and sign in. If you belong to several tenants, use the Settings icon in the top bar to switch to the one that should own the app. Open Entra ID > App registrations and select New registration. Screen: https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade #### 2. Register the app Enter a Name people will recognize, such as `PopMCP`: Microsoft shows it when asking for access. Under Supported account types pick Any Entra ID Tenant + Personal Microsoft accounts, so work, school and personal OneDrive accounts can all sign in, then select Register. Single tenant only works too for your organization's own accounts, but then the app's Directory (tenant) ID goes into PopMCP as well. Screen: https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade #### 3. Add PopMCP's Redirect URI On the new app, open Authentication under Manage. On the Redirect URI configuration tab select Add Redirect URI, choose the Web tile, enter `https://app.popmcp.com/api/providers/microsoft/callback` exactly as PopMCP shows it, and select Configure. #### 4. Create a client secret Open Certificates & secrets, stay on Client secrets and select New client secret. Enter a description such as `PopMCP`, choose when it expires (24 months at most; Microsoft recommends less than 12) and select Add. Copy the Value column straight away: Microsoft never shows it again. The Secret ID beside it is not the secret. #### 5. Copy the Application (client) ID Open Overview and copy the Application (client) ID. You only need the Directory (tenant) ID if you chose Single tenant only. #### 6. Paste both into PopMCP and sign in In PopMCP put the ID in Application (client) ID and the secret's Value in Client secret Value (the Directory (tenant) ID under More options only for a Single tenant only app). To also open files other people shared with you, tick Files shared with me under More options. Select Sign in with Microsoft, pick the account whose OneDrive you want, and select Accept. ### Fields PopMCP asks for - Application (client) ID (clientId) [required]: Only for your own app. In the Microsoft Entra admin center (entra.microsoft.com) open Entra ID, App registrations, New registration, pick Any Entra ID Tenant + Personal Microsoft accounts under Supported account types and select Register, then copy the Application (client) ID from Overview. - Client secret Value (clientSecret) [required]: In the app registration open Certificates & secrets, Client secrets, New client secret, then Add, and copy the Value column right away (it is shown once). Stored encrypted and used only on our server. - Directory (tenant) ID (tenant): Only for an app registered as Single tenant only. Copy it from the app's Overview page. - Extra access (extraAccess): ### Callback URL to register https://app.popmcp.com/api/providers/microsoft/callback ### Scopes requested - User.Read - Files.ReadWrite - offline_access - openid - profile - email ### Verify PopMCP shows OneDrive as Connected under the account's address, and onedrive_get_drive returns the drive's type and how much of its storage is used. ### Troubleshooting #### "The app's redirect URI does not match" Cause: Microsoft answered AADSTS50011: PopMCP's callback is not registered as a Web redirect URI on the app, or differs by a character. Fix: Open **Authentication**, select **Add Redirect URI**, choose **Web**, enter `https://app.popmcp.com/api/providers/microsoft/callback` and select **Configure**, then connect again. #### "Microsoft did not accept the app's client secret" Cause: The **Secret ID** was pasted instead of the secret's **Value** (AADSTS7000215), or the Value was cut short when copying. Fix: Under **Certificates & secrets** create a new client secret, copy its **Value** right away and paste it into PopMCP. #### "The app's client secret has expired" Cause: Client secrets last at most 24 months (AADSTS7000222). Fix: Create a new client secret under **Certificates & secrets** and reconnect OneDrive with its Value. #### "This app does not accept the kind of Microsoft account you signed in with" Cause: The app's **Supported account types** leaves out the account you signed in with, typically a personal Outlook.com account on an organization-only app. Fix: Register the app with **Any Entra ID Tenant + Personal Microsoft accounts**, or sign in with an account from the app's own organization. #### "Your app is registered for one organization only" Cause: A Single tenant only app was used without its tenant (AADSTS50194). Fix: Copy the **Directory (tenant) ID** from the app's **Overview**, enter it under **More options** in PopMCP and connect again. #### "Your organization needs an administrator to approve this app" Cause: Your organization lets only admins approve apps, or only apps from verified publishers (AADSTS65001 or AADSTS90094). Fix: An admin opens the app in the Microsoft Entra admin center, **API permissions**, and selects **Grant admin consent** for the organization. Then connect again. #### "This Microsoft account has no OneDrive yet" Cause: A work or school account's OneDrive is created the first time someone opens it, and needs a license that includes OneDrive. Fix: Open OneDrive once in a browser (office.com, then OneDrive) so Microsoft sets it up, or ask your Microsoft 365 admin for a license that includes it. Then connect again. #### "This OneDrive connection can open only your own files" Cause: A tool named another person's drive, or a link into their OneDrive, and the connection was made without Files shared with me. Fix: Reconnect OneDrive with **Files shared with me** ticked under **More options** (an administrator may have to approve it once). A sharing link can still be opened with open_sharing_link or onedrive_read_file. #### Microsoft asks for an administrator only when Files shared with me is ticked Cause: Since 2025 Microsoft's default consent settings let people approve an app's access to their own files, but not to every file they can open (Files.Read.All, Files.ReadWrite.All). Fix: Connect without Files shared with me for your own files, or ask an admin to open the app under **Enterprise apps**, **Permissions** and select **Grant admin consent**. #### 429 with a Retry-After header Cause: OneDrive allows about 3,000 requests per 5 minutes per user, and each app has a share of its organization's limit. Fix: Wait the time Microsoft gives and try again. search_files, $select and onedrive_read_file do in one call what would otherwise take many. --- ## Microsoft Ads URL: https://www.docs.popmcp.com/docs/integrations/microsoft-ads/ Summary: Connect Microsoft Ads to manage Bing search, shopping and Performance Max campaigns, keywords and budgets, research keywords, and pull reports. You register an app in the Microsoft Entra admin center, request a developer token in Microsoft Advertising, copy the app's Application (client) ID, a client secret Value and the developer token into PopMCP, then sign in with Microsoft and pick your ad account. - Auth: OAuth authorization - Setup time: 8 min - API base URL: https://campaign.api.bingads.microsoft.com/CampaignManagement/v13 - Credentials screen: https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade - Provider docs: https://learn.microsoft.com/en-us/advertising/guides/get-started ### Approval required before this works Microsoft Advertising requires a developer token on every API call, on top of your Microsoft sign-in. A Super Admin of a Microsoft Advertising account requests it in the web app; the universal token it issues works with any user's sign-in and grants no extra access. - Typical wait: Usually issued as soon as you request it. Microsoft publishes no timeframe, and some requests are held for review before the token shows as active. - Cost: Free. A developer token and API access cost nothing; you need a Microsoft Advertising account (also free to open) and ad spend is separate. - Blocked until approved: Every call. Without a developer token Microsoft Advertising answers error 105 (InvalidCredentials) to all of Campaign Management, Reporting, Ad Insight, Bulk, Customer Management and Billing, so the connection cannot even list your ad accounts. - Works meanwhile: Register the app in the Microsoft Entra admin center, add PopMCP's Redirect URI and create the client secret. Once the token shows under Developer token, fill in the connect form and sign in. ### Before you begin - A Microsoft Advertising account and the Microsoft account you sign in to it with (work, school or personal). Agency users: your login must reach the client accounts through your manager account. - The Super Admin role on that Microsoft Advertising account, or a Super Admin who will request the developer token for you. - A Microsoft Entra tenant you can register apps in: your organization's (members can register apps unless an admin turned that off), or, with only a personal account, a tenant of your own such as the Default Directory of an Azure account. - PopMCP's Redirect URI from the connect form: https://app.popmcp.com/api/providers/microsoft/callback ### Get your credentials #### 1. Open App registrations Go to entra.microsoft.com and sign in. If you belong to several tenants, use the Settings icon in the top bar to switch to the one that should own the app. Open Entra ID > App registrations and select New registration. Screen: https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade #### 2. Register the app Enter a Name people will recognize, such as `PopMCP`: Microsoft shows it when asking for access. Under Supported account types pick Any Entra ID Tenant + Personal Microsoft accounts, so whichever Microsoft account you use at ui.ads.microsoft.com can sign in, then select Register. Single tenant only works too for your organization's accounts, but then the app's Directory (tenant) ID goes into PopMCP as well. No API permissions need adding: Microsoft Advertising's permission is asked for when you sign in. Screen: https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade #### 3. Add PopMCP's Redirect URI On the new app, open Authentication under Manage. On the Redirect URI configuration tab select Add Redirect URI, choose the Web tile, enter `https://app.popmcp.com/api/providers/microsoft/callback` exactly as PopMCP shows it, and select Configure. #### 4. Create a client secret Open Certificates & secrets, stay on Client secrets and select New client secret. Enter a description such as `PopMCP`, choose when it expires (24 months at most; Microsoft recommends less than 12) and select Add. Copy the Value column straight away: Microsoft never shows it again. The Secret ID beside it is not the secret. #### 5. Copy the Application (client) ID Open Overview and copy the Application (client) ID. You only need the Directory (tenant) ID if you chose Single tenant only. #### 6. Request a developer token in Microsoft Advertising Microsoft Advertising wants a developer token on every call as well as your sign-in. Sign in at ui.ads.microsoft.com as a Super Admin, open Settings in the left rail, then Developer settings. Choose yourself under Select user, read the Microsoft Developer Services Agreement and select Request Developer Token. It is usually issued at once; copy the value shown under Developer token. Not a Super Admin? Ask one on your account to request it for you. Screen: https://ads.microsoft.com/cc/Settings/DevSettings #### 7. Fill in PopMCP and sign in In PopMCP put the ID in Application (client) ID, the secret's Value in Client secret Value and the token in Developer token (the Directory (tenant) ID under More options only for a Single tenant only app). Select Sign in with Microsoft, pick the account you use for Microsoft Advertising and select Accept. PopMCP then lists every ad account that login reaches, including client accounts linked to your manager account: tick the ones to connect and the workspace each goes in. ### Fields PopMCP asks for - Application (client) ID (clientId) [required]: Only for your own app. In the Microsoft Entra admin center (entra.microsoft.com) open Entra ID, App registrations, New registration, pick Any Entra ID Tenant + Personal Microsoft accounts under Supported account types and select Register, then copy the Application (client) ID from Overview. No API permissions need adding. - Client secret Value (clientSecret) [required]: In the app registration open Certificates & secrets, Client secrets, New client secret, then Add, and copy the Value column right away (it is shown once). Stored encrypted and used only on our server. - Developer token (developerToken) [required]: In Microsoft Advertising (ui.ads.microsoft.com) open Settings, then Developer settings, choose the user under Select user, accept the agreement and select Request Developer Token. You need the Super Admin role. Copy the token shown under Developer token. - Directory (tenant) ID (tenant): Only for an app registered as Single tenant only. Copy it from the app's Overview page. ### Callback URL to register https://app.popmcp.com/api/providers/microsoft/callback ### Scopes requested - https://ads.microsoft.com/msads.manage - offline_access - openid - profile - email ### Verify PopMCP shows Microsoft Ads as Connected under the ad account's name and number, and microsoft_ads_account_overview returns the account's currency, time zone and campaigns. ### Troubleshooting #### "Microsoft Advertising did not accept the sign-in or the developer token" Cause: Error 105 (InvalidCredentials): the developer token is the sandbox one (BBD37VB98) or not active yet, or you signed in with a Microsoft account that has no Microsoft Advertising access. Fix: Copy the production token from **Settings** > **Developer settings** at ui.ads.microsoft.com, check it shows as active, and sign in with the account you use there. #### "The app needs access to a service that your organization has not subscribed to or enabled" Cause: Microsoft answered AADSTS650052: the Microsoft Advertising app is not set up in your organization's Entra tenant. Fix: An Entra admin adds it once with Microsoft Graph: `POST https://graph.microsoft.com/v1.0/servicePrincipals` with body `{"appId": "d42ffc93-c136-491d-b4fd-6f18168c68fd"}`, as Microsoft's Advertising docs describe. Then connect again. #### "The app's redirect URI does not match" Cause: Microsoft answered AADSTS50011: PopMCP's callback is not registered as a Web redirect URI on the app, or differs by a character. Fix: Open **Authentication**, select **Add Redirect URI**, choose **Web**, enter `https://app.popmcp.com/api/providers/microsoft/callback` and select **Configure**, then connect again. #### "Microsoft did not accept the app's client secret" Cause: The **Secret ID** went in instead of the secret's **Value** (AADSTS7000215), or the secret expired (AADSTS7000222). Fix: Under **Certificates & secrets** create a new client secret, copy its **Value** right away and connect again with it. #### No ad accounts in the list Cause: The Microsoft account you signed in with is not a user on any Microsoft Advertising account, or every account it reaches is closed. Fix: Sign in at ui.ads.microsoft.com with the same account to check what it can open, then connect again with the right one. #### "Microsoft Advertising would not reach this ad account through the manager account it was listed under" Cause: Error 1029 or 1490: the account link to your manager account changed after you connected. Fix: Reconnect Microsoft Ads and pick the account again, so PopMCP records the manager account you reach it through. #### "Microsoft Advertising is limiting calls for this user" Cause: Error 117 (CallRateExceeded): too many calls in a minute. Fix: Wait a minute and try again. Ask for many ids in one call, and use reports instead of one call per item. --- ## Outlook Mail URL: https://www.docs.popmcp.com/docs/integrations/outlook-mail/ Summary: Connect Outlook Mail to search and read email, send, reply and forward with attachments, file messages into folders, and set rules and auto replies. You register an app in the Microsoft Entra admin center, copy its Application (client) ID and a client secret Value into PopMCP, then sign in with Microsoft and approve access. - Auth: OAuth authorization - Setup time: 5 min - API base URL: https://graph.microsoft.com/v1.0 - Credentials screen: https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade - Provider docs: https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app ### Before you begin - A Microsoft account with an Outlook mailbox: a work or school account on Microsoft 365 (Exchange Online), or a personal Outlook.com, Hotmail or Live account. - A Microsoft Entra tenant you can register apps in: your organization's (members can register apps unless an admin turned that off, and the Application Developer role always can), or, with only a personal account, a tenant of your own such as the Default Directory of an Azure account. - PopMCP's Redirect URI from the connect form: https://app.popmcp.com/api/providers/microsoft/callback - For a shared mailbox: Full Access to it, and Send As to send from it, given to your account by an Exchange admin. ### Get your credentials #### 1. Open App registrations Go to entra.microsoft.com and sign in. If you belong to several tenants, use the Settings icon in the top bar to switch to the one that should own the app. Open Entra ID > App registrations and select New registration. Screen: https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade #### 2. Register the app Enter a Name people will recognize, such as `PopMCP`: Microsoft shows it when asking for access. Under Supported account types pick Any Entra ID Tenant + Personal Microsoft accounts, so work, school and personal Outlook.com mailboxes can all sign in, then select Register. Single tenant only works too for your organization's mailboxes, but then the app's Directory (tenant) ID goes into PopMCP as well. Screen: https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade #### 3. Add PopMCP's Redirect URI On the new app, open Authentication under Manage. On the Redirect URI configuration tab select Add Redirect URI, choose the Web tile, enter `https://app.popmcp.com/api/providers/microsoft/callback` exactly as PopMCP shows it, and select Configure. #### 4. Create a client secret Open Certificates & secrets, stay on Client secrets and select New client secret. Enter a description such as `PopMCP`, choose when it expires (24 months at most; Microsoft recommends less than 12) and select Add. Copy the Value column straight away: Microsoft never shows it again. The Secret ID beside it is not the secret. #### 5. Copy the Application (client) ID Open Overview and copy the Application (client) ID. You only need the Directory (tenant) ID if you chose Single tenant only. #### 6. Paste both into PopMCP and sign in In PopMCP put the ID in Application (client) ID and the secret's Value in Client secret Value (the Directory (tenant) ID under More options only for a Single tenant only app). To connect a shared mailbox instead of your own, enter its address under More options too. Select Sign in with Microsoft, pick the account whose mailbox you want, and select Accept. ### Fields PopMCP asks for - Application (client) ID (clientId) [required]: Only for your own app. In the Microsoft Entra admin center (entra.microsoft.com) open Entra ID, App registrations, New registration, pick Any Entra ID Tenant + Personal Microsoft accounts under Supported account types and select Register, then copy the Application (client) ID from Overview. - Client secret Value (clientSecret) [required]: In the app registration open Certificates & secrets, Client secrets, New client secret, then Add, and copy the Value column right away (it is shown once). Stored encrypted and used only on our server. - Directory (tenant) ID (tenant): Only for an app registered as Single tenant only. Copy it from the app's Overview page. - Shared mailbox (sharedMailbox): Connect a shared mailbox you can open instead of your own. Work or school accounts only; an Exchange admin must have given you Full Access to it. - Extra access (extraAccess): ### Callback URL to register https://app.popmcp.com/api/providers/microsoft/callback ### Scopes requested - User.Read - People.Read - Mail.ReadWrite - Mail.Send - MailboxSettings.ReadWrite - Contacts.ReadWrite - offline_access - openid - profile - email ### Verify PopMCP shows Outlook Mail as Connected under the mailbox's address, and outlook_mail_inbox_overview returns the Inbox's unread and total counts. ### Troubleshooting #### "The app's redirect URI does not match" Cause: Microsoft answered AADSTS50011: PopMCP's callback is not registered as a Web redirect URI on the app, or differs by a character. Fix: Open **Authentication**, select **Add Redirect URI**, choose **Web**, enter `https://app.popmcp.com/api/providers/microsoft/callback` and select **Configure**, then connect again. #### "Microsoft did not accept the app's client secret" Cause: The **Secret ID** was pasted instead of the secret's **Value** (AADSTS7000215), or the Value was cut short when copying. Fix: Under **Certificates & secrets** create a new client secret, copy its **Value** right away and paste it into PopMCP. #### "The app's client secret has expired" Cause: Client secrets last at most 24 months (AADSTS7000222). Fix: Create a new client secret under **Certificates & secrets** and reconnect Outlook Mail with its Value. #### "This app does not accept the kind of Microsoft account you signed in with" Cause: The app's **Supported account types** leaves out the account you signed in with, typically a personal Outlook.com account on an organization-only app. Fix: Register the app with **Any Entra ID Tenant + Personal Microsoft accounts**, or sign in with an account from the app's own organization. #### "Your app is registered for one organization only" Cause: A Single tenant only app was used without its tenant (AADSTS50194). Fix: Copy the **Directory (tenant) ID** from the app's **Overview**, enter it under **More options** in PopMCP and connect again. #### "Your organization needs an administrator to approve this app" Cause: Your organization lets only admins approve apps, or only apps from verified publishers (AADSTS65001 or AADSTS90094). Fix: An admin opens the app in the Microsoft Entra admin center, **API permissions**, and selects **Grant admin consent** for the organization. Then connect again. #### "This Microsoft account has no Exchange Online mailbox that Microsoft Graph can reach" Cause: The account has no Microsoft 365 mailbox license, its mailbox is on an on-premises Exchange server, or it is a personal account without Outlook.com mail. Fix: Sign in with the account that has the mailbox, or ask your Microsoft 365 admin to assign an Exchange Online license. #### "The signed-in account cannot open support@contoso.com" Cause: Your account has no Full Access to the shared mailbox, or the permission was added in the last hour and has not applied yet. Fix: Ask an Exchange admin to give your account Full Access (and Send As to send from it), wait for it to apply, and connect again. #### 429 with ApplicationThrottled or MailboxConcurrency Cause: Outlook allows 10,000 requests per 10 minutes and 4 at a time per app per mailbox. Fix: Wait the time Microsoft gives and try again. outlook_mail_search_messages, $select and the bulk tools (outlook_mail_move_messages, outlook_mail_update_messages) do in one call what would otherwise take many. --- ## Outlook Calendar URL: https://www.docs.popmcp.com/docs/integrations/outlook-calendar/ Summary: Connect Outlook Calendar to check your schedule, book and move meetings, find times that suit everyone, reserve rooms, and share calendars. You register an app in the Microsoft Entra admin center, copy its Application (client) ID and a client secret Value into PopMCP, then sign in with Microsoft and approve access. - Auth: OAuth authorization - Setup time: 5 min - API base URL: https://graph.microsoft.com/v1.0 - Credentials screen: https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade - Provider docs: https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app ### Before you begin - A Microsoft account with an Outlook calendar: a work or school account on Microsoft 365 (Exchange Online), or a personal Outlook.com, Hotmail or Live account. - A Microsoft Entra tenant you can register apps in: your organization's (members can register apps unless an admin turned that off, and the Application Developer role always can), or, with only a personal account, a tenant of your own such as the Default Directory of an Azure account. - PopMCP's Redirect URI from the connect form: https://app.popmcp.com/api/providers/microsoft/callback - For someone else's calendar: that person shares it with you (or makes you their delegate) in Outlook and you accept. Work or school accounts only. - For Rooms and places: a work or school account and an administrator who approves the Place.Read.All permission. ### Get your credentials #### 1. Open App registrations Go to entra.microsoft.com and sign in. If you belong to several tenants, use the Settings icon in the top bar to switch to the one that should own the app. Open Entra ID > App registrations and select New registration. Screen: https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade #### 2. Register the app Enter a Name people will recognize, such as `PopMCP`: Microsoft shows it when asking for access. Under Supported account types pick Any Entra ID Tenant + Personal Microsoft accounts, so work, school and personal Outlook.com accounts can all sign in, then select Register. Single tenant only works too for your organization's calendars, but then the app's Directory (tenant) ID goes into PopMCP as well. Screen: https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade #### 3. Add PopMCP's Redirect URI On the new app, open Authentication under Manage. On the Redirect URI configuration tab select Add Redirect URI, choose the Web tile, enter `https://app.popmcp.com/api/providers/microsoft/callback` exactly as PopMCP shows it, and select Configure. #### 4. Create a client secret Open Certificates & secrets, stay on Client secrets and select New client secret. Enter a description such as `PopMCP`, choose when it expires (24 months at most; Microsoft recommends less than 12) and select Add. Copy the Value column straight away: Microsoft never shows it again. The Secret ID beside it is not the secret. #### 5. Copy the Application (client) ID Open Overview and copy the Application (client) ID. You only need the Directory (tenant) ID if you chose Single tenant only. #### 6. Paste both into PopMCP and sign in In PopMCP put the ID in Application (client) ID and the secret's Value in Client secret Value (the Directory (tenant) ID under More options only for a Single tenant only app). Also under More options: enter an address in Someone else's calendar to connect a calendar that person shared with you, or tick Shared and delegated calendars or Rooms and places under Extra access. Select Sign in with Microsoft, pick the account whose calendar you want, and select Accept. ### Fields PopMCP asks for - Application (client) ID (clientId) [required]: Only for your own app. In the Microsoft Entra admin center (entra.microsoft.com) open Entra ID, App registrations, New registration, pick Any Entra ID Tenant + Personal Microsoft accounts under Supported account types and select Register, then copy the Application (client) ID from Overview. - Client secret Value (clientSecret) [required]: In the app registration open Certificates & secrets, Client secrets, New client secret, then Add, and copy the Value column right away (it is shown once). Stored encrypted and used only on our server. - Directory (tenant) ID (tenant): Only for an app registered as Single tenant only. Copy it from the app's Overview page. - Someone else's calendar (calendarOwner): Connect the calendar of a person who shared it with you or made you their delegate, instead of your own. Work or school accounts only. - Extra access (extraAccess): ### Callback URL to register https://app.popmcp.com/api/providers/microsoft/callback ### Scopes requested - User.Read - Calendars.Read.Shared - Calendars.ReadWrite - MailboxSettings.ReadWrite - offline_access - openid - profile - email ### Verify PopMCP shows Outlook Calendar as Connected under your account's address, and outlook_calendar_get_agenda lists today's events from every calendar, in your Outlook time zone. ### Troubleshooting #### "The app's redirect URI does not match" Cause: Microsoft answered AADSTS50011: PopMCP's callback is not registered as a Web redirect URI on the app, or differs by a character. Fix: Open **Authentication**, select **Add Redirect URI**, choose **Web**, enter `https://app.popmcp.com/api/providers/microsoft/callback` and select **Configure**, then connect again. #### "Microsoft did not accept the app's client secret" Cause: The **Secret ID** was pasted instead of the secret's **Value** (AADSTS7000215), or the Value was cut short when copying. Fix: Under **Certificates & secrets** create a new client secret, copy its **Value** right away and paste it into PopMCP. #### "The app's client secret has expired" Cause: Client secrets last at most 24 months (AADSTS7000222). Fix: Create a new client secret under **Certificates & secrets** and reconnect Outlook Calendar with its Value. #### "This app does not accept the kind of Microsoft account you signed in with" Cause: The app's **Supported account types** leaves out the account you signed in with, typically a personal Outlook.com account on an organization-only app. Fix: Register the app with **Any Entra ID Tenant + Personal Microsoft accounts**, or sign in with an account from the app's own organization. #### "Your app is registered for one organization only" Cause: A Single tenant only app was used without its tenant (AADSTS50194). Fix: Copy the **Directory (tenant) ID** from the app's **Overview**, enter it under **More options** in PopMCP and connect again. #### "Your organization needs an administrator to approve this app" Cause: Your organization lets only admins approve apps, or only apps from verified publishers (AADSTS65001 or AADSTS90094). Fix: An admin opens the app in the Microsoft Entra admin center, **API permissions**, and selects **Grant admin consent** for the organization. Then connect again. #### "This Microsoft account has no Exchange Online mailbox, so it has no Outlook calendar Microsoft Graph can reach" Cause: The account has no Microsoft 365 mailbox license, its mailbox is on an on-premises Exchange server, or it is a personal account without Outlook.com. Fix: Sign in with the account that has the calendar, or ask your Microsoft 365 admin to assign an Exchange Online license. #### "The signed-in account cannot open manager@contoso.com's calendar" Cause: The person has not shared their calendar with you or made you a delegate, you have not accepted their sharing invitation yet, or the address is wrong. Fix: Ask them to share the calendar with you in Outlook (Share calendar, then your address), accept the invitation, and connect again. #### "Connecting someone else's calendar needs a work or school account" Cause: Microsoft Graph does not open other people's calendars for personal Microsoft accounts. Fix: Leave **Someone else's calendar** empty. A calendar someone shared with your personal account still appears in outlook_calendar_list_calendars and works by its id. #### "Rooms and places need the Place.Read.All permission, which an administrator must approve" Cause: Room finding was used without the **Rooms and places** option, or an administrator has not approved Place.Read.All yet. Fix: Reconnect with **Rooms and places** ticked under **More options**, and ask an administrator to grant admin consent for the app. Inviting a room by its address works without it. #### "Microsoft offers this only to work or school accounts (Microsoft 365)" Cause: Free/busy of other people (get_schedule, find_meeting_times), rooms and Microsoft Places work only for work or school accounts. Fix: Use outlook_calendar_find_free_time without attendees to find your own free time, or connect a work or school account. #### 429 with ApplicationThrottled or MailboxConcurrency Cause: Outlook allows 10,000 requests per 10 minutes and 4 at a time per app per mailbox, shared by calendar and mail. Fix: Wait the time Microsoft gives and try again. outlook_calendar_get_agenda, outlook_calendar_search_events and outlook_calendar_batch_read do in one call what would otherwise take many. --- ## Microsoft Teams URL: https://www.docs.popmcp.com/docs/integrations/microsoft-teams/ Summary: Connect Microsoft Teams to catch up on chats and channels, post and reply, read meeting transcripts, find people, and manage teams and shifts. You register an app in the Microsoft Entra admin center, copy its Application (client) ID and a client secret Value into PopMCP, tick what PopMCP may do in Teams, then sign in with your work or school Microsoft account and approve access. - Auth: OAuth authorization - Setup time: 5 min - API base URL: https://graph.microsoft.com/v1.0 - Credentials screen: https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade - Provider docs: https://learn.microsoft.com/en-us/graph/teams-concept-overview ### Approval required before this works Microsoft reviews nothing: an app you register in the Microsoft Entra admin center can sign in straight away. Your organization is the gate. Reading chats and meetings, ticked by default, needs an administrator wherever Microsoft manages consent, and channel messages, team management, transcripts, Shifts and apps always need one. - Typical wait: None for teams, channels, your chat list, sending messages, people and presence. The other options wait until a Microsoft 365 administrator approves the app once. - Cost: Free. Registering an app and the calls PopMCP makes as you cost nothing. It needs a work or school account on Microsoft 365 with Teams; personal Microsoft accounts and Teams (free) cannot use Teams through Microsoft Graph. - Blocked until approved: Any option your administrator has not approved: Microsoft stops the whole sign-in with Need admin approval while one ticked option waits. The always-included part works without an administrator, unless your organization only lets admins approve apps at all. - Works meanwhile: Register the app, add PopMCP's Redirect URI, create the client secret and connect with only the options you can approve yourself (untick Read chats and meetings if Microsoft asks for an admin). Reconnect with more options ticked once the admin approves. ### Before you begin - A work or school Microsoft account on Microsoft 365 with Teams. Personal Microsoft accounts and Teams (free) cannot use Teams through Microsoft Graph. - A Microsoft Entra tenant you can register apps in: your organization's (members can register apps unless an admin turned that off, and the Application Developer role always can). - PopMCP's Redirect URI from the connect form: https://app.popmcp.com/api/providers/microsoft/callback - For channel messages and files, team management, meeting transcripts and recordings, Shifts, or apps and tabs: a Microsoft 365 administrator who approves the app once. Reading chats and meetings needs one too in organizations where Microsoft manages consent. ### Get your credentials #### 1. Open App registrations Go to entra.microsoft.com and sign in. If you belong to several tenants, use the Settings icon in the top bar to switch to the one that should own the app. Open Entra ID > App registrations and select New registration. Screen: https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade #### 2. Register the app Enter a Name people will recognize, such as `PopMCP`: Microsoft shows it when asking for access. Under Supported account types pick Multiple Entra ID tenants, then select Register. Teams works only with work or school accounts, so personal accounts are not needed. Single tenant only works too for your own organization, but then the app's Directory (tenant) ID goes into PopMCP as well. Screen: https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade #### 3. Add PopMCP's Redirect URI On the new app, open Authentication under Manage. On the Redirect URI configuration tab select Add Redirect URI, choose the Web tile, enter `https://app.popmcp.com/api/providers/microsoft/callback` exactly as PopMCP shows it, and select Configure. #### 4. Create a client secret Open Certificates & secrets, stay on Client secrets and select New client secret. Enter a description such as `PopMCP`, choose when it expires (24 months at most; Microsoft recommends less than 12) and select Add. Copy the Value column straight away: Microsoft never shows it again. The Secret ID beside it is not the secret. #### 5. Copy the Application (client) ID Open Overview and copy the Application (client) ID. You only need the Directory (tenant) ID if you chose Single tenant only. #### 6. Get an administrator's approval (only if needed) Teams, channels, your chat list, sending messages, people and presence need no administrator. Read chats and meetings (ticked by default) needs one in organizations where Microsoft manages consent, and the other options always do. An administrator (Global Administrator or Cloud Application Administrator) opens API permissions on the app, selects Add a permission > Microsoft Graph > Delegated permissions, adds the permissions listed for the options you want (for example `Chat.Read`, `OnlineMeetings.Read` and `ChannelMessage.Read.All`) and selects Grant admin consent for the organization. Or the administrator connects Teams in PopMCP once with those options ticked and checks Consent on behalf of your organization on Microsoft's page. #### 7. Fill in PopMCP and sign in In PopMCP put the ID in Application (client) ID and the secret's Value in Client secret Value (the Directory (tenant) ID under More options only for a Single tenant only app). Under What PopMCP may do in Teams keep Read chats and meetings ticked to read chats and meetings, and tick any option your administrator approved. Select Sign in with Microsoft, pick your work or school account and select Accept. If Microsoft says Need admin approval, untick the options marked as needing approval and sign in again, or ask your administrator first. ### Fields PopMCP asks for - Application (client) ID (clientId) [required]: Only for your own app. In the Microsoft Entra admin center (entra.microsoft.com) open Entra ID, App registrations, New registration, pick Multiple Entra ID tenants under Supported account types (or Single tenant only, and fill in the Directory (tenant) ID below) and select Register, then copy the Application (client) ID from Overview. - Client secret Value (clientSecret) [required]: In the app registration open Certificates & secrets, Client secrets, New client secret, then Add, and copy the Value column right away (it is shown once). Stored encrypted and used only on our server. - Directory (tenant) ID (tenant): Only for an app registered as Single tenant only. Copy it from the app's Overview page. - What PopMCP may do in Teams (extraAccess): Teams, channels, chat lists, sending messages, people and presence are always included. Tick what else you need; options marked as needing approval only work after a Microsoft 365 administrator approves PopMCP for your organization. ### Callback URL to register https://app.popmcp.com/api/providers/microsoft/callback ### Scopes requested - User.Read - User.ReadBasic.All - Team.ReadBasic.All - Channel.ReadBasic.All - Chat.ReadBasic - Presence.Read.All - ChannelMessage.Send - ChatMessage.Send - Chat.Create - Presence.ReadWrite - Chat.Read - OnlineMeetings.Read - OnlineMeetingArtifact.Read.All - Chat.ReadWrite - OnlineMeetings.ReadWrite - offline_access - openid - profile - email ### Verify PopMCP shows Microsoft Teams as Connected under your sign-in address, with how many teams you are in, and teams_recent_chats lists your chats, newest first, with their latest message. ### Troubleshooting #### "The app's redirect URI does not match" Cause: Microsoft answered AADSTS50011: PopMCP's callback is not registered as a Web redirect URI on the app, or differs by a character. Fix: Open **Authentication**, select **Add Redirect URI**, choose **Web**, enter `https://app.popmcp.com/api/providers/microsoft/callback` and select **Configure**, then connect again. #### "Microsoft did not accept the app's client secret" Cause: The **Secret ID** was pasted instead of the secret's **Value** (AADSTS7000215), or the Value was cut short when copying. Fix: Under **Certificates & secrets** create a new client secret, copy its **Value** right away and paste it into PopMCP. #### "The app's client secret has expired" Cause: Client secrets last at most 24 months (AADSTS7000222). Fix: Create a new client secret under **Certificates & secrets** and reconnect Microsoft Teams with its Value. #### "Your app is registered for one organization only" Cause: A Single tenant only app was used without its tenant (AADSTS50194). Fix: Copy the **Directory (tenant) ID** from the app's **Overview**, enter it under **More options** in PopMCP and connect again. #### Microsoft says **Need admin approval** Cause: An option you ticked needs an administrator (Read chats and meetings where Microsoft manages consent; the other options always), or your organization lets only admins approve apps (AADSTS65001 or AADSTS90094). Microsoft's consent is all or nothing, so one such option stops the whole sign-in. Fix: Untick the options marked as needing approval and connect again, or ask an administrator to grant admin consent for those permissions (see the approval step), then connect with them ticked. #### "Microsoft Teams works with work or school accounts only" Cause: You signed in with a personal Microsoft account (Outlook.com, Hotmail, Live or Teams free). Microsoft offers no Teams access through Microsoft Graph for those. Fix: Connect again and sign in with the work or school account your organization gave you. #### "Microsoft signed in but would not list your teams" Cause: A permission was declined on the consent screen, your organization still has to approve the app, or the account has no Teams license. Fix: Connect again and approve every permission, ask your administrator to approve the app, or ask them to assign a license that includes Teams. #### A tool answers "This needs ChannelMessage.Read.All, which comes with Read channel messages and files" Cause: The connection was made without that option, so PopMCP refuses before asking Microsoft. Other tools name their own option the same way. Fix: Reconnect Microsoft Teams with the named option ticked under **What PopMCP may do in Teams**. Options marked as needing approval work once an administrator approves them. #### "Not approved yet (ask a Microsoft 365 administrator)" on the connection Cause: You ticked an option, but the token Microsoft issued does not carry its permissions yet. Fix: Ask an administrator to grant admin consent for the permissions of that option, then reconnect. #### 429 Too Many Requests Cause: Teams limits each app per tenant, per team, chat or channel, and per user: for example 1 message a second per chat or channel, and listing chats about once a second per user. Fix: Wait the time Microsoft gives and try again. teams_recent_chats, teams_read_chat, teams_read_channel and teams_batch_read do in one call what would otherwise take many. --- ## PandaDoc URL: https://www.docs.popmcp.com/docs/integrations/pandadoc/ Summary: Connect PandaDoc to create documents from templates, send them for signature, and manage recipients, fields, and quotes. You end up with one PandaDoc API key, a 40-character hex string generated on the Dev center's Configuration page, that you paste into PopMCP's API Key field. - Auth: API credentials - Setup time: 6 min - API base URL: https://api.pandadoc.com/public/v1 - Credentials screen: https://app.pandadoc.com/a/#/api-dashboard/configuration - Provider docs: https://developers.pandadoc.com/reference/api-key-authentication-process ### Approval required before this works A PandaDoc Production API key must be activated by PandaDoc's own team via Sales, Support or your CSM, and the developer docs state it requires an active Enterprise plan; only the Sandbox key is self-serve. - Typical wait: Not published; it depends on a sales or support conversation rather than a review queue - Cost: Sandbox key free. Production key documented as requiring an Enterprise plan, which is quote-only pricing from PandaDoc Sales; the API itself is listed for Business and Enterprise tiers. - Blocked until approved: With only a Sandbox key you cannot send documents to anyone outside your own email domain, generated PDFs carry a watermark, documents get a [DEV] prefix, and calls are capped at 10 requests per minute per endpoint. No real customer-facing document can be sent until the Production key is activated. - Works meanwhile: Generate a Sandbox key in the Dev Center immediately and build and test the whole integration: templates, document creation, recipients within your own domain, webhooks and status polling all work. ### Before you begin - PandaDoc Business or Enterprise plan, or an active trial, for a Sandbox key - Enterprise plan plus activation by PandaDoc for a Production key - Org Admin or account owner role. Only they can open the Dev center and generate a key - A long-lived user account. Removing the user who created a key deactivates that key ### Get your credentials #### 1. Sign in as an Org Admin and pick the workspace Sign in at app.pandadoc.com with an Org Admin account. Use the workspace switcher at the top left to select the workspace PopMCP should act on. Screen: https://app.pandadoc.com #### 2. Turn on API access in Settings Click the gear icon at the bottom of the left nav, open API and Integrations, then API, and click Enable. Enterprise accounts can skip to the next step. Screen: https://app.pandadoc.com/a/#/settings/api #### 3. Open Dev center → Configuration Open Dev center and select Configuration. The direct link is app.pandadoc.com/a/#/api-dashboard/configuration. Screen: https://app.pandadoc.com/a/#/api-dashboard/configuration #### 4. Create a Sandbox API key Click Create API key, name it `PopMCP`, select Sandbox and click Create. Screen: https://app.pandadoc.com/a/#/api-dashboard/configuration #### 5. Ask PandaDoc to activate a Production key To send real documents, contact your PandaDoc CSM or Support and request a Production key on your Enterprise plan. Screen: https://demo.pandadoc.com/api-custom-request #### 6. Copy the key into PopMCP Copy the key from the Configuration page and paste it into PopMCP's API Key field. ### Fields PopMCP asks for - API Key (apiKey) [required]: Generate it in PandaDoc → Developer Dashboard → Configuration (app.pandadoc.com/a/#/api-dashboard/configuration). A Sandbox key works on Business/Enterprise plans (test documents, watermarked PDFs, 10 req/min); a Production key needs Enterprise + activation. Sent as the Authorization: API-Key header, stored encrypted, used server-side only. ### Verify PopMCP shows the connection as Connected and listing templates or documents returns your PandaDoc workspace's real items. With a Sandbox key, new documents appear in PandaDoc with a [DEV] prefix. ### Troubleshooting #### 401 Unauthorized Cause: The key is wrong, was deactivated because its creator left the workspace, or you are calling a Production-only endpoint with a Sandbox key. Fix: Create a new key from an Org Admin account that stays in the workspace, or request a Production key for the endpoints that need one. #### Dev center is not in the left nav Cause: API access has not been enabled for this workspace on a Business plan. Fix: Go to Settings, API and Integrations, API, then click Enable. #### 403 Forbidden on org-level actions Cause: The key was generated by a user without Org Admin rights. Fix: Have an Org Admin create a fresh key on the Configuration page and replace it in PopMCP. #### Documents come out watermarked with a [DEV] prefix Cause: You are using a Sandbox key, which is the intended behaviour for testing. Fix: Request a Production key from PandaDoc once you are ready to send live documents. #### 429 Too Many Requests Cause: Sandbox keys are capped at 10 requests per minute per endpoint, and limits are pooled per user across all their keys. Fix: Slow the request rate, or move to a Production key whose limits run from roughly 50 to 2,000 requests per minute. #### Documents or templates are missing Cause: The key belongs to a different PandaDoc workspace. Fix: Switch to the correct workspace, create a key there, and reconnect PopMCP with it. --- ## PayPal URL: https://www.docs.popmcp.com/docs/integrations/paypal/ Summary: Connect PayPal to take payments and refunds, send invoices and payment links, manage subscriptions, answer disputes, and track sales and payouts. You end up pasting the Client ID and Secret of a REST app from the PayPal developer dashboard. Every PayPal business account already has a Default Application you can use; PopMCP works out on its own whether the app is a live or a sandbox one. - Auth: API credentials - Setup time: 5 min - API base URL: https://api-m.paypal.com - Credentials screen: https://developer.paypal.com/dashboard/applications/live - Provider docs: https://developer.paypal.com/api/rest/ ### Before you begin - A PayPal business account (going live and testing outside the US both need one); a free developer account is enough for sandbox testing in the US - Access to developer.paypal.com with that PayPal login - Transaction search, Invoicing, Subscriptions and Customer disputes are app features you tick yourself; nothing to apply for - Payouts only: PayPal support has to switch Payouts on for a live account before payouts can be sent ### Get your credentials #### 1. Open Apps & Credentials Log in at `developer.paypal.com` with your PayPal business account and open Apps & Credentials. Use the Live toggle for your real account, or Sandbox to try PopMCP with test money first. Screen: https://developer.paypal.com/dashboard/applications/live #### 2. Create an app for PopMCP (optional) Click Create App, name it `PopMCP`, keep Merchant as the Type and click Create App. On the Sandbox toggle, also pick the sandbox business account the app should act for. The app's details page opens. Screen: https://developer.paypal.com/dashboard/applications/live #### 3. Tick the features the AI should use On the app's page, scroll to Features and tick what you want PopMCP to reach: Transaction search (sales totals, transaction history and balances), Invoicing, Subscriptions, Customer disputes, and Payouts if you send money out. Click Save Changes. Screen: https://developer.paypal.com/dashboard/applications/live #### 4. Copy the Client ID and Secret On the same page, copy the Client ID, then show the Secret under Secret key 1 and copy it too. Both must come from the same app. Screen: https://developer.paypal.com/dashboard/applications/live #### 5. Connect in PopMCP Paste the Client ID and the Secret into PopMCP's PayPal form and click Connect PayPal. PopMCP checks the pair with PayPal, finds out whether it is a live or a sandbox app, and shows the account it belongs to. Screen: https://developer.paypal.com/api/rest/ ### Fields PopMCP asks for - Client ID (clientId) [required]: At developer.paypal.com, log in with your PayPal business account, open Apps & Credentials (Live or Sandbox), choose your app and copy the Client ID. - Secret (clientSecret) [required]: On the same app's page, under Secret key 1. Stored encrypted and used only on our servers to get PayPal access tokens. ### Verify PopMCP shows the PayPal connector as Connected with the account name (marked sandbox for a sandbox app) and lists any of the features above that are still turned off in the app. ### Troubleshooting #### PayPal did not accept this Client ID and Secret Cause: The two values come from different apps, the Secret was copied with a space or cut short, or the app was deleted. Fix: Open the app in Apps & Credentials, copy the Client ID and Secret key 1 from that one page again, and paste only the values. #### A tool says a feature is turned off Cause: PayPal refuses calls for an app feature that is not ticked, such as Transaction search for sales totals and balances. Fix: Tick the feature under the app's Features and click Save Changes. A feature ticked after connecting can take a few hours to start working. #### Nothing with that id was found Cause: Live and sandbox are separate systems: an order, invoice or dispute id from one is not found on the other. Fix: Check the connection is the system the id came from (the connector card says sandbox for a sandbox app), and connect the other app if needed. #### Transactions from today are missing Cause: PayPal's transaction search can take up to three hours to show a new transaction, and covers at most 31 days per call. Fix: Check again later; for longer ranges ask for a sales summary, which splits the range for you. #### Payouts are refused on a live account Cause: Payouts is not switched on for the account, or the app's Payouts feature is not ticked. Fix: Ask PayPal support to enable Payouts for your business account, then tick Payouts in the app's Features. --- ## Pinterest URL: https://www.docs.popmcp.com/docs/integrations/pinterest/ Summary: Connect Pinterest to create and schedule Pins, organise boards, track Pin and profile performance, research trends, and run your ad campaigns. You end up pasting your Pinterest app's App ID and App secret key, both taken from the Api keys section of the Configure tab on developers.pinterest.com/apps. - Auth: OAuth authorization - Setup time: 10 min, plus up to one business day for Pinterest to approve trial access - API base URL: https://api.pinterest.com/v5 - Credentials screen: https://developers.pinterest.com/apps/ - Provider docs: https://developers.pinterest.com/docs/getting-started/set-up-authentication-and-authorization/ ### Approval required before this works Pinterest must approve your registered app twice: first for Trial access (the app secret is withheld until then), and again for Standard access before Pins and Boards created via the API are visible to anyone but their creator. - Typical wait: Pinterest states approvals "typically take one to three business days" for the app/Trial review. Pinterest publishes no timeframe for the Trial-to-Standard upgrade; developers widely report it taking weeks, so treat it as unbounded rather than planning around a number. - Cost: Free - Blocked until approved: Until the app is approved you cannot even see the client secret, so OAuth cannot be completed and no token exists. Once on Trial access the API works but is rate limited per app per day and everything you create is sandboxed: Pins and Boards are visible only to their creator, so nothing you publish is actually live on Pinterest until Standard access is granted. - Works meanwhile: Create the Pinterest business account, register the app and configure redirect URIs. After Trial approval you can build and test the entire OAuth flow, read account data, and create Pins/Boards for real, they are just creator-only until Standard lands. ### Before you begin - A Pinterest business account with a verified email address - Developer Terms of Service accepted on the My apps page - Trial access approved by Pinterest, which is reviewed each business day - A live privacy policy URL and a specific app description, since vague descriptions are the most common reason trial access is denied - Standard access if you need Pins and boards created through the API to be publicly visible rather than sandbox-only ### Get your credentials #### 1. Sign in as a business account and accept the Developer Terms Sign in at developers.pinterest.com with a Pinterest business account and confirm the account email address. Open My apps in the top nav and accept the Developer Terms of Service when prompted. Screen: https://developers.pinterest.com/apps/ #### 2. Request trial access with Connect app On the My apps page click Connect app. Fill in the app name, the app description and your privacy policy URL, then click Submit. Screen: https://developers.pinterest.com/apps/ #### 3. Add the PopMCP callback as a redirect URI Once the app is approved, click Manage on the app card and open the Configure tab. Scroll to Redirect URIs, paste the callback URL from the PopMCP connect screen and click Add. Screen: https://developers.pinterest.com/apps/ #### 4. Copy the App ID and App secret key Stay on the Configure tab and find the Api keys section. Copy the App ID and the App secret key into PopMCP's App ID and App secret fields. Screen: https://developers.pinterest.com/apps/ #### 5. Upgrade to Standard access when you go live Open My apps and click Upgrade on the app card. Attach the screen recording of your OAuth flow when the form asks for it. Screen: https://developers.pinterest.com/docs/key-concepts/access-tiers/ ### Fields PopMCP asks for - App ID (clientId) [required]: Your Pinterest app's "App ID" from developers.pinterest.com/apps. Add the callback URL above to that app's redirect URIs first. - App secret (clientSecret) [required]: The app's secret token (same page as the App ID). Stored encrypted; used server-side only and never shown again. ### Callback URL to register https://app.popmcp.com/api/providers/pinterest/callback ### Scopes requested - user_accounts:read - user_accounts:write - boards:read - boards:write - boards:read_secret - boards:write_secret - pins:read - pins:write - pins:read_secret - pins:write_secret - catalogs:read - catalogs:write - ads:read - ads:write - billing:read - billing:write - biz_access:read - biz_access:write ### Verify PopMCP shows the Pinterest connector as Connected with your Pinterest username and account type, and a test call to list boards returns your boards instead of an authorization error. ### Troubleshooting #### The Api keys section is empty or there is no Manage button Cause: The app is still pending trial access review, so it has no Active status yet. Fix: Wait for the approval email, which arrives on a business-day cycle, then reload developers.pinterest.com/apps and click Manage. #### The app secret key is masked and cannot be revealed again Cause: Pinterest shows the secret once, at the moment it is generated. Fix: Open Configure, click Reset app secret, confirm with Reset, then copy the new key straight into PopMCP. #### invalid_request: redirect_uri mismatch during authorization Cause: The redirect URI in the app profile differs from the callback PopMCP sends, often by a trailing slash or http versus https. Fix: Copy the callback URL straight from the PopMCP connect screen into Configure, Redirect URIs, and delete any near-duplicate entries. #### Trial access request denied Cause: Pinterest most often rejects a missing or unreachable privacy policy URL, or an app description too vague to review. Fix: Publish a real privacy policy, rewrite the description to name the endpoints you call and why, then resubmit Connect app. #### Pins created through PopMCP are not visible on the public profile Cause: The app is on Trial access, where created Pins and boards are sandbox entities visible only to their creator. Fix: Click Upgrade on the app card in My apps and include a recording of the OAuth flow. #### 429 Too Many Requests early in the day Cause: Trial access uses a per-app daily budget rather than a per-minute one. Fix: Check the x-ratelimit-remaining response header, batch your reads, and upgrade to Standard access for per-minute limits. --- ## Pipedrive URL: https://www.docs.popmcp.com/docs/integrations/pipedrive/ Summary: Connect Pipedrive to manage deals, leads, persons, organizations, products, activities, notes, and pipelines. You end up with your personal Pipedrive API token, copied from Settings, Personal preferences, API, plus optionally your company subdomain from the Pipedrive URL. - Auth: API credentials - Setup time: 2 min - API base URL: https://{company-domain}.pipedrive.com/api/v2 - Credentials screen: https://app.pipedrive.com/settings/api - Provider docs: https://pipedrive.readme.io/docs/core-api-concepts-authentication ### Before you begin - A Pipedrive user account in the company whose data PopMCP should see - The "Access their own API token" permission enabled for your permission set, under Settings, Manage users, Permission sets, Tools and setup - Awareness that the token inherits your own visibility. PopMCP sees exactly the deals, contacts and pipelines you can see ### Get your credentials #### 1. Open your Pipedrive settings Sign in at app.pipedrive.com, click your account name in the top-right corner and choose Company settings. Screen: https://app.pipedrive.com #### 2. Go to Personal preferences → API In the settings sidebar open Personal preferences and click API. The direct link is app.pipedrive.com/settings/api. Screen: https://app.pipedrive.com/settings/api #### 3. Copy the token Click Copy next to Your personal API token. Do not click Generate new token unless you are ready to update every integration using the old one. Screen: https://app.pipedrive.com/settings/api #### 4. Note your company domain Read the subdomain from your browser address bar at https://your-company.pipedrive.com. Copy just the subdomain, for example `acme-sales`. #### 5. Paste the values into PopMCP Paste the token into PopMCP's API token field. Leave Company domain blank, or paste the subdomain from the previous step. ### Fields PopMCP asks for - API token (apiToken) [required]: In Pipedrive: click your profile (top-right) → Company settings → Personal preferences → API → copy your personal API token (or Settings → search "API"). The token is tied to your user and company. Stored encrypted. - Company domain (optional) (companyDomain): The subdomain in your Pipedrive URL: https://.pipedrive.com. Leave blank and we'll detect it automatically from your token. You can paste the full URL; we'll extract the subdomain. ### Verify PopMCP shows the connection as Connected and reports your Pipedrive company name. Asking for your pipelines or open deals returns real records from that account. ### Troubleshooting #### 401 Unauthorized Cause: The token was mistyped or truncated, or it was regenerated in Pipedrive after you connected. Fix: Re-copy the current token from Settings, Personal preferences, API and paste it into PopMCP again. #### The API page is not in Personal preferences Cause: Your permission set does not allow access to your own API token. Fix: Ask an admin to open Settings, Manage users, Permission sets, select your set and tick "Access their own API token" under Tools and setup. #### Requests hit the wrong company Cause: You belong to several Pipedrive companies and pasted a token from a different one, or typed the wrong subdomain. Fix: Leave Company domain blank so PopMCP resolves it from the token, or copy the subdomain exactly from the browser URL while logged in to the right company. #### An integration suddenly stopped working Cause: The token was regenerated. Only one token is active per user at a time. Fix: Copy the new token into every integration, including PopMCP. #### 429 Too Many Requests Cause: You exceeded the short burst window or exhausted the daily token budget for your plan and seat count. Fix: Space out requests and retry. Heavy usage may need a higher Pipedrive plan or more seats, which raises the daily budget. --- ## PostHog URL: https://www.docs.popmcp.com/docs/integrations/posthog/ Summary: Connect PostHog to query events, build insights and dashboards, and manage feature flags, experiments, and cohorts. One PostHog personal API key starting with phx_, plus the region your project lives in (us, eu or selfhosted) and a host URL if you run PostHog yourself. - Auth: API credentials - Setup time: 4 min - API base URL: https://us.posthog.com/api - Credentials screen: https://us.posthog.com/settings/user-api-keys - Provider docs: https://posthog.com/docs/api ### Before you begin - PostHog account on any plan, including the free tier - Membership of the organization and project you want PopMCP to reach, because a personal API key never exceeds your own access - Know whether your project is on US Cloud, EU Cloud or a self-hosted instance ### Get your credentials #### 1. Open the Personal API keys page Sign in to PostHog, open Settings from the sidebar and pick Personal API keys under User. On EU Cloud replace `us.posthog.com` with `eu.posthog.com`. Screen: https://us.posthog.com/settings/user-api-keys?preset=mcp_server #### 2. Create the key and give it a label Click + Create a personal API Key and type a label such as `PopMCP`. #### 3. Choose the scopes Pick All access, or switch to scoped access and tick read and write on `insight`, `dashboard`, `feature_flag`, `query`, `person`, `cohort`, `experiment`, `survey` and `annotation`. Add read on `user`, `organization` and `project`. #### 4. Limit the organization and project In the same dialog set Organization & project access to the one organization and one project PopMCP should reach, then click Create key. #### 5. Copy the key value The new key appears at the top of the list with its full value shown once. Copy it before you refresh the page. #### 6. Paste the key and region into PopMCP Paste the value into Personal API Key and type `us`, `eu` or `selfhosted` into Region. Fill Self-hosted host only when the region is `selfhosted`. ### Fields PopMCP asks for - Personal API Key (apiKey) [required]: PostHog → Settings → Personal API keys → + Create a personal API key (direct: https://us.posthog.com/settings/user-api-keys?preset=mcp_server; use the eu. host for EU). Pick "All access" (or read+write scopes for insight, dashboard, feature_flag, query, person, cohort, experiment, survey, annotation, plus user/organization/project read). The key is shown only once. Stored encrypted. - Region (us, eu, or selfhosted) (region): Where your PostHog data lives: us (default, us.posthog.com), eu (eu.posthog.com), or selfhosted. A key only works against its own region. If you pick the wrong cloud region we'll auto-correct it on connect. - Self-hosted host (only if region = selfhosted) (host): Your self-hosted PostHog URL. Leave blank for US/EU Cloud. ### Verify PopMCP shows the connector as Connected with your PostHog project name and region, and a test call to the projects endpoint returns your project ID instead of a 401. ### Troubleshooting #### 401 Unauthorized on every call Cause: The key was created on the other cloud. A us.posthog.com key never works against eu.posthog.com. Fix: Set Region to match the host you signed in to, or create a fresh key on the correct cloud. #### 403 Forbidden on some tools only Cause: The key uses scoped access and one specific scope is missing. Fix: Open Settings, User, Personal API keys, click the key and add the missing read or write scope. Scopes are editable after creation. #### You refreshed the page before copying the key Cause: PostHog displays the value once and stores only a hash. Fix: Open the key from the list and choose Roll key, or delete it and create a new one. #### The key shows a Legacy tag Cause: Keys created before February 2024 use the older PBKDF2 hashing. Fix: Open the key and click Roll key to reissue it in the current format. #### 429 Too Many Requests Cause: Private analytics endpoints allow 240 requests per minute and 1,200 per hour. Fix: Space out bulk work and let PopMCP retry. The window resets on the hour. #### Self-hosted instance rejects the key Cause: Region was left as us while the key belongs to your own deployment. Fix: Set Region to selfhosted and put the full instance URL, including https://, in the host field. --- ## Postman URL: https://www.docs.popmcp.com/docs/integrations/postman/ Summary: Connect Postman to manage workspaces, collections, environments, mock servers, monitors, and specs for your team. You end up with a single Postman API key beginning with PMAK- that you paste into PopMCP's API key field. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.getpostman.com - Credentials screen: https://go.postman.co/settings/me/api-keys - Provider docs: https://learning.postman.com/docs/developer/postman-api/authentication/ ### Before you begin - A Postman account. The Free plan is enough. - If you belong to a Postman team, an Admin must leave **Allow anyone in your team to generate API keys** turned on. - Access to the workspaces you want PopMCP to reach. The key inherits your own Postman permissions. ### Get your credentials #### 1. Open your Postman account settings Sign in at go.postman.co and click the gear icon in the top right of the Postman header. Choose Settings, then Account settings. Screen: https://go.postman.co/settings/me #### 2. Open API keys and start a new key In the account settings sidebar click API keys, then click Generate API Key. Screen: https://go.postman.co/settings/me/api-keys #### 3. Name the key and generate it Type a name you will recognise later, such as PopMCP, set an expiry if you want one, then click Generate API Key. #### 4. Copy the key into PopMCP Click Copy in the dialog, then paste the key into the API key field on PopMCP's Postman connect form. ### Fields PopMCP asks for - API key (apiKey) [required]: In Postman open Account settings → API keys (https://go.postman.co/settings/me/api-keys) → Generate API key, give it a name, and copy it (Postman shows it once; it starts with PMAK-). It's sent as the X-API-Key header and stored encrypted; used server-side only. ### Verify The Postman connector in PopMCP flips to Connected and a tool call such as listing workspaces returns your workspace names instead of an authentication error. ### Troubleshooting #### 401 with "Invalid API Key. Every request requires a valid API Key to be sent." Cause: The key was mistyped, truncated on paste, or has been revoked. Fix: Generate a fresh key on the API keys page and paste the whole PMAK- string with no leading or trailing spaces. #### You closed the dialog before copying the key Cause: Postman shows a new key once. After the dialog closes it can only be revoked or regenerated, never shown again. Fix: Use the more actions icon next to the key on the API keys page to regenerate or delete it, then create a replacement. #### The Generate API Key button is disabled Cause: A team Admin turned off "Allow anyone in your team to generate API keys". Fix: Ask a Postman Admin or Super Admin to re-enable key generation, or to issue you a key. #### The connector worked and then stopped Cause: The key hit its expiry, or Postman's Secret Scanner auto-revoked it after finding it published somewhere public. Fix: Generate a replacement key, update it in PopMCP, and keep the key out of public repos and collections. #### 429 Too Many Requests Cause: More than 300 calls in a minute on that key, or the plan's monthly Postman API allowance is used up. Fix: Slow the calls down and check your plan's Postman API usage in billing. --- ## Postmark URL: https://www.docs.popmcp.com/docs/integrations/postmark/ Summary: Connect Postmark to send transactional and bulk email, manage templates, track deliveries, bounces and opens, and handle suppressions and domains. You paste one Postmark API token: the Account API token to connect any of your servers (you pick them next), or one server's Server API token to connect just that server. Postmark tokens don't expire. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.postmarkapp.com - Credentials screen: https://account.postmarkapp.com/servers - Provider docs: https://postmarkapp.com/developer/api/overview#authentication ### Approval required before this works Postmark staff review every new account by hand before it can send to the outside world. The token connects and every read works straight away, but until the account is approved Postmark only delivers to addresses on the domains you have added and verified. - Typical wait: Usually under 24 hours on weekdays, a little longer at weekends, per Postmark's own support article - Cost: Postmark lists no charge for the review itself. Email volume is billed on your Postmark plan as usual. - Blocked until approved: Sending to any address outside your own verified domains. Such sends fail with ErrorCode 412, which says every recipient must share the From address's domain while the account is pending; an account Postmark has not approved to send gets ErrorCode 413. - Works meanwhile: Connecting the token, picking servers, and every read and setup tool: messages, bounces, stats, templates, message streams, webhooks and suppressions. Test sends to addresses on your own verified domain also work. ### Before you begin - A Postmark account with at least one server - The Account Owner or Account Admin role to see the Account API token. Server Admins can only see Server API tokens for their own servers. - A confirmed sender signature or a verified domain to send from - An approved account if the AI will email people outside your own verified domains. Postmark reviews new accounts by hand, usually in under 24 hours on weekdays. ### Get your credentials #### 1. Open API Tokens in your account Sign in at `account.postmarkapp.com` as the Account Owner or an Account Admin. In the Account section, open API Tokens and copy the Account API token. This one token lets you connect any of your servers. Screen: https://account.postmarkapp.com/servers #### 2. Or copy one server's Server API token To connect a single server only, open Servers, choose the server and click its API Tokens tab. A server can hold up to 3 tokens; copy any one of them. With a server token, the account-level tools (servers, domains, sender signatures, template push, data removals) stay unavailable. Screen: https://account.postmarkapp.com/servers #### 3. Confirm a sender you can send from Open Sender Signatures or Domains and check that the address or domain the AI should send from is confirmed or verified. Note one address if you want it as the default From. Screen: https://account.postmarkapp.com/servers #### 4. Request account approval if Postmark asks for it A new account is reviewed by Postmark staff before it can send to anyone outside your own verified domains. If your account shows it is pending approval, the Account Owner can request approval from inside the account. Reading, templates and test sends to your own domain work meanwhile. Screen: https://postmarkapp.com/support/article/1084-how-does-the-account-approval-process-work #### 5. Paste the token into PopMCP Paste the token into Postmark API token. Optionally fill Default From address (optional) with a confirmed sender, used when the AI sends without naming one. With the Account API token, PopMCP lists your servers next: pick each server and the workspace it belongs in. ### Fields PopMCP asks for - Postmark API token (apiToken) [required]: Best: your Account API token, from Postmark → Account → API Tokens (only the account owner and admins can see it). It connects any of your servers and adds domains, sender signatures and server management. Or paste one server's Server API token, from Postmark → Servers → your server → API Tokens, to connect just that server. We detect which kind you pasted. Stored encrypted, used server-side only. - Default From address (optional) (defaultFrom): Used when your AI sends an email without saying who it's from. Must be a confirmed sender signature or an address on a verified domain in Postmark. ### Verify PopMCP shows Postmark as Verified under the server's name, one connection per server you picked. Ask how many emails bounced this week: postmark_get_bounce_counts or postmark_list_bounces answers from that server instead of an ErrorCode 10 token error. ### Troubleshooting #### "Postmark didn't accept that token as a Server API token or as an Account API token" Cause: The token was copied incompletely, or it was removed from the server or account. Fix: Copy it again from Account, API Tokens (account token) or Servers, your server, API Tokens (server token) and paste it on its own, with no header name or quotes. #### "POSTMARK_API_TEST is Postmark's shared test token" Cause: The sample token from Postmark's docs was pasted. Fix: Paste your server's own Server API token or the Account API token. #### A tool for servers, domains or sender signatures says it needs an Account API token Cause: The connection was made with a Server API token, which Postmark doesn't accept on account-level endpoints (ErrorCode 10). Fix: Reconnect with the Account API token. Every server-level tool keeps working meanwhile. #### Sends fail with ErrorCode 412: recipients must share the domain of the From address Cause: The account is still pending Postmark's manual approval. Fix: Have the Account Owner request approval in Postmark. Until then, send only to addresses on your own verified domains. #### Sends fail because the From address isn't a confirmed sender Cause: The From address (or the Default From address) is not a confirmed sender signature and not on a verified domain. Fix: Confirm the signature or verify the domain in Postmark, or change the Default From address to one that is confirmed. #### ErrorCode 406: inactive recipient Cause: Postmark deactivated the address after a hard bounce, a spam complaint or an unsubscribe. Fix: Ask the AI to run postmark_diagnose_delivery. A bounce can be reactivated with postmark_activate_bounce when its CanActivate is true; spam-complaint suppressions can only be lifted by Postmark support. #### ErrorCode 14 on send_bulk_email, or 614 on a stats tool Cause: The Bulk API needs separate approval from Postmark, and the stats API is only included on some Postmark plans. Fix: Contact Postmark support to enable bulk sending, use postmark_send_email_batch for transactional sends, or upgrade the plan for stats. --- ## Postscript URL: https://www.docs.popmcp.com/docs/integrations/postscript/ Summary: Connect Postscript to manage SMS subscribers, send text messages, trigger Flows with custom events, run compliance opt-outs, and manage webhooks. You end up with the Private Key half of a Postscript API security key pair, an sk_ string that you paste into PopMCP's API key field. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.postscript.io/api/v2 - Credentials screen: https://app.postscript.io/account/api - Provider docs: https://developers.postscript.io/docs/api-authentication ### Before you begin - A Postscript account with the shop you want to connect already selected. - A role that can open the shop menu and reach **API**, such as shop owner or admin. - Partners only: a Partner API key issued by Postscript to approved Integration Partners. There is no self-serve way to create one, so request it from your Postscript contact. ### Get your credentials #### 1. Open the API page for your shop Sign in at app.postscript.io and select your Shop Name in the side menu, then select API. If you manage several shops, switch to the right one first with Select Shop. Screen: https://app.postscript.io/account/api #### 2. Create a security key pair Select Create Security Key Pair on the right of the page, then confirm with Yes. #### 3. Label the pair and reveal the private key Type a label such as PopMCP in the Label column so you can track where the key is used. Select Show in the Private Key column and copy the `sk_` value. #### 4. Paste it into PopMCP Put the private key in PopMCP's API key field and leave Shop token blank. ### Fields PopMCP asks for - API key (apiKey) [required]: Postscript dashboard (app.postscript.io) → Account → API → copy your PRIVATE API key (not the Public key). If none is shown, click Create Security Key Pair first. Stored encrypted; used server-side only (sent as Authorization: Bearer). The connection is locked to this key's shop. - Shop token (partners only, optional) (shopToken): Only for Postscript technical partners: put your PARTNER key in the API key field above and the target shop's Private API Key here. It is sent as X-Postscript-Shop-Token. Shops connecting their own account should leave this blank. ### Verify The Postscript connector in PopMCP shows Connected and a read call such as listing subscribers returns rows from the shop whose key you pasted. ### Troubleshooting #### 401 Unauthorized on every call Cause: The Public Key was pasted instead of the Private Key, or the pair was disabled or deleted. Fix: Open the shop menu, select API, check the row shows Enabled, and use Show in the Private Key column to copy the correct value. #### Calls return data for the wrong store Cause: A different shop was active when the key pair was created. Keys are bound to one shop. Fix: Use Select Shop to switch to the right shop, create a key pair there, and reconnect PopMCP with it. #### 429 with "Rate limit exceeded" Cause: More than 15 requests per second on that token. Fix: Space the calls out and retry. The limit is per token, so a partner key paired with a shop token shares one bucket. #### Partner key returns 403 for a shop Cause: The shop token header is missing or holds the shop's public key. Fix: Put the partner key in API key and the shop's private key in Shop token. --- ## Printful URL: https://www.docs.popmcp.com/docs/integrations/printful/ Summary: Connect Printful to browse the print-on-demand catalog, push products to your store, create and fulfil orders, upload print files, generate mockups, and rate-shop shipping. You end up with one Printful private token, created in the Printful Developer Portal, that you paste into PopMCP's Private token field. - Auth: API credentials - Setup time: 5 min - API base URL: https://api.printful.com - Credentials screen: https://developers.printful.com/tokens - Provider docs: https://developers.printful.com/docs/ ### Before you begin - A Printful account with at least one store already created. - Sign-in rights to that account. The Developer Portal logs you in through Printful's own OAuth screen. - A contact email for the token. The form requires one. - Decide whether the token covers one store or the whole account. Account-level tokens need an X-PF-Store-Id header on store endpoints. - Private tokens carry an expiry date and cannot be refreshed, so plan to replace the token before it lapses. ### Get your credentials #### 1. Sign in to the Printful Developer Portal Go to developers.printful.com and click Sign in to Printful. Approve the Printful sign-in screen to land back in the portal. Screen: https://developers.printful.com/login #### 2. Open Tokens and add a new one In the left menu click Tokens, then click Add new token. Screen: https://developers.printful.com/tokens #### 3. Fill in the details, expiry and access level Enter PopMCP under Token name and an address under Contact email. Pick an Expiration date, then choose A single store and select your store from the dropdown. Screen: https://developers.printful.com/tokens/add-new-token #### 4. Tick the scopes and create the token Under Scopes tick Orders, Sync products and File library, plus Webhooks if PopMCP should manage subscriptions. Click Create new token. #### 5. Copy the access key into PopMCP Copy the value in the Access key panel, then paste it into PopMCP's Private token field. ### Fields PopMCP asks for - Private token (apiToken) [required]: In Printful, open the Developer Portal (developers.printful.com) → Your tokens → create a private token, grant the scopes you need (orders, sync products, file library, webhooks, …), and copy it (it is shown only once). Sent as an Authorization: Bearer header, stored encrypted, used server-side only. ### Verify The Printful connector in PopMCP shows Connected and a catalog or store-information call returns your store name rather than a 401. ### Troubleshooting #### 401 Unauthorized Cause: The token expired, was deleted in the Developer Portal, or the Bearer prefix got mangled on paste. Fix: Check the Expires on date under Your tokens and create a replacement if it has lapsed. #### You navigated away before copying the access key Cause: The Access key panel shows the secret once, and Printful does not store it. Fix: Delete the token under Your tokens and create a new one. #### 403 on a specific endpoint while others work Cause: That endpoint needs a scope the token was not granted, or you granted the read-only variant. Fix: Create a new token with the missing scope. Scopes cannot be added to a token after creation. #### Calls fail with a missing store error Cause: An account-level token was used on an endpoint that needs store context. Fix: Create a store-level token for the store you want, or make sure PopMCP is configured to send X-PF-Store-Id. #### 429 Too Many Requests Cause: More than 120 calls in a minute, or a stricter per-endpoint limit such as the mockup generator. Fix: Back off and retry. Batch mockup generation rather than firing requests in parallel. --- ## Printify URL: https://www.docs.popmcp.com/docs/integrations/printify/ Summary: Connect Printify to browse the print-on-demand catalog, upload artwork, build, price, and publish products, and place, price, approve, cancel, and track orders across your shops. One Printify Personal Access Token, generated from My profile then Connections and shown only once at creation. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.printify.com/v1 - Credentials screen: https://printify.com/app/account/api - Provider docs: https://developers.printify.com/#authentication ### Before you begin - A Printify account on any plan, including the free one - Access to My profile then Connections, because tokens belong to the signed-in user rather than to a store - At least one store connected to the account, otherwise the shops, products and orders tools return nothing ### Get your credentials #### 1. Open Connections Sign in at printify.com/app and open My profile, then Connections. You can also go straight to `printify.com/app/account/api`. Screen: https://printify.com/app/account/api #### 2. Generate a new token Click Generate on the Connections page. Type a name you will recognise later, such as `PopMCP`. Screen: https://printify.com/app/account/api #### 3. Tick every access scope Tick all eleven access scopes so every PopMCP tool works, then click Generate token. #### 4. Copy the token before you close the dialog Click Copy to clipboard in the dialog that opens and paste the token somewhere safe. Click Close only once you have it. #### 5. Paste the token into PopMCP Open the Printify connector in PopMCP and paste the value into Personal Access Token, then click Connect. ### Fields PopMCP asks for - Personal Access Token (apiToken) [required]: In Printify go to the dashboard → My Profile → Connections → generate a Personal Access Token, tick ALL access scopes (shops, catalog, products, orders, uploads, webhooks), and copy it immediately (it is shown only once). Tokens are valid for one year. Sent as an Authorization: Bearer header, stored encrypted, used server-side only. The connection is locked to this token's merchant account. ### Verify PopMCP marks the Printify connector Connected and the shop picker fills with the stores on your Printify account. Asking for your Printify shops returns real store names and ids. ### Troubleshooting #### 401 Unauthorized on every call Cause: The token was truncated on paste, or it has passed its one-year expiry. Fix: Generate a fresh token under My profile then Connections and paste the whole string with no leading or trailing spaces. #### 403 Forbidden on one group of tools only Cause: The token was created without the matching access scope ticked. Fix: Scopes are fixed at creation. Generate a replacement token with every scope ticked and swap it into PopMCP. #### The token dialog was closed before copying Cause: Printify shows the token string once, in the dialog that appears straight after generation. Fix: Revoke the token on the Connections list and generate a new one. #### 429 Too Many Requests Cause: You went past 600 requests per minute globally, 100 per minute against the catalog, or 200 product publishes per 30 minutes. Fix: Wait for the window to reset and space out bulk operations. --- ## QuickBooks URL: https://www.docs.popmcp.com/docs/integrations/quickbooks/ Summary: Connect QuickBooks to manage customers, vendors, invoices, bills, payments, the chart of accounts, and reports. You paste your Intuit app's OAuth 2.0 Client ID and Client Secret into PopMCP, plus the word "sandbox" in Environment if you are connecting an Intuit sandbox company instead of a live one. - Auth: OAuth authorization - Setup time: 15 min for sandbox. Production keys wait on Intuit's app assessment review. - API base URL: https://quickbooks.api.intuit.com/v3/company/{realmId} (sandbox: https://sandbox-quickbooks.api.intuit.com/v3/company/{realmId}) - Credentials screen: https://developer.intuit.com/app/developer/dashboard - Provider docs: https://developer.intuit.com/app/developer/qbo/docs/get-started ### Approval required before this works Intuit blocks an app's QuickBooks Online production keys until you complete the app assessment questionnaire in the developer portal and Intuit reviews the answers. - Typical wait: Intuit publishes no review SLA. Developers commonly report anything from a few business days to about two weeks, and any follow-up question from the reviewer restarts the clock. - Cost: Free - Blocked until approved: Production OAuth client ID and secret stay hidden, so you cannot connect a real QuickBooks Online company. Everything you build against sandbox authenticates only against fake sandbox companies - no live customer, invoice, payment or ledger data until the keys are unblocked. - Works meanwhile: Create the app and use development keys against a sandbox company immediately: full OAuth 2.0 flow, all Accounting API endpoints, webhooks and the API Explorer work on day one. ### Before you begin - Free Intuit Developer account at developer.intuit.com - A QuickBooks Online company you administer. A free sandbox company is created for your developer account automatically. - For live company data you must submit Intuit's app assessment questionnaire and wait for review before production keys unlock - Sandbox keys work immediately and only against Intuit sandbox companies ### Get your credentials #### 1. Create an app in the Intuit Developer portal Sign in at developer.intuit.com and open My Hub, then Workspaces. Click Create an app, choose QuickBooks Online and Payments, name it, and tick the com.intuit.quickbooks.accounting scope. Screen: https://developer.intuit.com/app/developer/dashboard #### 2. Add PopMCP's callback URL as a Redirect URI Open the app and click Settings in the left menu, then open the Redirect URIs tab with Development selected. Click Add URI, paste the callback URL PopMCP shows on the connect form, and click Save. Screen: https://developer.intuit.com/app/developer/dashboard #### 3. Copy the development Client ID and Client Secret Click Keys & credentials in the left menu with Development selected, toggle Show credentials, and copy Client ID and Client Secret. Type `sandbox` in PopMCP's Environment field when you use these keys. Screen: https://developer.intuit.com/app/developer/dashboard #### 4. Unlock production keys Switch to the Production tab and complete App details, covering host domain, launch URL and disconnect URL. Click Start Questionnaire, answer every section, submit it, and wait for Intuit's review. Screen: https://developer.intuit.com/app/developer/dashboard #### 5. Copy the production keys once approved After approval, copy Client ID and Client Secret from the Production tab on Keys & credentials. Open Settings, then Redirect URIs, switch to Production, add the same PopMCP callback URL and click Save. #### 6. Paste into PopMCP and pick the company Enter the Client ID and Client Secret, leave Environment blank for a live company, and click connect. Sign in on Intuit's page and choose the QuickBooks company to authorize. ### Fields PopMCP asks for - Auth type (connectionType): Create an app at developer.intuit.com (Accounting scope). The OAuth flow keeps your QuickBooks login on Intuit's side. - Client ID (clientId) [required]: Your app's "Client ID" from the Keys & OAuth tab on developer.intuit.com. - Client secret (clientSecret) [required]: Your app's "Client Secret". Stored encrypted; used server-side only and never shown again. - Environment (environment): Leave blank for a live company (Production). Enter "sandbox" only if you're connecting an Intuit sandbox/development company using your app's Development keys. ### Callback URL to register https://app.popmcp.com/api/providers/quickbooks/callback ### Scopes requested - com.intuit.quickbooks.accounting ### Verify PopMCP shows the QuickBooks connection as Connected with the company name Intuit returned. A company-info or chart-of-accounts call returns your real accounts. ### Troubleshooting #### invalid_redirect_uri on the Intuit consent screen Cause: The callback URL is missing from this environment's Redirect URIs, or differs by a character such as a trailing slash or http instead of https. Fix: Paste PopMCP's callback URL into the Redirect URIs tab on the app's Settings page under the matching Development or Production tab, then Save. #### 401 Unauthorized on every API call Cause: Development keys used against a live company, or production keys against a sandbox company. Fix: Match the keys to the Environment field. Leave it blank for production, type sandbox for development keys. #### Production keys are greyed out Cause: The app assessment questionnaire has not been submitted or approved. Fix: Complete App details and submit the questionnaire under the Production tab, then wait for Intuit's review. #### 429 Too Many Requests Cause: Over 500 calls in a minute for that company, or more than 10 concurrent calls. Fix: Back off and honour the Retry-After header. The batch endpoint carries its own lower limit, so spread batch calls out too. --- ## Razorpay URL: https://www.docs.popmcp.com/docs/integrations/razorpay/ Summary: Connect Razorpay to manage orders, payments, refunds, settlements, subscriptions, payment links, and payouts. A Razorpay API key pair, the Key Id starting rzp_live_ or rzp_test_ plus the matching Key Secret, which the Dashboard reveals only once. - Auth: API credentials - Setup time: 4 min - API base URL: https://api.razorpay.com/v1 - Credentials screen: https://dashboard.razorpay.com/app/keys - Provider docs: https://razorpay.com/docs/api/ ### Approval required before this works Razorpay only issues working live-mode API keys after its team verifies your KYC and business documents and moves the merchant account to Activated. - Typical wait: Razorpay publishes no standard KYC turnaround. Its own setup docs state an account can be "activated within 8 business hours" if you take the onboarding-manager route; otherwise the account sits in under_review after KYC submission and merchants commonly report a few working days, longer whenever documents need clarification. - Cost: Free (no activation fee; standard per-transaction pricing applies once live) - Blocked until approved: Live mode is unavailable, so rzp_live_ keys cannot be generated and no real payment, order, payout, refund or settlement can be processed. Test keys never touch real money or real customer data. - Works meanwhile: Test mode works the moment you sign up: rzp_test_ keys, the full Orders/Payments/Refunds/Subscriptions APIs, webhooks and checkout all behave normally against dummy cards and UPI handles. ### Before you begin - A Razorpay merchant account. Live Mode keys also need the account activated through KYC - Owner or Admin access, because API Keys sits under Account & Settings - Verified website or app details on the account, which Razorpay requires before it will issue Live Mode keys - One active key pair per mode per account. Regenerating replaces whatever is running in production today ### Get your credentials #### 1. Pick the mode before you generate anything Sign in at dashboard.razorpay.com and set the switch in the top bar to Live Mode or Test Mode. Generate the key in the mode you want PopMCP to talk to. Screen: https://dashboard.razorpay.com/app/dashboard #### 2. Open Account & Settings then API Keys Click Account & Settings in the left navigation, then open API Keys under Website and app settings. Screen: https://dashboard.razorpay.com/app/keys #### 3. Generate the key pair Click Generate Key, then read the Key Id and Key Secret from the dialog that opens. #### 4. Save the secret before closing the dialog Click Download Key Details, or copy both halves by hand. Close the dialog only after the secret is stored somewhere safe. #### 5. Paste both values into PopMCP Open the Razorpay connector in PopMCP. Paste the `rzp_` value into Key ID and the secret into Key Secret, then click Connect. ### Fields PopMCP asks for - Key ID (keyId) [required]: Razorpay Dashboard → Account & Settings → API Keys → Generate/Download. The Key ID starts with rzp_test_ (sandbox) or rzp_live_ (production). This is the account the MCP is locked to. - Key Secret (keySecret) [required]: The Key Secret is shown only ONCE when you generate the key. Copy it then (regenerate if you lost it). It pairs with the Key ID for HTTP Basic auth. Stored encrypted; used server-side only. ### Verify PopMCP shows the Razorpay connector as Connected and reports the mode it read from the Key Id prefix. Asking for recent payments or settlements returns rows from that Razorpay account. ### Troubleshooting #### 401 with "Authentication failed" Cause: The Key Id and Key Secret came from different generations, or the pair was regenerated after you pasted it. Fix: Generate a fresh pair and paste both halves from the same dialog. A Key Id never works with an older secret. #### The Key Secret is no longer visible on the Dashboard Cause: Razorpay shows the secret once. After that only the Key Id is listed. Fix: Regenerate the pair, then update every integration that used the old secret. #### The connection succeeds but live data is empty Cause: The key was generated while the Dashboard was in Test Mode, so it only sees simulated transactions. Fix: Switch to Live Mode, generate a Live key pair, and replace both values in PopMCP. #### Generate Key is blocked in Live Mode Cause: The account has not finished activation, or the website and app details have not been verified. Fix: Complete KYC and verify the website details under Account & Settings, or connect with Test Mode keys in the meantime. #### Payouts or subscription endpoints return 400 or 403 Cause: RazorpayX Payouts and Subscriptions are separate products that must be enabled on the account. Fix: Enable the product under Account & Settings and retry with the same key pair. --- ## Recharge URL: https://www.docs.popmcp.com/docs/integrations/recharge/ Summary: Connect Recharge to manage subscriptions, upcoming charges and skips, orders, one-time add-ons, discounts, and subscriber accounts. You paste one Recharge Admin API token from the merchant portal into PopMCP. The token belongs to one store, so the connection is locked to that store. - Auth: API credentials - Setup time: 4 min - API base URL: https://api.rechargeapps.com - Credentials screen: https://admin.rechargeapps.com/admin/login - Provider docs: https://docs.getrecharge.com/docs/recharge-api-key ### Before you begin - The Recharge store owner's login, or a staff account the owner has given access to the API Tokens page. By default only store owners can see API tokens. - Any Recharge plan for the core subscription, customer, charge and order tools. Recharge reserves some permissions for specific plans, such as Pro or Pro + Retain, and the Checkouts endpoint needs a Pro or Custom license. - A decision on what the AI may change: Read access for a look-only connection, Read and Write access for the resources it should edit ### Get your credentials #### 1. Open API tokens Sign in to the Recharge merchant portal, open Tools & apps and click API tokens. Screen: https://admin.rechargeapps.com/admin/login #### 2. Name the token Click Create an API Token. In the Details fields, enter a name such as `PopMCP` and a contact email. Recharge uses the email to reach you if there is a problem with the token. Screen: https://admin.rechargeapps.com/admin/login #### 3. Set permissions per resource, then save For each resource choose No access, Read access or Read and Write access. Give Read and Write access to what the AI should change (for example subscriptions, customers and orders), Read access to the rest, and include Read access to the store so PopMCP can show its name. The only permission PopMCP never needs is External Tokens. Click Save. Screen: https://admin.rechargeapps.com/admin/login #### 4. Copy the token Copy the token value Recharge shows for the saved token. Screen: https://admin.rechargeapps.com/admin/login #### 5. Paste the token into PopMCP In PopMCP, paste the token into Admin API token and click Connect Recharge. PopMCP reads the token's permissions and your store's name, currency, time zone and checkout platform. ### Fields PopMCP asks for - Admin API token (apiToken) [required]: In Recharge: Tools & apps → API tokens → Create an API Token (not the Storefront token). Name it, set Read and Write access for what the AI may change (Read access for a read-only MCP), include Store read access so we can show your store name, then Save and copy the token. Stored encrypted and used only on our servers. ### Verify PopMCP shows Recharge as Verified under your store name (or `Recharge ()` when the token lacks store read access). Asking the AI how many active subscribers you have returns a real count. ### Troubleshooting #### That's a Storefront API token (it starts with strfnt_) Cause: The token came from Create a Storefront API token. Storefront tokens are customer-scoped and cannot call the Admin API. Fix: Go back to Tools & apps, API tokens and use Create an API Token instead. #### Recharge didn't accept this API token Cause: Recharge answered 401 `bad authentication`: the token was copied incompletely or has been deleted. Fix: Copy the token again from Tools & apps, API tokens, or create a new Admin API token, and reconnect. #### Recharge refused this API token Cause: Recharge answered 403: the token was deleted, or Recharge is no longer installed on the store. Fix: Check Recharge is installed, then create a new Admin API token and reconnect. #### A tool fails with a permission error while others work Cause: The token lacks that resource's permission, for example write_orders for skip_charge or write_payment_methods for refund_charge. Fix: Raise that resource to Read and Write access on the token in Tools & apps, API tokens. The connection profile lists the token's scopes. #### You cannot see API tokens under Tools & apps Cause: By default only the store owner can view and access API tokens. Fix: Sign in as the store owner, or ask the owner to give your staff account access to the API Tokens page. #### Charges older than 90 days are missing Cause: Since March 19, 2025, Recharge no longer returns processed charges older than 90 days from its charge endpoints. Fix: Ask the AI to use orders for billing history. Older charge data is still in the merchant portal and its exports. #### Error 429 - Too many requests Cause: The token's request bucket (40 calls, draining at 2 a second) is full. Fix: Wait a few seconds and retry. PopMCP retries 429s automatically; for bulk changes, use Recharge's async batch tools. --- ## Reddit URL: https://www.docs.popmcp.com/docs/integrations/reddit/ Summary: Connect Reddit to browse listings, create posts and comments, search, message, and moderate your communities. You end up pasting the client id printed under your app's name on reddit.com/prefs/apps and the matching secret field from the same card. - Auth: OAuth authorization - Setup time: 5 min - API base URL: https://oauth.reddit.com - Credentials screen: https://www.reddit.com/prefs/apps - Provider docs: https://www.reddit.com/dev/api ### Approval required before this works Reddit's Data API Terms allow free use only for non-commercial purposes; any commercial use requires Reddit's prior written approval through its Data API access request, and paid commercial access is a signed agreement. - Typical wait: 2-4 weeks for commercial review, per consistent developer reports; Reddit does not publish an SLA - Cost: Free for approved non-commercial use. Reddit publishes no public rate card for commercial access - the widely-cited $0.24 per 1,000 API calls traces to Reddit's 2023 pricing announcement and is repeated across developer write-ups; enterprise bundles are reported in the thousands of dollars per month. Real pricing is quoted per deal after review. - Blocked until approved: Nothing technical is blocked on day one - the block is contractual. Using the free tier for brand monitoring, lead generation, competitor tracking, resale of Reddit content or any revenue-generating product breaches the Data API Terms and risks the client ID being revoked. Volume above the free 100 queries per minute per OAuth client also needs the agreement. - Works meanwhile: Registering an app at reddit.com/prefs/apps is instant and free: you get a client ID and secret straight away and can read posts, comments, subreddits and search, and post as the authorised user, at up to 100 queries per minute per OAuth client for personal, moderator, bot and academic use. ### Before you begin - A Reddit account with a verified email address - The app must be created as a web app, because only that type supports the browser authorization flow PopMCP uses - Non-commercial use only on the free tier, since commercial use needs a separate paid agreement with Reddit - Moderator status in a subreddit if you plan to use the mod scopes ### Get your credentials #### 1. Open your Reddit app preferences Sign in to Reddit and go to reddit.com/prefs/apps. Scroll past authorized applications to the developed applications section at the bottom of the page. Screen: https://www.reddit.com/prefs/apps #### 2. Create a web app Click are you a developer? create an app... and select the web app radio button. Type a name for the app. Screen: https://www.reddit.com/prefs/apps #### 3. Fill in the description, about url and redirect uri Add a short description, put your product page in about url, and paste the callback URL from the PopMCP connect screen into redirect uri. Click create app. Screen: https://www.reddit.com/prefs/apps #### 4. Copy the client id and secret On the new card under developed applications, copy the client id, the short string printed under the app name and the words *web app*. Copy the secret field and paste both into PopMCP's Client ID and Client secret fields. Screen: https://www.reddit.com/prefs/apps ### Fields PopMCP asks for - App type (connectionType): Create your app as a "web app" at reddit.com/prefs/apps (not "script"). The web-app type is what supports the browser authorization flow. - Client ID (clientId) [required]: The string shown directly under your app's name ("web app") at reddit.com/prefs/apps. - Client secret (clientSecret) [required]: The "secret" field of your web app. Stored encrypted; used server-side only and never shown again. ### Callback URL to register https://app.popmcp.com/api/providers/reddit/callback ### Scopes requested - identity - edit - flair - history - modconfig - modflair - modlog - modposts - modwiki - mysubreddits - privatemessages - read - report - save - submit - subscribe - vote - wikiedit - wikiread ### Verify PopMCP shows the Reddit connector as Connected with your u/username, and a test call returns your subscribed subreddits rather than a 403. ### Troubleshooting #### invalid_grant, or the consent screen never appears Cause: The app was created as a script type, which has no browser authorization flow. Fix: Delete the app, create a new one with the web app radio button selected, then re-enter the new client id and secret. #### The card shows no secret field Cause: The app was created as an installed app, and Reddit does not issue secrets to public clients. Fix: Recreate the app as a web app. #### redirect_uri mismatch on authorization Cause: Reddit stores one redirect uri per app and compares it character for character. Fix: Click edit on the app card and paste the callback URL directly from the PopMCP connect screen, including the protocol and any trailing slash. #### 429 Too Many Requests Cause: The free tier caps you around 100 queries per minute per OAuth client id. Fix: Slow the polling interval and read the x-ratelimit-remaining and x-ratelimit-reset headers. Heavier or commercial volume needs a paid agreement with Reddit. #### 403 on moderator endpoints Cause: The mod scopes were granted but the connected account does not moderate the target subreddit. Fix: Connect with an account that holds the relevant moderator permission in that subreddit. --- ## Redo URL: https://www.docs.popmcp.com/docs/integrations/redo/ Summary: Connect Redo to manage returns, exchanges, warranties, refunds, orders, and package protection for your store. Two values from one Redo page: the 24-character Store ID, and the API secret created by adding an API client, which is shown only once. - Auth: API credentials - Setup time: 4 min - API base URL: https://api.getredo.com/v2.2 - Credentials screen: https://app.getredo.com/ - Provider docs: https://developers.redo.com/docs/api-reference/authentication ### Before you begin - A Redo merchant account with dashboard access at app.getredo.com - A role that carries the Manage team development permission, since Settings then Developer is hidden without it - The dashboard and API still live on getredo.com even though Redo's marketing site is now redo.com ### Get your credentials #### 1. Open Settings then Developer Sign in at app.getredo.com and click Settings in the left sidebar. Open Developer. Screen: https://app.getredo.com/ #### 2. Copy the Store ID Copy the 24-character Store ID from the General section at the top of the page. If you cannot see it, copy any dashboard URL containing `/stores//` and paste that instead. #### 3. Add an API client Click Add API Client, name it something you will recognise such as `PopMCP`, and tick the scopes you need. Click Create. Screen: https://app.getredo.com/ #### 4. Copy the API secret while it is on screen Copy the secret from the confirmation dialog and store it somewhere safe. Dismiss the dialog only once you have it. #### 5. Paste both values into PopMCP Open the Redo connector in PopMCP. Paste the id into Store ID and the secret into API Secret, then click Connect. ### Fields PopMCP asks for - Store ID (storeId) [required]: Redo dashboard (app.getredo.com) → Settings → Developer. It's a 24-character id. Paste just the id, or a dashboard URL that contains it (…/stores//…) and we'll pull it out. - API Secret (apiSecret) [required]: Redo dashboard → Settings → Developer → Add API Client → copy the generated secret (shown only once). Sent as the Authorization: Bearer header. Stored encrypted; used server-side only. The connection is locked to this secret's store. ### Verify PopMCP marks the Redo connector Connected and echoes the store it resolved. Asking for recent returns lists real return ids from that store rather than an empty array. ### Troubleshooting #### 401 Unauthorized Cause: The API secret was truncated on paste, or the API client was deleted under Settings then Developer. Fix: Create a new API client and paste the full secret. The old one cannot be revealed again. #### 404 on every call even though the secret is valid Cause: The Store ID is wrong. Redo paths are store scoped, so a bad id fails before auth is checked. Fix: Re-copy the 24-character id from the General section, or paste a dashboard URL containing /stores// and let PopMCP pull it out. #### 403 Forbidden on some tools only Cause: The API client is missing the scope that endpoint needs. The response names the missing scope. Fix: Edit the client's scopes under Settings then Developer. Redo applies the change without reissuing the token. #### Developer does not appear under Settings Cause: Your seat lacks the Manage team development permission, or you are on redo.com rather than the dashboard. Fix: Ask a Redo store admin to create the client, and sign in at app.getredo.com. --- ## Resend URL: https://www.docs.popmcp.com/docs/integrations/resend/ Summary: Connect Resend to send transactional and batch email, and manage domains, broadcasts, contacts, and templates. You end up pasting a single Resend API key that starts with `re_` and is shown once, at creation time. - Auth: API credentials - Setup time: 2 min - API base URL: https://api.resend.com - Credentials screen: https://resend.com/api-keys - Provider docs: https://resend.com/docs/api-reference/introduction ### Before you begin - Resend account. The free tier is enough. - Membership of the Resend team with permission to create API keys - A verified sending domain if you want to send from your own domain instead of onboarding@resend.dev ### Get your credentials #### 1. Open the API Keys page Sign in at resend.com and click API Keys in the left sidebar, or go straight to `resend.com/api-keys`. Screen: https://resend.com/api-keys #### 2. Click Create API Key Press Create API Key at the top right of the page. A dialog opens with a name, a permission and a domain. Screen: https://resend.com/api-keys #### 3. Name the key and pick a permission Type `PopMCP` in Name, choose Full access for every Resend tool or Sending access for a send-only connection, then click Add. Sending access also lets you lock the key to one domain. Screen: https://resend.com/api-keys #### 4. Copy the key straight away Resend reveals the full `re_` key once. Click Copy before you close the dialog. Screen: https://resend.com/api-keys #### 5. Paste the key into PopMCP Paste the value into the PopMCP API key field and save. ### Fields PopMCP asks for - API key (apiKey) [required]: Resend → API Keys → Create API Key. Choose Full access for all tools, or Sending access for send-only. Copy the key (shown once). Stored encrypted. ### Verify PopMCP shows the Resend connector as Connected. Listing your domains returns the domains in that Resend team. A sending-only key returns a permission error on that tool instead, which still confirms the key is valid. ### Troubleshooting #### 401 Unauthorized, "API key is invalid" Cause: The key was truncated on paste, or it was deleted from the Resend dashboard. Fix: Create a fresh key on resend.com/api-keys and paste the whole `re_` string with no surrounding spaces. #### 403 restricted_api_key Cause: A Sending access key was used for a tool that reads or writes domains, contacts or broadcasts. Fix: Create a new key with Full access and reconnect. #### 403 validation_error, domain is not verified Cause: You are sending from a domain that has not completed DNS verification. Fix: Verify the domain under **Domains** in the Resend dashboard, or send from onboarding@resend.dev while testing. #### 429 rate_limit_exceeded Cause: More than the default 10 requests per second per team. Fix: Batch your sends or slow the calls down. Ask Resend support to raise the limit for high-volume accounts. #### You lost the key value Cause: Resend never displays a key again after the creation dialog closes. Fix: Remove the old key from the row menu under **More options**, then create a replacement. --- ## Retell AI URL: https://www.docs.popmcp.com/docs/integrations/retell-ai/ Summary: Connect Retell AI to place and monitor voice and chat calls, build AI agents, and read transcripts, recordings, and analysis. One workspace API key, created under Settings > API Keys in the Retell dashboard, pasted into PopMCP's single API key field and sent as an Authorization: Bearer header. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.retellai.com - Credentials screen: https://dashboard.retellai.com/settings/api-keys - Provider docs: https://docs.retellai.com/accounts/api-keys-overview ### Before you begin - A Retell AI account with at least one workspace at dashboard.retellai.com - Admin or Developer access to that workspace, because API keys are issued per workspace - The workspace that owns the agents, phone numbers and call history PopMCP should read ### Get your credentials #### 1. Sign in and pick the workspace Open dashboard.retellai.com and sign in. Use the workspace switcher in the top-left corner to select the workspace that owns the agents and phone numbers PopMCP should reach. Screen: https://dashboard.retellai.com #### 2. Open Settings, then the API Keys tab Click Settings in the sidebar under System, then open the API Keys tab. Leave the key flagged Set as Webhook Key alone and create a separate one for PopMCP. Screen: https://dashboard.retellai.com/settings/api-keys #### 3. Add a key named PopMCP Click Add, type `PopMCP` in the Name field, and click Create. Leave Restrict permissions switched off so the key keeps full access. #### 4. Copy the key into PopMCP Click Copy in the dialog and paste the `key_...` value into PopMCP's API key field, then connect. ### Fields PopMCP asks for - API key (apiKey) [required]: Retell dashboard (dashboard.retellai.com) → Settings → API Keys → create/copy a key. Sent as the Authorization: Bearer header. Stored encrypted; used server-side only. The connection is locked to this key's Retell account. ### Verify PopMCP shows the Retell connector as Connected and names your workspace. Asking for recent calls or the list of agents returns real rows instead of an auth error. ### Troubleshooting #### 401 Unauthorized on every call Cause: The key was mistyped, truncated on paste, or has since been deleted or rotated in the dashboard. Fix: Open Settings > API Keys, delete the stale entry, click Add to mint a fresh key, and paste the whole key_ string with no surrounding spaces. The full value is shown only at creation, so a lost key has to be replaced rather than recovered. #### Some tools work but calls or agent edits return 403 Cause: The key was created with Restrict permissions on and the relevant permission left at No Access or Read. Fix: Edit the key in Settings > API Keys. Raise Call to Edit for outbound calls and Agent to Edit for agent changes, or switch Restrict permissions off entirely. #### PopMCP sees no agents even though the connection succeeded Cause: The key belongs to a different Retell workspace than the one holding your agents. Fix: Switch workspaces with the top-left switcher, mint a key there, and reconnect. #### Outbound calls are rejected with a concurrency error Cause: The workspace has hit its simultaneous-call quota, which defaults to 20 on Pay-As-You-Go. Fix: Open Settings > Limits and click Adjust Concurrency on the Concurrent Calls Limit card, or enable concurrency burst, then retry. --- ## Salesforce URL: https://www.docs.popmcp.com/docs/integrations/salesforce/ Summary: Connect Salesforce to manage accounts, contacts, leads, deals, cases and custom objects, run reports and flows, log activity, and handle approvals. You paste the Consumer Key and Consumer Secret of an External Client App you create in Salesforce Setup, then sign in with Salesforce and allow access. - Auth: OAuth authorization - Setup time: 8 min - API base URL: https://YOUR-DOMAIN.my.salesforce.com/services/data/v68.0 - Credentials screen: https://login.salesforce.com/ - Provider docs: https://help.salesforce.com/s/articleView?id=xcloud.create_a_local_external_client_app.htm&type=5 ### Approval required before this works Salesforce only answers API calls from orgs on an edition with API access: Enterprise, Unlimited, Performance and Developer Edition include it, and Professional Edition needs the API add-on. Your own External Client App needs no review by Salesforce and works as soon as it is saved. - Typical wait: None on an edition with API access. Adding API access to Professional Edition goes through your Salesforce account executive, and Salesforce publishes no timeframe for it. - Cost: Included in Enterprise, Unlimited, Performance and Developer Edition, and a Developer Edition org is free to sign up for. The Professional Edition API add-on is a paid extra that Salesforce quotes. - Blocked until approved: Every tool on an org whose edition has no API access, and for any user without the API Enabled permission: Salesforce refuses the calls with API_DISABLED_FOR_ORG or API_CURRENTLY_DISABLED. Other editions, such as Group and Essentials, cannot add API access. - Works meanwhile: Creating the External Client App and signing in. PopMCP checks the org right after sign-in and says whether the edition or the user's API Enabled permission is what is missing. ### Before you begin - A Salesforce org on Enterprise, Unlimited, Performance or Developer Edition, or Professional Edition with the API add-on. A free Developer Edition org works for trying it out. - A Salesforce user with the API Enabled permission. System Administrators have it; other users get it from their profile or a permission set. - An administrator to create the External Client App. To connect a sandbox, create the app while signed in to that sandbox. - PopMCP's callback URL from the connect form: https://app.popmcp.com/api/providers/salesforce/callback ### Get your credentials #### 1. Open External Client App Manager in Setup Sign in to Salesforce as an administrator of the org you want to connect. Click the gear icon, then Setup. Type `External Client App Manager` into Quick Find, open it, and click New External Client App. Screen: https://login.salesforce.com/ #### 2. Name the app and keep it Local Under Basic Information, enter `PopMCP` as the External Client App Name (the API Name fills itself in) and your email as the Contact Email. Leave Distribution State on Local: the app only needs to work in this org. #### 3. Turn on OAuth and add PopMCP's callback URL Expand API (Enable OAuth Settings) and tick Enable OAuth. Under App Settings, paste `https://app.popmcp.com/api/providers/salesforce/callback` into Callback URL. In OAuth Scopes, move Manage user data via APIs (api) and Perform requests at any time (refresh_token, offline_access) to the selected list. #### 4. Keep the security options on and create the app Nothing under Flow Enablement needs ticking: PopMCP uses the standard sign-in flow. Under Security, keep Require secret for Web Server Flow, Require secret for Refresh Token Flow and Require Proof Key for Code Exchange (PKCE) extension for Supported Authorization Flows ticked. Enable Refresh Token Rotation can stay on, since PopMCP stores every new token. Click Create. #### 5. Check who may sign in and how long access lasts Open the app's Policies tab and click Edit. Set Permitted Users to All users may self-authorize. Set Refresh Token Policy to Refresh token is valid until revoked so the connection does not expire. If your org limits logins by IP address, set IP Relaxation to Relax IP restrictions, because PopMCP calls Salesforce from its own servers. Click Save. #### 6. Copy the Consumer Key and Consumer Secret Open the Settings tab, expand OAuth Settings and click Consumer Key and Secret. Salesforce may email you a verification code first. Copy the Consumer Key (it starts with `3MVG`) and the Consumer Secret. A new app can take up to 10 minutes before Salesforce accepts it. #### 7. Paste both values into PopMCP and sign in with Salesforce In PopMCP, paste the values into Consumer Key and Consumer Secret. Leave Salesforce login address empty for a production or Developer Edition org, type `sandbox` for a sandbox, or paste your My Domain address if your company signs in only through it. Click Sign in with Salesforce, log in, and click Allow. ### Fields PopMCP asks for - Salesforce login address (loginUrl): For a sandbox type sandbox. If your company signs in only through its own address, paste it (it ends in .my.salesforce.com); any Salesforce page address of yours works too. - Consumer Key (clientId) [required]: From your External Client App: Settings, OAuth Settings, Consumer Key and Secret. - Consumer Secret (clientSecret) [required]: Shown next to the Consumer Key. Stored encrypted and used only on the server. ### Callback URL to register https://app.popmcp.com/api/providers/salesforce/callback ### Scopes requested - api - refresh_token ### Verify PopMCP shows Salesforce as Connected under your org's name (with (sandbox) after it for a sandbox), salesforce_get_org_limits returns DailyApiRequests with its Max and Remaining, and salesforce_describe_object for Account lists the fields your user can see. ### Troubleshooting #### Salesforce shows OAUTH_APPROVAL_ERROR_GENERIC or "app must be installed into org" Cause: Your org only lets installed or approved apps sign in, and the user connecting does not have the Approve Uninstalled Connected Apps permission. Fix: Connect as a System Administrator, or have an admin install the app once from Setup, **Connected Apps OAuth Usage**, then connect again. #### Salesforce shows redirect_uri_mismatch Cause: The app's **Callback URL** does not exactly match PopMCP's callback. Fix: Open the app in **External Client App Manager**, edit **OAuth Settings** on the **Settings** tab, set **Callback URL** to `https://app.popmcp.com/api/providers/salesforce/callback`, save, wait a few minutes and connect again. #### "Salesforce did not accept the Consumer Key and Consumer Secret" Cause: One of the values was mistyped, or the app was created less than about 10 minutes ago. Fix: Copy both values again from **Settings**, **OAuth Settings**, **Consumer Key and Secret**. If the app is new, wait 10 minutes and try again. #### "This Salesforce org's edition does not include API access" Cause: Salesforce answered API_DISABLED_FOR_ORG: the org's edition has no API access. Fix: Enterprise, Unlimited, Performance and Developer Edition include it. On Professional Edition ask your Salesforce account executive for the API add-on. #### "Your Salesforce user does not have the "API Enabled" permission" Cause: Salesforce answered API_CURRENTLY_DISABLED for the user who signed in. Fix: Ask an admin to turn on **API Enabled** in your profile or a permission set, or connect as a user who has it. #### "This Salesforce user may not use the app" Cause: The app's **Permitted Users** policy only lets admin-approved users sign in, and your profile or permission set is not on its list. Fix: On the app's **Policies** tab set **Permitted Users** to **All users may self-authorize**, or add your profile or permission set to the app. #### A working connection stops with "Salesforce no longer accepts this connection's sign-in" Cause: The access was revoked, it expired under the app's **Refresh Token Policy**, the user lost access to the app, or the sandbox was refreshed. Fix: Set **Refresh Token Policy** to **Refresh token is valid until revoked** on the app's **Policies** tab, then disconnect and reconnect Salesforce. #### REQUEST_LIMIT_EXCEEDED Cause: The org used its API request allowance for the last 24 hours, which every integration in the org shares. Fix: Wait and retry, check what is left with salesforce_get_org_limits, and use bulk_query or bulk_load_records for large jobs instead of thousands of single calls. --- ## Segment URL: https://www.docs.popmcp.com/docs/integrations/segment/ Summary: Connect Segment to manage sources, destinations, tracking plans and audiences, check event volume and delivery, and send customer events. You paste one Segment Public API token, created by a Workspace Owner, that covers one Segment workspace. An optional Profile API token adds one-customer profile lookups. - Auth: API credentials - Setup time: 4 min - API base URL: https://api.segmentapis.com (EU workspaces: https://eu1.api.segmentapis.com) - Credentials screen: https://app.segment.com/ - Provider docs: https://docs.segmentapis.com/tag/Getting-Started#section/Get-an-API-token ### Approval required before this works No one reviews you, but Segment only offers the Public API to workspaces on the Team or Business plan, and only a Workspace Owner can create its token. A Free workspace has no way to create the token PopMCP needs. - Typical wait: None: the token can be created as soon as the workspace is on Team or Business - Cost: Per Twilio's Segment pricing page: Free is $0 with no Public API; Team starts at $120/month (10,000 monthly tracked users) and lists Public API access; Business is custom pricing. - Blocked until approved: The whole connector. Every PopMCP Segment tool, including sending identify and track events, goes through the Public API token. - Works meanwhile: Team has a 14-day free trial, so you can create a token and connect PopMCP during the trial. ### Before you begin - A Segment workspace on the Team or Business plan. The Free plan has no Public API access. - The Workspace Owner role, because only Workspace Owners can create Public API tokens - For the optional Profile API token: Unify, which needs a Business tier account (it is included with Engage) - One PopMCP workspace per Segment workspace, since each token belongs to exactly one Segment workspace ### Get your credentials #### 1. Open Tokens under Access Management Sign in at `app.segment.com` and pick the workspace you want to connect. Click Settings in the left menu, then Workspace settings, open the Access Management tab and click Tokens. Screen: https://app.segment.com/ #### 2. Create a Public API token with Workspace Owner access Click + Create Token. Enter a description such as `PopMCP`, make sure it is a Public API token (not a Config API token), and assign Workspace Owner access so every tool works. Workspace Member also connects, limited to what that role can reach. Click Create. Screen: https://app.segment.com/ #### 3. Copy the token, then click Done Copy the token (it starts with `sgp_`) into a password manager before you click Done, and treat it like a password. Screen: https://app.segment.com/ #### 4. Optional: generate a Profile API token Only needed to look up one customer's traits and recent events, and only if your workspace has Unify. Go to Unify, then Unify settings, then API access. Name the token, click Generate token and copy it. Segment shows it once. Screen: https://app.segment.com/ #### 5. Paste the tokens into PopMCP Paste the Public API token into Public API token and, if you made one, the Profile token into Profile API token (optional). You don't pick a region: PopMCP tries Segment's US and EU hosts and keeps the one that recognises the token. ### Fields PopMCP asks for - Public API token (token) [required]: Segment → Settings → Workspace settings → Access Management → Tokens → Create Token → Public API. Use a Public API token, not a Config API token or a source write key. Each workspace needs its own token. - Profile API token (optional) (profileToken): Only needed to look up one customer's traits and event history. Segment → Unify → Unify settings → API access → Generate token. The space it belongs to is found automatically. ### Verify PopMCP shows Segment as Verified, labelled with your workspace name, such as `Segment · Acme Production`, with (EU) added for an EU workspace. Ask for your sources: segment_list_sources returns them instead of a 403. ### Troubleshooting #### "Segment didn't accept this token in its US or EU region" (Segment answers 403, not 401) Cause: It is a Config API token or a source write key, the token was revoked, or the workspace is on the Free plan, which has no Public API. Fix: Create a Public API token under Settings, Workspace settings, Access Management, Tokens on a Team or Business workspace, and paste it whole. #### Most tools work but some answer 403 Cause: The token has Workspace Member access without the resources those tools touch. Fix: Create a new Public API token with Workspace Owner access and reconnect with it. #### "Segment rejected the Profile API token for every Unify space in this workspace" Cause: The Profile field holds the wrong secret (often the Public API token again) or a token from another workspace. Fix: Generate a new token in Unify, Unify settings, API access, or leave the field blank. #### "Segment has no Unify space this connection can see" Cause: Unify isn't enabled for this workspace, or the Public API token's role can't read spaces. Fix: Leave the Profile API token blank, or connect with a Workspace Owner token on a workspace that has Unify. #### A tracking call says the Source is disabled or has no write key Cause: Segment drops data sent to a disabled Source, and a Source without a write key can't receive events at all. Fix: Enable the Source with segment_update_source, or create a write key with segment_create_write_key_for_source, then send again. #### Events were accepted but never appear in Segment Cause: Segment's Tracking API answers 200 and then drops some invalid events, such as batches over the event limit. Fix: Ask the AI to check segment_get_delivery_overview_ingress_failed for that Source; PopMCP already rejects calls with no user id, no event name, or a payload over 32 KB before sending. #### 429 Too Many Requests Cause: The Public API limits requests per token, sender IP and request complexity. Fix: Wait for the Retry-After seconds when the response carries one, then retry with smaller pages. --- ## Semrush URL: https://www.docs.popmcp.com/docs/integrations/semrush/ Summary: Connect Semrush to research domain and keyword analytics, backlinks, traffic, site audits, and position tracking. The API key from My Profile > API keys, which lists your autogenerated Version 3 and Version 4 keys. PopMCP appends it as the `key=` query parameter. - Auth: API credentials - Setup time: 5 min - API base URL: https://api.semrush.com - Credentials screen: https://www.semrush.com/accounts/api-keys/active - Provider docs: https://developer.semrush.com/api/ ### Approval required before this works Semrush gates the standard Analytics/Projects API behind its top subscription tier, and API calls additionally consume API unit packages that must be purchased separately from the plan. - Typical wait: Instant once the qualifying plan and an API unit package are purchased. There is no application and no human review. - Cost: Plan naming is in flux: developer.semrush.com still says 'Standard API access is available to users of the SEO Toolkit who have a Business subscription', while semrush.com/prices now lists SEO ($139/mo, $117.33/mo annual), Starter ($199/mo, $165.17/mo annual), Pro+ ($299/mo, $248.17/mo annual) and Advanced ($549/mo, $455.67/mo annual), with 'API data integration' shown only on Advanced. Treat the top tier (legacy Business / current Advanced) as the requirement and confirm the current price on semrush.com/prices. API units are bought on top of the plan in packages of 2,000,000 / 5,000,000 / 10,000,000 / 20,000,000 units; Semrush does not publish the package prices, so budget from the in-account API Units screen rather than from any figure quoted elsewhere. - Blocked until approved: Below the API-enabled tier the API key page will not issue a working standard-API key, so every Analytics and Projects endpoint is unavailable. Even on the right plan, a zero API-unit balance makes requests fail on quota rather than auth: one line of a Domain Organic Search Keywords response costs 10 API units live and 50 units historical, so a modest report can burn tens of thousands of units. - Works meanwhile: Read the endpoint reference at developer.semrush.com and pre-compute your unit budget from the per-line costs. Map Rank Tracker API and Listing Management API run off Local subscriptions and do not consume standard API units, and the Trends API is sold as its own Basic/Premium plan with a request quota instead of units, so those can be exercised without the top SEO tier. ### Before you begin - A Semrush SEO Business subscription with an API units package. Standard API access is not included with Pro or Guru, and calls fail on a zero balance. - Access to My profile, where the key sits under API keys and the balance under Subscription info - A separate Trends API subscription if you want the Traffic Analytics and .Trends reports ### Get your credentials #### 1. Open the API keys page Sign in at semrush.com, click your profile icon in the top-right corner, and choose My Profile. In the sidebar select API keys. Screen: https://www.semrush.com/accounts/api-keys/active #### 2. Copy the key, or create a scoped one Copy the value on the Version 3 row, which is a single long string with no separate secret. To use a dedicated key instead, click + Create API key, set a name, pick read-only or read-and-write, and copy the value straight away. Screen: https://www.semrush.com/accounts/api-keys/active #### 3. Check the API units balance Open Subscription info in the sidebar and switch to the API units tab. Confirm the Standard API balance is above zero, and top it up if it is not. Screen: https://www.semrush.com/accounts/subscription-info/api-units #### 4. Paste the key into PopMCP Paste the key into PopMCP's API Key field and click Connect. ### Fields PopMCP asks for - API Key (apiKey) [required]: In Semrush, click your account icon (top-right) → Subscription info → the API Units tab and copy your API key. A Semrush plan with API units is required (the Trends / Traffic Analytics reports need the separate Trends API subscription). The key is sent as the `key` query param, stored encrypted, and used server-side only. ### Verify PopMCP marks Semrush as Connected. Asking for a domain overview returns an authority score and organic traffic numbers rather than an API units or wrong key error. ### Troubleshooting #### ERROR 50 :: NOTHING FOUND or ERROR 120 :: WRONG KEY Cause: The key was truncated on copy, or it carries whitespace from the clipboard. Fix: Re-copy the full key from My Profile > API keys and paste it with no leading or trailing whitespace. If you created a scoped v4 key and never copied it, create a replacement, because the value is shown only once. #### Every report fails after working fine yesterday Cause: The API unit balance hit zero, or the units package renewed and the key was regenerated. Fix: Open Subscription info > API units, top the balance up, and re-paste the key into PopMCP if it changed. You can also check the balance for free at www.semrush.com/users/countapiunits.html?key=YOUR_KEY. #### Traffic Analytics or Trends tools return an access error Cause: Trends is a separate paid API subscription from the Standard API units. Fix: Add the .Trends API subscription under Subscription info, then retry. No key change is needed. #### Site Audit or Position Tracking returns nothing Cause: Those endpoints read from Semrush Projects, and the domain has no Project configured. Fix: Create the Project in Semrush, run the audit or tracking campaign once, then query it from PopMCP. --- ## SendFox URL: https://www.docs.popmcp.com/docs/integrations/sendfox/ Summary: Connect SendFox to manage contacts and lists, send campaigns, build automations, and track email marketing stats. A SendFox personal access token created under Settings > Connections > API tokens, shown once, pasted into PopMCP's Personal access token field. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.sendfox.com - Credentials screen: https://sendfox.com/account/oauth - Provider docs: https://help.sendfox.com/category/270-api-integrations ### Approval required before this works SendFox only issues personal access tokens on a paid plan; sendfox.com/pricing lists the Free plan as 'No API access' and the paid Lifetime and Pro plans as 'Full API access'. There is no application and no review. - Typical wait: Instant once on a paid plan. There is no review, no application and no developer programme. - Cost: Any paid SendFox plan qualifies — the one-time Lifetime deal or a Pro subscription. Check sendfox.com/pricing for the current amounts; the Free plan is listed there as 'No API access'. - Blocked until approved: On the Free plan the API tokens page shows an upgrade prompt instead of the token tools, so no token exists and no endpoint (contacts, lists, campaigns) is reachable. - Works meanwhile: The API surface is small and fully documented publicly at help.sendfox.com, so requests and payloads can be written against the docs before upgrading. ### Before you begin - A paid SendFox plan. The API answers HTTP 402 on free accounts. - Login to the SendFox account that owns the lists, emails and automations PopMCP should manage ### Get your credentials #### 1. Open the API tokens screen Click your account dropdown in the top-right corner, then go to Settings, Connections, API tokens. The direct link is `sendfox.com/account/oauth`. Screen: https://sendfox.com/account/oauth #### 2. Create a personal access token Under Personal Access Tokens click Create New Token, type `PopMCP` in the Name field, and click Create. Screen: https://sendfox.com/account/oauth #### 3. Copy the token before closing the dialog Click Copy and paste the token straight into PopMCP. It is a long Laravel Passport string starting `eyJ`, so check the whole value came across. #### 4. Paste it into PopMCP Paste the token into PopMCP's Personal access token field and click Connect. ### Fields PopMCP asks for - Personal access token (apiToken) [required]: In SendFox go to Settings → Connections → API tokens (or open https://sendfox.com/account/oauth) → Create New Token, give it a name, and copy it; SendFox shows it only once. It's sent as the Authorization: Bearer header and stored encrypted; used server-side only. Requires a paid SendFox plan. ### Verify PopMCP shows SendFox as Connected. Asking for your lists or recent emails returns real names instead of a 401 or 402 error. ### Troubleshooting #### 401 Unauthorized Cause: The token was truncated on paste, or it was deleted from the API tokens page. These tokens run to well over a thousand characters, so a partial copy is easy. Fix: Return to sendfox.com/account/oauth, click Create New Token, and paste the entire string with no whitespace or line breaks. #### 402 Payment Required Cause: The account is on the SendFox free plan, where the API is unavailable. Fix: Upgrade to a paid SendFox plan, then reconnect with the same token. #### The token was never copied Cause: SendFox displays the value only at creation and cannot show it again. Fix: Delete that token on the API tokens page and click Create New Token again. #### Errors come back as HTML instead of a readable message Cause: The request is missing an Accept header, which SendFox uses to decide the error format. Fix: Nothing to change in PopMCP, which already sends Accept: application/json. If you are testing by hand in curl, add that header. --- ## SendGrid URL: https://www.docs.popmcp.com/docs/integrations/sendgrid/ Summary: Connect SendGrid to send email with templates, track delivery stats and bounces, manage suppressions, and run marketing contacts, lists and Single Sends. You paste one SendGrid API key that starts with SG., shown once when you create it. Two optional fields take a separate Email Address Validation key and, for EU data-residency subusers only, the region eu. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.sendgrid.com/v3 (EU data-residency subusers: https://api.eu.sendgrid.com/v3) - Credentials screen: https://app.sendgrid.com/settings/api_keys - Provider docs: https://www.twilio.com/docs/sendgrid/ui/account-and-settings/api-keys ### Before you begin - A Twilio SendGrid account on the free trial or a paid plan. A key acts only as the account that created it, so for a subuser, sign in as that subuser and create the key there. - A SendGrid login that can open Settings, API Keys and create keys there. An account can hold up to 100 API keys. - A verified sender or an authenticated domain if the AI will send mail. SendGrid answers 403 to a from address it does not recognise. - Optional: a Pro or Premier plan for Email Address Validation, and the paid Email Activity add-on if you want per-message activity lookups. ### Get your credentials #### 1. Open API Keys in Settings Sign in at `app.sendgrid.com`. In the left menu open Settings and click API Keys. Connecting a subuser? Sign in as that subuser first, because a key only ever acts as the account that created it. Screen: https://app.sendgrid.com/settings/api_keys #### 2. Name the key and choose Full Access Click Create API Key. Type `PopMCP` in API Key Name, choose Full Access so every tool works, then click Create & View. A narrower key, Restricted Access (Twilio's current docs call it Custom Access), also connects: tools outside the areas you allow answer 403. Screen: https://app.sendgrid.com/settings/api_keys #### 3. Copy the key from the API Key Created page Click the key to copy it. It starts with `SG.` and is about 69 characters long. SendGrid shows it only on this page and cannot recover it later, so store it before you leave. Screen: https://app.sendgrid.com/settings/api_keys #### 4. Optional: create an Email Address Validation key Skip this unless you want the AI to validate addresses (Pro and Premier plans). SendGrid issues that access only as its own key: click Create API Key again, name it `PopMCP validation`, choose Email Address Validation Access, click Create & View and copy it. Screen: https://app.sendgrid.com/settings/api_keys #### 5. Paste the key into PopMCP Paste the main key into API key. Put the validation key, if you made one, into Email Address Validation key (optional). Leave Data residency (optional) blank unless the key belongs to an EU data-residency subuser, in which case type `eu`. ### Fields PopMCP asks for - API key (apiKey) [required]: SendGrid → Settings → API Keys → Create API Key → Full Access → Create & View. Copy the whole key (it starts with SG.). Using subusers? Connect each subuser with a key created inside that subuser. - Email Address Validation key (optional) (validationApiKey): SendGrid gives Email Address Validation (Pro and Premier plans) its own key: Settings → API Keys → Create API Key → Email Address Validation Access. Only needed for the validation tools. - Data residency (optional) (region): Leave blank for a standard account. Type eu only if this key belongs to an EU data-residency subuser (its API host is api.eu.sendgrid.com). ### Verify PopMCP shows SendGrid as Verified, labelled with your company or username, plus (EU) for an EU data-residency subuser. Ask for last week's sending stats: sendgrid_get_global_stats returns daily requests, delivered and opens instead of a 401 or 403. ### Troubleshooting #### 401 `{"errors":[{"field":null,"message":"unauthorized"}]}`, or a 403, when connecting Cause: The key was mistyped, cut short or deleted, or SendGrid temporarily blocked it after repeated failed requests. Fix: Create a new key under Settings, API Keys, Create API Key and paste the whole value, including the SG. prefix. #### PopMCP says the value doesn't look like a SendGrid key because it doesn't start with SG. Cause: The API Key ID from the key list was copied instead of the key itself. The list never shows key values. Fix: Create a new key and copy it from the API Key Created page while it is on screen. #### Some tools answer 403 while others work Cause: The key uses Restricted Access and does not include that area, for example Mail Send, Marketing or Suppressions. Fix: On API Keys open the key's action menu, choose Edit API Key, raise the missing area and click Update, or create a Full Access key and reconnect. #### send_mail answers 403 about the from address Cause: The from address is not a verified single sender and is not on an authenticated domain. Fix: Verify the sender (sendgrid_create_verified_sender emails a confirmation link) or authenticate the domain under Settings, Sender Authentication, then send again. #### Sends fail with `User is not authorized to send mail based on their regional attribute` Cause: The key belongs to an EU data-residency subuser but the connection is calling the global host. Fix: Reconnect with eu in the Data residency (optional) field so calls go to api.eu.sendgrid.com. #### Marketing Campaigns, Email Activity or validation tools say they aren't available to EU data-residency subusers Cause: SendGrid serves those APIs from its global region only. Fix: Use a global (non-EU) SendGrid account for those tools. Sending, templates, stats and suppressions keep working on the EU connection. #### sendgrid_list_email_activity answers 403 with a Full Access key Cause: The account has not bought SendGrid's Email Activity add-on, which the activity API needs. Fix: Add the Email Activity add-on in SendGrid, or check the bounce, block, spam report and global unsubscribe lists instead. --- ## Setmore URL: https://www.docs.popmcp.com/docs/integrations/setmore/ Summary: Connect Setmore to book and manage appointments, services, staff, customers, and available time slots. You end up pasting a single long-lived Setmore refresh token, issued to your account by Setmore's API team, into PopMCP. - Auth: API credentials - Setup time: 5 min, plus 1-2 business days for Setmore to reply - API base URL: https://developer.setmore.com/api/v1 - Credentials screen: https://go.setmore.com - Provider docs: https://www.setmore.com/developers ### Approval required before this works Setmore has no self-service API console. You must hold a Setmore Pro account and email api@setmore.com with your use case; Setmore's team reviews the request and responds with next steps before any credentials exist. - Typical wait: Not published. Setmore states only that 'Our team will review your request and respond with next steps.' No turnaround is given anywhere on the developer or support pages, so treat it as unknown and email early. - Cost: Setmore Pro is required. setmore.com/pricing lists Pro at $12 per user/month billed monthly or $5 per user/month billed annually; the Free plan does not qualify. The API itself carries no separate fee. - Blocked until approved: Everything. Until the team grants access you have no OAuth client and no refresh token, so no appointment, staff, service or customer endpoint can be called. - Works meanwhile: Read the API reference at setmore.docs.apiary.io and developers.setmore.com and model your integration against it. Set up a throwaway Setmore account for later testing, since the API operates against live production data. ### Before you begin - A Setmore Pro subscription. The API is not available on the Free plan. - Access to the mailbox of the email address the Setmore account is registered under - Patience for Setmore's API team to reply. There is no self-serve key screen. ### Get your credentials #### 1. Confirm the account is on Setmore Pro Sign in at go.setmore.com and open Settings → Billing. Confirm the current plan reads Setmore Pro or higher. Screen: https://go.setmore.com #### 2. Note the registered login email Open Settings → Your profile and copy the email address shown there. Setmore answers API requests only when they come from that address. Screen: https://go.setmore.com #### 3. Request API access Open setmore.com/developers and click Request API access. Email api@setmore.com from the registered address with your name, that email address, and a short description of how you will use the API. Screen: https://www.setmore.com/developers #### 4. Copy the refresh token out of Setmore's reply Open the reply from Setmore and copy the refresh token it contains. Take the whole string with no surrounding spaces or line breaks. #### 5. Paste the refresh token into PopMCP Paste the value into the Refresh token field in the PopMCP connect form and save. ### Fields PopMCP asks for - Connection type (connectionType): A single long-lived token. We exchange it for short-lived access tokens automatically; the refresh token does not expire unless you regenerate it. - Refresh token (refreshToken) [required]: The refresh token Setmore issued for your account. Don't have one? On a Setmore Pro plan, email api@setmore.com from your registered address to request API access. Stored encrypted; used server-side only. ### Verify PopMCP shows the Setmore connector as Connected and a test call such as listing services returns your real service list instead of an unauthorized_request error. ### Troubleshooting #### invalid_refresh_token or "no token found for this refresh token" Cause: The token was mistyped, truncated on copy, or Setmore regenerated it for the account. Fix: Re-copy the whole string from Setmore's email with no surrounding spaces or line breaks. If it still fails, reply to api@setmore.com and ask for the current token. #### 401 unauthorized_request on every call Cause: The access token minted from the refresh token expired and was not renewed, or the token belongs to a different Setmore account than the data you are querying. Fix: Reconnect the connector in PopMCP so it mints a fresh access token, then confirm the token was issued for the account that owns the calendar. #### Setmore replies that API access is unavailable Cause: The account is on the Free plan, or the request came from an address that is not the registered account email. Fix: Upgrade to Pro and resend the request from the registered login email shown on Settings → Your profile. #### You want to invalidate the token later Cause: The token stays valid indefinitely unless Setmore regenerates it. Fix: Email api@setmore.com and ask for the token to be regenerated, then re-save the new value in PopMCP. --- ## Shippo URL: https://www.docs.popmcp.com/docs/integrations/shippo/ Summary: Connect Shippo to rate-shop carriers, buy and refund shipping labels, validate addresses, track packages, handle customs, and run orders, manifests, pickups, and batches. You end up pasting a single Shippo API token into PopMCP, either shippo_live_… for real postage or shippo_test_… for mock labels. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.goshippo.com - Credentials screen: https://portal.goshippo.com/api-config/api - Provider docs: https://docs.goshippo.com/docs/guides_general/authentication/ ### Before you begin - A Shippo account. The free pay-as-you-go tier is enough. - An account role that can see API Configuration. Shippo hides Developer keys from restricted users. - A funded Shippo account if you want a live key, because a live token buys real postage. - A free slot. Shippo allows two active live tokens and two active test tokens per account. ### Get your credentials #### 1. Sign in to the Shippo API portal Open portal.goshippo.com/api-config/api and sign in with your Shippo credentials. The app also answers on apps.goshippo.com. Screen: https://portal.goshippo.com/api-config/api #### 2. Open API Configuration and Developer keys In the API Configuration menu select Developer keys. The page splits into Live keys and Test keys. Screen: https://portal.goshippo.com/api-config/api #### 3. Create the key Click Create new live key for production, or Create new test key for mock labels. Screen: https://portal.goshippo.com/api-config/api #### 4. Copy the token before closing the dialog Copy the full token from the dialog, then click Close. #### 5. Paste the token into PopMCP Put the value in PopMCP's API Token field and save. Paste the raw token only, starting with `shippo_live_` or `shippo_test_`. ### Fields PopMCP asks for - API Token (apiToken) [required]: In Shippo go to the dashboard → API → API Keys (Developer Keys) and copy a Live or Test token. A test token (shippo_test_…) buys mock labels with no charge; a live token (shippo_live_…) buys real postage. Sent as an Authorization: ShippoToken header, stored encrypted, used server-side only. The connection is locked to this token's account. ### Verify PopMCP shows the Shippo connector as Connected and a test call such as listing addresses returns JSON instead of "Authentication credentials were not provided." ### Troubleshooting #### "Authentication credentials were not provided" or 401 Cause: The token was pasted with the ShippoToken prefix attached, or it was truncated on copy. Fix: Paste only the raw token starting with shippo_live_ or shippo_test_. PopMCP adds the ShippoToken prefix itself. #### Labels come back as mock labels with no tracking Cause: A test token is connected. Fix: Create a live key under Developer keys and re-save the connection with the shippo_live_ token. #### The token was never copied before the dialog closed Cause: Shippo displays the full key only at creation time and masks it afterwards. Fix: Delete that key from Developer keys and create a new one, copying it before you click Close. #### The create button is greyed out and the page reads "A maximum of two tokens have been created" Cause: The account already holds two active tokens of that type. Fix: Delete a key you no longer use from the Key list under Developer keys, then create the new one. --- ## ShipStation URL: https://www.docs.popmcp.com/docs/integrations/ship-station/ Summary: Connect ShipStation to manage orders, buy and void shipping labels, rate-shop carriers, and handle customers, products, stores, warehouses, and webhooks. You end up pasting the ShipStation V1 API Key and its matching API Secret, generated by the Account Owner on the API Settings screen, into PopMCP. - Auth: API credentials - Setup time: 5 min, including the email verification round trip - API base URL: https://ssapi.shipstation.com - Credentials screen: https://ss.shipstation.com/#/settings/api - Provider docs: https://www.shipstation.com/docs/api/requirements/ ### Before you begin - A ShipStation account on any paid plan - You must be signed in as the Account Owner. Other users do not see the key generator. - Access to the owner's mailbox. ShipStation emails a verification link before it will mint keys. - Room for another V1 credential pair. Only two sets can be active at a time. ### Get your credentials #### 1. Sign in as the Account Owner Log in at ship.shipstation.com or ss.shipstation.com with the Account Owner login. Switch accounts now if you are signed in as a sub-user. Screen: https://ship.shipstation.com #### 2. Open API Settings Open Settings, choose Account in the settings side navigation, then choose API Settings. The deep link `https://ss.shipstation.com/#/settings/api` opens the same screen. Screen: https://ss.shipstation.com/#/settings/api #### 3. Select V1 API and verify your email Pick V1 API in the Select API Version dropdown and click Generate API Key. Open the verification link ShipStation emails to the owner address, then return to API Settings. Screen: https://ss.shipstation.com/#/settings/api #### 4. Set the expiration and generate the pair Choose an expiration of 3, 6 or 12 months and click Generate. Click the copy icon beside the API Key and again beside the API Secret. Screen: https://ss.shipstation.com/#/settings/api #### 5. Paste both values into PopMCP Put the API Key in PopMCP's API Key field and the API Secret in API Secret, then save. ### Fields PopMCP asks for - API Key (apiKey) [required]: In ShipStation go to Settings → Account → API Settings and click "Generate API Keys" (only the Account Owner can, and must have verified their email). Copy the API Key. Sent as HTTP Basic auth, stored encrypted, used server-side only. The connection is locked to this key's account. - API Secret (apiSecret) [required]: Same screen (Settings → Account → API Settings): copy the API Secret shown next to the API Key. If you don't see a secret, click "Generate API Keys". Regenerating the keys invalidates the old pair. ### Verify PopMCP marks the ShipStation connector as Connected and a test call such as listing stores returns your real store list rather than a 401. ### Troubleshooting #### 401 Unauthorized on every request Cause: The key and secret are swapped, one was truncated on copy, the pair expired, or it was regenerated after PopMCP stored it. Fix: Generate a fresh V1 pair on Settings → Account → API Settings and re-save it, with the key in the key field and the secret in the secret field. #### The Generate API Key button does nothing Cause: The owner's email is not verified yet, so ShipStation is waiting on the link it emailed. Fix: Open the verification link in the owner's mailbox, reload API Settings, then click Generate API Key again. #### No key generator on the API Settings page Cause: You are signed in as a sub-user rather than the Account Owner. Fix: Sign in with the Account Owner login and reload the API Settings screen. #### The key and secret disappeared before you copied them Cause: ShipStation shows the values only to the user who generated them, and only until you leave the page. Fix: Generate a new pair and copy both values before navigating away. Delete an old pair first if two V1 sets are already active. #### 429 Too Many Requests Cause: More than 40 calls in a rolling minute on this key pair. Fix: Back off until the X-Rate-Limit-Reset window elapses and batch reads instead of polling in tight loops. --- ## Shopify URL: https://www.docs.popmcp.com/docs/integrations/shopify/ Summary: Connect Shopify to manage orders, products, customers, inventory, and fulfillment across your store. You end up with three things to paste into PopMCP: your *.myshopify.com store domain, plus the Client ID and Client secret of an app you create in the Shopify Dev Dashboard. You then tick the permissions and let PopMCP run the OAuth install. - Auth: OAuth authorization - Setup time: 10 min - API base URL: https://{shop}.myshopify.com/admin/api - Credentials screen: https://dev.shopify.com/dashboard - Provider docs: https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/authorization-code-grant ### Before you begin - A Shopify store you can install apps on, plus the store's *.myshopify.com domain - A Shopify account with access to a Dev Dashboard organization at dev.shopify.com - Store owner, or a staff account with the 'Manage and install apps' permission, to approve the install - PopMCP's callback URL, copied from the Shopify connect form. It has to be pasted into the app before you connect ### Get your credentials #### 1. Create an app in the Dev Dashboard Open Apps in the left navigation and click Create app in the top right. Choose Start from Dev Dashboard, name the app `PopMCP`, and click Create. Screen: https://dev.shopify.com/dashboard #### 2. Add PopMCP's redirect URL and the access scopes, then release Open the app's Versions tab. Paste PopMCP's callback URL into Redirect URLs, set the App URL to the same host, tick the scopes the tools need, and click Release. Screen: https://dev.shopify.com/dashboard #### 3. Copy the Client ID and Client secret Open the app's Settings tab and find the Credentials section. Copy the Client ID and the Client secret. Screen: https://dev.shopify.com/dashboard #### 4. Find your store domain In the Shopify admin, open Settings, then Domains, and copy the `*.myshopify.com` row. The same handle appears in the admin URL as `admin.shopify.com/store/`. Screen: https://admin.shopify.com/ #### 5. Connect from PopMCP and approve the install Paste the store domain, Client ID and Client secret into PopMCP, leave the default permissions ticked, and click connect. On Shopify's install screen, review the scopes and click Install. ### Fields PopMCP asks for - Store domain (shop) [required]: Your *.myshopify.com domain (or just the store handle). - Client ID (clientId) [required]: From your app's Client credentials in the Shopify Dev Dashboard. - Client secret (clientSecret) [required]: Stored encrypted and used only server-side — it never reaches the browser. - Permissions to request (scopes) [required]: Shopify grants exactly what you tick here. Unticked permissions leave their tools listed but failing, so keep the defaults unless you have a reason to narrow them. ### Callback URL to register https://app.popmcp.com/api/providers/shopify/callback ### Verify After the Shopify install screen, PopMCP shows the connector as Connected with your store handle. Asking for recent orders or a product count returns real data from that store. ### Troubleshooting #### "The redirect_uri is not whitelisted" during install Cause: PopMCP's callback URL is not in the app's Redirect URLs, or the released version does not include it. Fix: Paste the callback URL exactly as PopMCP shows it into Versions, Redirect URLs, then click Release. Unreleased edits are not live. #### "redirect_uri and application URL must have matching hosts" Cause: The App URL and the redirect URL point at different hosts. Fix: Set the App URL to the same origin as PopMCP's callback URL, then release again. #### 401 or "Invalid API key or access token" on every call Cause: The client secret was rotated in the Dev Dashboard, or a legacy custom-app admin token was pasted into the Client secret box. Fix: Copy the current Client ID and Client secret from the app's Settings, Credentials section and reconnect. #### Some tools return 403 with an access-scope error Cause: That scope was not ticked when you authorised. Shopify grants only what was requested, so unticked permissions leave those tools listed but failing. Fix: Tick the missing scope on the app version, click Release, then reconnect in PopMCP so the merchant re-approves the wider list. #### Orders older than 60 days come back empty Cause: Standard read_orders only covers the last 60 days. Fix: Request the read_all_orders scope from Shopify for the app, then reconnect. #### Merchants lose access after you rotate the secret Cause: The old secret was revoked before stored tokens were updated. Fix: Keep both secrets valid until PopMCP has reconnected, then revoke the old one. --- ## Similarweb URL: https://www.docs.popmcp.com/docs/integrations/similarweb/ Summary: Connect Similarweb to analyze website traffic, ranks, audiences, search keywords, technologies, and competitors. You end up with one Similarweb Standard API key, generated under Settings → Account → API and switched on in the Activation column, pasted into PopMCP's API Key field. - Auth: API credentials - Setup time: 5 min - API base URL: https://api.similarweb.com/v1 - Credentials screen: https://pro.similarweb.com/ - Provider docs: https://developers.similarweb.com/docs/getting-started ### Approval required before this works Similarweb only issues working API keys to accounts whose subscription includes API access. Similarweb states that API access comes with its Business and Enterprise plans or as a standalone package, all sold through sales, so a sales conversation and a contract gate the credentials rather than a review queue. - Typical wait: Sales-led: expect days to weeks to get a quote and contract in place, since there is no self-serve path to API entitlement. Once the subscription includes API access, an account admin mints and activates a key in minutes. - Cost: Not published. Similarweb says API access is part of its Business and Enterprise plans or available as a standalone package, and that consumption runs on a data credit model where you pay for the data you receive rather than per API call. Pricing is quoted by sales, so treat any figure you see elsewhere as unverified. - Blocked until approved: Every paid endpoint: traffic and engagement, audience interests, traffic sources, keyword and search data, app data, segment analysis and batch/bulk requests. Without an entitled subscription you cannot generate a usable API key at all, and there is no trial key or free developer tier. - Works meanwhile: Nothing that returns live data. You can read the full API v5 reference and build your integration against the documented request and response schemas before you have a key, so only the credential step is blocked. ### Before you begin - A Similarweb subscription that includes API access (Standard API, Batch API, or both) - Account admin role, because only account admins can generate API keys - Add-on entitlements for App Intelligence and for some keyword and demographics endpoints - Data credits remaining on the subscription ### Get your credentials #### 1. Sign in as an account admin Go to pro.similarweb.com and sign in. Only account admins can generate API keys. Screen: https://pro.similarweb.com/ #### 2. Open Settings, then Account In the left rail click Settings, then Account. Open the API tab. Screen: https://pro.similarweb.com/ #### 3. Open Standard API and generate a key In the API section choose Standard API, then click Generate a new API key. #### 4. Set the primary user and create the key Enter the email address of the primary user for the key and click Create. Copy the key from the Generated Keys table. #### 5. Switch the Activation toggle on In Generated Keys, click the control to the left of the user's email address to expand their keys. Turn the toggle in the Activation column on for the new key. #### 6. Paste the key into PopMCP Open the Similarweb connector in PopMCP, paste the value into API Key, and save. ### Fields PopMCP asks for - API Key (apiKey) [required]: In Similarweb, open Settings → Account → the API section, choose “Standard API / Batch API” and click “Generate a new API key”. A Similarweb subscription with API access is required; some data (App Intelligence, certain keyword/demographics endpoints) needs the matching add-on. The key is sent as the `api_key` query param, stored encrypted, and used server-side only. ### Verify PopMCP marks the Similarweb connector Connected, and a test call for total traffic on a domain returns monthly visits instead of an error. ### Troubleshooting #### Every request fails with "Invalid API key" Cause: The key was generated but never activated, or it was copied with trailing whitespace. Fix: Return to Settings → Account → API, switch the Activation toggle on for that key, then re-paste it into PopMCP. #### The API section is missing or read-only Cause: You are not an account admin, or the subscription does not include API access. Fix: Ask the subscription owner to run these steps or to make you an account admin. #### 403 or "not available for your subscription" Cause: The endpoint belongs to a product or add-on the plan does not include, such as App Intelligence, Trends, or certain keyword reports. Fix: Call the Check Capabilities endpoint to see what the key covers, then ask your Similarweb rep to enable the add-on. #### HTTP 429 Too many requests Cause: More than 10 requests per second were sent on the key. Fix: Pace the agent, or ask Similarweb about the Batch API for bulk domain work. #### Requests succeed but the data is empty Cause: The account is out of data credits, or the domain has too little traffic for Similarweb to report on. Fix: Check remaining credits under Settings → Account → API → Credit management, then test with a high-traffic domain. --- ## Slack URL: https://www.docs.popmcp.com/docs/integrations/slack/ Summary: Connect Slack to post, edit, and schedule messages, and manage channels, users, reactions, files, and search. A Bot User OAuth Token starting with xoxb- from your Slack app's OAuth & Permissions page, plus the User OAuth Token starting with xoxp- if you need search, reminders or admin methods. - Auth: API credentials - Setup time: 8 min - API base URL: https://slack.com/api - Credentials screen: https://api.slack.com/apps - Provider docs: https://api.slack.com/methods ### Before you begin - A Slack workspace you can install apps into, free plans included - Permission to install apps, since many workspaces route installs through an admin as "Request to Install" - Nothing paid and no Slack Marketplace review for an internal app ### Get your credentials #### 1. Create a Slack app Go to api.slack.com/apps and click Create New App. Choose From a manifest if you have a scope list to paste, otherwise From scratch, then name the app `PopMCP` and pick the workspace it will live in. Screen: https://api.slack.com/apps #### 2. Add Bot Token Scopes In the sidebar under Features, open OAuth & Permissions and scroll to Scopes. Under Bot Token Scopes, click Add an OAuth Scope once for each permission you want. #### 3. Add User Token Scopes only if you need them On the same page, use User Token Scopes for the optional `xoxp-` token. Add `search:read` there if you want message and file search, and skip this step otherwise. #### 4. Install the app to your workspace Under Settings, open Install App and click Install to Workspace. Review the consent screen and click Allow. #### 5. Copy the Bot User OAuth Token Return to OAuth & Permissions and find the OAuth Tokens for Your Workspace panel. Copy the Bot User OAuth Token starting with `xoxb-` into PopMCP, and copy the User OAuth Token starting with `xoxp-` into the optional second field if you added user scopes. #### 6. Invite the bot to the channels it should see In Slack, type `/invite @PopMCP` in every channel PopMCP should reach. Do this for private channels too, since the bot must be a member to read them. ### Fields PopMCP asks for - Bot User OAuth Token (botToken) [required]: At api.slack.com/apps create an app (Create New App → From a manifest is fastest; paste a manifest that lists the bot scopes you want), Install to Workspace, then under OAuth & Permissions copy the "Bot User OAuth Token" (starts with xoxb-). It's sent as Authorization: Bearer and stored encrypted; used server-side only. - User OAuth Token (optional) (userToken): Optional. Only needed for user-only methods: message/file SEARCH, reminders, Do-Not-Disturb writes, setting your own presence/profile/status, and the admin.* Enterprise-Grid org-management methods (use an org-admin's token). Add the matching User Token Scopes to your app first (e.g. search:read). Copy the "User OAuth Token" (starts with xoxp-). ### Verify PopMCP shows Slack as Connected and names your workspace, and a channel-listing tool call returns the real channels the bot can see. ### Troubleshooting #### invalid_auth or not_authed Cause: The token was truncated, pasted with whitespace, or the app was reinstalled so the old xoxb- was revoked. Fix: Re-copy the current Bot User OAuth Token from OAuth & Permissions and save it again in PopMCP. #### missing_scope Cause: A scope was ticked in the config but the app was never reinstalled, so the live token predates the change. Fix: Add the scope, then open Settings then Install App then Reinstall to Workspace, then paste the newly issued token. #### not_in_channel or channel_not_found on a channel that exists Cause: The bot user is not a member of that channel, or the channel is private. Fix: Run /invite @PopMCP in the channel and retry. #### search tools fail while posting works Cause: Search is a user-token-only API. A bot token can never call it. Fix: Add search:read under User Token Scopes, reinstall, and paste the xoxp- token into PopMCP's optional User OAuth Token field. #### ratelimited on message history, only 15 messages returned Cause: Since 29 May 2025, conversations.history and conversations.replies are capped at 1 request per minute and 15 objects for apps distributed outside the Slack Marketplace. Fix: Keep the app internal and undistributed. Custom workspace apps retain the higher tier. #### The install button reads Request to Install Cause: The workspace routes app installs through an admin for approval. Fix: Click it, then ask a workspace admin to approve the request before returning for the token. --- ## SmartLead URL: https://www.docs.popmcp.com/docs/integrations/smartlead/ Summary: Connect SmartLead to build and run cold email campaigns, manage leads and sending accounts, answer replies, and track results. You paste one SmartLead API key into PopMCP. An admin key reaches the whole account and every client sub-account; a client key reaches only the client it is assigned to. - Auth: API credentials - Setup time: 3 min - API base URL: https://server.smartlead.ai/api/v1 - Credentials screen: https://app.smartlead.ai/app/settings/profile - Provider docs: https://api.smartlead.ai/authentication ### Before you begin - A SmartLead account at app.smartlead.ai. SmartLead's pricing table lists API & Webhooks as a per-plan feature, so if you cannot create a key, check that your plan includes it. - Access to Settings from your profile menu, where API Key Management lives - A decision on reach: the admin key covers every client, a client key covers one client. A PopMCP workspace holds one SmartLead connection. - Smart Delivery, Smart Prospect or Smart Senders enabled on your SmartLead account if you want those tools. The same key reaches them. ### Get your credentials #### 1. Open API Key Management Sign in at app.smartlead.ai, open your profile menu and choose Settings, then API Key Management. The Admin API Keys section lists the keys that reach the whole account. Screen: https://app.smartlead.ai/app/settings/profile #### 2. Create a key for PopMCP In Admin API Keys, click + Create API Key, enter a descriptive name such as `PopMCP` and click Create. To limit PopMCP to one client instead, create a client key and assign it to that client. Screen: https://app.smartlead.ai/app/settings/profile #### 3. Copy the key before you leave the page Click the copy icon next to the new key right away. SmartLead hides the full value once you leave the page, so a lost key has to be reset or replaced. Screen: https://app.smartlead.ai/app/settings/profile #### 4. Paste the key into PopMCP In PopMCP, paste the key into API key and click Connect SmartLead. PopMCP checks it by listing one sending account, so no campaign or lead is touched. ### Fields PopMCP asks for - API key (apiKey) [required]: In SmartLead (app.smartlead.ai) open Settings → API Keys, then copy your key (or generate one). Stored encrypted and used server-side only. A client sub-account key also works and limits the MCP to that client. ### Verify PopMCP shows SmartLead as Verified, labelled `SmartLead (user )` once the account has at least one sending mailbox (or just `SmartLead` on an empty account). Asking the AI to list your campaigns returns your real campaign names and statuses. ### Troubleshooting #### SmartLead rejected this API key Cause: SmartLead answered 401 `Invalid API Key`: the key was copied incompletely, or it was reset or revoked after you copied it. Fix: Copy the key again from Settings, API Key Management, or create a new one, and reconnect. PopMCP also accepts a pasted request URL containing api_key= and extracts the key. #### The connection stopped working right after someone reset a key Cause: Reset Key generates a new value and invalidates the old one immediately, including the copy stored in PopMCP. Fix: Reconnect SmartLead in PopMCP with the new value. Give PopMCP its own named key so other teams' resets do not break it. #### Only one client's campaigns and mailboxes appear Cause: You pasted a client key, which is limited to the client it is assigned to. Fix: Reconnect with an admin key from the Admin API Keys section if the connection should reach every client. #### Smart Delivery, Smart Prospect or Smart Senders tools return 401 or 403 Cause: The add-on is not enabled on your SmartLead account. The key itself is fine. Fix: Enable the add-on in SmartLead, or ask the AI to stick to the core campaign, lead and inbox tools. #### A tool fails even though SmartLead answered HTTP 200 Cause: Some SmartLead endpoints, Smart Prospect especially, report failure as HTTP 200 with success: false. PopMCP turns that into an error carrying SmartLead's message. Fix: Read the message in the error, for example missing credits or an invalid filter, fix the cause and retry. #### 429 or `You have exceeded the 10 requests in 60 sec limit for this endpoint!` Cause: The key hit its per-minute limit, which every admin key shares, or one of the endpoints capped at 10 requests per 60 seconds (lead statistics, all-leads activities, domain-wise health). Fix: Wait 60 seconds and retry with fewer calls. For analytics, ask for one date range instead of many small ones. #### There is no API Key Management page, only an API section Cause: SmartLead has renamed this area over time: older docs say Settings, API Keys or Settings, API. Fix: Open your profile menu, choose Settings and look for the API key area under whichever name your account shows. If none exists, check that your plan includes API & Webhooks. --- ## Smartsheet URL: https://www.docs.popmcp.com/docs/integrations/smartsheet/ Summary: Connect Smartsheet to find sheets, read and update rows, add comments and files, run reports and dashboards, and share work across your workspaces. You paste one value into PopMCP: a Smartsheet API access token, generated in Smartsheet under Account, Personal settings, API access. PopMCP finds your region (US, Europe, Australia or Gov) by itself. - Auth: API credentials - Setup time: 2 min - API base URL: https://api.smartsheet.com/2.0 - Credentials screen: https://app.smartsheet.com/ - Provider docs: https://help.smartsheet.com/articles/2482389-generate-API-key ### Approval required before this works No one reviews you, but Smartsheet restricts its API to Business and Enterprise plans (Advanced Work Management includes it too). Pro accounts cannot use the API, so a token from them does not work. - Typical wait: None. On an eligible plan the token is generated and works in under a minute. - Cost: Per smartsheet.com/pricing: Business is $19 per member a month billed yearly or $24 billed monthly; Enterprise and Advanced Work Management are priced by sales. Pro ($9 yearly, $12 monthly) does not include the API. A 30-day free trial needs no card. - Blocked until approved: Everything. Without a Business or Enterprise plan Smartsheet refuses API calls, so the connection cannot be made. - Works meanwhile: Start the 30-day free trial and generate a token right away; you can connect and try every tool before deciding on a plan. ### Before you begin - A Smartsheet account on a Business or Enterprise plan (or Advanced Work Management). Smartsheet does not allow API access on Pro - API access turned on for your user. It is on by default; a System Admin can turn it off in Admin Center - The sheets, reports and workspaces you want the AI to use must be shared with your user. A token reaches exactly what you can open ### Get your credentials #### 1. Sign in to Smartsheet Sign in to Smartsheet as the user whose sheets the AI should work with. If your company uses Smartsheet in Europe (app.smartsheet.eu), Australia (app.smartsheet.au) or Smartsheet Gov, sign in there: tokens only work in the region that issued them, and PopMCP finds the region for you. Screen: https://app.smartsheet.com/ #### 2. Open Personal settings, then API access At the bottom of the left navigation bar select Account (your profile picture), then Personal settings. In the window that opens, select the API access tab. Screen: https://app.smartsheet.com/ #### 3. Generate a token named PopMCP Select Generate new access token, name it PopMCP so you can recognise and revoke it later, and select OK. Screen: https://app.smartsheet.com/ #### 4. Copy the token right away Smartsheet shows the token once. Copy it now and keep it somewhere safe until you have pasted it into PopMCP, then select OK. The new token appears by name under Manage API Access Tokens. If you lose it, generate another one. Screen: https://app.smartsheet.com/ #### 5. Paste the token into PopMCP In PopMCP, paste the token into API access token and connect. PopMCP tries it on Smartsheet's US, Europe, Australia and Gov servers, keeps the region that accepts it, and reads your name and email to label the connection. ### Fields PopMCP asks for - API access token (accessToken) [required]: In Smartsheet: Account (your picture, bottom left), Personal settings, API access, Generate new access token. Name it PopMCP, then copy it right away: Smartsheet shows it only once. Works for Smartsheet in the US, Europe, Australia and Gov. ### Verify PopMCP marks the Smartsheet connection Verified under your name and email, and notes your region (for example Smartsheet Regions Europe). Asking the AI to find a sheet by name returns its id, and asking for its overdue rows reads them by column name. ### Troubleshooting #### "Smartsheet did not accept this API access token in any region (US, Europe, Australia or Gov)." Cause: The token was copied incompletely, has extra text around it, was revoked, or expired under an admin's token expiry rule. Fix: Generate a new token under **Account**, **Personal settings**, **API access** and paste only the token itself. #### "Smartsheet only allows API access on Business and Enterprise plans" Cause: The account is on Pro, which does not include the Smartsheet API. Fix: Use an account on Business or Enterprise, or start a free trial of one of those plans. #### "Smartsheet says this account must sign in with single sign-on" Cause: Your organization requires single sign-on and has not allowed API access for your user. Fix: Ask your Smartsheet System Admin to allow API access for your account, then generate a new token. #### "Smartsheet accepted the token but refused to read your profile." Cause: A System Admin turned off API access for your user or your organization. Fix: Ask your System Admin to turn API access back on in Admin Center, then connect again. #### Tools fail with 429 Cause: Smartsheet allows 300 requests a minute per token, and 30 a minute for file uploads and cell history. Fix: Wait a minute and retry. PopMCP already retries a rate-limited call once Smartsheet says when. #### Search does not find a sheet you just made Cause: Smartsheet's search index can take a while to include new items, and longer for an account that has not used the API lately. Fix: Ask the AI to use smartsheet_find, which falls back to listing your sheets, reports, dashboards and workspaces by name. --- ## Square URL: https://www.docs.popmcp.com/docs/integrations/square/ Summary: Connect Square to track sales and refunds, send invoices and payment links, manage items, stock, customers and bookings, and see your payouts. You end up pasting the access token of an app in your Square Developer Console. Making the app is free, takes a minute and Square reviews nothing; PopMCP works out on its own whether the token is a production or a sandbox one. - Auth: API credentials - Setup time: 3 min - API base URL: https://connect.squareup.com - Credentials screen: https://developer.squareup.com/apps - Provider docs: https://developer.squareup.com/docs/build-basics/access-tokens ### Before you begin - The Square account of the business you want to connect (any Square plan, including the free one) - Sign-in to the Square Developer Console with that account; it is free and needs no approval - Taking real card payments needs the Square account activated for payments (squareup.com/activation); reading sales, orders and customers does not ### Get your credentials #### 1. Sign in to the Developer Console Go to `developer.squareup.com/apps` and sign in with the Square account of the business you want to connect. The Applications page lists the apps on that account; a new developer account may already have one from sign-up. Screen: https://developer.squareup.com/apps #### 2. Create an application for PopMCP On the Applications page, create a new application and give it an Application name such as `PopMCP` (you can change it later). Square opens the new application. Creating it is free and nothing is sent for review. Screen: https://developer.squareup.com/apps #### 3. Copy the Production access token In the application's left pane choose Credentials. At the top of the page choose Production, then in the Production Access token box choose Show and copy the token (it starts with `EAAA`). To connect Square's test account instead, choose Sandbox at the top and copy the Sandbox Access token. Screen: https://developer.squareup.com/apps #### 4. Connect in PopMCP Paste the token into PopMCP's Square form and click Connect Square. PopMCP checks it with Square, finds out whether it is a production or a sandbox token, and shows the business it belongs to with its active locations. Screen: https://developer.squareup.com/docs/build-basics/access-tokens ### Fields PopMCP asks for - Access token (accessToken) [required]: At developer.squareup.com/apps, sign in with your Square account, create an app (any name, free) or open one, choose Credentials, keep Production selected at the top, then Show and copy the Access token. For Square's test account use the Sandbox access token instead. Stored encrypted. ### Verify PopMCP shows the Square connector as Connected with the business name (marked sandbox for a sandbox token) and how many active locations the business has. ### Troubleshooting #### Square did not accept this access token Cause: Only part of the token was copied, it was replaced in the Developer Console, or it belongs to a different Square account. Fix: Open the application's Credentials page, choose Show next to the Production Access token and copy all of it again. #### The form says it is an Application ID or Application secret Cause: The Application ID (sq0idp-) sits on the same page, and the Application secret (sq0csp-) on the OAuth page; neither is the token. Fix: Copy the value in the Production Access token box (or the Sandbox Access token box) instead. #### Nothing with that id was found Cause: Production and the sandbox are separate: a payment, order or customer id from one does not exist in the other. Fix: Check whether the connection is the sandbox (its name ends in sandbox), and connect the production token for real business data. #### Card payments are refused on a new Square account Cause: The Square account is not activated for payments yet. Fix: Activate it at squareup.com/activation, then try again. Recording cash or other outside payments works without it. #### Creating a booking is refused Cause: Writing bookings for any team member through an app needs Square Appointments Plus or Premium. Fix: Upgrade the Appointments plan in the Square Dashboard, or create the booking in Square Appointments directly. --- ## Squarespace URL: https://www.docs.popmcp.com/docs/integrations/squarespace/ Summary: Connect Squarespace to manage orders, products and variants, inventory, transactions, and profiles for your site. You end up with one Squarespace Developer API Key, generated under Settings → Advanced → Developer API Keys, pasted into PopMCP's API Key field. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.squarespace.com/1.0/commerce - Credentials screen: https://account.squarespace.com/websites - Provider docs: https://developers.squarespace.com/commerce-apis/authentication-and-permissions ### Approval required before this works Squarespace only exposes the Developer API Keys screen on qualifying paid site plans, so Squarespace's own billing tier, not a review, gates whether a working Commerce API key can exist at all. - Typical wait: Immediate once the site is on a qualifying plan. The key is generated self-serve in seconds; there is no review queue. - Cost: The site plan itself; keys cost nothing extra. Squarespace lists the Orders, Inventory and Transactions APIs on the Core, Plus, Advanced and legacy Commerce Advanced plans. The Forms API additionally covers Business and Commerce Basic. Sites on lower plans cannot generate keys at all. - Blocked until approved: Without a qualifying plan there is no Developer API Keys option, so no Orders, Inventory, Products or Transactions calls are possible. On a plan that qualifies for only some APIs, you can generate a key but cannot tick permissions for the APIs your plan excludes, and calls to those endpoints fail on permissions. - Works meanwhile: Nothing on the commerce endpoints. You can read the API reference and build against the documented schemas, and on a Forms-eligible plan (Business or Commerce Basic) the Forms API works while the commerce endpoints do not. ### Before you begin - A site on the Commerce Advanced plan, which the Commerce APIs require for Orders, Inventory and Transactions permissions - Owner or Administrator permissions on the site, since keys are generated inside the site rather than the account dashboard - Commerce enabled on the site if you want Orders, Products, Inventory or Transactions access ### Get your credentials #### 1. Open the site you want to connect Sign in at account.squarespace.com and click into the site whose store data PopMCP should read. Screen: https://account.squarespace.com/websites #### 2. Go to Settings, Advanced, Developer API Keys In the site's left panel click Settings, scroll down to Advanced, then click Developer API Keys. #### 3. Name the key and set the permissions Click GENERATE KEY, type `PopMCP` under KEY NAME, then set a level for each API under PERMISSIONS. Choose Read and Write for Orders, Products and Inventory if the agent should act, or Read Only for a reporting connection. #### 4. Copy the key before closing the window Copy the key from the confirmation window. Squarespace will not show it again. #### 5. Paste the key into PopMCP Open the Squarespace connector in PopMCP, paste the value into API Key, and save. ### Fields PopMCP asks for - API Key (apiKey) [required]: Settings → Advanced → Developer API Keys → Generate Key. Give it the permissions you need (e.g. Orders, Products, Inventory). Copy it exactly. It's shown once. It's sent as a Bearer token and stored encrypted; used server-side only. Requires a paid Squarespace plan. ### Verify PopMCP shows the Squarespace connector as Connected, and a test order listing returns your recent orders rather than a 401. ### Troubleshooting #### 401 Unauthorized on every call Cause: The key was copied incompletely, was revoked in Squarespace, or belongs to a different site. Keys are scoped to one site. Fix: Generate a fresh key on the correct site under Settings → Advanced → Developer API Keys and re-paste it. #### 403 Forbidden on one tool only Cause: That API was left unticked, or was granted Read Only when the tool needs write. Fix: Keys cannot be re-scoped. Delete the key, generate a new one with the right permission levels, and update PopMCP. #### Orders or Inventory permissions are not offered Cause: The site is not on the Commerce Advanced plan, or commerce has never been enabled. Fix: Upgrade the site to Commerce Advanced, then re-open Settings → Advanced → Developer API Keys. #### 429 Too Many Requests Cause: More than 300 calls in a minute, or more than 100 Create Order calls in an hour on one key. Fix: Wait out the one-minute cooldown and pace the agent. Bulk order creation needs OAuth rather than an API key. #### Requests are rejected before any permission check Cause: Squarespace rejects Commerce API requests that arrive without a User-Agent header, and requests sent over plain HTTP. Fix: Nothing to change in the console. If you are testing with curl, add a User-Agent header and use HTTPS. --- ## Stripe URL: https://www.docs.popmcp.com/docs/integrations/stripe/ Summary: Connect Stripe to manage charges, payments, customers, subscriptions, invoices, refunds, and payouts. You end up with one Stripe server-side key, either a restricted key (rk_live_...) or a secret key (sk_live_...), that you paste into PopMCP's "Secret API key" field. - Auth: API credentials - Setup time: 5 min - API base URL: https://api.stripe.com/v1 - Credentials screen: https://dashboard.stripe.com/apikeys - Provider docs: https://docs.stripe.com/api ### Before you begin - A Stripe account with the Developer or Administrator role. View-only users cannot create keys - Two-factor authentication on your Stripe user. Stripe emails or texts a verification code before it will mint a key - A live-mode account if you want real data. Sandbox keys only ever see test objects ### Get your credentials #### 1. Open the API keys page in live mode Click Developers at the bottom of the left sidebar, then API keys. Check the mode switch in the top bar and set it to live mode. Screen: https://dashboard.stripe.com/apikeys #### 2. Create a restricted key with the permissions PopMCP needs Click Create restricted key and type `PopMCP` into Key name. Set each resource to Read or Write, then click Create key. Screen: https://dashboard.stripe.com/apikeys/create #### 3. Verify, then copy the key value Enter the verification code Stripe emails or texts you, then click Continue. Click the key value to copy it, then click Done. #### 4. Paste the key into PopMCP Open the Stripe connector in PopMCP, paste the key into Secret API key, and save. ### Fields PopMCP asks for - Secret API key (apiKey) [required]: Stripe Dashboard → Developers → API keys. Use a Secret key (sk_…) for full access, or a Restricted key (rk_…) to limit scope. Stored encrypted; used server-side only. The connection is locked to this key's account. ### Verify The Stripe connector in PopMCP shows Connected with your account name. Asking for recent payments or your balance returns figures that match the Stripe Dashboard. ### Troubleshooting #### 401 "Invalid API Key provided" Cause: The key was expired or rotated in Stripe, or you pasted a publishable key (pk_...), which cannot make server-side calls. Fix: Use a key beginning rk_ or sk_. Mint a fresh one on the API keys page and reconnect. #### 403 "This API key does not have the required permissions" Cause: A restricted key with that resource set to None or Read. Fix: On the API keys page open the key's overflow menu, choose Edit key, raise that resource to Write, and save. There is no need to re-copy the key. #### Every query comes back empty Cause: You copied a sandbox key (rk_test_ or sk_test_). Test mode has its own separate objects. Fix: Switch the Dashboard to live mode, create the key there, and reconnect. #### Requests are blocked from PopMCP's servers Cause: An access policy restricting the key to specific IPs, ASNs or countries. Fix: On the API keys page, open the key's overflow menu, choose Manage access policy, and set it to None or widen the policy. #### You closed the dialog before copying Cause: Stripe shows a self-created live key only once. Fix: Open the key's overflow menu, choose Rotate key, pick an expiry, and copy the replacement value. Both keys keep working for up to 7 days. --- ## SurveyMonkey URL: https://www.docs.popmcp.com/docs/integrations/survey-monkey/ Summary: Connect SurveyMonkey to build surveys, collect and read responses, manage collectors and contacts, and view analytics. You end up with the Access Token from a Private app registered in the SurveyMonkey developer portal, plus your account's data region (us, eu or ca), pasted into PopMCP. - Auth: API credentials - Setup time: 6 min - API base URL: https://api.surveymonkey.com/v3 - Credentials screen: https://developer.surveymonkey.com/apps/ - Provider docs: https://developer.surveymonkey.com/api/v3/#getting-started ### Approval required before this works A SurveyMonkey app runs in draft mode for only 90 days; to keep it alive for your own team you must deploy it as a private app, and SurveyMonkey's help centre states an Enterprise plan is required to deploy a private app. A public app - one any SurveyMonkey account can connect - must additionally be reviewed and approved by SurveyMonkey. - Typical wait: None to start (draft app credentials work immediately); Enterprise is a sales conversation, and public app review is not given a published SLA - Cost: No fee for the developer app or the review itself. The gate is the plan: SurveyMonkey's help centre states "An Enterprise plan is required to deploy a private app", and Enterprise is quote-only (contact sales). SurveyMonkey publishes no API price list, so treat any specific per-seat figure you see quoted elsewhere as unverified. - Blocked until approved: After the 90-day draft window an undeployed app is disabled and its tokens stop working. Draft apps are capped at 120 requests/minute and 500 requests/day, and are usable only from the SurveyMonkey account the app is registered to, so you cannot connect a client's or colleague's account. Deploying private removes the review requirement ("Private apps don't need to be reviewed by SurveyMonkey") but gates you behind Enterprise, and every user must be a logged-in member of the SurveyMonkey team the app is registered to on a paid plan that offers direct API access. Public apps instead need SurveyMonkey sign-off, and the Create/Modify Responses and Create/Modify Surveys scopes require explicit approval; View Response Details and Create/Modify Collectors additionally require the connecting user to be on a paid plan. - Works meanwhile: Register a draft app at the SurveyMonkey developer portal and get a client ID, secret and access token instantly. Reading surveys, collectors and responses on your own account works right away within the 500/day draft limit, which is enough to build and test the whole integration. ### Before you begin - A SurveyMonkey account. Anyone can register a draft app, whose access token queries their own account for 90 days - A paid SurveyMonkey plan offering direct API access, needed to deploy the app as Private before the draft window ends - All users of a Private app must belong to the same SurveyMonkey team - A paid plan for unlimited response detail, since Basic plans are capped at 25 responses per survey - Knowledge of whether the account sits on the US, EU or Canada data region ### Get your credentials #### 1. Sign in to the developer portal Go to developer.surveymonkey.com and sign in with the SurveyMonkey login that owns the surveys. Screen: https://developer.surveymonkey.com/apps/ #### 2. Add a new Private app Open the MY APPS tab and click Add a New App. Name it `PopMCP`, select Private App, then click Create App. Screen: https://developer.surveymonkey.com/apps/ #### 3. Tick the scopes the connector needs Open the app's Scopes and mark View Surveys, View Responses and View Response Details as required. Add the create and modify scopes only if the agent should write. #### 4. Copy the Access Token Open the app's Settings and copy the value labelled Access Token. Do not copy the Client ID or Secret. #### 5. Deploy the app as Private Open Deploy and publish the app as a Private App before the 90 day draft window ends. #### 6. Paste the token and region into PopMCP In PopMCP's SurveyMonkey connector paste the value into Access token, set Data region to `us`, `eu` or `ca`, then save. ### Fields PopMCP asks for - Access token (apiKey) [required]: Create an app at developer.surveymonkey.com (My Apps → New app → Private), then copy the Access Token from the app's Settings and paste it here. Tick the scopes you need (View/Create Surveys, View Responses + View Response Details, View/Create Collectors, Contacts, Webhooks). Note: a free/Draft app's token works for 90 days; a deployed Private app (paid plan with API access) gives a token that doesn't expire. Stored encrypted. - Data region (us, eu, or ca) (region): Where your SurveyMonkey account's data is hosted: us (default, api.surveymonkey.com), eu (api.eu.surveymonkey.com), or ca (api.surveymonkey.ca). A token only works against its own region's host. Leave as us unless your account uses EU or Canada data residency; if the connection is rejected, try the other region. ### Verify PopMCP shows the SurveyMonkey connector as Connected, and a test call listing your surveys returns their titles and IDs. ### Troubleshooting #### 401 with "Client authentication failed" Cause: The Client ID or Secret was pasted instead of the Access Token, or the token belongs to a different account. Fix: Copy the value labelled Access Token in the app's Settings and re-paste it. #### The Access Token field is not visible in Settings Cause: The app type is not set to Private. Fix: Change the app type to Private App in the app's Settings, save, then reload the page. #### The connection worked for a while, then stopped Cause: The app was left as a Draft, and a draft app is disabled 90 days after registration. Fix: Deploy the app as a Private app on a plan with direct API access, then re-copy the token into PopMCP. #### Every call 404s or is rejected even with a fresh token Cause: Wrong data region. A token only works against api.surveymonkey.com, api.eu.surveymonkey.com or api.surveymonkey.ca respectively. Fix: Change the Data region field to eu or ca and reconnect. #### "Client revoked access grant" Cause: Someone removed the app's authorisation from the SurveyMonkey account. Fix: Re-authorise the app in the developer portal and copy the token again. #### Only 25 responses come back per survey, or calls fail with error 1005 Cause: The account is on a Basic plan, which caps responses_read_detail at 25 responses per survey. Fix: Upgrade the SurveyMonkey plan for unlimited response access. Nothing changes on the PopMCP side. --- ## tawk.to URL: https://www.docs.popmcp.com/docs/integrations/tawk/ Summary: Connect tawk.to to manage live chat agents, chats, tickets, members, chat widgets, and knowledge base articles. You end up pasting a single tawk.to REST API key, created under your profile's REST API Keys tab once tawk.to approves your beta access request. - Auth: API credentials - Setup time: 5 min, after tawk.to approves your access request - API base URL: https://api.tawk.to/v1 - Credentials screen: https://dashboard.tawk.to/ - Provider docs: https://help.tawk.to/article/rest-api ### Approval required before this works tawk.to's REST API is not self-serve: it is available by request only, and you must be approved through tawk.to's REST API Beta access request form before the REST API Keys screen appears in your account. - Typical wait: Not published. tawk.to states only that once the request is approved you receive a username, password and a link to the REST API documentation; no SLA or turnaround figure is given on either the help article or the request form. - Cost: No charge is stated. Neither the REST API help article nor the beta access request form names a fee or a plan requirement, and tawk.to publishes no API pricing. - Blocked until approved: Everything on the REST API: listing properties, reading and managing conversations, agents, tickets and knowledge base entries. Until approval you cannot even generate a key - the 'REST API Keys' item does not appear under Edit Profile, and the API documentation URL is only sent to approved requesters. - Works meanwhile: The tawk.to JavaScript API (Tawk_API) works immediately on any account with no approval - widget control, visitor attributes, tags, and event hooks such as onChatStarted/onChatEnded. Webhooks configured per property in Administration also work without applying, so inbound event-driven integrations can be built while you wait. ### Before you begin - A tawk.to account (the REST API is free, but gated) - REST API beta access approved by tawk.to. You submit a request form and wait for a manual approval email - Desktop or laptop browser. tawk.to says the REST API Keys screen is not available in the mobile apps - The tawk.to email address of the user who will hold the key (asked for on the request form) ### Get your credentials #### 1. Request REST API beta access Open the REST API Access Request Form and fill in the tawk.to email address of the user requiring access. Pick Internal purposes or To build a publicly available integration, then click Request access. Screen: https://www.tawk.to/rest-api-beta-access-request/ #### 2. Open Edit Profile in the dashboard Sign in at dashboard.tawk.to and click your profile image in the lower-left corner. Click Edit Profile. Screen: https://dashboard.tawk.to/ #### 3. Create a key under REST API Keys In Account Settings, click REST API Keys in the left menu. Click Create Key. #### 4. Copy the key into PopMCP Copy the new key from the list. Paste it into the REST API key field on the PopMCP tawk.to connect form. ### Fields PopMCP asks for - REST API key (apiKey) [required]: First request REST API access at help.tawk.to/article/rest-api (approved in ~24–48h). Then in tawk.to go to Profile → Edit Profile → REST API Keys → Create Key and paste the key here. Sent as HTTP Basic auth (key as username, empty password) and stored encrypted; used server-side only. ### Verify PopMCP shows tawk.to as Connected and the agent, chat, ticket, property-member, widget and Knowledge Base tools appear. Under the hood PopMCP calls POST https://api.tawk.to/v1/agent.me and gets back your agent record. ### Troubleshooting #### There is no REST API Keys tab in Account Settings Cause: Your account has not been granted REST API beta access, or you are signed in as a different tawk.to user than the one named on the request form. Fix: Re-check the approval email, sign in as the exact tawk.to email you listed on the request form, or submit the REST API Access Request Form again at https://www.tawk.to/rest-api-beta-access-request/. #### 401 Unauthorized on every call Cause: The key was deleted, or it is being sent as a bearer token instead of HTTP Basic with the key as the username. Fix: Confirm the key still exists in REST API Keys and re-paste it into PopMCP. PopMCP handles the Basic auth encoding, so paste the raw key with no 'Bearer' prefix and no trailing spaces. #### Calls work for one website but not another Cause: tawk.to scopes data by property, and the key inherits the properties of the agent who created it. Fix: Add that agent as a Property Member on the missing property, or create the key from an account that is a member of every property you need. #### The REST API Keys screen will not open on mobile Cause: tawk.to documents the REST API key flow as desktop and laptop only. Fix: Open dashboard.tawk.to in a desktop browser. #### The key stops working after an agent leaves Cause: A key inherits the permissions of the agent who created it, so removing that agent removes the key's access. Fix: Create the key from a long-lived admin account rather than an individual agent's account, then re-paste the new key into PopMCP. --- ## Telegram URL: https://www.docs.popmcp.com/docs/integrations/telegram/ Summary: Connect Telegram to post to your channels and groups with your bot, reply to people who message it, send files and polls, and manage members. You paste one value into PopMCP: the bot token that @BotFather gives you when you create a bot inside Telegram. It looks like 123456789:AAH... and is free, instant and needs no approval. - Auth: API credentials - Setup time: 2 min - API base URL: https://api.telegram.org/bot - Credentials screen: https://t.me/BotFather - Provider docs: https://core.telegram.org/bots/api ### Before you begin - A Telegram account, on the phone app, the desktop app or web.telegram.org - A bot of your own, made with @BotFather in about a minute. Use a separate bot for PopMCP if one you already have runs somewhere else - For a channel: you are an owner or administrator, so you can make the bot an administrator with permission to post ### Get your credentials #### 1. Open @BotFather in Telegram Open Telegram on your phone, on desktop or at web.telegram.org, search for @BotFather and open the chat with the blue check mark, then press Start. BotFather is Telegram's own bot for making and managing bots; it also has a mini app with the same options. Screen: https://t.me/BotFather #### 2. Create the bot with /newbot Send `/newbot`. BotFather asks for a name, which people see in chats and you can change later, and then a username, which must end in `bot` (for example `acme_updates_bot`), must not be taken, and cannot be changed later. Screen: https://t.me/BotFather #### 3. Copy the bot token BotFather answers Done! with the link to your bot and its token, a number, a colon and a long code such as `123456789:AAH...`. Copy the whole token. Anyone who has it controls the bot, so keep it private. For a bot you made before, send `/mybots`, pick the bot and tap API Token. Screen: https://t.me/BotFather #### 4. Add the bot to your channel or group (optional) To post in a channel, open the channel's info, then Administrators, Add Admin, choose your bot and keep Post Messages on. For a group, add the bot as a member. While privacy mode is on, a bot in a group only sees commands, replies to it and mentions; make it an administrator, or send `/setprivacy` to BotFather and choose Disable and then add it to the group again, if it should see every message. #### 5. Paste the token into PopMCP In PopMCP, paste the token into Bot token and connect. Under More options you can add a Default chat, such as `@yourchannel` or a numeric id, so the AI posts there when you do not name a chat; PopMCP checks that the bot can see it. ### Fields PopMCP asks for - Bot token (botToken) [required]: In Telegram, open @BotFather and send /newbot (or /mybots, pick your bot, then API Token). Copy the token it shows. Stored encrypted and used only on our servers. - Default chat (defaultChat): Optional. The channel or group the AI uses when you do not name one: its @username or numeric id. Add the bot to it first (as an administrator for a channel). ### Verify PopMCP checks the token with Telegram's getMe and shows the connection as your bot's @username, noting whether privacy mode is on and whether the bot already sends its updates to a webhook of its own. Asking the AI for your bot's username, or to post a short test message to your default chat, confirms it works. ### Troubleshooting #### "Telegram rejected this bot token. In @BotFather send /mybots, pick the bot and tap API Token to copy it again (or send /token for a new one), then paste only the token." Cause: Part of the token was missed when copying, or the token was replaced with /token or revoked in BotFather. Fix: In BotFather send /mybots, choose the bot, tap **API Token** and copy the whole value, numbers and colon included. #### "That is not a bot token. A token from @BotFather looks like 123456789:AAH..." Cause: Something else was pasted, often the api_id or api_hash from my.telegram.org, which are for apps, not bots. Fix: Copy the token from @BotFather instead. It always has a colon between the bot's number and the long code. #### "The bot cannot see the default chat @yourchannel." Cause: The bot is not in that chat, the username is wrong, or the chat is private and was given by @username. Fix: Add the bot to the chat first (as an administrator for a channel), check the @username, use the numeric id for a private chat, or leave Default chat empty. #### Sending fails with "chat not found" Cause: The chat id or @username is wrong, the bot is not a member of the chat, or the person never pressed Start in the bot. Fix: Ask the AI to run list_chats to see the chats the bot can reach, add the bot to the chat, or ask the person to open the bot and press Start. #### "bot can't initiate conversation with a user" or "bot was blocked by the user" Cause: Bots can only message people who started a chat with them, and someone who blocked the bot cannot receive its messages. Fix: Share the bot's link (t.me/your_bot) and ask the person to press Start, or to unblock the bot. #### "not enough rights" or "need administrator rights in the channel chat" Cause: The bot is a member but lacks the administrator right the action needs, such as Post Messages, Delete Messages or Ban Users. Fix: Open the chat's Administrators list, edit the bot and switch on the right that is named in the error. #### Reading messages says the bot delivers its updates to a webhook Cause: The bot already runs in another program, which receives its updates. Telegram allows only one receiver per bot. Fix: Keep that program as it is. Create a separate bot for PopMCP if the AI should read incoming messages; sending works either way. #### Messages show raw asterisks, or fail with "can't parse entities" Cause: Ordinary Markdown such as **bold** is not Telegram's text format, and MarkdownV2 needs special characters escaped. Fix: Ask the AI to use send_rich_message with Markdown, or HTML formatting with send_message. --- ## TikTok URL: https://www.docs.popmcp.com/docs/integrations/tiktok/ Summary: Connect TikTok to post videos and photo carousels, send drafts to your inbox, track how each post performs, and read your profile and follower stats. You end up pasting the Client key and Client secret from the Credentials block of your app in the TikTok for Developers portal. - Auth: OAuth authorization - Setup time: 25 min, plus 5-10 business days for app review - API base URL: https://open.tiktokapis.com/v2 - Credentials screen: https://developers.tiktok.com/apps - Provider docs: https://developers.tiktok.com/doc/login-kit-web ### Approval required before this works TikTok for Developers must review and approve your app - each product (Login Kit, Display API, Content Posting API) and each scope is granted individually - before the app leaves sandbox and real TikTok users can authorise it. - Typical wait: TikTok's own developer FAQ states "App review may take several days to two weeks after submission." There is no guarantee of approval, and a rejected app restarts the clock on resubmission. - Cost: No fee. TikTok charges nothing for a developer account, sandbox use, or app review. - Blocked until approved: Production OAuth for anyone outside your sandbox. An unapproved app works only for the TikTok accounts you explicitly add as sandbox target users - TikTok caps this at 10 accounts per sandbox - so no customer can connect their own account. Approval grants only the products and scopes named in the application (TikTok: "your app will have access to the products and scopes requested in the application"), so anything you did not request and demonstrate needs a fresh submission. The Content Posting API is a further step: until your client passes its audit, everything it posts is forced to private viewing mode. - Works meanwhile: Sign up at developers.tiktok.com, create an app and get a client key and client secret instantly, then build the entire integration in Sandbox mode - the full OAuth flow, Display API reads and Content Posting all work against your own and up to 10 invited TikTok accounts. You then import the sandbox configuration into the production draft to submit. ### Before you begin - A TikTok developer account created at developers.tiktok.com/signup - An organization to own the app, strongly recommended for real integrations - A public website you control, so you can verify URL ownership of your Terms of Service, Privacy Policy and web URLs - A demo video of the end-to-end flow (up to 5 videos, 50 MB each) for the review submission - App review approval before anyone outside Sandbox can connect. The Content Posting API also requires verified URL properties ### Get your credentials #### 1. Connect an app Click your profile icon in the main navigation bar and choose Manage apps. Click Connect an app, pick your organization under Select the app owner, and click Confirm. Screen: https://developers.tiktok.com/apps #### 2. Fill in App details and Platforms Under App details open Basic information and set the App icon (1024 x 1024, up to 5 MB), App name, Category and Description. In Platforms select Web and enter your website URL along with the Terms of Service and Privacy Policy URLs. Screen: https://developers.tiktok.com/apps #### 3. Add Login Kit and the Content Posting API, then the scopes In Products click Add products and add Login Kit and Content Posting API. Paste PopMCP's callback URL into Login Kit's Redirect URI, then open Scopes and add `user.info.basic`, `user.info.profile`, `user.info.stats`, `video.list`, `video.upload` and `video.publish`. Screen: https://developers.tiktok.com/apps #### 4. Verify URL ownership Click URL properties at the top of the app page, confirm you are in Production mode, and click Verify properties. Choose Domain or URL prefix, download the signature file, and upload it to that location. Screen: https://developers.tiktok.com/apps #### 5. Copy the Client key and Client secret Open App details and find the Credentials block. Copy the Client key, click Show to reveal the Client secret, and paste both into PopMCP. Screen: https://developers.tiktok.com/apps #### 6. Submit for review and go Live Fill in the App review section, explaining how each product and scope is used, and upload at least one demo video of the full flow. Click Save, then Submit for review. Screen: https://developers.tiktok.com/apps ### Fields PopMCP asks for - Client key (clientKey) [required]: Your TikTok app's "Client key" from developers.tiktok.com (Manage apps -> your app -> Basic information). Add the callback URL above as a Login Kit redirect URI on that app first. - Client secret (clientSecret) [required]: The app's Client secret (same page as the Client key). Stored encrypted; used server-side only and never shown again. ### Callback URL to register https://app.popmcp.com/api/providers/tiktok/callback ### Scopes requested - user.info.basic - user.info.profile - user.info.stats - video.list - video.upload - video.publish ### Verify The TikTok connector opens the TikTok authorization screen. After you approve, the card shows your display name and avatar with a Connected badge, and the posting and analytics tools appear. ### Troubleshooting #### redirect_uri mismatch on the authorize screen Cause: The callback URL is not registered in the Login Kit product configuration, or it has a query string or fragment appended. Fix: Add PopMCP's exact callback URL as a Redirect URI under Products, Login Kit. It must be absolute, static and under 512 characters. #### HTTP 429 with error code rate_limit_exceeded Cause: More than six publish requests in a one-minute sliding window on the same user access token. Fix: Space out posts. The limit is per user token, so adding more app credentials does not help. #### Direct Post is rejected or the scope is unavailable Cause: video.publish was not approved in review, or the app's URL properties are unverified. Fix: Verify URL properties, then resubmit App review with a demo video that shows the posting flow on the same domain you registered. #### Only your own account can connect Cause: The app is still in Draft or is running in Sandbox mode. Fix: Submit the Production revision for review and wait for the status to become Live. Review typically takes 5-10 business days. #### Credentials stop working after an edit Cause: Clicking Create revision on a Live app produces a Draft that is not live until it is re-approved. Fix: Resubmit the revision for review. The previous Live configuration keeps serving until then. --- ## TikTok Ads URL: https://www.docs.popmcp.com/docs/integrations/tiktok-ads/ Summary: Connect TikTok Ads to build and edit campaigns, ad groups and ads, upload creative, manage audiences and targeting, pull performance reports, and track conversions. You end up pasting the App ID and App Secret of an approved developer app, read from My Apps > App Detail > Basic Information in the TikTok API for Business portal. - Auth: OAuth authorization - Setup time: 30 min of forms, then up to 6 business days of TikTok review - API base URL: https://business-api.tiktok.com/open_api/v1.3 - Credentials screen: https://business-api.tiktok.com/portal - Provider docs: https://business-api.tiktok.com/portal/docs?id=1738373141733378 ### Approval required before this works A TikTok Marketing API app must be submitted to TikTok for Business and approved - the app status has to reach Live - before real advertisers can authorise it and before tokens return live ad account data. - Typical wait: TikTok's developer FAQ is the only vendor-stated figure: "App review may take several days to two weeks after submission." TikTok publishes no separate SLA for Marketing API apps. Business verification, if required, is its own 1-3 business days on top, and a data-security review can extend this further. - Cost: No fee for the developer app, sandbox, or the review. Ad spend is separate. - Blocked until approved: Live advertiser authorisation. Until the app is Live the OAuth consent URL will not return an auth code for a real advertiser account, so no campaign, ad group, ad, audience, creative or reporting endpoint returns production data. Products and scopes are granted individually, so an approved app still cannot call endpoints outside the scopes it was approved for, and higher-volume or sensitive access (large-scale reporting, audience upload) needs a further request with business verification. - Works meanwhile: Register at business-api.tiktok.com/portal, create an app and receive an App ID and secret immediately, then create a sandbox ad account from the developer portal. The sandbox lets you run the full request/response cycle - campaign and ad group creation, reporting shapes, error handling - against simulated data with no review and no ad spend. ### Before you begin - A TikTok For Business account - An approved developer profile. Registration is reviewed within three business days and requires a verified company-domain email, since personal and temporary emails are rejected - A public, fully built company website on a domain you own that matches your email domain. TikTok does not onboard individual developers - Developer app review, which takes two to three business days. Each developer may hold up to five apps - At least one advertiser redirect URL you control (up to 10 per app, localhost allowed) ### Get your credentials #### 1. Register as a developer Click Become a Developer, fill in your name and a company-domain communication email, click Send Code, then paste the code into Verification Code. Select your user type, enter your company name and company website, choose your Primary Developer Location, and click Submit. Screen: https://business-api.tiktok.com/portal #### 2. Create a developer app Click Create an App and give it a descriptive name such as `PopMCP Ads Connector`. Fill in App description with your intended uses and access controls, then add an advertiser redirect URL. Screen: https://business-api.tiktok.com/portal #### 3. Select the scope of permission and submit Under Scope of permission, tick every permission group the connector needs. Click Confirm to submit the app for review. #### 4. Wait for Verification Status to turn approved Click the red button in the top right and open My Apps. Check the Verification Status column, and click the app name to open App Detail. Screen: https://business-api.tiktok.com/portal #### 5. Copy the App ID and App Secret Open My Apps > App Detail > Basic Information. Copy App ID into PopMCP's App ID field and App Secret into App Secret. ### Fields PopMCP asks for - App ID (clientId) [required]: TikTok API for Business → My Apps → your app → Basic Information → App ID. A numeric id. - App Secret (clientSecret) [required]: Same screen as the App ID. Stored encrypted, used server-side only, and never sent to the browser or to any tool. ### Callback URL to register https://app.popmcp.com/api/providers/tiktok-ads/callback ### Scopes requested - Ad Account Management - Ads Management - Audience Management - Creative Management - Reporting - Comment Management - Lead Generation - Business Center Management - Catalog Management - Event Management ### Verify PopMCP shows TikTok Ads as Connected. After the advertiser opens the authorization URL, agrees to the Platform Service Agreement, clicks Send Code and enters the emailed verification code, the ad account appears in the connector's account picker and the campaign and reporting tools are listed. ### Troubleshooting #### An error appears as soon as you try to create an app Cause: Your developer profile has not been approved yet. Fix: Wait for the registration decision, which takes up to three business days, and re-check that the communication email is on a verified company domain. #### The advertiser authorization link fails or shows a generic failure toast Cause: TikTok flagged the request as abnormal, or the advertiser is authorizing a different app than one they were recently verified for. Fix: Retry later. The advertiser must complete the Send Code email verification again for a new developer app, because a previous verification stays valid for only 48 hours and only for the same app. #### Token exchange returns an invalid auth_code error Cause: The auth_code is valid for one hour and can be used only once. Fix: Have the advertiser open the authorization URL again and complete the connect flow in PopMCP promptly. #### A tool returns code 40100 Cause: You hit the app's global QPS, QPM or QPD rate limit. Fix: Back off. QPM limits clear after 5 minutes and QPD limits reset at 00:00 UTC. Apply for a higher level through My Apps > App Detail > Authorization. TikTok raises limits one level at a time. #### Calls to an endpoint return a permission error even though the app is approved Cause: The endpoint needs a scope you did not select. Fix: Go to My Apps > your app > Scope of permission, click the edit icon, add the scope with a justification and submit. It is reviewed in two to three business days. #### The registration form rejects your company website Cause: TikTok requires a publicly accessible, fully built site on a domain your company owns that matches the email domain. Fix: Use the real company domain rather than a shortened link, a social profile or a marketplace storefront, and make sure product and company information loads without a login. --- ## TikTok Shop URL: https://www.docs.popmcp.com/docs/integrations/tiktok-shop/ Summary: Connect TikTok Shop to manage products and inventory, work orders through shipping and tracking, handle returns and refunds, read settlements, and track shop performance. You end up pasting three values from one TikTok Shop Partner Center app: the App Key, the App Secret, and the whole Copy authorization link URL that carries your service id and market domain. - Auth: OAuth authorization - Setup time: 30 min in Partner Center, plus developer onboarding and any app review - API base URL: https://open-api.tiktokglobalshop.com - Credentials screen: https://partner.tiktokshop.com/ - Provider docs: https://partner.tiktokshop.com/docv2/page/authorization-overview-202407 ### Approval required before this works TikTok Shop Partner Center requires a developer application per app, reviewed and approved by TikTok Shop, before the app goes Live and gains access to the products and scopes it requested - the docs are explicit that you do not have API access until the application is approved. - Typical wait: Not published. TikTok Shop Partner Center states no SLA for the developer application, and its review docs are behind a JavaScript-rendered portal that publishes no turnaround figure. Plan for at least a week and budget for several, and treat any specific week-count quoted in third-party blog posts as unverified. - Cost: No fee for Partner Center registration or the app application. - Blocked until approved: Every production Shop API domain: products, inventory, orders, fulfilment, logistics, finance/settlements, returns, affiliate and customer service. A shop owner cannot complete the authorisation flow for an app that is not Live, so no shop_cipher or access token for a real shop exists until approval lands. Products and scopes are approved against your stated use case - finance and customer service APIs in particular - so an approved app still cannot call endpoints outside what it was granted. Higher order-volume rate limits are a separate request after go-live requiring proof of monthly order volume; TikTok publishes no turnaround for it. - Works meanwhile: Register on TikTok Shop Partner Center, create the app and get an app key and app secret immediately, then develop against a development/test shop and the sandbox environment. The full OAuth handshake, payload shapes, HMAC request signing and webhook handling can all be built and verified before you submit. ### Before you begin - A TikTok Shop Partner Center developer account with onboarding complete. Sign in to the Partner Center that matches your market, partner.us.tiktokshop.com for US and partner.tiktokshop.com for the rest of the world - Market and Seller type decided before you create the app, because they may not be editable afterwards - A backend-controlled Redirect URL to receive the authorization code - A webhook URL, if the app needs order, product, fulfillment or authorization event notifications - App review if the app is a Connector app, reaches 25 or more seller authorizations, or Partner Center flags it. US and UK compliance review can take three or more weeks ### Get your credentials #### 1. Sign in to the Partner Center for your market Open the Partner Center that matches your market, partner.us.tiktokshop.com for US shops and partner.tiktokshop.com everywhere else. Click Log in, or Join now to start developer onboarding. Screen: https://partner.tiktokshop.com/ #### 2. Create the app under App & Service Open App & Service from the navigation panel and click Create app & service. Select Custom, set Service category, Default name, Market and Seller type, turn on Enable API, add your Redirect URL, then click Create. Screen: https://partner.tiktokshop.com/docv2/page/create-your-app #### 3. Enable the API scopes the connector needs Open App & Service > your app > Manage > Manage API and tick only the access scopes you need. Click Save. Screen: https://partner.tiktokshop.com/docv2/page/access-scope #### 4. Copy the App Key and App Secret Open App credentials / Basic information on the app detail page. Copy App Key into PopMCP's App key field and App Secret into App secret. #### 5. Copy the authorization link into PopMCP Click Copy authorization link on the app page and paste the whole URL into PopMCP's Authorization link field. Do not hand-edit the host. Screen: https://partner.tiktokshop.com/docv2/page/seller-authorization-guide ### Fields PopMCP asks for - App key (clientId) [required]: Partner Center → App & Service → your app → App key. Public — it is sent on every API request. - App secret (clientSecret) [required]: Same screen as the app key. Used server-side only to sign requests; stored encrypted and never sent to the browser or to any tool. - Authorization link (serviceId) [required]: Partner Center → your app → 'Copy authorization link', pasted whole. It carries both the service id and the right consent domain for your market (US sellers get services.us.tiktokshop.com). A bare service id works too and is treated as non-US. ### Callback URL to register https://app.popmcp.com/api/providers/tiktok-shop/callback ### Verify PopMCP shows TikTok Shop as Connected. Behind the scenes it exchanges the seller's auth_code at `https://auth.tiktok-shops.com/api/v2/token/get` and then calls Get Authorized Shops. When that returns your shop, the product, order and fulfilment tools appear. ### Troubleshooting #### The token exchange fails with an invalid grant type Cause: TikTok Shop expects grant_type=authorized_code, not the standard OAuth authorization_code. Fix: PopMCP handles this. If you are testing by hand, use exactly authorized_code. #### The seller lands on the consent page but sees the wrong region or a domain error Cause: The authorization link belongs to a different market than the seller's shop. Fix: Re-copy the authorization link from the Partner Center that matches your market. US apps use services.us.tiktokshop.com and everywhere else uses services.tiktokshop.com. #### The pasted authorization link redirects to an unfamiliar host Cause: TikTok currently 301-redirects the US entry to services.tiktokshops.us, and the redirect keeps the query string intact. Fix: Paste the link exactly as Partner Center gives it. A bare service id also works and is treated as non-US. #### auth_code is rejected as expired or already used Cause: The code is valid for 30 minutes and can only be redeemed once. Fix: Have the seller reopen the authorization link and finish the PopMCP connect step immediately. #### An endpoint returns a permission error after the seller authorized Cause: The scope was added to the app after the seller granted access, so their token does not include it. Fix: Enable the scope in Partner Center, then ask the seller to open the authorization link again. Check granted_scopes in the new token. #### No online seller can authorize the app Cause: The app is still in the development stage. Fix: Test with a Seller Center test account created under Development Shops in Partner Center, then follow the launch or review path for your app type. #### The connection stops working after about a week Cause: The access token has a default validity of 7 days. Fix: PopMCP refreshes it automatically against https://auth.tiktok-shops.com/api/v2/token/refresh. If it still drops, the seller may have cancelled authorization under Seller Center > App Store > My apps and incidents, so ask them to reauthorize. --- ## Todoist URL: https://www.docs.popmcp.com/docs/integrations/todoist/ Summary: Connect Todoist to plan your day, add and complete tasks, organize projects, sections and labels, and review what got done. You paste one value into PopMCP: your Todoist API token, copied from Settings, Integrations, Developer in Todoist. - Auth: API credentials - Setup time: 1 min - API base URL: https://api.todoist.com/api/v1 - Credentials screen: https://app.todoist.com/app/settings/integrations/developer - Provider docs: https://www.todoist.com/help/articles/find-your-api-token-Jpzx9IIlB ### Before you begin - A Todoist account on any plan, the free one included - Todoist on the web (app.todoist.com) or the desktop app, where Settings, Integrations, Developer shows your API token ### Get your credentials #### 1. Sign in to Todoist on the web or the desktop app Open [app.todoist.com](https://app.todoist.com) and sign in with the account whose tasks the AI should work with. Any plan works, including the free one. Screen: https://app.todoist.com/app #### 2. Open Settings, Integrations, Developer Click your avatar at the top left and choose Settings. Open Integrations, then the Developer tab at the top. The link above opens that page directly. Screen: https://app.todoist.com/app/settings/integrations/developer #### 3. Copy your API token Click Copy API token. The token is copied to your clipboard; it is 40 letters and numbers. Do not click Issue a new API token unless you mean to replace it: that signs you out of Todoist on every device and stops every app that uses the old token. Screen: https://app.todoist.com/app/settings/integrations/developer #### 4. Paste the token into PopMCP In PopMCP, paste the token into API token and connect. PopMCP checks whose account it is by asking Todoist for your profile, stores the token encrypted and locks the connection to your account. New connections start read-only until an owner or admin allows write actions. ### Fields PopMCP asks for - API token (apiToken) [required]: In Todoist (web or desktop) open Settings, then Integrations, then the Developer tab, and click Copy API token. It works on every Todoist plan and gives full access to your account. Stored encrypted. ### Verify PopMCP marks the Todoist connection Verified under your Todoist name and records your time zone. Asking the AI what is overdue or due today returns your tasks grouped by project. ### Troubleshooting #### "Todoist did not accept this API token. In Todoist open Settings, Integrations, Developer, click Copy API token and paste it again (all 40 characters)." Cause: The token was copied incompletely, has extra text around it, or was replaced when someone clicked Issue a new API token. Fix: Open **Settings**, **Integrations**, **Developer**, click **Copy API token** and paste it again into PopMCP. #### "That does not look like a Todoist API token." Cause: Something other than the token was pasted, such as a link, an email address or a password. Fix: Paste only the token from **Copy API token**. PopMCP never needs your Todoist password. #### A tool answers that it needs a paid Todoist plan or is over the plan's limit Cause: The feature (for example reminders) or the number of projects, filters or labels is limited on your Todoist plan. Fix: Ask the AI to run todoist_get_user_plan_limits to see what your plan allows, or upgrade in Todoist under **Settings**, **Subscription**. #### Tools fail with 429 Cause: Todoist limits each user to about 1,000 requests every 15 minutes. Fix: Wait the number of seconds the error gives. For many changes at once, ask the AI to use todoist_add_tasks, todoist_complete_tasks or todoist_sync_commands, which do up to 100 changes in one request. #### The AI says a change was not sent because the connection is read-only Cause: New connections start read-only, so tasks cannot be added, completed or changed yet. Fix: An owner or admin can allow write actions for the Todoist connection in PopMCP. #### The connection stopped working after a new token was issued Cause: Issuing a new API token in Todoist turns the old one off. Fix: Copy the new token from **Settings**, **Integrations**, **Developer** and paste it into PopMCP to reconnect. --- ## Trello URL: https://www.docs.popmcp.com/docs/integrations/trello/ Summary: Connect Trello to create and move cards across boards and lists, and manage comments, members, labels, and checklists. You paste two values into PopMCP: the API Key generated on a Trello Power-Up you own, and a user Token you grant that Power-Up against your own Trello account. - Auth: API credentials - Setup time: 6 min - API base URL: https://api.trello.com/1 - Credentials screen: https://trello.com/power-ups/admin - Provider docs: https://developer.atlassian.com/cloud/trello/guides/rest-api/api-introduction/ ### Before you begin - Trello account on any plan, including Free - Membership of a Trello Workspace that can own the Power-Up. Trello issues API keys per Power-Up, so there is no standalone API key page. - A Trello login that is a member of the boards you want PopMCP to reach ### Get your credentials #### 1. Open the Power-Ups admin portal Sign in to Trello, then open https://trello.com/power-ups/admin. Screen: https://trello.com/power-ups/admin #### 2. Create a Power-Up to own the key Click New in the top right and fill in Name, Workspace, Email, Support Email and Author. Click Create. Screen: https://trello.com/power-ups/admin #### 3. Generate the API Key Open the new Power-Up and click API Key in the left menu. Click Generate a new API Key and copy the value labelled Key. Screen: https://trello.com/power-ups/admin #### 4. Authorize yourself and copy the Token On the same page, click the hyperlinked Token to the right of your key. Click Allow, then copy the token from the page that follows. Screen: https://trello.com/1/authorize?expiration=never&scope=read,write,account&response_type=token&key=YOUR_KEY (replace YOUR_KEY with your Trello key) #### 5. Paste both values into PopMCP Put the key in API Key and the token in Token, then click connect. ### Fields PopMCP asks for - API Key (apiKey) [required]: Go to https://trello.com/power-ups/admin, open (or create) a Power-Up, and on its "API key" tab generate an API Key. Copy the Key (you do NOT need the secret). - Token (token) [required]: On the same API key page, click the "Token" link ("you can manually generate a Token") and Allow. Or visit https://trello.com/1/authorize?expiration=never&scope=read,write,account&response_type=token&key=YOUR_KEY . Copy the token. It's sent as the token query param, stored encrypted, and used server-side only. ### Verify PopMCP shows the Trello connection as Connected and names the Trello member the token belongs to. Asking for your boards returns the boards in the Workspace you authorized. ### Troubleshooting #### The left menu shows Authorization instead of API Key Cause: Some accounts are on the newer admin layout. Fix: Open Authorization, then Trello auth. The same key and Token link live there. #### The New Power-Up form refuses to save Cause: iframe connector URL is listed as required for real Power-Ups. Fix: Put any https URL you control in that field. PopMCP never loads it. #### 401 with body 'invalid token' Cause: The token was revoked, expired, or belongs to a different API key. Fix: Re-run the Token link from the same Power-Up's API Key page with expiration=never and paste the fresh token. #### 401 with body 'invalid key' Cause: You pasted the Power-Up's secret instead of the API key, or the Power-Up was deleted. Fix: Copy the value labelled Key on the API Key tab, not the secret. #### 429 Too Many Requests Cause: More than 300 calls per 10s on the key or 100 per 10s on the token. Fix: Slow the tool calls down. The x-rate-limit-api-key-remaining and x-rate-limit-api-token-remaining headers show your budget. #### Boards are missing from results Cause: The token only sees boards your Trello user is a member of. Fix: Add yourself to the board, or generate the token from an account that is a member of it. #### You need to revoke access Cause: The token stays valid until you disable it. Fix: Open your Trello profile, go to Settings, then Applications, and remove the token. --- ## Trustpilot URL: https://www.docs.popmcp.com/docs/integrations/trustpilot/ Summary: Connect Trustpilot to track your TrustScore, read and reply to service and product reviews, tag and triage feedback, and send review invitations. You end up pasting a Trustpilot API key and Secret key from one application in Trustpilot Business, plus the domain your company is listed under, and the business user id of an Admin or Manager if you want to send invitations. - Auth: API credentials - Setup time: 8 min - API base URL: https://api.trustpilot.com/v1 - Credentials screen: https://businessapp.b2b.trustpilot.com/applications - Provider docs: https://developers.trustpilot.com/ ### Approval required before this works Trustpilot must enable the paid API module on your Trustpilot for Business account before the Developer Portal will issue a working API key. The docs are explicit: "You must have a Trustpilot for Business account with access to the API module to access Trustpilot API data." - Typical wait: Not published by Trustpilot - the API module is sold, not reviewed, so the wait is however long the sales/CSM conversation takes (days to weeks). No vendor-stated SLA exists. - Cost: Paid. Trustpilot publishes plan pricing at business.trustpilot.com/plans: Starter from USD 99/month, Plus from USD 319/month per domain, Premium from USD 799/month per domain (all billed annually on a 12-month commitment), Enterprise on request. The API module itself is a separate add-on whose price Trustpilot does not publish; the docs only list its tiers - Tier 1 = 200,000 API calls/year, Tier 2 = 1,000,000, Tier 3 = unlimited - and state that Enterprise plans include Tier 1 plus unlimited invitations. - Blocked until approved: Every endpoint. Without the API module there is no Integrations > Developers > APIs screen in Trustpilot Business, so no API key (Client ID) or secret is ever issued and there is nothing to authenticate with. That covers the public read endpoints (business unit lookup, public reviews), the private endpoints (review management, replies, tags), and the invitation endpoints alike - the docs state the API key must be sent on every request even for the public API, so there is no anonymous read path. - Works meanwhile: The full API reference at developers.trustpilot.com is public, so request/response schemas, OAuth flow shape and endpoint paths can all be coded against. No call, sandbox included, can be executed without the module. ### Before you begin - Trustpilot Business account with a claimed profile for your domain - API access is included in Enterprise. On Premium it needs the API Module add-on, so it is not available on lower plans - Admin role in Trustpilot Business, since a 403 Forbidden on the private endpoints is almost always a missing admin right - For invitations only: the Trustpilot user you send on behalf of must have the Admin or Manager role - For the six ds_ tools only: a separate Trustpilot Data Solutions subscription, which has its own key ### Get your credentials #### 1. Open the Trustpilot APIs page Sign in at `businessapp.b2b.trustpilot.com` and go to Get reviews → Invitation methods. Scroll down, click Try a different way to get reviews, then click Trustpilot API. Screen: https://businessapp.b2b.trustpilot.com/applications #### 2. Create a new application Under Create a new application, enter a name such as `PopMCP` and enter the domains you want to use for redirect URIs, one per line. Click Create Application. Screen: https://businessapp.b2b.trustpilot.com/applications #### 3. Reveal and copy both keys Find the new row under Your applications and click the Eye icon to reveal the API key and the Secret. Click the copy icon beside each value and paste both into PopMCP. Screen: https://businessapp.b2b.trustpilot.com/applications #### 4. Enter the domain your company is listed under Paste your website URL or your Trustpilot profile link into PopMCP's Business domain field. Copy the domain exactly as it appears in your `trustpilot.com/review/...` URL. Screen: https://developers.trustpilot.com/business-units-api #### 5. Copy your business user id (invitations only) Go to Settings → Business settings → Users, open the profile of the Admin or Manager who will send invitations, and copy their id. Leave PopMCP's Business user id field blank if you are not sending invitations. Screen: https://developers.trustpilot.com/invitation-api #### 6. Add a Data Solutions API key (optional) Generate the key in the Data Solutions web app and paste it into PopMCP's Data Solutions API key field. Leave the field blank if you do not have that subscription. Screen: https://developers.trustpilot.com/ ### Fields PopMCP asks for - API Key (apiKey) [required]: Trustpilot Business → Integrations → API Access. Trustpilot also calls this the Client ID. Stored encrypted and used server-side only. - API Secret (apiSecret) [required]: The Secret shown beside the Key on the same API Access screen, sometimes labelled Client Secret. It must belong to the SAME application as the Key. This is what unlocks your private reviews, replies, and invitations. - Business domain (businessDomain) [required]: The domain your company is listed under on Trustpilot. Pasting your website URL or your Trustpilot profile link is fine; we trim it. If you already know your business unit id you can paste that instead. - Business user id (optional) (businessUserId): Only needed to send review invitations. Trustpilot requires the id of the Admin or Manager the invitation is sent on behalf of. Find it on that user's profile page in Trustpilot Business. - Data Solutions API key (optional) (dataSolutionsApiKey): Only for Trustpilot Data Solutions, a separate paid product with its own key generated in the Data Solutions web app. Leave blank and everything except the six ds_ tools still works. ### Verify PopMCP shows the Trustpilot connector as Connected and displays your business unit name, domain, current TrustScore and review count on the connector card. ### Troubleshooting #### 401 Unauthorized Cause: Trustpilot documents this as "Unauthorized. The request lacked valid authentication." and notes it is "often caused if the wrong authentication type is given with the request". In practice the API key and Secret were taken from two different applications. Fix: Go back to Get reviews → Invitation methods → Try a different way to get reviews → Trustpilot API, click the Eye icon on a single application row, and copy the API key and Secret from that one row. #### 403 Forbidden Cause: Trustpilot's error reference attributes this to admin rights or plan level. Fix: Trustpilot's own advice: "Make sure you have admin status and that you are signed up to the relevant Trustpilot plan." Ask an Admin to create the application, or add the API Module to your Premium plan. #### 404 on every business-unit call Cause: The domain entered is not the one the profile is listed under, for example example.com instead of www.example.com. Fix: Open your public Trustpilot profile and copy the domain exactly as it appears in the trustpilot.com/review/... URL. #### Invitations fail but reviews work Cause: The business user id is missing, or belongs to a user without the Admin or Manager role. Fix: Go to Settings → Business settings → Users, open an Admin or Manager profile, and paste that id into the Business user id field. #### The Data Solutions key is rejected on ds_ tools Cause: Data Solutions is a separate paid Trustpilot product with its own console. Its key is not created on the Trustpilot APIs screen. Fix: Generate the key inside the Data Solutions web app and paste that value, not the application API key. #### Credentials stop working after a while Cause: The application was disabled or removed in Trustpilot Business. Fix: Trustpilot does not rotate keys on a schedule, so the same pair stays valid until someone disables or removes the application. Check the toggle on Your applications, or create a new application and paste the new pair. --- ## Twilio URL: https://www.docs.popmcp.com/docs/integrations/twilio/ Summary: Connect Twilio to send SMS/MMS/WhatsApp, place and control voice calls, search and buy phone numbers, run Verify (OTP), Lookups, Messaging Services, Conversations, Content templates, and Studio. All of Twilio from one connection. You end up pasting two values Twilio shows together under API Credentials in Workbench: your Account SID (starts with AC) and the matching Auth Token. - Auth: API credentials - Setup time: 3 min - API base URL: https://api.twilio.com/2010-04-01 - Credentials screen: https://console.twilio.com/ - Provider docs: https://www.twilio.com/docs/usage/api ### Before you begin - Twilio account, including a free trial account with its sending restrictions - Console sign-in with the Owner or Administrator role, because the Auth Token is hidden from users without account-admin permissions - If you use subaccounts, know which subaccount PopMCP should be locked to. Each subaccount has its own SID and Auth Token. ### Get your credentials #### 1. Sign in to the Twilio Console Go to console.twilio.com and sign in. Both credentials sit in Workbench, the panel docked at the bottom of every Console page. Screen: https://console.twilio.com/ #### 2. Confirm which account you are connecting Open the account switcher in the top bar and check the friendly name. If you run subaccounts, switch to the exact subaccount PopMCP should act on. Screen: https://console.twilio.com/us1/account #### 3. Open Workbench and copy the Account SID Click the Workbench tab at the bottom of the Console and stay on the Overview tab. Under API Credentials, copy the Account SID and paste it into the PopMCP Account SID field. Screen: https://console.twilio.com/ #### 4. Reveal and copy the Auth Token In the same API Credentials block, click the eye icon beside Auth Token to reveal it, then click the copy icon. Paste the value into the PopMCP Auth Token field. Screen: https://console.twilio.com/ #### 5. Paste both values into PopMCP Fill Account SID and Auth Token in PopMCP and click Save. PopMCP fills the SID into the `{AccountSid}` segment of every core Twilio API path for you. ### Fields PopMCP asks for - Account SID (accountSid) [required]: On the Twilio Console homepage (console.twilio.com), under 'Account Info'. Starts with 'AC'. Used as the HTTP Basic username and auto-filled into the {AccountSid} of every core API path so you never pass it to a tool. - Auth Token (authToken) [required]: On the Twilio Console homepage next to the Account SID (click to reveal). Sent as the HTTP Basic password over HTTPS, stored encrypted, used server-side only. The connection is locked to this account. Tip: for tighter security you can rotate this Auth Token any time in the Console. ### Verify PopMCP shows the Twilio connector as Connected and displays the friendly name of the account, for example "My first Twilio account". Asking for your Twilio phone numbers returns the numbers owned by that account. ### Troubleshooting #### 401 Unauthorized, error 20003 Authenticate Cause: The Auth Token does not match the Account SID, or the token was rotated after you copied it. Fix: Re-copy both values from the same Workbench API Credentials block in one sitting, then save the connection again. #### The Auth Token has been shared or leaked Cause: A full-account credential in the wrong hands can send messages and buy numbers on your bill. Fix: Go to **Settings** then **Account settings** then **API keys & auth tokens** and issue a new primary Auth Token. In the legacy Console the same page is **Admin** then **Account management** then **Keys & credentials** then **API keys & tokens**. Reconnect PopMCP with the new value. #### 404 on every request, or Console resources appear to be missing Cause: You copied the parent account SID but the resources live in a subaccount, or the reverse. Fix: Switch to the correct subaccount in the account switcher and copy that subaccount's SID and Auth Token. #### Error 21608, the number is unverified Cause: The account is still a trial account, which can only message or call numbers you have verified. Fix: Verify the destination number in the Console, or upgrade the Twilio account. #### 429 Too Many Requests Cause: Per-product rate or concurrency limits were exceeded. Fix: Slow the calls down, watch the Twilio-Concurrent-Requests response header, and retry after a short backoff. --- ## Typeform URL: https://www.docs.popmcp.com/docs/integrations/typeform/ Summary: Connect Typeform to create and update forms, read responses and insights, and manage themes, images, and workspaces. You end up pasting one Typeform personal access token that starts with `tfp_`, plus a region code of us, eu or eu2 if your account is on EU data residency. - Auth: API credentials - Setup time: 4 min - API base URL: https://api.typeform.com - Credentials screen: https://admin.typeform.com/user/tokens - Provider docs: https://www.typeform.com/developers/get-started/personal-access-token/ ### Before you begin - A Typeform account you can sign in to at admin.typeform.com - Access to the organization whose forms and responses you want PopMCP to read, because the token carries your own user's access - If your organization is on EU data residency, knowledge of which EU data centre it uses, api.eu.typeform.com or api.typeform.eu ### Get your credentials #### 1. Open Personal tokens in your account settings Sign in at `admin.typeform.com` and open the dropdown next to your username, then click Account. In the left menu click Personal tokens. Screen: https://admin.typeform.com/user/tokens #### 2. Name the token and pick its scopes Click Generate a new token and type a name such as `popmcp` in Token name. Tick every read and write scope for the full connector, or only the `:read` scopes for a read-only connection. #### 3. Copy the token into PopMCP Copy the generated `tfp_` value and paste it into PopMCP's Personal access token field. #### 4. Set the data region if you are not on US hosting Leave PopMCP's Data region field as `us` unless your organization uses EU data residency. Enter `eu` for accounts served by `api.eu.typeform.com` and `eu2` for accounts on the newer `api.typeform.eu`. ### Fields PopMCP asks for - Personal access token (apiKey) [required]: Create one at admin.typeform.com → Settings → Personal tokens → Generate a new token (https://admin.typeform.com/user/tokens). Tick all read + write scopes for full access, or only the :read scopes to restrict to reads. Stored encrypted. - Data region (us, eu, or eu2) (region): Where your Typeform account's data is hosted: us (default, api.typeform.com), eu (api.eu.typeform.com), or eu2 (api.typeform.eu, the newer EU data center). A token only works against its own region's host. Leave as us unless your account uses EU data residency; if the connection is rejected, try eu, then eu2. ### Verify PopMCP marks the connector Connected and shows your Typeform account email. Listing forms returns your workspaces' typeforms rather than an empty array. ### Troubleshooting #### 401 Unauthorized Cause: The token was truncated on paste, or it was regenerated in Typeform after you saved it. Fix: Generate a fresh token at admin.typeform.com/user/tokens and paste the entire tfp_ string. #### 403 Forbidden on one tool only Cause: The token was created without the scope that tool needs, for example a missing responses:read. Fix: Scopes are fixed at creation. Delete the token, generate a new one with the missing scope ticked, then update PopMCP. #### The connection succeeds but no forms are returned Cause: The account is on EU data residency and the request went to the US host, which sees an empty account. Fix: Set the Data region field to eu. If that still returns nothing, try eu2. #### The token stopped working right after you pushed code Cause: Typeform's GitHub secret-scanning partnership auto-revokes tokens that appear in public repositories. Fix: Remove the token from the repository history, generate a new one, and store it only in PopMCP. --- ## Vercel URL: https://www.docs.popmcp.com/docs/integrations/vercel/ Summary: Connect Vercel to check deployments and build logs, ship and roll back sites, and manage projects, domains, DNS and environment variables. You paste one value into PopMCP: an access token from the Tokens page of your Vercel account settings. If the token reaches several teams, you then choose which team the connection is for. - Auth: API credentials - Setup time: 1 min - API base URL: https://api.vercel.com - Credentials screen: https://vercel.com/account/tokens - Provider docs: https://vercel.com/docs/rest-api ### Before you begin - A Vercel account. Access tokens are free on every Vercel plan, including Hobby - To change projects, deployments, environment variables or domains, a team role that allows it (Owner or Member can do almost everything) - If your team requires SAML single sign-on or two-factor authentication, sign in that way before you create the token ### Get your credentials #### 1. Open the Tokens page of your account settings Sign in at vercel.com. Open your Account Settings (from your avatar), then Tokens. You can also go straight to vercel.com/account/tokens. Screen: https://vercel.com/account/tokens #### 2. Name the token, pick its scope and expiration Enter a name that tells you what it is for, such as PopMCP. Open Scope and choose Full Account to be able to connect any of your teams, or pick one team and then All Projects. Choose an Expiration (a longer one means fewer reconnects) and click Create. Screen: https://vercel.com/account/tokens #### 3. Copy the token Vercel shows the new token once; new tokens start with vcp_. Copy it now: once you close the dialog you cannot see it again. Screen: https://vercel.com/account/tokens #### 4. Paste the token into PopMCP and choose the team In PopMCP, paste the token into Access token and connect. PopMCP checks it and lists the Vercel teams it can reach; choose the team this connection is for (each team goes into its own workspace). The connection is then locked to that team. A token limited to one project connects as that project's team and only reaches that project. ### Fields PopMCP asks for - Access token (apiToken) [required]: In Vercel, open Account Settings, then Tokens. Enter a name, set Scope to Full Account (or one team), choose an expiration and select Create. Copy the token right away, it is shown only once. Stored encrypted and used only on our servers. ### Verify PopMCP marks the Vercel connection Verified with your team's name and records your role, the team's plan, your email and when the token expires. Asking the AI for an overview of a project returns its production URL, recent deployments and domains. ### Troubleshooting #### "Vercel did not accept this access token..." Cause: The token was copied incompletely, it expired on the date chosen when it was made, or it was deleted. Fix: Create a new token on the **Tokens** page of your account settings and connect again. #### "This token cannot reach any of your Vercel teams..." or "cannot reach the Vercel team..." Cause: The team requires SAML single sign-on or two-factor authentication and the token was made without it, or the token's scope is a different team. Fix: Sign in to the team with SSO or two-factor authentication, then create a new token with **Scope** set to **Full Account** or that team. #### A tool answers that the connection is bound to a different team Cause: The AI named another team than the one this connection was made for. Fix: Ask about the connected team, or connect Vercel again and choose the other team for its own workspace. #### Webhook triggers stay quiet Cause: Account webhooks are available on Vercel Pro and Enterprise teams only. Fix: On a Hobby team, use the deployment triggers that check on a short cycle instead. --- ## Walmart Connect Ads URL: https://www.docs.popmcp.com/docs/integrations/walmart-ads/ Summary: Connect Walmart Connect Ads to run Sponsored Products, Brands, Videos and Display campaigns, tune keywords and bids, and pull performance reports. You paste the Consumer ID, auth token and RSA private key that Walmart's Partner Onboarding Hub issues to an approved Walmart Connect API partner, then pick an advertiser that granted your partner account access in Ad Center. - Auth: API credentials - Setup time: 20 min - API base URL: https://developer.api.walmart.com (Sponsored Search), https://developer.api.us.walmart.com (Display) - Credentials screen: https://advertising.walmart.com/onboard/agencypartner - Provider docs: https://developer.walmart.com/advertising-partners-search/docs/introduction-to-walmart-connect-ads-apis ### Approval required before this works Walmart offers the Walmart Connect Ads APIs only to Walmart Connect Partner Network (WCPN) partners. You apply through the Partner Onboarding Hub, and Walmart reviews your application, a sandbox demo and a recorded production demo before it issues production credentials. Each advertiser then has to grant your partner account access in Ad Center. - Typical wait: Not published. Walmart's developer docs give no timeframe for any stage: the onboarding form, the sandbox demo review or the production demo review. Each stage can come back by email with a request to fix and resubmit, so plan for several rounds rather than a fixed date. - Cost: Walmart's developer docs state no fee for joining the Partner Network or for API access. Technology Enabled Agencies provide billing information and W8 or W9 forms as part of onboarding. - Blocked until approved: Everything. Without WCPN API partner status there is no Consumer ID or auth token, so no request can be signed. After approval, PopMCP still reaches only the advertisers that granted your partner account access under Admin > API partner access, and a Reporting Only partner can read and request snapshot reports but cannot create or edit campaigns. - Works meanwhile: Read the public API reference and Walmart's Postman collection, and generate your RSA key pairs. Once the hub issues sandbox credentials, connect PopMCP with Environment set to sandbox to work against Walmart's test advertisers while the demos are reviewed. ### Before you begin - Walmart Connect Partner Network (WCPN) API partner status. Walmart offers the Ads APIs only to WCPN partners, and new partners apply through the Partner Onboarding Hub, which takes Walmart's review. - Full-Service API partner access if the AI should create or edit campaigns. Reporting Only partners can run reads and snapshot reports only. - OpenSSL, or another tool that makes an RSA key pair, and the private key kept as an unencrypted PEM file. - At least one advertiser whose Ad Center admin has granted your partner account access under Admin > API partner access. - Credentials from one environment at a time: sandbox and production each have their own Consumer ID, auth token and key. ### Get your credentials #### 1. Join the Walmart Connect Partner Network Sign in to the Partner Onboarding Hub with a Walmart.com account, or your Supplier or Seller login. Choose the partner type that fits (Technology provider or Technology Enabled Agency for API access), fill in the onboarding form with your exact company name, tax ID and entity type, accept the legal agreement, and add your integration and security contacts. Existing API partners skip this step. Screen: https://advertising.walmart.com/onboard/agencypartner #### 2. Generate an RSA key pair On your own machine run `openssl genrsa -out private_key.pem 2048`, then `openssl rsa -in private_key.pem -pubout -out public_key.pem`. Upload only `public_key.pem` to Walmart. Keep `private_key.pem` safe and without a passphrase: PopMCP signs every request with it and cannot use a password-protected key. #### 3. Upload the sandbox public key and build the sandbox demo In the hub's technical integration step, upload your public key for sandbox. Walmart issues sandbox credentials: a Consumer ID, an auth token and a key version. Build the sandbox demo, add 3 to 5 production advertiser IDs where the hub asks (with the box confirming each advertiser authorized you), and mark it Ready for Review. Screen: https://advertising.walmart.com/onboard/agencypartner #### 4. Get production credentials Once Walmart approves the sandbox demo, upload your production public key to receive production credentials. Then build the production demo and upload the link to a 5 to 10 minute video walking through it, following Walmart's API Integration Checklist. Screen: https://advertising.walmart.com/onboard/agencypartner #### 5. Have each advertiser grant your partner account access An advertiser's Ad Center admin adds your company under Admin > API partner access. Only advertisers that have done this appear in PopMCP's advertiser list. Screen: https://advertising.walmart.com #### 6. Paste the credentials into PopMCP and choose an advertiser Paste Consumer ID, Auth token and Private key (the whole `private_key.pem`, including the `-----BEGIN PRIVATE KEY-----` line). Leave Environment as `production`, or type `sandbox` for sandbox credentials. Under More options, Key version is almost always `1`, and Advertiser IDs is only for when the advertiser list does not load. Then pick the advertiser to connect. ### Fields PopMCP asks for - Auth type (connectionType): Walmart Connect's APIs are open to Walmart Connect Partner Network API partners. You receive a Consumer ID and auth token in the Partner Onboarding Hub (advertising.walmart.com/onboard) after uploading your RSA public key, and each advertiser grants your partner account access in Ad Center under Admin > API partner access. - Consumer ID (consumerId) [required]: Issued with your API credentials in the Partner Onboarding Hub. Sandbox and production each have their own Consumer ID, auth token and key, so use all of them from the same environment. - Auth token (authToken) [required]: The token Walmart issued with your Consumer ID (it looks like a UUID). With or without the word Bearer in front. - Private key (privateKey) [required]: The private half of the RSA key pair whose public key you uploaded to Walmart (the private_key.pem file). Paste the whole file. It is stored encrypted and used only to sign your requests. - Environment (environment): Leave as "production". Enter "sandbox" only for sandbox credentials, which reach Walmart's test advertisers. - Key version (keyVersion): Shown with your Consumer ID in the Partner Onboarding Hub. Almost always 1. - Advertiser IDs (advertiserIds): Leave blank to pick from every advertiser that granted your partner account access. Fill this in only if that list does not load; in Ad Center the Advertiser ID is the number in the page address under Reports > Advertiser. ### Verify PopMCP lists the advertisers that granted your partner account access. After you pick one, the connection shows that advertiser as Connected, and walmart_ads_list_campaigns returns its Sponsored Search campaigns. ### Troubleshooting #### "Walmart rejected these partner credentials in Production" Cause: The Consumer ID, auth token, private key and key version do not all come from the same environment, or the private key is not the pair of the public key you uploaded. Fix: Use one environment's full set of values, set **Environment** to match, and paste the private key that belongs to the uploaded public key. #### "That is the PUBLIC key" or "That private key is password-protected" Cause: The public half was pasted, or the private key is encrypted with a passphrase. Fix: Paste the whole `private_key.pem`. For an encrypted key, export an unencrypted copy with `openssl pkcs8 -topk8 -inform PEM -in your_key -outform PEM -nocrypt -out private_key.pem` and paste that. #### "No advertiser has granted your partner account API access yet" Cause: No advertiser has added your company under Admin > API partner access in Ad Center. Fix: Ask the advertiser's Ad Center admin to grant access, or enter the Advertiser ID under **More options** and connect again. #### "Walmart Connect is still preparing the list of advertisers your partner account can reach" Cause: Walmart builds the advertiser list as an asynchronous report, and the first one can take a minute. Fix: Press Connect again shortly, or type the Advertiser ID under **More options**. In Ad Center it is the number in the page address under Reports > Advertiser. #### "Walmart has not enabled the Sponsored Search or Display API for this Consumer ID yet" Cause: Walmart's gateway answers that the Consumer ID is not subscribed to the service, usually because the technical integration steps are not finished. Fix: Finish the technical integration steps in the Partner Onboarding Hub, or contact your Walmart Connect partner manager. #### Writes fail with "You do not have access to this advertiser" Cause: Your partner account has Reporting Only API access, which allows reads and snapshot reports but no campaign management. Fix: Keep the connection to reporting, or ask Walmart Connect about Full-Service API partner access. #### 429 Too Many Requests Cause: The partner used up its hourly operation limit. Every change in a request counts as an operation. Fix: Wait about 10 minutes before retrying, and batch bid and keyword changes into fewer, larger requests. --- ## Walmart Marketplace URL: https://www.docs.popmcp.com/docs/integrations/walmart/ Summary: Connect Walmart Marketplace to manage orders, items, inventory, prices, promotions, returns, feeds, reports, and repricer rules for your seller account. You end up pasting the Client ID and Client Secret of your own seller key pair from the Walmart Developer Portal, plus the word production or sandbox for the Environment field. - Auth: API credentials - Setup time: 5 min - API base URL: https://marketplace.walmartapis.com/v3 - Credentials screen: https://developer.walmart.com/account/api-keys - Provider docs: https://developer.walmart.com/us-marketplace/docs/authentication-authorization ### Approval required before this works Walmart must approve your Marketplace seller application (or approve your company through the Solution Provider programme) before Seller Center exists for you. The developer docs state plainly that you must 'ensure you are approved to sell your items on Walmart Marketplace' before you can reach the keys. - Typical wait: Walmart publishes no SLA for the seller application - the developer docs and Marketplace Learn state no timeframe. Seller-community reports cluster around 5-10 business days, with clean US applications sometimes clearing in 24-48 hours and mismatched or incomplete ones running several weeks. Treat any specific number as unofficial. - Cost: Free to apply - Walmart charges no setup or monthly Marketplace fee. Referral fees (a percentage of each sale, varying by category) apply once you are live. - Blocked until approved: Everything. The Client ID and Client Secret live in the Developer Portal, which you sign into with Seller Center credentials via Seller Center > API Integration > API Key Management. No approved seller account means no Seller Center login, so no key pair, so no OAuth token - and Items, Orders, Inventory, Prices, Reports and the sandbox all sit behind that same token. - Works meanwhile: Read-only preparation. The developer.walmart.com reference, the API Explorer and the published Postman collections are public, so you can write and shape request/response handling against the documented schemas. You cannot execute a single authenticated call, sandbox included. ### Before you begin - A live US Walmart Marketplace seller account with Seller Center access - Seller Center sign-in credentials, which are what the Developer Portal asks for when you click API Key Management - Admin-level access in Seller Center so you can open the API Integration page - Production keys exist only for a launched seller account. A Dynamic sandbox key pair is separate and cannot be used against production ### Get your credentials #### 1. Open API Key Management from Seller Center Sign in to Seller Center, open the API Integration page at `seller.walmart.com/api-key`, and select API Key Management. Sign in to the Developer Portal with your Seller Center credentials when prompted. Screen: https://seller.walmart.com/api-key #### 2. Find your own key pair on My Account → API Keys On My Account → API Keys, locate your personal key pair, which has a lock icon next to it. Ignore rows without a lock, which belong to solution providers you have authorized. Screen: https://developer.walmart.com/account/api-keys #### 3. Copy the Client ID and Client Secret Click Show beside the secret on the locked row. Copy the Client ID and the Client Secret into PopMCP. Screen: https://developer.walmart.com/us-marketplace/docs/authentication-authorization #### 4. Set the Environment field to match the key Leave Environment as `production` for a live seller key. Enter `sandbox` only if the pair you copied is a Dynamic sandbox key. Screen: https://developer.walmart.com/us-marketplace/docs/dynamic-sandbox ### Fields PopMCP asks for - Auth type (connectionType): Walmart Marketplace uses OAuth client-credentials. Create the key in Seller Center → Developer Portal → API Key Management. We only ever store the Client ID / Client Secret (encrypted) and mint short-lived tokens from them server-side. - Client ID (clientId) [required]: From Seller Center → Developer Portal → API Key Management. Make sure it matches the environment you pick below. - Client Secret (clientSecret) [required]: The secret paired with your Client ID. Stored encrypted; used server-side only to mint short-lived access tokens. - Environment (environment): Leave as "production" for a live Walmart seller account. Enter "sandbox" only if your Client ID / Client Secret is a Sandbox key. A sandbox key will not work against production, or vice-versa. ### Verify PopMCP shows the Walmart Marketplace connector as Connected and lists your seller id together with a recent orders count, confirming a token was minted from the token endpoint. ### Troubleshooting #### 401 Unauthorized on every call Cause: The Client ID and Client Secret belong to a different environment than the one selected, or were copied from an unlocked solution-provider row. Fix: Recopy from the row with the lock icon on My Account → API Keys and match Environment to the key, production with production and sandbox with sandbox. #### Token works, then stops after a few minutes Cause: Walmart access tokens are valid for 15 minutes (900 seconds). Fix: Nothing to do, PopMCP refreshes tokens server-side. If it persists, reconnect so a fresh token is minted. #### Sandbox calls return production-shaped errors Cause: The request was not routed to the Dynamic sandbox. Fix: Set Environment to sandbox so PopMCP sends the WM_SANDBOX: v2 header and targets https://sandbox.walmartapis.com. #### No key pair is listed at all Cause: The seller account has not been launched, or you signed in with a user that is not attached to the seller account. Fix: Start from seller.walmart.com/api-key with the Seller Center account that owns the marketplace listing, then select API Key Management again. --- ## WATI URL: https://www.docs.popmcp.com/docs/integrations/wati/ Summary: Connect WATI to manage WhatsApp contacts and conversations, send and schedule templates, and run broadcasts and chatbots. You end up pasting a Wati Bearer API token, and optionally the API endpoint URL that carries your numeric tenant id. - Auth: API credentials - Setup time: 4 min - API base URL: https://live-mt-server.wati.io/{tenantId}/api/v1 - Credentials screen: https://live.wati.io/ - Provider docs: https://docs.wati.io/reference/introduction ### Before you begin - A Wati account on the Growth, Pro or Business plan, since API access is not available on the trial-only tiers - Admin access to the Wati dashboard so you can create tokens - Some endpoints are plan-gated. /assignTeam, /updateChatStatus, /chatbots and /createCustomSegment need Pro, and /updateContactAttributesForMultiContacts needs Business ### Get your credentials #### 1. Open Connector → API in the Wati dashboard Sign in at `live.wati.io` and open Connector → API. Existing tokens are listed on the API Tokens page. Screen: https://live.wati.io/ #### 2. Generate a token with the scopes you need Click Generate new token and name it `PopMCP`. Tick `contacts:read`, `contacts:write` and `messagetemplate:read`, plus the send scopes if PopMCP should send templates and run broadcasts. Screen: https://docs.wati.io/reference/authentication #### 3. Copy the token into PopMCP Copy the token from the dialog and paste it into PopMCP's Access token field. Copy it before closing the dialog, because Wati shows the value once. Screen: https://docs.wati.io/reference/authentication #### 4. Copy your API endpoint URL (optional) Click API Docs in the navigation menu and copy the API Endpoint URL. Paste it into PopMCP's API endpoint URL field. Screen: https://docs.wati.io/docs ### Fields PopMCP asks for - Access token (accessToken) [required]: WATI dashboard → top nav API Docs (it shows your Bearer token), or the newer Connector → API → Create API Token (give it a name, pick scopes, and copy it; it's shown only once). Stored encrypted. - API endpoint URL (optional) (apiEndpoint): Shown right next to the token on the WATI API Docs page. It contains your numeric tenant id (the /123456/ part). Only needed for the legacy v1/v2 operations (template authoring, WABA/phone management, webhooks); modern v3 operations work from the token alone. ### Verify PopMCP shows the WATI connector as Connected and can list your WhatsApp contacts. A successful call returns HTTP 200, which means Wati accepted the message rather than delivered it, since delivery arrives by webhook. ### Troubleshooting #### 401 Unauthorized Cause: Wati documents 401 as "No valid API key provided." Usually a truncated paste, or a token that has expired or been rotated. Fix: Generate a fresh token under Connector → API and paste the whole value, without the word Bearer. #### 403 Forbidden Cause: Wati documents 403 as "The API key doesn't have permissions to perform the request." Fix: Re-create the token with the missing scope ticked, or upgrade the plan if the endpoint is Pro or Business only. #### The token was lost before it was copied Cause: Wati displays a token value once, at creation. Fix: Generate a replacement token under Connector → API, or call POST /api/v1/rotateToken, then delete the old token. #### 404 Not Found on legacy v1 calls Cause: The API endpoint URL is missing or carries the wrong tenant id segment. Fix: Copy the API Endpoint URL exactly as shown on the API Docs screen, including the /123456/ tenant segment. #### 429 Too Many Requests Cause: Wati rate-limits per 10-second window and per plan. Fix: Slow the calls down, since contact and message reads are capped at 10 requests per 10 seconds on every plan. Wati invites customers to "reach out to us about your use case" for higher limits. --- ## Webflow URL: https://www.docs.popmcp.com/docs/integrations/webflow/ Summary: Connect Webflow to manage sites and pages, publish CMS collections and items, handle ecommerce orders, and upload assets. One Webflow site API token, generated under Site settings, Apps & integrations, API access, pasted into PopMCP's API token field. - Auth: API credentials - Setup time: 4 min - API base URL: https://api.webflow.com/v2 - Credentials screen: https://webflow.com/dashboard - Provider docs: https://developers.webflow.com/data/reference/token/authorized-by/list-authorized ### Before you begin - A Webflow account with admin access to the site you are connecting, because only site admins can generate API tokens - Fewer than 5 existing API tokens on the site, which is the per-site maximum - An Ecommerce site plan if you want the product and order tools ### Get your credentials #### 1. Open Site settings for the site you want to connect Sign in at webflow.com/dashboard and open the workspace that owns the site. Click the gear icon on the site's card to open Site settings. Screen: https://webflow.com/dashboard #### 2. Open Apps & integrations and scroll to API access In the Site settings sidebar click Apps & integrations. Scroll to the API access section at the bottom of the page. #### 3. Name the token and set a permission for each API Click Generate API token, type `PopMCP` as the name, then set a permission level for every Webflow API. Set CMS, Sites, Pages and Assets to Read and write, set Forms to Read-only, set Ecommerce to Read and write if the site sells, and click Generate token. #### 4. Copy the token out of the dialog Click Copy and paste the token somewhere safe, then click Done. #### 5. Paste the token into PopMCP Open the Webflow connector in PopMCP, paste the value into API token, and save. ### Fields PopMCP asks for - API token (apiToken) [required]: In Webflow: Site settings → Apps & integrations → API access → Generate API token. Choose the scopes you need (e.g. CMS read/write, e-commerce, pages, forms). Copy the token (shown once) and paste it here. A workspace/Data-Client token that can see multiple sites works too. Stored encrypted; used server-side only. ### Verify PopMCP shows Webflow as Connected and can list the site's CMS collections. The token's Last used value under Site settings, Apps & integrations, API access updates to today. ### Troubleshooting #### 401 Unauthorized Cause: The token was mistyped, truncated when copied, or revoked. Fix: Generate a fresh token under Site settings, Apps & integrations, API access, then paste the whole string with no leading or trailing spaces. #### 403 Forbidden on one tool only Cause: That API was left on No access when the token was created. Fix: Webflow tokens cannot be re-scoped after creation. Revoke the token, generate a new one, and set the missing API to Read and write. #### Generate API token is unavailable Cause: The site already holds 5 API tokens, which is the per-site maximum. Fix: Revoke a token you no longer use in the API access list, then generate a new one. #### Ecommerce permissions are not offered Cause: The site is not on an Ecommerce site plan. Fix: Upgrade the site plan, or connect without the ecommerce tools. #### 429 Too Many Requests Cause: You passed the per-minute limit for the site's plan. Fix: Slow the request rate. Starter and Basic sites allow 60 requests per minute, and CMS, Business and Ecommerce sites allow 120. Site publish is capped at one successful publish per minute. #### A token that worked before now fails Cause: Site API tokens expire after 365 consecutive days of inactivity. Fix: Generate a replacement token and update it in PopMCP. --- ## WhatChimp URL: https://www.docs.popmcp.com/docs/integrations/whatchimp/ Summary: Connect WhatChimp to send WhatsApp messages and templates, manage subscribers and labels, and run chatbot flows. Two values go into PopMCP: the key shown under Your API key in WhatChimp's API Developer Console, and the phone_number_id of your connected WhatsApp number. - Auth: API credentials - Setup time: 5 min - API base URL: https://app.whatchimp.com/api/v1 - Credentials screen: https://app.whatchimp.com/api/developer/console - Provider docs: https://help.whatchimp.com/docs/whatchimp-apis ### Before you begin - A WhatChimp account at app.whatchimp.com - A WhatsApp Business number already connected through Connect Account, because the Phone Number ID does not exist until a number is linked - Owner or admin access, since only those roles can open Settings, API Developer Console ### Get your credentials #### 1. Open the API Developer Console Sign in at app.whatchimp.com, click Settings in the left sidebar, and choose API Developer Console. Screen: https://app.whatchimp.com/api/developer/console #### 2. Copy your API key Find Your API key at the top of the console and click Copy. Click Generate API key only if no key exists yet or the current one has leaked. #### 3. Read the Phone Number ID from the endpoint generator Scroll to Send Message and open Generate API End-point: Send Template Message. Pick your number in the WhatsApp Account dropdown, then copy the digits after `phone_number_id=` in the generated URL. #### 4. Paste both values into PopMCP Open the WhatChimp connector in PopMCP, paste the key into API token and the digits into Phone Number ID, then save. ### Fields PopMCP asks for - API token (apiToken) [required]: In WhatChimp open Dashboard → Settings → Developer / API (or the API section of your account) and copy your API token. It's sent as the apiToken query parameter and stored encrypted; used server-side only. - Phone Number ID (phoneNumberId) [required]: WhatChimp's internal ID for your connected WhatsApp number. Find it in your WhatChimp account settings next to the connected number. It's required by almost every endpoint and added to your calls automatically. (If you connect more than one number, pick the one you'll use most; the AI can target another by passing phone_number_id explicitly.) ### Verify PopMCP marks WhatChimp as Connected and a read call such as fetching message status returns a JSON body with status 1 rather than an error object. ### Troubleshooting #### Every call comes back with status 0 and an authentication message Cause: The apiToken value is wrong, or the key was regenerated in the console after you saved it in PopMCP. Fix: Reopen Settings, API Developer Console, copy the key under Your API key, and re-save it in PopMCP. #### Subscriber limit has been exceeded Cause: Your WhatChimp plan's subscriber cap is full. This is a plan limit rather than an auth failure. Fix: Upgrade the WhatChimp plan or delete inactive subscribers in Subscriber Manager. #### Plain text messages are rejected Cause: WhatsApp only allows free-form text inside the 24-hour customer service window. Fix: Send a Meta-approved template instead and check its approval state under Bot Manager, Message Template. #### Calls fail with an unknown phone number Cause: The Phone Number ID belongs to a different WhatChimp account, or the number was disconnected. Fix: Re-select the number in the console's Send Message generator and copy phone_number_id from the freshly built URL. #### The WhatsApp Account dropdown is empty Cause: No WhatsApp Business number is linked to the account yet. Fix: Open Connect Account and finish the Embedded Signup flow, then return to the console. --- ## WhatsApp Business URL: https://www.docs.popmcp.com/docs/integrations/whatsapp-business/ Summary: Connect WhatsApp Business to message customers, send and create templates, share media, manage your business profile, and track delivery and costs. You paste one value into PopMCP: a System User access token from Meta Business Settings that never expires and has the WhatsApp permissions. Add your app's App secret only if the app requires it. PopMCP finds your WhatsApp accounts and numbers, and you pick the number to connect. - Auth: API credentials - Setup time: 6 min - API base URL: https://graph.facebook.com/v26.0 - Credentials screen: https://business.facebook.com/latest/settings/system_users - Provider docs: https://developers.facebook.com/documentation/business-messaging/whatsapp/access-tokens ### Approval required before this works Meta reviews what your business sends, not your app: every message template has to be approved before it can start a conversation, and a new business portfolio reaches at most 250 people a day outside customer service windows until Meta verifies the business. Your own number needs no App Review. - Typical wait: Template review usually takes minutes, and Meta says it can take up to 24 hours. Meta publishes no time for Business Verification; it commonly takes a few business days. Once verified the limit rises to 2,000, then grows automatically, within 6 hours of qualifying. - Cost: Free to apply. Meta bills the WhatsApp account per delivered template message by category and country, and since October 1, 2026 per service reply after the first 1,000 each month per number, so a payment method has to be on the account. - Blocked until approved: Business-initiated messages. Until a template is approved nothing can reach a customer who has not messaged you in the last 24 hours, and until the business is verified templates reach at most 250 unique people per rolling 24 hours across every number in the portfolio. - Works meanwhile: Connecting, reading the account, numbers, templates and analytics, replying inside the 24-hour customer service window, uploading media and submitting templates for review. Meta's test number in the App Dashboard sends to the recipient numbers you add there, with no review. ### Before you begin - A Meta business portfolio where you are an admin. Only admins can create system users and generate their tokens - A Meta app at developers.facebook.com/apps with the Connect with customers through WhatsApp use case, linked to that portfolio. Creating one also gives you a free test number - A business phone number on the WhatsApp Business Platform (Cloud API), shown in WhatsApp Manager under Phone numbers. A number still in use on WhatsApp has to be deleted from the app before it can be registered - A payment method on the WhatsApp account before you send templates or more than 1,000 service replies a month from a number. Meta bills the account, not PopMCP ### Get your credentials #### 1. Check that your number is on the platform Open WhatsApp Manager, then Account tools, Phone numbers. The number you want the AI to use should be listed with status Connected. No app or number yet? Create an app at `developers.facebook.com/apps` with the Connect with customers through WhatsApp use case and add a number under WhatsApp, API Setup. The free test number there works too, for up to 5 recipients you add. Screen: https://business.facebook.com/latest/whatsapp_manager/phone_numbers #### 2. Create a system user In Meta Business Settings open Users, System users and click Add. Name it `PopMCP`, choose the Admin role and click Create system user. An admin system user can reach every WhatsApp account in the portfolio; an employee one needs each WhatsApp account and Messaging account assigned to it by hand. Screen: https://business.facebook.com/latest/settings/system_users #### 3. Give the system user your app Select the new system user and click Assign assets. Choose Apps, tick the app that has WhatsApp, turn on Manage app (full control) and click Assign assets. Reload the page until the app shows under the system user's assets; it can take a few minutes. Screen: https://business.facebook.com/latest/settings/system_users #### 4. Generate a token that never expires On the system user, click Generate token. Select your app, set Token expiration to Never, and tick `whatsapp_business_messaging`, `whatsapp_business_management` and `business_management` (search for business to find them). Click Generate token. Screen: https://business.facebook.com/latest/settings/system_users #### 5. Copy the token now Meta shows the full token once. Click the copy icon and keep it somewhere safe until you paste it into PopMCP. Tokens start with `EAA`. #### 6. Paste the token into PopMCP and pick the number In PopMCP, paste the token into System user access token. Only if your app has Require app secret turned on (App Dashboard, App settings, Advanced), also paste the App secret from App settings, Basic. PopMCP lists every number the token reaches; pick the one this connection should use and the workspace it belongs in. ### Fields PopMCP asks for - System user access token (accessToken) [required]: In Meta Business Settings open System users, create a system user (Admin) or pick one, Assign assets: your app (full control) and your WhatsApp account (full control). Then Generate token: choose the app, expiry Never, and tick whatsapp_business_messaging and whatsapp_business_management (add business_management for business-level tools). Copy the token: Meta shows it once. - App secret (only if your app requires it) (appSecret): Only when your Meta app has Require app secret switched on (App Dashboard, App settings, Advanced). Copy it from App settings, Basic. Stored encrypted. ### Verify PopMCP marks the WhatsApp Business connection Verified, labelled with the number's display name and number, such as Lucky Shrub (+1 555-010-0100). Notes under it flag what would fail: a token that expires, a missing permission, a test number, a number that is not connected yet, a declined display name or an account with no payment method. Asking the AI for your approved templates lists them by name and language. ### Troubleshooting #### "Meta did not accept this access token: it is wrong, expired or was revoked." Cause: The token was copied incompletely, was revoked, or was a temporary token from the App Dashboard's API Setup page, which expires within a day. Fix: Generate a new token on the system user with expiry **Never** and paste it in one piece. #### "This token lacks whatsapp_business_management, which is needed to find your phone numbers and templates." Cause: The token was generated without that permission ticked. Fix: Generate the token again with `whatsapp_business_messaging` and `whatsapp_business_management` ticked. If they are not in the list, add the WhatsApp use case to the app first. #### "This token cannot see any WhatsApp Business account." Cause: The system user is an employee and has no WhatsApp account assigned, or the app does not belong to the portfolio that owns the account. Fix: In **System users**, choose the system user, click **Assign assets** and give it your WhatsApp account and Messaging account with full control, or use an admin system user. Then connect again with the same token. #### "Your WhatsApp Business account has no phone number yet." Cause: The account exists but no number has been added and verified on it. Fix: Add a number in WhatsApp Manager under **Phone numbers**, or on the app's **WhatsApp**, **API Setup** page, verify it with the code Meta sends, then connect again. #### Sending free-form text fails with error 131047 Cause: More than 24 hours have passed since the customer last messaged the number, so only a template can reach them. Fix: Send an approved template with whatsapp_send_template_message. whatsapp_list_templates shows which templates are approved. #### Calls fail with error 200 or "does not have permission" Cause: The token works but the system user has no access to this WhatsApp account, or the token is missing a permission. Fix: Run whatsapp_check_token, which names the missing permission or access, then fix it in **System users** and generate the token again if permissions changed. #### Templates reach only some customers, or error 131049 Cause: Meta limits marketing messages per user, does not deliver marketing templates to WhatsApp users in the United States, and caps a new portfolio at 250 unique people a day outside customer service windows. Fix: Wait at least a day before resending to the same person, use a utility template where the message is transactional, and verify the business in **Security Center** to raise the daily limit. --- ## Wistia URL: https://www.docs.popmcp.com/docs/integrations/wistia/ Summary: Connect Wistia to find, organize and update your videos, captions and translations, manage channels and webinars, and see how each video performs. You paste one value into PopMCP: an API token the Wistia account owner creates in Account Settings, on the API tab. It takes a minute, costs nothing and needs no approval from Wistia. - Auth: API credentials - Setup time: 2 min - API base URL: https://api.wistia.com/modern (X-Wistia-Api-Version 2026-09) - Credentials screen: https://account.wistia.com/account/api - Provider docs: https://docs.wistia.com/docs/making-api-requests ### Before you begin - A Wistia account. The API comes with the account; no add-on is needed - The Account Owner's login: only the owner sees the API tab and can create tokens. Anyone else asks the owner to make one - A minute to copy the token when it is created. Wistia shows a token only once ### Get your credentials #### 1. Open the API tab in Account Settings Sign in to Wistia as the Account Owner, open Account Settings from the account menu and choose the API tab, or go straight to account.wistia.com/account/api. The page lists the tokens the account already has, with a New token button at the top. Screen: https://account.wistia.com/account/api #### 2. Create a token for PopMCP Click New token, give it a nickname such as PopMCP, and tick its permissions. Read, update & delete anything lets the AI manage your videos, folders, captions, channels and webinars as well as read stats. For read-only use, tick Read all data instead. Then click Create token. Screen: https://account.wistia.com/account/api #### 3. Copy the token Wistia shows the new token once. Copy it now: after you leave or refresh the page it can no longer be copied, and you would need to make another one. Keep it private, because anyone who has it can use your account within its permissions. Screen: https://account.wistia.com/account/api #### 4. Paste the token into PopMCP In PopMCP open Marketplace, find Wistia, click Connect and paste the token into API token. PopMCP checks it against your account, names the connection after your Wistia account and stores the token encrypted. ### Fields PopMCP asks for - API token (apiToken) [required]: In Wistia open Account Settings, then the API tab (account.wistia.com/account/api), click New token, give it a name, tick the permissions and create it. Copy it right away: Wistia shows a token only once. Only the Account Owner sees the API tab. Stored encrypted. ### Verify PopMCP reads your account and the token's own permissions, shows the connection under your Wistia account name, and notes when the token is read-only. Asking the AI to list your five newest videos confirms it works. ### Troubleshooting #### "Wistia did not accept this API token. Copy it again from Account Settings, API (account.wistia.com/account/api). A token is shown only once, so create a new one if you no longer have it." Cause: Part of the token was missed when copying, or the token was deleted in Wistia. Fix: Create a new token on the API tab, copy the whole value straight away and paste it into PopMCP. #### "This token cannot read the Wistia account. Give it the Read all data permission (or Read, update & delete anything) in Account Settings, API, then connect again." Cause: The token was created with only the Upload media permission. Fix: Open the ... menu beside the token, choose to edit it, tick Read all data or Read, update & delete anything, save, then connect again. #### There is no API tab in Account Settings Cause: You are not the Account Owner. Wistia shows that tab to the owner only. Fix: Ask the Account Owner to create the token and share it with you, or to connect Wistia in PopMCP themselves. #### A tool answers that the token lacks a permission Cause: The token is read-only or covers only part of the account (media or stats). Fix: Edit the token's permissions on the API tab (no new token needed). The answer names the permission the tool needs. #### "Wistia is limiting requests for this account right now" Cause: More than 600 API requests in a minute across everything that uses the account's tokens. Fix: Wait a minute and try again. Other apps using the same Wistia account share the limit. --- ## Wix URL: https://www.docs.popmcp.com/docs/integrations/wix/ Summary: Connect Wix to manage your site contacts and members, store products and orders, bookings, events, blog, and content. Three values go into PopMCP: the API key token shown once by the Wix API Keys Manager, the Account ID on that same page, and the Site ID taken from the site dashboard URL. - Auth: API credentials - Setup time: 6 min - API base URL: https://www.wixapis.com - Credentials screen: https://manage.wix.com/account/api-keys - Provider docs: https://dev.wix.com/docs/rest/articles/getting-started/api-keys ### Before you begin - Account owner or co-owner access, because no other role can create API keys - Access to the email address on the Wix account, since a 6-digit verification code is sent there before the key is issued - The account that owns the site, because site-level calls only work with a key generated from the site owner's own account ### Get your credentials #### 1. Open the API Keys Manager Go to manage.wix.com/account/api-keys. You can also click your avatar at the top right, choose Account Settings, then API Keys. Screen: https://manage.wix.com/account/api-keys #### 2. Name the key, then set permissions and site access Click Generate API Key and enter a name under Key details. Tick only the permissions PopMCP needs, such as Wix Stores, Contacts and Wix Bookings, choose Specific sites and add the site you are connecting, then click Generate Key. #### 3. Confirm with the emailed 6-digit code Click Send Code, then take the 6-digit code from the email on your Wix account. Type it into the Verify your account pop-up and click Verify & Generate Key. #### 4. Copy the token before you close the pop-up Click Copy Token & Close in the You generated an API key pop-up and store the token somewhere safe. #### 5. Collect the Account ID and the Site ID Back on the API Keys page, click Copy ID under Account ID. Then open the site's dashboard and copy the UUID that follows `/dashboard/` in the browser URL. Screen: https://manage.wix.com/account/api-keys #### 6. Paste all three values into PopMCP Open the Wix connector in PopMCP, fill API key, Account ID and Site ID, then save. ### Fields PopMCP asks for - API key (apiKey) [required]: Wix account dashboard → top-right avatar → Settings → API Keys (manage.wix.com/account/api-keys) → Generate API Key. Grant it the permissions/roles you want the MCP to use (e.g. Wix Stores, Contacts, Bookings). Copy the key ONCE at creation. Wix does not show it again. Stored encrypted; used server-side only. - Account ID (accountId) [required]: Shown on the same API Keys page (manage.wix.com/account/api-keys), under your account details. It's a UUID. Paste just the id, or a URL/label that contains it. We'll pull it out. - Site ID (siteId) [required]: The site the MCP should act on. Open the site's dashboard (the URL is manage.wix.com/dashboard//home) and copy the UUID after /dashboard/. (Also available in the site's Settings.) Paste just the id or the whole URL. ### Verify PopMCP shows Wix as Connected and a read call such as listing products or contacts returns data for the site whose Site ID you pasted. ### Troubleshooting #### 403 Forbidden Cause: The key lacks the permission for that API, targets a site it cannot reach, or was created by a co-owner rather than the site's own account. Fix: In the API Keys Manager choose More Actions, Edit to add the permission and widen site access. Check who created the key under Settings, Roles & Permissions. #### 403 on account-level calls only Cause: The call carried wix-site-id where the endpoint requires wix-account-id. Fix: Fill in the Account ID field as well as the Site ID. Wix requires one header or the other depending on the endpoint. #### You closed the pop-up without copying the token Cause: Wix reveals the token exactly once. Fix: Click More Actions next to the key and choose Rotate for a new token with the same permissions, or Duplicate for a new key with the same permissions. #### No verification code arrives Cause: Wix could not deliver the 2-step verification message. Fix: Check the address on the Wix account and the spam folder, then contact Wix Support if it still does not arrive. #### Calls hit the wrong site Cause: A key scoped to Specific sites was given a Site ID outside that list. Fix: Edit the key's site access in the API Keys Manager, or paste the Site ID of a site the key already covers. #### Generate API Key is not visible Cause: You are signed in with a role other than owner or co-owner. Fix: Sign in as the account owner, or ask an owner to generate the key and send you the token securely. --- ## WooCommerce URL: https://www.docs.popmcp.com/docs/integrations/woocommerce/ Summary: Connect WooCommerce to manage products, orders, customers, coupons, and sales reports for your store. You end up pasting your store's home URL plus a WooCommerce REST API Consumer key (ck_...) and Consumer secret (cs_...) generated in WooCommerce > Settings > Advanced > REST API. - Auth: API credentials - Setup time: 4 min - API base URL: https://YOUR-STORE.com/wp-json/wc/v3 - Credentials screen: https://YOUR-STORE.com/wp-admin/admin.php?page=wc-settings&tab=advanced§ion=keys (replace YOUR-STORE with your WooCommerce store) - Provider docs: https://woocommerce.github.io/woocommerce-rest-api-docs/ ### Before you begin - A self-hosted WordPress site with the WooCommerce plugin active (WooCommerce 3.4 or later) - A WordPress user with the Administrator role, because the Advanced settings tab is admin-only - The store served over HTTPS, otherwise the REST API refuses Basic Auth credentials - Pretty permalinks enabled (Settings > Permalinks set to anything other than Plain) so /wp-json/ resolves ### Get your credentials #### 1. Turn on pretty permalinks Go to Settings > Permalinks, choose Post name, and click Save Changes. Then load `https://YOUR-STORE.com/wp-json/wc/v3` in a browser and check that JSON comes back rather than a 404 page. Screen: https://YOUR-STORE.com/wp-admin/options-permalink.php (replace YOUR-STORE with your WooCommerce store) #### 2. Open the WooCommerce REST API key list In the WordPress sidebar click WooCommerce > Settings, open the Advanced tab, then click the REST API section. Screen: https://YOUR-STORE.com/wp-admin/admin.php?page=wc-settings&tab=advanced§ion=keys (replace YOUR-STORE with your WooCommerce store) #### 3. Create a Read/Write key Click Add key, type a Description, leave User on your administrator account, and set Permissions to Read/Write. Click Generate API key. Screen: https://YOUR-STORE.com/wp-admin/admin.php?page=wc-settings&tab=advanced§ion=keys&create-key=1 (replace YOUR-STORE with your WooCommerce store) #### 4. Copy the consumer key and consumer secret Copy Consumer key and Consumer secret from the results screen before you navigate away. Click Copy beside each value. #### 5. Paste the three values into PopMCP Set Store URL to your store's home URL with no trailing path, for example `https://YOUR-STORE.com`. Paste the Consumer key and Consumer secret, then save. ### Fields PopMCP asks for - Store URL (siteUrl) [required]: Your store's home URL. The WooCommerce REST API lives under /wp-json/wc/v3. - Consumer key (wcConsumerKey) [required]: WooCommerce → Settings → Advanced → REST API → Add key, with Read/Write permissions. - Consumer secret (wcConsumerSecret) [required]: The secret shown once when you created the WooCommerce REST API key. Powers products, orders, and customers. Stored encrypted. ### Verify PopMCP shows the WooCommerce connector as Connected and a test call lists your store's products. The key's row in WooCommerce > Settings > Advanced > REST API updates its Last access column to today. ### Troubleshooting #### 401 woocommerce_rest_cannot_view or "Consumer key is invalid" Cause: The key was pasted with a trailing space, or the store is on plain HTTP so the Authorization header is stripped. Fix: Re-copy both values and confirm the Store URL starts with https://. If your host strips Authorization headers, add the standard WordPress SetEnvIf or RewriteRule for HTTP_AUTHORIZATION to .htaccess. #### 404 rest_no_route on /wp-json/wc/v3 Cause: Permalinks are set to Plain, or WooCommerce is deactivated. Fix: Set Settings > Permalinks to Post name, click Save Changes to flush rewrite rules, and confirm WooCommerce is active under Plugins. #### 403 woocommerce_rest_authentication_error on writes Cause: The key was created with Read permissions, or the linked WordPress user is not an administrator. Fix: Revoke the key and create a new one with Permissions set to Read/Write against an administrator account. #### There is no REST API section under Advanced Cause: The store runs WooCommerce older than 3.4, where keys lived under WooCommerce > Settings > API > Keys/Apps. Fix: Update WooCommerce, or create the key on the old API tab. The generated key works the same either way. #### Consumer secret was lost after closing the page Cause: WooCommerce displays the secret only once, at generation time. Fix: Click Revoke key on that row and generate a fresh key. There is no way to re-display an existing secret. --- ## WordPress URL: https://www.docs.popmcp.com/docs/integrations/wordpress/ Summary: Connect WordPress to manage posts, pages, media, comments, categories, tags, and users for your site. You paste three things into PopMCP: your site's home URL, the WordPress username, and a 24-character application password generated on that user's profile screen. - Auth: API credentials - Setup time: 4 min - API base URL: https://example.com/wp-json/wp/v2 - Credentials screen: https://example.com/wp-admin/profile.php (replace example.com with your WordPress domain) - Provider docs: https://developer.wordpress.org/rest-api/ ### Before you begin - Self-hosted WordPress 5.6 or newer. Application Passwords ship in core from 5.6 - The site must be served over HTTPS. WordPress hides the Application Passwords section on non-SSL sites - A WordPress user with the role you want PopMCP to act as. Administrator for users and settings, Editor is enough for posts, pages and media - The REST API must answer at /wp-json. Some security plugins and hosts disable it or strip Basic auth headers ### Get your credentials #### 1. Check that the REST API answers Open `https://your-site.com/wp-json` in a browser. A JSON response naming your site means the route PopMCP calls is live. Screen: https://example.com/wp-json (replace example.com with your WordPress domain) #### 2. Open the profile of the user PopMCP will act as Go to Users in the left sidebar, then Profile for your own account. For a different account click All Users, hover the row and click Edit. Screen: https://example.com/wp-admin/profile.php (replace example.com with your WordPress domain) #### 3. Create the application password Scroll to Application Passwords, type `PopMCP` in New Application Password Name, and click Add New Application Password. Screen: https://example.com/wp-admin/profile.php#application-passwords-section (replace example.com with your WordPress domain) #### 4. Copy the password before you leave the page Copy the 24-character value from the green confirmation box, or click Copy, then click Dismiss. #### 5. Paste the three values into PopMCP Enter your home URL in Site URL with no trailing `/wp-json`, the login name in WordPress username, and the copied value in Application password. Click connect. ### Fields PopMCP asks for - Site URL (siteUrl) [required]: Your site's home URL. The WordPress REST API lives under /wp-json. - WordPress username (wpUsername) [required]: The WordPress user the application password belongs to. - Application password (wpAppPassword) [required]: WordPress → Users → Profile → Application Passwords. Powers posts, pages, media, and users. Stored encrypted. ### Verify PopMCP marks WordPress as Connected and names your site, using the title returned by /wp-json. Asking it to list your most recent posts returns real titles from the site. ### Troubleshooting #### 401 Unauthorized on every call Cause: Many Apache and LiteSpeed hosts strip the HTTP Authorization header before PHP sees it, so WordPress never receives the Basic auth credentials. Fix: Add `SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1` to .htaccess, or the CGIPassAuth equivalent, then reconnect. Also confirm you used the username and not the email address. #### The Application Passwords section is missing from the profile screen Cause: The site is not served over HTTPS, or a plugin has used the wp_is_application_passwords_available filter to switch the feature off. Fix: Install a valid TLS certificate, set WordPress Address and Site URL to https under Settings, General, then reload the profile page. #### 403 rest_forbidden or rest_cannot_edit Cause: The user behind the application password lacks the capability for that route, for example a Subscriber trying to create posts. Fix: Generate the application password on an Editor or Administrator account instead, then reconnect. #### 404 on /wp-json Cause: Permalinks are set to Plain, or a security plugin such as Wordfence or Solid Security is blocking the REST API for unauthenticated probes. Fix: Set Settings, Permalinks to Post name and save, then allow-list the REST API in the security plugin. #### The password stops working after a colleague edits the account Cause: Changing a user's WordPress password does not revoke application passwords, but deleting the row under Application Passwords does. Fix: Check the Application Passwords table on that user's profile. If the PopMCP row is gone, create a new one and reconnect. --- ## Xero URL: https://www.docs.popmcp.com/docs/integrations/xero/ Summary: Connect Xero to manage invoices, bills, contacts, bank transactions, payments, reports, payroll, and projects. You paste the Client id and a freshly generated Client secret from a Xero Web app you create in the Xero Developer portal. - Auth: OAuth authorization - Setup time: 5 min - API base URL: https://api.xero.com/api.xro/2.0 - Credentials screen: https://developer.xero.com/app/manage - Provider docs: https://developer.xero.com/documentation/guides/oauth2/auth-flow/ ### Approval required before this works Xero issues OAuth 2.0 client credentials instantly and an uncertified app can read and write real organisation data on day one - but it is hard-capped at 25 connected tenants (5 on the free Starter tier), and Xero must formally certify the app against published checkpoints before it can pass that cap, list on the Xero App Store, or move to the paid Plus tier and above. - Typical wait: Xero publishes no SLA for certification. The gate is commercial as much as clerical: Xero's own 'Building and growing your app' guide says the review step checks you have built Sign Up with Xero and have ten active customer connections, then a Xero developer evangelist works through the certification checkpoints with you. Elapsed time is therefore driven mostly by how long you take to onboard those ten customers and clear rework. Xero states no review turnaround anywhere in its docs - treat any specific figure quoted elsewhere as unofficial. The security self-assessment is a separate step with no published turnaround either; Xero sends it to you at 800 connections or when you request Practice Manager access. - Cost: Applying for certification is free. Xero's published developer pricing (developer.xero.com/pricing, tiers taking effect 2 March 2026, prices AUD and tax exclusive): Starter free, max 5 connections, no payment method needed; Core $35 AUD/month, max 50 connections, no certification required; Plus $245 AUD/month, max 1,000 connections, certification required; Advanced $1,445 AUD/month, max 10,000 connections, certification plus an initial and annual security assessment; Enterprise price on application, no connection limit and App Store listing mandatory. Egress above the tier allotment (10/50/250 GB on Core/Plus/Advanced) is $2.40 AUD per GB; ingress is unlimited. Custom Connections are a separate paid per-connection subscription that the Xero customer buys for their own organisation. - Blocked until approved: Nothing on day one for a single-org or small deployment: an uncertified app authenticates and reads/writes live data immediately. What is blocked is scale and premium surface area. Connections: the free Starter tier caps at 5 connections, and Xero's connections guide caps uncertified apps at 25 unique tenants overall - beyond the cap, new tenant authorisations are refused. A second, sharper limit bites per customer: any one Xero organisation may connect to at most 2 uncertified apps, so a prospect who already has two uncertified integrations cannot connect yours at all until you are certified. Certification is also the prerequisite for the Plus tier and above, for a Xero App Store listing (checkpoint 2 requires Plus tier or higher), and for Rapid Sync (lifted API limits for the first 30 minutes of a new connection), which is Not Included on Starter and Core. The Journals endpoint, the Xero Practice Manager (XPM) API and Bulk Connections are Advanced-tier only and additionally require the security assessment plus use-case approval. Separately, until you pass the security self-assessment your connection count is capped at 999 and XPM/Xero HQ APIs stay closed. Rate limits are tier-based rather than certification-based: 1,000 API calls per day per org on Starter versus 5,000 on Core and above. - Works meanwhile: Everything for a single-org or small-scale integration. Create the app in My Apps, get client_id/client_secret immediately, run the full OAuth 2.0 authorization code or PKCE flow, and call the Accounting, Payroll and Files APIs against real organisations right away - or against the free Xero Demo Company for development. Custom Connections (client credentials, one organisation, no certification) are a supported production route for a machine-to-machine integration with a single customer. ### Before you begin - Xero login with access to at least one organisation. The free Demo Company works for testing. - No developer programme signup or app review is needed. A private Web app can connect up to 25 organisations. - Adviser or Standard access on the organisation you want to authorise ### Get your credentials #### 1. Open My Apps in the Xero Developer portal Go to https://developer.xero.com/app/manage and sign in with your normal Xero login. Screen: https://developer.xero.com/app/manage #### 2. Create a Web app Click New app, enter an App name, and choose Web app as the Integration type. Add your Company or application URL, paste PopMCP's callback into Redirect URI, tick the terms box and click Create app. Screen: https://developer.xero.com/app/manage #### 3. Reveal the Client id Open the app and click Configuration in the left pane. Click the eye icon beside Client id and copy the value into PopMCP's Client ID field. Screen: https://developer.xero.com/app/manage #### 4. Generate a Client secret On the same Configuration page click Generate a secret. Copy the value from the Client secret 1 box before you leave the page. Screen: https://developer.xero.com/app/manage #### 5. Connect in PopMCP and choose the organisation Paste both values into PopMCP and click connect. On Xero's consent screen pick the organisation and click Allow access. ### Fields PopMCP asks for - Auth type (connectionType): Create an app at developer.xero.com → "New app" → choose "Web app". The OAuth flow keeps your Xero login on Xero's side. - Client ID (clientId) [required]: Your app's "Client id" from the Configuration tab on developer.xero.com. - Client secret (clientSecret) [required]: Generate a "Client secret" on your app's Configuration tab. Stored encrypted; used server-side only and never shown again. ### Callback URL to register https://app.popmcp.com/api/providers/xero/callback ### Scopes requested - openid - profile - email - offline_access - accounting.transactions - accounting.contacts - accounting.settings - accounting.journals.read - accounting.reports.read - accounting.reports.tenninetynine.read - accounting.budgets.read - accounting.attachments - payroll.employees - payroll.payruns - payroll.payslip - payroll.timesheets - payroll.settings - files - assets - projects ### Verify PopMCP shows the Xero connection as Connected and names the authorised organisation. A contacts or invoices call returns rows from that organisation. ### Troubleshooting #### unauthorized_client or redirect_uri mismatch on the consent screen Cause: The Redirect URI on the app's Configuration page does not exactly match PopMCP's callback. Fix: Copy the callback from PopMCP, paste it into Configuration, then Redirect URIs, and click Save. #### You lost the client secret Cause: Xero shows a secret once and never again. Fix: Open the app's Configuration page, click Generate a secret, and paste the new value into PopMCP. Delete the old secret afterwards. #### invalid_grant when the connection refreshes Cause: offline_access was not requested, or the refresh token went unused for 60 days. Fix: Reconnect from PopMCP so a new refresh token is issued. #### 403 on payroll or projects endpoints Cause: That Xero product is not enabled on the organisation, or the scope was not consented. Fix: Enable the product in Xero, then reconnect so consent is granted again. #### 429 Too Many Requests Cause: Over 60 calls in a minute or 5,000 in a day for that organisation. Fix: Wait for the period named in the Retry-After header. The X-MinLimit-Remaining and X-DayLimit-Remaining headers show what is left. --- ## Yotpo URL: https://www.docs.popmcp.com/docs/integrations/yotpo/ Summary: Connect Yotpo to read and collect product reviews and ratings, answer shopper questions, sync catalog and orders, and run loyalty points and referrals. You paste your Yotpo Store ID, which older docs call the app key, and the API secret revealed from General Settings. If you run Yotpo Loyalty & Referrals you also paste its own API key and GUID from a separate admin. - Auth: API credentials - Setup time: 6 min - API base URL: https://api.yotpo.com/core/v3 - Credentials screen: https://settings.yotpo.com/#/general_settings - Provider docs: https://core-api.yotpo.com/reference/welcome ### Before you begin - A Yotpo account with the Owner or Admin role. The API secret is hidden from Staff and Customer Service teammates - Access to the inbox of the email address on the Yotpo account. Revealing the secret requires an emailed verification code - A Yotpo Loyalty & Referrals subscription, only if you want the loyalty, points and referral tools. It is a separate product with its own credentials ### Get your credentials #### 1. Open Account Settings Sign in to Yotpo Reviews, Loyalty or Visual UGC. Click the account menu in the bottom-left corner and choose Account Settings. Screen: https://settings.yotpo.com/#/general_settings #### 2. Copy the app key from General Settings Click General Settings and scroll to the bottom. Copy the value labelled App key, which is the same thing Yotpo now calls the Store ID. Screen: https://settings.yotpo.com/#/general_settings #### 3. Reveal the API secret Click Get secret key on the same screen. Paste the code Yotpo emails you into Verification code, click Submit, and copy the secret from the next screen. Screen: https://settings.yotpo.com/#/general_settings #### 4. Optional: copy the Loyalty API key and GUID Skip this unless you use Loyalty & Referrals. Open the Loyalty admin, go to Settings, then General Settings, and copy the API Key and the GUID. Screen: https://loyalty-app.yotpo.com/settings #### 5. Paste the values into PopMCP Enter the Store ID (app key) and API secret. Add Loyalty API key and Loyalty GUID only if you completed the previous step, then click connect. ### Fields PopMCP asks for - Store ID (app key) (storeId) [required]: Yotpo admin → Settings → Store settings. Yotpo calls this the Store ID; older docs call it the app key. It scopes every tool to this store. - API secret (apiSecret) [required]: On the same Store settings screen, visible to Yotpo account admins. We exchange it for short-lived access tokens automatically, so you never paste a token. Stored encrypted and used server-side only. - Loyalty API key (optional) (loyaltyApiKey): Only for Yotpo Loyalty & Referrals, which uses its own credentials. Loyalty admin → Settings → General settings → API keys. Unlocks points, redemptions, referrals, VIP tiers and loyalty campaigns. - Loyalty GUID (optional) (loyaltyGuid): Shown next to the Loyalty API key on the same screen. Required alongside it — the Loyalty API needs both. ### Verify PopMCP marks Yotpo as Connected and names your store. Asking for your most recent product reviews returns real review text and star ratings, and with the loyalty pair added a customer's points balance resolves too. ### Troubleshooting #### 401 with 'The Store ID or Secret you have provided is invalid' Cause: The secret was regenerated, or the Store ID belongs to a different store on a multi-store Yotpo account. Fix: Reopen Account Settings, General Settings, confirm the App key matches what you pasted, click Get secret key again and reconnect with the fresh pair. #### The Get secret key button is missing Cause: You are signed in as Staff, Customer Service or Insights Only. The secret is visible only to the account Owner or an Admin. Fix: Ask the Yotpo account owner to run these steps, or have them promote you under Account Settings, Teammates. #### Loyalty tools return 401 while reviews work fine Cause: The Loyalty API key and GUID were left blank, or only one of the two was filled in. Fix: Copy both values from Settings, General Settings in the Loyalty admin. The Loyalty API rejects one without the other. #### 429 Too Many Requests on loyalty calls Cause: The Loyalty API caps each merchant account at roughly 10 requests per second. Fix: Space the requests out. The ratelimit-remaining and ratelimit-reset response headers tell you when the window clears. #### The verification code email never arrives Cause: Yotpo sends the code to the address on the Yotpo account, which may differ from the address you signed in with through SSO. Fix: Check the address shown under Account Settings, Teammates for your user, and look in spam before requesting a second code. --- ## YouTube Analytics URL: https://www.docs.popmcp.com/docs/integrations/youtube-analytics/ Summary: Connect YouTube Analytics to see how your channel and videos perform, where viewers come from, who is watching, and which videos win subscribers. You paste the Client ID and Client secret of a Web application OAuth client from your own Google Cloud project, with the YouTube Analytics API and YouTube Data API v3 enabled and the app published. - Auth: OAuth authorization - Setup time: 10 min - API base URL: https://youtubeanalytics.googleapis.com/v2 - Credentials screen: https://console.cloud.google.com/auth/clients - Provider docs: https://developers.google.com/youtube/analytics/reference/reports/query ### Approval required before this works Google must verify your OAuth consent screen for the sensitive YouTube scopes (youtube.readonly plus yt-analytics.readonly, and yt-analytics-monetary.readonly for revenue data) before the app can serve users outside your own test-user list. - Typical wait: Google states 3-5 business days for sensitive-scope verification; developers commonly report 2-6 weeks when the demo video, scope justification or privacy policy is queried. - Cost: Free. These are sensitive scopes, not restricted ones, so no third-party security assessment fee applies. - Blocked until approved: Nothing about reading your own analytics. What is blocked is distribution: in Testing publishing status you are capped at 100 hand-listed test users and refresh tokens are invalidated after 7 days, so a persistent connector stops working roughly weekly. Publishing to production unverified still shows every user the 'Google hasn't verified this app' interstitial and keeps the 100-user cap. - Works meanwhile: Everything. Enable the YouTube Analytics API in a Google Cloud project, create an OAuth client, add yourself as a test user, and reports.query returns live view, watch-time and revenue data for your own channel the same day. ### Before you begin - A Google account that owns or manages the YouTube channel you want to report on - A Google Cloud project you can edit. Creating one is free and takes a minute - Permission to publish the OAuth app under Google Auth Platform, Audience. An app left in Testing gets a refresh token Google expires after 7 days - Only for revenue metrics: the channel must be in the YouTube Partner Program and you must sign in as an owner ### Get your credentials #### 1. Create the project and enable both YouTube APIs Use the project picker in the top bar to create a project named `PopMCP YouTube`. Inside it go to APIs & Services, then Library, and enable both YouTube Analytics API and YouTube Data API v3. Screen: https://console.cloud.google.com/apis/library #### 2. Fill in Branding and set the audience Open Google Auth Platform, then Branding, and enter the app name, user support email and developer contact email. Open Audience and set User type to External. Screen: https://console.cloud.google.com/auth/branding #### 3. Add the three YouTube scopes Go to Data access and click Add or remove scopes. Paste each YouTube scope into the manual-entry box, click Add to table, then Update and Save. Screen: https://console.cloud.google.com/auth/scopes #### 4. Publish the app Open Audience, find Publishing status: Testing and click Publish app, then click Confirm. Screen: https://console.cloud.google.com/auth/audience #### 5. Create the Web application OAuth client Open Clients and click Create client. Set Application type to Web application, name it `PopMCP`, click Add URI under Authorized redirect URIs and paste the callback URL from the PopMCP connect screen, then click Create. Screen: https://console.cloud.google.com/auth/clients #### 6. Copy the client ID and secret into PopMCP Copy Client ID and Client secret from the confirmation dialog into PopMCP, click connect, and approve the consent screen with the account that manages the channel. Screen: https://console.cloud.google.com/auth/clients ### Fields PopMCP asks for - OAuth Client ID (clientId) [required]: From your Google Cloud project → APIs & Services → Credentials → OAuth client (type: Web application). Enable BOTH the YouTube Analytics API and the YouTube Data API v3 on that same project first: reports come from the first, and the channel picker from the second. - OAuth Client Secret (clientSecret) [required]: Stored encrypted; used server-side only and never shown again. Before connecting, publish your OAuth app (Google Auth Platform → Audience → Publish app). An app left in Testing gets a refresh token Google expires after 7 days, so the connection would silently die a week from now. Publishing needs no Google review. ### Callback URL to register https://app.popmcp.com/api/providers/google/callback ### Scopes requested - https://www.googleapis.com/auth/yt-analytics.readonly - https://www.googleapis.com/auth/yt-analytics-monetary.readonly - https://www.googleapis.com/auth/youtube.readonly ### Verify PopMCP marks YouTube Analytics as Connected and names the channel you approved. Asking for views and watch time over the last 28 days returns numbers that match the Analytics tab in YouTube Studio. ### Troubleshooting #### Error 400: redirect_uri_mismatch Cause: The Authorized redirect URI on the OAuth client is not byte-identical to the callback PopMCP sends. Fix: Copy the callback URL straight from the PopMCP connect screen into Google Auth Platform, Clients, your client, Authorized redirect URIs. Save and wait a minute before retrying. #### The connection works for a week and then fails with invalid_grant Cause: The OAuth app is still in Testing, so Google expired the refresh token after 7 days. Fix: Go to Google Auth Platform, Audience, click Publish app so the status reads In production, then reconnect in PopMCP to mint a fresh token. #### 403 accessNotConfigured, or 'YouTube Analytics API has not been used in project ...' Cause: Only one of the two APIs was enabled, or the OAuth client lives in a different project from the enabled APIs. Fix: Confirm both YouTube Analytics API and YouTube Data API v3 appear under APIs & Services, Enabled APIs & services for the project that owns the OAuth client. #### Revenue metrics come back empty or 403 while view metrics work Cause: The channel is not monetised, or the Google account that approved consent is a manager rather than an owner. Fix: Re-approve with the channel owner account. If the channel is not in the YouTube Partner Program, drop the monetary scope and use the non-revenue reports. #### 'Access blocked: this app has not completed the Google verification process' Cause: The app is External and still in Testing, and the signing-in account is not on the test users list. Fix: Publish the app under Google Auth Platform, Audience instead of managing test users. The app stays unverified, so click Advanced and then 'Go to PopMCP (unsafe)' to continue with your own account. #### You want to hand the connector to a wider team Cause: These YouTube scopes are classed as sensitive, so an unverified published app is capped at 100 consenting accounts. Fix: Submit the app from Google Auth Platform, Verification center. Verification is not needed for your own channel. --- ## YouTube Data URL: https://www.docs.popmcp.com/docs/integrations/youtube/ Summary: Connect YouTube to find videos and channels, read and reply to comments, build and reorder playlists, edit video details, manage subtitles, and follow a live stream. You end up pasting a Google OAuth Client ID and its matching Client Secret, taken from a Web application client created in a Google Cloud project that has YouTube Data API v3 enabled. - Auth: OAuth authorization - Setup time: 12 min - API base URL: https://www.googleapis.com/youtube/v3 - Credentials screen: https://console.cloud.google.com/auth/clients - Provider docs: https://developers.google.com/youtube/v3/getting-started ### Approval required before this works Google must verify your OAuth consent screen for the sensitive YouTube scopes before the app can be published beyond test users, and YouTube's API Services team must pass a compliance audit before any quota above the default 10,000 units/day is granted. - Typical wait: OAuth sensitive-scope verification: Google states 3-5 business days, though developers commonly report 2-6 weeks when a demo video or privacy policy is queried. Quota audit: no published timeline; YouTube says only that a team member will contact you, and reports range from several weeks to months. - Cost: Free. YouTube scopes are sensitive, not restricted, so no third-party security assessment is involved. - Blocked until approved: Until verification, the app stays in Testing publishing status: a maximum of 100 test users you list by hand, and refresh tokens are invalidated after 7 days so a long-lived connector stops refreshing and forces re-consent every week. Moving to production without verification still shows every user the 'Google hasn't verified this app' warning screen and keeps the 100-user cap. Separately, until the compliance audit passes you are held to the default quota: 10,000 units/day total, only 100 search.list calls and 100 videos.insert calls per day. - Works meanwhile: Everything functional works immediately. Create a Google Cloud project, enable YouTube Data API v3, create an OAuth client, add yourself as a test user, and you can read and write live channel data the same day within the default quota. For a single operator connecting their own channel, verification is never strictly required if the app is left in production status and the warning screen is tolerated. ### Before you begin - A Google account that owns or manages the YouTube channel you want to connect - A Google Cloud project you can edit. Creating one is free and takes a few seconds - Permission to publish the OAuth app in Google Auth Platform, under Audience - The PopMCP callback URL copied to your clipboard, because Google matches redirect URIs character for character ### Get your credentials #### 1. Enable YouTube Data API v3 on your project Select the project you want to use in the top bar project picker, then open APIs & Services → Library and search for YouTube Data API v3. Click Enable. Screen: https://console.cloud.google.com/apis/library/youtube.googleapis.com #### 2. Set up the OAuth app branding Open Google Auth Platform → Branding. If the project has never been configured, click Get started, fill in App name, User support email and Developer contact email, choose External for the audience, and click Create. Screen: https://console.cloud.google.com/auth/branding #### 3. Create a Web application OAuth client Go to Google Auth Platform → Clients and click Create client. Set Application type to Web application, click Add URI under Authorized redirect URIs, paste the callback URL from the PopMCP connect screen, then click Create. Screen: https://console.cloud.google.com/auth/clients #### 4. Copy the Client ID and Client secret Copy the Client ID and Client secret from the OAuth client created dialog into PopMCP. If you already closed the dialog, open the client from the Clients list and click Add secret. #### 5. Publish the app so the connection does not expire Open Google Auth Platform → Audience. If Publishing status reads Testing, click Publish app and confirm. Screen: https://console.cloud.google.com/auth/audience ### Fields PopMCP asks for - OAuth Client ID (clientId) [required]: Google Cloud Console → Google Auth Platform → Clients → Create client → Web application, with the callback URL above pasted into Authorized redirect URIs (copy it, don't retype; Google matches it exactly, including the trailing slash). Enable the YouTube Data API v3 on the same project first (APIs & Services → Library → YouTube Data API v3 → Enable), or every call fails with "accessNotConfigured". - OAuth Client Secret (clientSecret) [required]: Shown once, in the popup right after you create the client. Google never shows it again. If you closed that popup, open the client and add a new secret. Stored encrypted here, used server-side only. IMPORTANT: in Google Auth Platform → Audience, if the status says "Testing", click "Publish app" first. Testing-mode apps get a refresh token that Google expires after exactly 7 days, so the connection would work for a week and then stop. Publishing does not require Google's review. It only adds a one-time "Google hasn't verified this app" screen, where you click Advanced and continue. ### Callback URL to register https://app.popmcp.com/api/providers/google/callback ### Scopes requested - https://www.googleapis.com/auth/youtube.force-ssl ### Verify After you paste both values, PopMCP sends you to Google's consent screen for the account that owns the channel. Approve it and the connector card flips to Connected with the channel name shown, and a test call listing your uploads returns rows. ### Troubleshooting #### Error 400: redirect_uri_mismatch Cause: The Authorized redirect URI on the Google client does not match PopMCP's callback URL byte for byte. Fix: Re-copy the callback URL from the PopMCP connect screen and paste it into the client's Authorized redirect URIs. Watch for a missing or extra trailing slash, http instead of https, and stray whitespace. #### accessNotConfigured, or "YouTube Data API v3 has not been used in project ..." Cause: The API was enabled on a different Google Cloud project than the one that owns the OAuth client. Fix: Check the project name in the console top bar, enable YouTube Data API v3 on that exact project, then retry after a minute. #### Connection works for a week, then returns invalid_grant Cause: The OAuth app was left in Testing status. Google expires authorizations by a test user seven days after consent. Fix: Go to Google Auth Platform → Audience and click Publish app, then reconnect the connector in PopMCP to mint a fresh refresh token. Publishing needs no Google review for this scope. It only adds a one-time "Google hasn't verified this app" screen where you click Advanced and continue. #### quotaExceeded after a burst of searches Cause: The project's default 10,000 units per day quota was consumed. A single search.list call costs 100 units. Fix: Wait for the midnight Pacific reset, spread searches out, or request more quota from IAM & Admin → Quotas & System Limits. #### You closed the creation dialog without copying the secret Cause: Google never redisplays a client secret in full. Fix: Open the client from Google Auth Platform → Clients, click Add secret, copy the new value, then disable the old secret. --- ## YouTube Reporting URL: https://www.docs.popmcp.com/docs/integrations/youtube-reporting/ Summary: Connect YouTube Reporting to see how your channel and videos perform, where viewers come from, who they are, and what they earn. You paste the OAuth Client ID and Client Secret of a Web application client created in your own Google Cloud project. That project needs the YouTube Analytics API, YouTube Reporting API and YouTube Data API v3 enabled, and the consent screen published. - Auth: OAuth authorization - Setup time: 12 min - API base URL: https://youtubereporting.googleapis.com/v1 - Credentials screen: https://console.cloud.google.com/auth/clients - Provider docs: https://developers.google.com/youtube/analytics ### Approval required before this works Google must verify your OAuth consent screen for the sensitive YouTube reporting scopes (yt-analytics.readonly and, for revenue reports, yt-analytics-monetary.readonly) before the app can be used by anyone outside your own test-user list; system-managed revenue reports additionally require YouTube Partner Program content-owner status. - Typical wait: Google states 3-5 business days for sensitive-scope verification; 2-6 weeks is commonly reported when the review team asks follow-up questions. - Cost: Free. - Blocked until approved: Distribution, not access. Unverified apps sit in Testing status with a 100 hand-listed test-user cap and refresh tokens that expire after 7 days, which breaks any unattended nightly report download. Publishing unverified keeps the warning interstitial and the user cap. Separately, the system-managed ad-revenue and YouTube Premium revenue reports are only generated for content owners in the YouTube Partner Program, and no API approval unlocks them for an ordinary channel. - Works meanwhile: Channel-level bulk reporting works immediately. Enable the YouTube Reporting API, create an OAuth client, add yourself as a test user, create a reporting job, and the first daily report becomes downloadable within about 48 hours. Backfill of up to 30 days of historical data is issued automatically once the job exists. ### Before you begin - A Google account that owns or manages the YouTube channel you want to report on - A Google Cloud project you can edit, with the Owner or Editor role - Billing is not required, but the project must allow enabling APIs - The OAuth app must be published under Audience. Apps left in Testing get refresh tokens that Google expires after 7 days ### Get your credentials #### 1. Pick or create the Google Cloud project Open the Google Cloud Console and choose a project from the project chip in the top bar, or click New project. Keep every step below inside that one project. Screen: https://console.cloud.google.com/projectcreate #### 2. Enable all three YouTube APIs Open APIs & Services and click Library. Search for YouTube Analytics API and click Enable, then repeat for YouTube Reporting API and YouTube Data API v3. Screen: https://console.cloud.google.com/apis/library #### 3. Set the consent screen branding Open Google Auth Platform and click Branding. Enter an App name and a User support email, then click Save. Screen: https://console.cloud.google.com/auth/branding #### 4. Publish the app Click Audience in the left nav. If Publishing status reads Testing, click Publish app and confirm. Screen: https://console.cloud.google.com/auth/audience #### 5. Create a Web application OAuth client Click Clients, then Create client. Set Application type to Web application, name it PopMCP, paste the callback URL from the PopMCP connect form into Authorized redirect URIs, and click Create. Screen: https://console.cloud.google.com/auth/clients #### 6. Copy the Client ID and secret into PopMCP Copy Client ID and Client secret from the OAuth client created dialog into PopMCP's OAuth Client ID and OAuth Client Secret fields. If the dialog is already closed, open the client and click Add secret. Screen: https://console.cloud.google.com/auth/clients ### Fields PopMCP asks for - OAuth Client ID (clientId) [required]: Google Cloud Console → Google Auth Platform → Clients → Create client → Web application, with the callback URL above under Authorized redirect URIs. In the same project, enable all three APIs under APIs & Services → Library: YouTube Analytics API, YouTube Reporting API, and YouTube Data API v3. If any is missing, that part of the connector returns "has not been used in project" errors. - OAuth Client Secret (clientSecret) [required]: Shown once, in the popup right after you create the client. Google hashes it and never shows it again. If you closed that popup, open the client and add a new secret. Stored encrypted here, used server-side only. IMPORTANT: in Google Auth Platform → Audience, if the status says "Testing", click "Publish app" first. Testing-mode apps get a refresh token that Google expires after exactly 7 days, so the connection would work for a week and then stop. Publishing does not require Google's review; it only adds a one-time "Google hasn't verified this app" screen, where you click Advanced and continue. ### Callback URL to register https://app.popmcp.com/api/providers/google/callback ### Scopes requested - https://www.googleapis.com/auth/yt-analytics-monetary.readonly - https://www.googleapis.com/auth/youtube.readonly ### Verify PopMCP sends you through the Google consent screen, you pick the Google account that manages the channel, and the connector shows Connected with your channel name. Asking for a list of reporting jobs returns data instead of a 403. ### Troubleshooting #### "YouTube Reporting API has not been used in project ... before or it is disabled" Cause: Only some of the three APIs are enabled, or they were enabled in a different project than the one the OAuth client belongs to. Fix: Open APIs & Services, then Enabled APIs & services, in the same project and confirm YouTube Analytics API, YouTube Reporting API and YouTube Data API v3 are all listed. #### The connection works for a week then breaks with invalid_grant Cause: The OAuth app was left in Testing. Google expires refresh tokens issued by Testing apps after exactly 7 days. Fix: Open Google Auth Platform, then Audience, click Publish app, and reconnect the connector in PopMCP to mint a fresh token. Publishing needs no Google review. It only adds a one-time "Google hasn't verified this app" screen where you click Advanced and continue. #### redirect_uri_mismatch on the consent screen Cause: The callback URL on the OAuth client does not exactly match the one PopMCP shows. Fix: Copy the callback URL from the PopMCP connect form character for character into Authorized redirect URIs. No trailing slash, https only. #### 403 insufficientPermissions after connecting Cause: You authorised with a Google account that is not an owner or manager of the channel. Fix: Disconnect, reconnect, and choose the Google account that owns the channel or the Brand Account. #### Reports are empty for today Cause: Reporting API reports are generated once a day, and a new job's first report appears about two days later. Fix: Wait for the next daily generation, or use the YouTube Analytics connector for on-demand queries. --- ## Zendesk URL: https://www.docs.popmcp.com/docs/integrations/zendesk/ Summary: Connect Zendesk to manage support tickets, users, organizations, macros, views, triggers, and the help center. You paste three things: your Zendesk subdomain, the email address of the admin who owns the token, and the API token string Zendesk shows once when you create it in Admin Center. - Auth: API credentials - Setup time: 5 min - API base URL: https://YOUR-SUBDOMAIN.zendesk.com/api/v2 - Credentials screen: https://YOUR-SUBDOMAIN.zendesk.com/admin/apps-integrations/apis/zendesk-api/api-tokens (replace YOUR-SUBDOMAIN with your Zendesk subdomain) - Provider docs: https://developer.zendesk.com/api-reference/ticketing/introduction/ ### Before you begin - A Zendesk Support or Suite account. - The Administrator role. Agents and end users cannot create API tokens. - "Allow API token access" turned on for the account. Any admin can switch it off. - Do this before 27 October 2026. Zendesk stops issuing new API tokens on that date and deactivates all existing tokens on 30 April 2027. ### Get your credentials #### 1. Open the API pages in Admin Center Sign in as an admin and open Admin Center at https://.zendesk.com/admin. In the left sidebar click Apps and integrations, then APIs. Screen: https://YOUR-SUBDOMAIN.zendesk.com/admin/apps-integrations/apis/zendesk-api/settings (replace YOUR-SUBDOMAIN with your Zendesk subdomain) #### 2. Turn on Allow API token access On the API configuration tab, tick Allow API token access and click Save. Screen: https://YOUR-SUBDOMAIN.zendesk.com/admin/apps-integrations/apis/zendesk-api/settings (replace YOUR-SUBDOMAIN with your Zendesk subdomain) #### 3. Add an API token Open the API tokens tab and click Add API token. Type `PopMCP` in Description. Screen: https://YOUR-SUBDOMAIN.zendesk.com/admin/apps-integrations/apis/zendesk-api/api-tokens (replace YOUR-SUBDOMAIN with your Zendesk subdomain) #### 4. Copy the token before you close the dialog Click Copy to take the full token string, then click Save to close the dialog. Screen: https://YOUR-SUBDOMAIN.zendesk.com/admin/apps-integrations/apis/zendesk-api/api-tokens (replace YOUR-SUBDOMAIN with your Zendesk subdomain) #### 5. Paste subdomain, email and token into PopMCP Enter the Zendesk subdomain (the `acme` in `https://acme.zendesk.com`), the email of the admin who created the token, and the token itself. The email must be the token owner's. ### Fields PopMCP asks for - Zendesk subdomain (subdomain) [required]: The first part of your Zendesk URL: https://.zendesk.com. You can paste the full URL and we'll extract the subdomain. This is the account the MCP is locked to. - Agent or admin email (email) [required]: The email of a Zendesk agent or admin. It's used as the API username (sent as {email}/token), so it must match the account the API token belongs to. - API token (apiToken) [required]: Admin Center → Apps and integrations → APIs → Zendesk API → API tokens → Add API token. You must also turn ON "Allow API token access" on that page (it's off by default). The token is shown only once. Stored encrypted. ### Verify The Zendesk connection shows Connected in PopMCP and the Zendesk tools appear. Listing recent tickets or searching users returns rows from your own help desk. ### Troubleshooting #### The API configuration page asks you to accept terms Cause: Nobody has used the API on this account before. Fix: Tick the terms box and click Get started, then set Allow API token access and Save. #### 401 "Couldn't authenticate you" Cause: API token access is off, the email does not belong to the token's account, or the token was copied incompletely. Fix: Tick Allow API token access on the API configuration tab and Save, confirm the email is the admin who created the token, and re-create the token if you are unsure it was copied whole. #### The connection worked, then broke about a month later Cause: From 28 July 2026 Zendesk automatically deactivates API tokens that go 30 days without use. Fix: Create a fresh API token and update the PopMCP connection. Plan a move to OAuth before the April 2027 cutoff. #### The Add API token button is missing or disabled Cause: You are not an administrator, the account is at the 256-token limit, or the account is past Zendesk's 27 October 2026 token-creation cutoff. Fix: Sign in as an admin, delete an unused token to free a slot, and check Zendesk's API token removal announcement for your account's phase. #### 429 Too Many Requests Cause: The account-wide per-minute rate limit was exceeded. Fix: Slow the tool calls down and respect the Retry-After header, or add the High Volume API add-on. --- ## Zendrop URL: https://www.docs.popmcp.com/docs/integrations/zendrop/ Summary: Connect Zendrop to search the dropshipping catalog, get shipping estimates, import products, track orders and fulfilment, and see store revenue. Nothing is typed into PopMCP. You click Connect, sign in to Zendrop, and press Authorize on Zendrop's consent screen. PopMCP stores the resulting OAuth token for you. - Auth: OAuth authorization - Setup time: 2 min - API base URL: https://app.zendrop.com/mcp/v1 - Credentials screen: https://account.zendrop.com/login - Provider docs: https://support.zendrop.com/en/articles/14461568-zendrop-mcp-developer-documentation ### Before you begin - A Zendrop account you can sign in to at account.zendrop.com - At least one store connected in Zendrop (Shopify, Wix, TikTok Shop or ClickFunnels). Without one, the product and order tools have nothing to read - Pop-up blockers must allow the Zendrop authorization window to open ### Get your credentials #### 1. Sign in and confirm a store is connected Sign in at account.zendrop.com. If Connect Store is still showing in the top left, connect your Shopify, Wix, TikTok Shop or ClickFunnels store first. Screen: https://account.zendrop.com/login #### 2. Start the connection from PopMCP Open the Zendrop connector in PopMCP and click Connect. There are no fields to fill in. #### 3. Sign in with Zendrop in the popup In the authorization window click Sign in with Zendrop. Use the account that owns the store. #### 4. Review the scopes and click Authorize Read the permission list on Zendrop's consent screen, then click Authorize. The window closes and hands the token back to PopMCP. #### 5. Check the connection in PopMCP Confirm the Zendrop card in PopMCP reads Connected. Ask for your imported products or your trending products to check the token and the store link. ### Callback URL to register https://app.popmcp.com/api/providers/zendrop/callback ### Scopes requested - catalog:read - my_products:read - my_products:write - orders:read - orders:write - order_issues:read - order_issues:write - stores:read - stores:write - billing:read - users:read - reporting:read ### Verify The Zendrop card in PopMCP shows Connected with your Zendrop account name, and a request like "show my imported products" returns real catalog rows rather than an authorization error. ### Troubleshooting #### The authorization window never opens Cause: A pop-up blocker is stopping Zendrop's authorize page. Fix: Allow pop-ups for PopMCP in your browser and click Connect again. #### 401 Unauthorized on every tool Cause: The access token was revoked in Zendrop, or you authorized a different Zendrop account than the one that owns the store. Fix: Disconnect the connector in PopMCP and reconnect, signing in with the account that owns the store. #### Product and order tools return empty lists Cause: No store is connected on the Zendrop side, so nothing is scoped to the token. Fix: In Zendrop click Connect Store, link your Shopify, Wix or TikTok Shop store, then retry. There is no need to reconnect PopMCP. #### 429 Too Many Requests during a bulk import Cause: Zendrop caps writes at 30 per minute and fulfilment actions at 10 per minute. Fix: Batch the work into smaller chunks or pause between requests. Reads have a much higher 120 per minute ceiling. --- ## Zernio URL: https://www.docs.popmcp.com/docs/integrations/zernio/ Summary: Connect Zernio to schedule and publish posts across social networks, manage a unified inbox, and track analytics. You paste one Zernio API key, a 67-character string made of the sk_ prefix plus 64 hex characters. Zernio shows the value once, at creation. - Auth: API credentials - Setup time: 3 min - API base URL: https://zernio.com/api/v1 - Credentials screen: https://zernio.com/dashboard/api-keys - Provider docs: https://docs.zernio.com ### Before you begin - A Zernio account. The free tier works and no credit card is needed - A profile with at least one connected social account, otherwise the publishing and analytics tools have nothing to act on - Access to your team's Settings area, which is where keys are created ### Get your credentials #### 1. Sign in and connect a social account Sign in at zernio.com, or click Sign up free if you do not have an account. Create a profile and connect at least one social account from the dashboard. Screen: https://zernio.com/signin #### 2. Open the API Keys page Open Settings and click API Keys, or go straight to zernio.com/dashboard/api-keys. Screen: https://zernio.com/dashboard/api-keys #### 3. Create a key for PopMCP Click Create API Key and enter a Name such as PopMCP. Click Create API Key in the dialog to confirm. Screen: https://zernio.com/dashboard/api-keys #### 4. Copy the key before closing the dialog Copy the full sk_ value shown in the dialog, then click Done. Screen: https://zernio.com/dashboard/api-keys #### 5. Paste it into PopMCP Open the Zernio connector in PopMCP, paste the value into the API key field, and save. ### Fields PopMCP asks for - API key (apiKey) [required]: Zernio dashboard → Settings → API Keys → create a key (it looks like sk_ followed by 64 hex characters). Stored encrypted; used server-side only. The connection is locked to this key's account. ### Verify The Zernio connector in PopMCP flips to Connected, and a read-only request such as "list my scheduled posts" returns rows from your Zernio account instead of a 401. ### Troubleshooting #### 401 Unauthorized Cause: The key was truncated on paste, or it has been deleted in Zernio. Fix: Check the value is exactly 67 characters and starts with sk_. If in doubt, create a fresh key on the API Keys page and paste that. PopMCP sends it as an Authorization: Bearer header, server-side only. #### You closed the dialog before copying the key Cause: Zernio only stores a SHA-256 hash, so an existing key cannot be revealed. Fix: Delete the key from the API Keys list and create a replacement. #### 429 Too Many Requests Cause: Free teams with 0 to 2 connected social accounts are capped at 60 requests per minute, and analytics endpoints at 6 requests per second. Fix: Slow the calls down, or connect more social accounts. The ceiling rises to 600 per minute at 3 or more accounts, and 1,200 above 2,000. #### Publishing tools return no accounts Cause: No social accounts are connected to the Zernio team the key belongs to. Fix: Connect at least one network in the Zernio dashboard. The same key then works without regenerating. --- ## Zoho CRM URL: https://www.docs.popmcp.com/docs/integrations/zoho-crm/ Summary: Connect Zoho CRM to manage leads, contacts, accounts, deals and any custom module, plus notes, emails, tags, Blueprint and workflow settings. You paste the Client ID and Client secret of a Server-based Application you register in the Zoho API Console, then sign in with Zoho and pick the CRM organization to connect. - Auth: OAuth authorization - Setup time: 6 min - API base URL: https://www.zohoapis.com/crm/v8 - Credentials screen: https://api-console.zoho.com/ - Provider docs: https://www.zoho.com/crm/developer/docs/api/v8/oauth-overview.html ### Before you begin - A Zoho CRM organization on any edition. Free includes 5,000 API credits a day. - A Zoho CRM profile that is allowed to use the API. If the connect stops with a permission error, an administrator can turn it on under Setup, Security Control, Profiles. - Knowing which Zoho data center your account lives in: the domain you sign in at, such as zoho.com, zoho.eu, zoho.in or zoho.com.au. - PopMCP's callback URL from the connect form: https://app.popmcp.com/api/providers/zoho-crm/callback ### Get your credentials #### 1. Open the API Console for your data center Sign in at api-console.zoho.com as the Zoho user whose CRM access the AI should have. If your Zoho account lives in another data center, use that data center's console instead, for example api-console.zoho.eu, api-console.zoho.in or api-console.zoho.com.au. Click Get Started on your first visit, or Add Client if you already have clients. Screen: https://api-console.zoho.com/ #### 2. Choose Server-based Applications Pick Server-based Applications and click Create Now. PopMCP signs you in through a redirect, so the other client types, Self Client included, cannot complete the connection. Screen: https://api-console.zoho.com/ #### 3. Name the client and add PopMCP's redirect URI Enter a Client Name such as `PopMCP` and any Homepage URL, for example `https://app.popmcp.com`. Paste `https://app.popmcp.com/api/providers/zoho-crm/callback` into Authorized Redirect URI, then click Create. Screen: https://api-console.zoho.com/ #### 4. Copy the Client ID and Client Secret Open the Client Secret tab and copy Client ID (it starts with `1000.`) and Client Secret. You only need the Settings tab if people in other data centers will sign in through this client: there you can turn on Multi-DC and tick their data centers. Screen: https://api-console.zoho.com/ #### 5. Paste both values into PopMCP and sign in with Zoho In PopMCP, paste the values into Client ID and Client secret. Only if you created the client outside zoho.com, open More options and type that data center into Zoho data center, for example `EU`, `IN` or `AU`. Click Sign in with Zoho, choose the CRM organization if Zoho asks, and accept the permissions. ### Fields PopMCP asks for - Auth type (connectionType): Create it at api-console.zoho.com → Add Client → "Server-based Applications". The sign-in itself happens on Zoho. - Client ID (clientId) [required]: The "Client ID" on your app's Client Secret tab. - Client secret (clientSecret) [required]: The "Client Secret" on the same tab. Stored encrypted and used only on the server. - Zoho data center (dataCenter): Only when your own app was made outside zoho.com: the data center its console is in, e.g. EU (zoho.eu), IN, AU, JP, CA, SA, UK or CN. One of: US, EU, IN, AU, JP, CA, SA, UK, AE, SG, CN. ### Callback URL to register https://app.popmcp.com/api/providers/zoho-crm/callback ### Scopes requested - ZohoCRM.modules.READ - ZohoCRM.modules.emails.READ - ZohoCRM.settings.READ - ZohoCRM.users.READ - ZohoCRM.org.READ - ZohoCRM.coql.READ - ZohoCRM.bulk.READ - ZohoCRM.bulk.backup.READ - ZohoCRM.notifications.READ - ZohoCRM.files.READ - ZohoFiles.files.READ - ZohoCRM.templates.email.READ - ZohoCRM.templates.inventory.READ - ZohoCRM.mass_update.READ - ZohoCRM.mass_delete.READ - ZohoCRM.mass_convert.leads.READ - ZohoCRM.change_owner.READ - ZohoCRM.apis.READ - ZohoCRM.features.READ - ZohoCRM.zia.enrichment.READ - ZohoCRM.modules.ALL - ZohoCRM.settings.ALL - ZohoCRM.users.ALL - ZohoCRM.org.ALL - ZohoCRM.bulk.CREATE - ZohoCRM.bulk.backup.ALL - ZohoCRM.notifications.ALL - ZohoCRM.send_mail.all.CREATE - ZohoCRM.files.CREATE - ZohoFiles.files.ALL - ZohoCRM.mass_update.UPDATE - ZohoCRM.mass_delete.DELETE - ZohoCRM.mass_convert.leads.CREATE - ZohoCRM.change_owner.CREATE - ZohoCRM.composite_requests.CUSTOM - ZohoCRM.zia.enrichment.CREATE - ZohoCRM.zia.enrichment.UPDATE - ZohoCRM.zia.enrichment.DELETE ### Verify PopMCP shows Zoho CRM as Connected under your organization's company name, and zoho_crm_get_organization returns that org with its time zone and currency while zoho_crm_get_modules lists your modules' API names. ### Troubleshooting #### "Zoho did not accept the Client ID and Client secret for the United States data center" Cause: The client was created in another data center's console, such as api-console.zoho.eu, while **Zoho data center** was left empty, or one of the values was mistyped. Fix: Type that data center (EU, IN, AU, JP, CA, SA, UK, AE, SG or CN) into **Zoho data center** under **More options**, or turn on Multi-DC on the client's **Settings** tab. Recopy both values from the **Client Secret** tab. #### "Zoho rejected the redirect URI" Cause: The client's **Authorized Redirect URI** does not exactly match PopMCP's callback. Fix: Open the client in the API Console, correct **Authorized Redirect URI** on the **Client Details** tab to `https://app.popmcp.com/api/providers/zoho-crm/callback`, save, and connect again. #### "The Zoho sign-in expired before it could be completed" Cause: Zoho's authorization codes last about two minutes, and the consent screen was left open too long. Fix: Click **Sign in with Zoho** again and accept the consent screen without waiting. #### "Your Zoho CRM profile is not allowed to use the API" Cause: Zoho answered NO_PERMISSION: the signed-in user's profile does not include API access. Fix: Ask a Zoho CRM administrator to turn on Zoho CRM API Access for your profile under Setup, Security Control, Profiles, or connect as a user whose profile has it. #### "Zoho signed you in but did not grant access to your Zoho CRM organization" Cause: Zoho answered OAUTH_SCOPE_MISMATCH: the permissions were not all accepted, or the Zoho account has no CRM organization. Fix: Connect again and accept every permission on Zoho's consent screen. Make sure the Zoho user you sign in with belongs to a Zoho CRM organization. #### A working connection stops with "Zoho no longer accepts this connection's authorization" Cause: The refresh token was revoked, the user's password changed, or more than 20 connections were made for the same Zoho user and client, which makes Zoho retire the oldest. Fix: Disconnect and reconnect Zoho CRM. Avoid reconnecting the same user many times with one client. #### LIMIT_EXCEEDED or TOO_MANY_REQUESTS Cause: The organization used up its rolling 24-hour API credits or hit its edition's concurrency limit. Record counts, bulk reads and email sends cost more credits than plain reads. Fix: Wait and retry, split large jobs, and use a bulk read job instead of paging through thousands of records. --- ## Zoom URL: https://www.docs.popmcp.com/docs/integrations/zoom/ Summary: Connect Zoom to schedule and update meetings and webinars, manage registrants, read recordings, transcripts and AI summaries, and post to Team Chat. You copy the Account ID, Client ID and Client secret of a Server-to-Server OAuth app that you create and activate in the Zoom App Marketplace. There is no redirect URL, no sign-in screen and nothing to renew. - Auth: API credentials - Setup time: 5 min - API base URL: https://api.zoom.us/v2 - Credentials screen: https://marketplace.zoom.us/ - Provider docs: https://developers.zoom.us/docs/internal-apps/create/ ### Before you begin - A Zoom account. Reports, cloud recordings, transcripts and AI Companion summaries need a paid Zoom plan, and Phone, Rooms and Contact Center need their own licenses. - The account owner or an admin, or a role with View and Edit ticked for Server-to-Server OAuth app (Zoom web portal: User Management, Roles, Role Settings, Advanced features). - Admin rights for the admin scopes, which reach every user's meetings, recordings and chats, plus reports and account settings. Without them only the app owner's own data is reachable. ### Get your credentials #### 1. Open Created Apps Sign in at marketplace.zoom.us with the Zoom account you want to connect, then click Developers in the lower left corner to open Created Apps. If the page does not open, ask an admin to give your role the Server-to-Server OAuth app permission. Screen: https://marketplace.zoom.us/ #### 2. Build a Server-to-Server OAuth app Next to Developer in the upper left corner, click the plus sign in the blue circle and choose Build an app. Select Server-to-Server OAuth app and click Create. Screen: https://developers.zoom.us/docs/internal-apps/create/ #### 3. Copy the three credentials The new app opens on App Credentials. Copy the Account ID, Client ID and Client secret (click the eye icon to reveal it) into PopMCP's Zoom form. This Account ID is not the account number on your Zoom profile. Screen: https://developers.zoom.us/docs/internal-apps/create/ #### 4. Fill in the Information page Open Information. Add a short description and your company name, then fill in the developer contact Name and Email address. Zoom will not activate the app without them. Screen: https://developers.zoom.us/docs/internal-apps/create/ #### 5. Add the scopes Skip Feature (PopMCP needs no event subscription). Open Scopes, click Add Scopes, and tick what the AI should reach: Meeting, Webinar, Cloud Recording, User and Team Chat cover the everyday work. Scopes ending in `:admin` reach every user in the account. For a read-only connection add only the scopes whose description starts with View. Screen: https://developers.zoom.us/docs/integrations/oauth-scopes-overview/ #### 6. Activate the app Open Activation and click Activate your app. If Zoom lists something missing, fix it first. A deactivated app stops every token at once. Screen: https://developers.zoom.us/docs/internal-apps/create/ #### 7. Connect in PopMCP Paste the three values into PopMCP's Zoom form and click Connect. PopMCP gets an hour-long token from Zoom whenever it needs one, so nothing expires on you, and scopes you add later work on the next call with no reconnect. Screen: https://developers.zoom.us/docs/internal-apps/s2s-oauth/ ### Fields PopMCP asks for - Account ID (accountId) [required]: From a Server-to-Server OAuth app in the Zoom App Marketplace: sign in at marketplace.zoom.us, click Developers (lower left), then the plus sign and Build an app, choose Server-to-Server OAuth app and Create. All three values are on its App Credentials page. - Client ID (clientId) [required]: On the same App Credentials page, under Client ID. - Client secret (clientSecret) [required]: On the same page (click to reveal). Stored encrypted; PopMCP uses it only to get hour-long access tokens from Zoom. ### Verify PopMCP shows Zoom as Connected with the app owner's name and email (or Zoom account and the Account ID when the app has no user scope), and zoom_get_user returns that person. ### Troubleshooting #### "That looks like the account number from your Zoom profile" Cause: The digits-only account number from your Zoom profile went into the Account ID field. Fix: Copy the Account ID from the app's **App Credentials** page instead: letters and numbers, about 22 characters. #### "Zoom says this Server-to-Server OAuth app is not active" Cause: The app was never activated, or someone deactivated it. Fix: Fill in the developer name and email on **Information**, then open **Activation** and click **Activate your app**. #### "These credentials are not from a Server-to-Server OAuth app" Cause: The Client ID and secret belong to a General app, which needs a sign-in and cannot connect with an Account ID. Fix: Build a **Server-to-Server OAuth app** and copy its three values. #### "Zoom did not accept the Account ID for this app" or "Zoom did not accept these app credentials" Cause: A value was mistyped, came from a different app, or the secret was regenerated after you copied it. Fix: Copy all three values again from the same app's **App Credentials** page, regenerating the secret if unsure. #### "Zoom refused because the connection's token lacks a permission" Cause: The app does not hold the scope that call needs. The message names it. Fix: Add the scope on the app's **Scopes** page and run the request again. The next call gets a fresh token that includes it, with no reconnect. #### "Zoom refused this for the account behind the Server-to-Server OAuth app" Cause: The Zoom plan lacks the feature (many reports, recordings and webinars need a paid plan or add-on), the feature is switched off in account settings, or the app owner's role lacks the permission. Fix: Check the plan and the setting in the Zoom web portal (for example cloud recording, audio transcript or AI Companion), or have an admin own the app. #### "Zoom's rate limit for this Zoom account was reached" Cause: Zoom limits requests per account, shared by every app installed on it, and each host can create or update 100 meetings or webinars a day. Fix: Per-second limits clear in a moment, so retry after a short pause. Daily limits reset at 00:00 UTC. ---