Activity Messenger Help Center

Connect an AI assistant with MCP

Activity Messenger supports Model Context Protocol (MCP), which lets a compatible external AI client discover and use your organization's permitted AM actions. You can look up information, work with reports, prepare changes and continue supported tasks in AM. A full-access MCP connection can apply prepared changes directly. The ordinary AM assistant interface still requires its native approval.

OpenAI directory connection

Important

Activity Messenger is not yet publicly available in OpenAI’s directory. You can connect its read-only OAuth endpoint through ChatGPT’s Add custom MCP server flow using the settings below. A custom connection is separate from directory publication and review. The manual Bearer connection described later remains a separate option for compatible clients.

Supported information and limits

The OpenAI connector is designed for an existing Activity Messenger account and one organization selected during connection. It can read:

  • Classes: find activities and consult schedules, capacity, prices and age settings.
  • Forms: find forms and read their displayed content, questions, options and required fields.
  • Newsletter drafts: find and summarize existing draft content.
  • Website pages: list pages and read their supported section content.
  • Products: find products and consult descriptions, prices, variants and inventory.

This connection is read-only. It cannot create or edit records, publish pages, send or schedule messages, enroll participants, process payments, read submitted form answers or participant profiles, or run the full MCP catalogue’s reports and editor workflows. Access follows your current AM permissions; connecting does not grant another role or access to another organization.

For example, you can ask it to summarize a class schedule, list the questions on a registration form or summarize an existing newsletter draft. A request to send that newsletter is outside this connector’s scope.

See the OpenAI connector tools in the MCP catalogue for the registered operations and their inputs. The broader module catalogue on that page describes the separate Bearer integration.

Add a custom MCP server in ChatGPT

You need an active, confirmed AM account with assistant access to the organization, and access to ChatGPT’s custom MCP server feature.

  1. In ChatGPT, open Plugins, select Add, then Add custom MCP server.

  2. Enter a name, such as Activity Messenger, and set Server URL to https://activitymessenger.com/api/mcp/openai.

  3. Select OAuth under Authentication, then open Advanced OAuth settings. Let ChatGPT discover the authorization and token endpoints.

  4. Configure the OAuth client with these public settings:

    • Registration method: User-Defined OAuth Client.
    • OAuth client ID: activitymessenger-openai.
    • OAuth client secret: leave blank.
    • Token endpoint auth method: none.
    • Default scopes: select am:read.
  5. Confirm that Callback URL is https://chatgpt.com/connector_platform_oauth_redirect. Do not enter your AM password as a client secret. The server requires PKCE with S256; ChatGPT handles this during authorization.

  6. Review the connection warning, select I understand and want to continue, then Create as a plugin and Connect. Continue with the AM account consent steps below.

The server URL, client ID and scope are public configuration values, not secrets. Do not use /api/mcp/organization/<organization-id> for this OAuth flow: that separate endpoint requires an operator-issued Bearer token. Choose the organization on AM’s consent page instead of adding its ID to the OAuth URL.

Try the connection in a conversation

After installing and connecting the plugin, start a new ChatGPT conversation. Type @ in the prompt box and select Activity Messenger. Ask Use Activity Messenger to list my forms. Check that the returned content belongs to the organization selected during consent. An empty result can mean there are no matching forms or your AM permissions do not allow access.

Asking ChatGPT to connect in a message does not replace installing the plugin and completing OAuth. A connection already installed in Codex does not establish that it is installed in ChatGPT.

Test with colleagues

Each colleague needs access to the plugin in their own ChatGPT account or workspace. Your installation does not install it for another person. Before public directory publication, colleagues can use the custom MCP setup above where their workspace policy permits, or ask their ChatGPT workspace administrator about plugin availability and installation permissions. Use ChatGPT on the web for this setup; workspace security restrictions, including Lockdown, may prevent it.

Each tester signs in with their own AM account and chooses their organization during consent. Do not share passwords or tokens. Begin with a supported read request and select Activity Messenger explicitly with @. Enabling the AM connector does not publish a directory listing or make it available automatically to colleagues.

Account connection and disconnection

After starting the custom connection, or when an Activity Messenger directory connection is available to you:

  1. Start the Activity Messenger account connection from the compatible OpenAI client and sign in with your existing AM account.
  2. On Connect Activity Messenger to OpenAI, review the requested read access.
  3. Choose the Organization you want to connect, then select Allow read access. Select Cancel to refuse the connection.
  4. Ask for information from that organization. Connect separately to add another organization.

This OAuth connection does not require an operator-issued MCP secret. Do not paste a password or token into a conversation, and do not reuse a manual MCP token in place of the account connection.

An authorized connection lasts up to 30 days. Its short-lived access token is refreshed automatically within that period; expired or disconnected connections require reconnection. Removing AM access or permissions also affects the connected tools.

To revoke a connection while the connector is available, open OpenAI connections at /mcp/connections in AM and select Disconnect for the organization. Disconnection revokes that connection’s access and prevents future token refresh. This page is unavailable while the connector is disabled.

OpenAI connection troubleshooting

  • No custom MCP option or installation is blocked: check your current ChatGPT account/workspace and ask its administrator about custom-plugin permissions and security policies.
  • HTTP 405 when opening the server URL in a browser: the MCP endpoint accepts POST; opening it in a browser sends GET, so this response is expected. Enter the URL in the MCP settings instead. For browser-readable discovery, open the OAuth resource metadata, which should return JSON. A 405 from the MCP client during connection still needs investigation.
  • Discovery returns HTTP 404: ask AM support to check connector availability and routing. Working JSON discovery confirms that the endpoint is available; it does not prove that OAuth or a tool call has succeeded.
  • Invalid client or callback error: confirm the client ID above, blank client secret and User-Defined OAuth Client registration method. If ChatGPT displays a different callback URL, send that public configuration value to AM support so they can check its exact registration. Automatic client registration is not supported; do not replace the callback with a wildcard.
  • Connected, but ChatGPT does not use an AM tool: confirm the plugin is installed, select it with @ in the conversation and make a specific supported request. Check enabled tools and refresh the plugin’s tool list in its settings.
  • Activity Messenger or its connection page is unavailable: public activation/review may still be pending. A deployed code update does not make a directory listing available. Contact Activity Messenger support about availability.
  • A tool or record is missing: verify the connected organization and your current AM permissions. The OpenAI connector exposes a selected read-only subset, even if you also have a full-catalogue manual MCP connection.
  • Access expires or is revoked: reconnect through the account connection flow. A manual Bearer secret cannot replace the OAuth connection.
  • A result is truncated or too large: narrow the search or date filters and read the returned limits. Do not assume omitted information was included.
  • You need to send, publish, edit or process a payment: perform that task in AM or use a separately authorized supported workflow. This read-only connection cannot perform it.

When contacting support, include the step, exact error text and time, and say whether the failure occurred before AM login, during consent, on return to ChatGPT or during a tool call. Do not share passwords, tokens, authorization codes or full callback URLs containing codes.

Claude connection (claude.ai and Claude Desktop)

Claude can connect to your Activity Messenger organization with your own AM account, using the same OAuth account connection as the OpenAI connector. No operator-issued secret or token is needed. This is separate from the Bearer connection described later.

What Claude can do

By default the connection is read-only. Claude can read:

  • Classes: find activities and consult schedules, capacity, prices and age settings.
  • Forms: find forms and read their displayed content, questions, options and required fields.
  • Newsletter drafts: find and summarize existing drafts.
  • Website pages: list pages and read their supported section content.
  • Products: find products and consult descriptions, prices, variants and inventory.
  • Connected organization: confirm which organization and account the connection uses.

It cannot read form answers, participants, payments or reports. During consent you can also choose, explicitly, to allow draft authoring: creating and editing newsletter drafts and creating closed forms from templates. Even then it cannot send or schedule messages, publish pages, open forms, charge or enroll anyone, and a change is saved only after you confirm it in the Claude conversation. Access always follows your current AM permissions.

Add the connector in Claude

You need an active, confirmed AM account with assistant access to the organization, and a Claude plan that supports custom connectors. Activity Messenger must have the Claude connection enabled; if the steps below fail early, contact Activity Messenger support.

  1. In claude.ai, open Settings, then Connectors, and select Add custom connector. In Claude Desktop, open the same Connectors settings. On Team and Enterprise plans, an organization owner may need to add the connector first.

  2. Enter a name, for example Activity Messenger, and this URL:

    https://activitymessenger.com/api/mcp/claude
    
  3. Open Advanced settings. Enter activitymessenger-claude as the OAuth Client ID and leave the OAuth Client Secret empty. Activity Messenger does not use dynamic client registration, so the client ID is required.

  4. Select Add, then Connect on the new connector.

  5. Sign in to Activity Messenger if asked. On Connect Activity Messenger to Claude, choose the Organization to connect.

  6. Leave Also allow creating and editing drafts unchecked to stay read-only, or check it to allow draft authoring. Select Allow selected access (or Allow read access), or Cancel to refuse.

  7. Back in Claude, enable the connector for your conversation and ask for information from that organization. Connect again to add another organization.

The URL and client ID are public settings, not secrets. Never paste a password or token into a conversation or into the client secret field. The callback addresses Claude uses are https://claude.ai/api/mcp/auth_callback and https://claude.com/api/mcp/auth_callback; you do not need to enter them.

Permissions, duration and disconnection

A connection lasts up to 30 days and refreshes automatically in that period; after that, reconnect. An existing read-only connection never gains write access when it refreshes: to allow draft authoring, disconnect and reconnect with the option checked.

To disconnect, open /mcp/connections in Activity Messenger and select Disconnect for the organization. This revokes access and stops future refreshes. You can also remove the connector in Claude's Connectors settings, but revoking in AM is what ends the access.

Claude connection troubleshooting

  • The connection fails before the sign-in page appears: check that the URL is exactly https://activitymessenger.com/api/mcp/claude, that the client ID is activitymessenger-claude and that the client secret is empty. If it still fails, Activity Messenger may not have the Claude connection enabled; contact support.

  • The consent page shows an error: start the connection again from Claude rather than reloading an old consent page, because each attempt is single-use and short-lived. Confirm that you are signed in to the AM account you intend and that you chose an organization you can access.

  • A tool or record is missing: check the connected organization and your current AM permissions. This connection exposes a selected subset, not the full MCP catalogue.

  • Claude cannot edit or create anything: the connection is read-only unless you checked the draft-authoring option. Reconnect with it checked.

  • Access stopped working: the connection may have expired after 30 days or been disconnected. Reconnect.

  • You need the full catalogue (reports, changes, editors): use the Bearer connection below. Claude Code can use it from the command line by adding the server with the Bearer header:

    claude mcp add --transport http activity-messenger https://activitymessenger.com/api/mcp/organization/<organization-id> --header "Authorization: Bearer <mcp-token>"
    

    Keep the token out of the URL, shared scripts and conversations.

The remaining sections describe the manual, organization-specific Bearer connection and its supported read-only or full-catalogue credentials.

Before connecting

You need:

  • A remote MCP client that supports Streamable HTTP and a custom Bearer token.
  • An active, confirmed AM user with permission to use the assistant in the organization.
  • An MCP token for that user and organization. Account owners and organization owners can create their own tokens from organization settings.

AM hosts MCP within its existing application. You do not need to install a separate MCP server. Clients that sign in with OAuth (ChatGPT, claude.ai) use the OAuth connections above instead of this Bearer-token integration.

Deploying MCP does not create a token or connect a client automatically. Choose the appropriate scope when creating a token:

  • Read-only: supported information lookups without conversation or change-workflow tools.
  • Full catalogue: all currently permitted catalogue actions and their conversation, preparation, review and workspace tools. Select Allow changes when creating this token.

A full-catalogue token does not grant additional AM roles. The user's current organization and module permissions remain authoritative. Existing read-only tokens are not automatically upgraded.

Create a manual MCP token

  1. As an account owner or organization owner, open Organization settings → Web & integrations → API keys / MCP tokens. Other roles cannot manage credentials on this page.
  2. Click Add a key / token to open the modal and choose MCP token as the Credential type.
  3. Enter a descriptive Name and a Validity in days from 1 to 90 (30 by default).
  4. Leave Allow changes unchecked for read-only access. Select it only when the client needs the full catalogue and permission to apply prepared changes without a separate approval in AM. It never grants permissions beyond your current AM permissions.
  5. Click Add a key / token. Copy the secret into your client’s protected credential storage before closing the modal: MCP tokens are shown only once.

The token acts as the owner who creates it, within the selected organization and that user’s current permissions. Partner-network access is an API-key option and does not apply to MCP tokens. If MCP is disabled on the server, you can still review and revoke existing tokens, but cannot create new ones.

An MCP token is different from an API key. “Bearer” is the authorization format used to send the MCP token, not another name for the organization API key. API keys can be shown again by owners; MCP secrets cannot. See API key management.

Configure the connection

  1. Add a remote MCP server in your compatible client.

  2. Select Streamable HTTP and enter this server URL, replacing the organization placeholder with the ID associated with your token:

    https://activitymessenger.com/api/mcp/organization/<organization-id>
    
  3. Store the issued secret in the client's protected Bearer authorization setting. If the client uses a custom header, use Authorization: Bearer <mcp-token>.

  4. Connect and let the client initialize MCP and discover its tools. Clients managing headers directly should send Content-Type: application/json and accept application/json, text/event-stream.

Never include the secret in the URL or paste it into an ordinary conversation. Each connection is scoped to one organization and user. Use a separate connection for another organization.

Tokens are valid for 1–90 days, with 30 days by default. The secret is displayed once when issued. To revoke one, an account owner or organization owner opens API keys / MCP tokens, selects MCP token, finds the named token and clicks Revoke, then confirms. Revocation cannot be undone; expiry or revocation also prevents its pending native approvals and execution from continuing. Create a replacement if the secret is lost or the token expires. OAuth connections remain managed separately at /mcp/connections.

Discover what the client can do

The client discovers tools using tools/list. It must follow nextCursor until there are no more pages; the first page alone is not the complete list. Pages contain 15 tools by default and up to 50 when requested.

With a full-catalogue token, use discover_application_actions to find actions and get_application_action to inspect the selected action's exact inputs. The available tools depend on the user's current permissions.

“Full catalogue” means all currently registered and permitted actions, including tasks performed through native AM editors. Several actions may share one MCP tool. It does not mean every AM feature has a dedicated server-side change tool, or that editor tasks can finish without AM open.

Browse the complete action and tool catalogue for registered capabilities grouped by module, including tool names, required inputs, credential scope and review requirements.

Prepare and review a change

A typical workflow is:

  1. The client calls start_mcp_session with your request. AM returns conversation and run IDs, an am_url review link and an upload URL.
  2. The client discovers the intended action, checks its input contract and prepares the proposal using the native preparation tool or prepare_application_action.
  3. The client calls apply_assistant_draft for the exact prepared proposal. The full-access MCP credential applies it directly through the native save workflow, without a separate AM approval.
  4. Open am_url and sign in as the token’s user to inspect the conversation, prepared proposal and result. The token does not sign the browser in.
  5. The client checks get_mcp_session for the current state and completion receipt. A queued or pending response is not evidence that the change completed.

For example, when creating a class and then its reminder, check that class creation completed first. The client then uses the actual returned record IDs to prepare and apply the reminder.

A prepared proposal alone does not complete a change. Each MCP conversation belongs to the exact token, user and organization; a different token for the same user cannot reuse it.

An active external turn blocks another native chat turn. Use close_mcp_turn to finish an idle external turn, then begin_mcp_turn for the next request. Active approvals and running tools must finish through their own workflow.

Website Builder and branding

Read the Website Builder and branding MCP guide for native tables, page history and layout editing, section visibility, general section settings, and website configuration or organization branding imports.

Editor tasks, files and reports

Some catalogue actions hand off to AM's native browser workspace through request_application_task. Open the returned AM link and keep the page open. A browser_required response means the task needs this handoff, not that it has completed. Current permissions and native confirmation rules still apply.

For files, the client uploads the actual file to the returned upload_url, using the same Bearer token and multipart field file. Supported types are JPG/JPEG/PNG/GIF/WebP, PDF and XLS/XLSX, up to 10 MiB per file. Uploads are private and conversation-bound. Attach the returned file token to the next message using begin_mcp_turn; upload alone does not attach or use the file. Remote URLs and server paths are not file inputs.

Reports can return stored result IDs for later chart inputs. Large contextual results provide a tool_result_id; the client can retrieve them with read_mcp_result and follow next_offset without rerunning the action.

Troubleshooting

  • Some tools are missing: finish tool-list pagination, check the token's scope and confirm the user's current module permissions. Conversation and action-discovery tools require a full-catalogue token.
  • The connection returns HTTP 401: check the secret, organization ID, expiry/revocation and whether the user remains active and confirmed. HTTP 403 can indicate permissions, a disallowed browser origin or a connection without HTTPS.
  • A proposal stays pending: call apply_assistant_draft with its exact draft ID and conversation context, then check its saved status and receipt. Replaying an earlier call returns its original result; a queued or pending state is not completion.
  • A browser task waits: keep the AM review page open so its native workspace can operate.
  • A request is interrupted: contextual calls use an am_call_id. Retry with the same ID and identical arguments. Do not invent a new ID to bypass an uncertain change. Replayed calls preserve their original stored result; check the conversation for later decisions and receipts.
  • A result is too large: narrow the native filters or pagination, or read the stored result when an ID is returned. Standalone oversized reads do not have a stored conversation result.

JSON requests are limited to 64 KiB for read-only tokens and 2 MiB for full-catalogue tokens. MCP permits 60 requests per minute per IP and, by default, per token; uploads have an additional 20-per-minute IP limit. HTTP 429 includes Retry-After. Dates follow the native action's organization-timezone rules.