How to connect Photon with ChatGPT

Connect ChatGPT to Photon MCP. List recent conversations in your photon project, create a webhook for new photon conversations, and more using natural language, with authentication handled for you.

Photon MCP logoPhoton MCP
Dcr Oauth

Photon MCP is a hosted messaging service for managing projects, conversations, resources, voice profiles, and webhooks. It gives teams a simple way to organize messaging data and automate communication workflows.

126 Tools

How to connect Photon MCP with ChatGPT

ChatGPT can take action across your apps and files, stay with a project for hours, and turn a goal into finished materials like sheets, slides, and docs, not just answers.

In this guide, I will explain the easiest and most secure way to connect your Photon account to ChatGPT via Composio Connect, so it can manage projects, browse resources, search conversations, configure voice profiles, and manage webhooks through natural language commands without ever putting your account credentials at risk.

Also integrate Photon MCP with

Why use Composio over default connectors?

  • Apps with read and write access. Default connectors mostly can read your data. Composio's Photon integration lets ChatGPT take actions like creating drafts, sending updates, labeling records, and more.
  • 1,500+ SaaS toolkits out of the box. Composio gives you instant access to a vast catalog of pre-built connectors, from Gmail and Slack to Notion, Linear, and Salesforce.
  • One MCP server for every app. Connect any of your applications on demand through a single endpoint, rather than juggling a separate server for each app.
  • Smart, context-aware tool loading. Unlike traditional MCP servers that dump every available tool into the LLM context window, Composio searches for and loads only the tools relevant to the task at hand.
  • Cross-app automation. Chain actions across multiple apps in a single run - fetch a thread, summarize it in Notion, and post highlights to Slack without leaving the conversation.

Prerequisites

Note: Composio connects through OAuth. You will be asked to sign in and approve specific permissions. Review the permission screen carefully if you are using a work account.

Step-by-step: Connect Photon to ChatGPT

1. Install the Composio plugin

Click the button. ChatGPT opens the Composio plugin page. Click Install plugin.

Install in ChatGPT

Composio plugin page in ChatGPT with the Install plugin button

You can also find it inside ChatGPT: go to Settings, open Plugins, search the marketplace for Composio, and click Install plugin.

2. Authenticate

After you install, ChatGPT asks you to authenticate with Composio. Log in and click Allow access to authorize ChatGPT to use your Composio account.

Composio login and Allow access screen for ChatGPT

3. Start using Composio

That is it. Composio tools are now available in ChatGPT. Type @Composio followed by your request, for example @Composio find unread Photon messages and summarize them, and it will run the actions you authorize. On first use it asks you to authorize Photon.

Option 2: Add Composio as an MCP server

If you cannot use the plugin marketplace, add Composio as a custom MCP server instead.

1. Open the MCP settings

In ChatGPT, go to Settings and open the Plugins section. Inside the Plugins page, click the MCP tab.

ChatGPT settings showing the Plugins page with the MCP tab selected

2. Add the server

Click Add server. In the Name field enter Composio, for Type select Streamable HTTP, and in the URL field paste the Composio MCP server URL:

bash
https://connect.composio.dev/mcp
ChatGPT Add server dialog with the name Composio, type Streamable HTTP, and the Composio MCP URL

Then click Save. The Composio server now appears in your MCP plugins list.

ChatGPT Plugins page showing the Composio MCP server added to the list

3. Authenticate

Click Authenticate on the Composio entry, log in via Composio, and click Allow access. Composio tools are then available in ChatGPT the same way as with the plugin.

What you can do after connecting Photon

  • List recent conversations in your Photon project
  • Create a webhook for new Photon conversations
  • Update the voice profile for customer support

Security + privacy notes (important)

  • Use least-privilege access: Only grant permissions you actually need.
  • Review OAuth permissions before approving: Make sure requested scopes match what you expect Composio and ChatGPT to do.
  • Keep write actions human-reviewed: For actions like sending messages, creating labels, or editing drafts, keep manual confirmation enabled.
  • Be careful with sensitive data: Avoid using this setup with highly sensitive information unless allowed by your personal, company, or client policies.
TOOLS

Supported Tools

Every Photon MCP action and event your agent gets out of the box.

Assignsmslinecampaign

Assign or replace SMS line campaign Attach a ready campaign from this project’s organization to its line.

Assignvoicelineprofile

Assign Voice line profile Assigns or replaces a line's explicit additional-profile override when the resource version matches.

Batchupdatevoicelineprofileassignments

Batch update Voice line assignments Atomically sets additional-profile overrides or switches lines back to the project default for up to 100 Voice-capable lines.

Begintotpenrollment

Begin TOTP enrollment Requires a first-party interactive Account credential authenticated no more than 300 seconds ago.

Canceloperation

Cancel operation Withdraws a provision that has not been fulfilled yet.

Checkprojectslugavailability

Check project slug availability Reports whether createProject would accept `slug` right now.

Commitaccountprofilepicture

Commit profile picture Commits a profile picture previously uploaded through createAccountProfilePictureUpload.

Commitagentprofileavatar

Commit agent avatar Commits an agent avatar previously uploaded through createAgentProfileAvatarUpload.

Connectemaildomain

Connect email domain Reserves a normalized DNS domain and starts its durable email-provider setup.

Connecttelegrambot

Connect Telegram bot Starts a free managed Telegram bot connection.

Countfilteredverificationcodes

Count filtered verification codes Counts the verification codes Photon kept from this project's dedicated lines and numbers, optionally for one `platform`.

Countmessages

Count Messages Counts matching Messages before pagination.

Countprojects

Count projects Counts the projects the same filter would list.

Countresourcefilteredverificationcodes

Count a line's filtered verification codes Counts the verification codes Photon kept from one dedicated line or number.

Countspaces

Count Spaces Counts distinct Spaces matching the list filters; multiple matching Messages count once.

Countusers

Count Users Counts distinct Users matching the list filters, including incoming senders or outgoing recipients selected by Message filters.

Createaccountprofilepictureupload

Create profile picture upload Creates a ten-minute, Account-bound presigned S3 POST for a JPEG, PNG, or WebP profile picture up to 5 MiB.

Createagentprofileavatarupload

Create agent avatar upload Creates a ten-minute, Project-bound presigned S3 POST for a JPEG, PNG, or WebP agent avatar up to 5 MiB.

Createdefaultvoiceprofile

Create default Voice profile Creates the project default Voice profile when absent.

Createorgetspace

Create or get a Space Creates or returns a project Space.

Createorgetuser

Create or get a User Creates or reconciles a User by normalized handle.

Createproject

Create project Creates in the authorized organization.

Createsharedlineassignment

Create shared line assignment Maps an end user's iMessage handle — an E.

Createvoiceprofile

Create Voice profile Creates a direction-neutral additional Voice profile.

Createwhatsappsharedlineassignment

Create WhatsApp shared line assignment Maps an end user's phone number onto one of the project's pooled shared WhatsApp lines, consuming a seat from the project's WhatsApp entitlement.

Createwhatsappvoipsender

Create WhatsApp VoIP sender Registers an active, SMS-capable Photon VoIP line on this project's connected WhatsApp Business Account.

Deleteaccount

Delete account Deletes the authenticated account and returns its account tombstone.

Deleteproject

Delete project Starts deletion of the identified project using a credential authorized for project management.

Deletetotpfactor

Delete a TOTP factor Requires a first-party interactive Account credential authenticated no more than 300 seconds ago.

Deletevoiceprofile

Delete Voice profile Deletes an additional profile when expectedVersion matches.

Deletevoiceprofileinbound

Delete Voice inbound configuration Removes a profile's inbound destination when the shared profile version matches.

Deletevoiceprofileoutbound

Revoke Voice outbound credential Revokes outbound calling for a profile when the shared profile version matches.

Deletewebhookdestination

Delete webhook destination Deletes the selected project's destination and returns its stable tombstone.

Disconnectwhatsappbusinessaccount

Disconnect WhatsApp Business account Disconnects every attached WhatsApp sender, then unsubscribes our app and removes the project's business account connection.

Getaccount

Get account Returns the profile of the authenticated account.

Getagentprofile

Get agent profile Returns the agent profile belonging to the identified project.

Getattachment

Get attachment Returns an Attachment's metadata.

Getbillingoperation

Get billing operation Returns the authoritative state of a billing operation belonging to the selected project.

Getbillingoverview

Get project billing overview Returns the selected project's plan information, entitlements and current billing-period usage.

Getcurrentorganization

Read the credential's organization Reads the organization the credential is bound to: the organization an OAuth grant was consented for, or a Service Identity's own organization.

Getdefaultvoiceprofile

Get default Voice profile Gets the profile currently selected as the project default, including its optional inbound delivery state.

Geteffectiveterms

Get the project's effective billing terms Returns what the selected project is billed on now, per category it holds: the plan as its subscription has it, with any override applied, each fixed charge at the subscription's price and quantity, and resolved entitlements; where the plan comes from; how invoices are paid; the current period and next billing date; and any downgrade or cancellation waiting for the period end.

Getemaildeliverymetrics

Get email delivery metrics Reads cached supplementary email series for the exact Project and rolling day or week.

Getemailsendingpolicies

Get email sending policies Reads Organization email recipient allowances shared across all its Projects, with rolling 60-second and 24-hour windows.

Getmessage

Get a Message Returns one stored Message by canonical Photon Message ID on any supported contract platform.

Getmessagemetricsbackfill

Get metrics backfill status Returns historical metrics update progress.

Getmessagemetricssqlschema

Get metrics SQL schema Returns the message_events and call_events SQL schema, supported queries, and limits for the selected API version.

Getmfastatus

Get MFA status Requires a first-party interactive Account credential.

Getoperation

Get operation Reads one operation using the same operation representation as creation and list.

Getorganizationbillingoverview

Get organization billing overview Returns the selected organization’s billing subscription and entitlementsVersion.

Getorganizationcredit

Get organization credit Returns the credit the selected organization holds: on credit notes, such as the unused time of a plan an upgrade replaced or the unused days of a prorated fixed charge it released, and in its wallet: the credit Photon granted it, such as a new account's first organization's welcome credit, and any prepaid credit it bought.

Getorganizationpaymentmethod

Get organization payment method Reports whether the selected organization has a card on file and returns its documented payment-method metadata.

Getorganizationterms

Get the organization's effective billing terms Returns what the selected organization is billed on now on its own subscription, such as SSO and 10DLC campaigns: the plan as the subscription has it, with any override applied, each fixed charge at the subscription's price and the quantity the organization holds, and resolved entitlements; where the plan comes from; how invoices are paid; the current period and next billing date; and any downgrade or cancellation waiting for the period end.

Getproject

Get project Returns the identified project's settings for an authorized caller.

Getprojectclosurestatus

Get project closure status Returns closure progress for projectId within organizationId, including deletionOperationId, domain progress and ready.

Getprojectimessageplatform

Get project iMessage platform Reports whether the project is on shared or dedicated iMessage lines, derived from its billing entitlements.

Getprojectwhatsappplatform

Get project WhatsApp platform Reports whether the project is on shared or dedicated WhatsApp lines, derived from its billing entitlements.

Getresource

Get resource Reads one resource the project holds.

Getsharedlineassignment

Get shared line assignment Reads one shared line assignment.

Getsmslinecampaignassignment

Get SMS line campaign assignment Read the last confirmed campaign and current eligibility.

Getspace

Get a Space Returns one stored Space by canonical Photon Space ID.

Getuser

Get an User Returns one User after refreshing its Human or Agent classification and project ownership where supported.

Getvoicelineprofileassignment

Get Voice line profile assignment Gets the explicit additional-profile override for an owned Voice-capable line.

Getvoiceprofile

Get Voice profile Gets one reusable Voice profile, including its optional inbound delivery state.

Getwebhookdestination

Get webhook destination Returns the configuration of one webhook destination belonging to the selected project.

Getwebhookeventschema

Get webhook event schema Returns the published reader JSON Schema for eventType in the requested webhook apiVersion.

Getwhatsappbusinessaccount

Get WhatsApp Business account Gets the one WhatsApp Business Account this project has connected, with its number of live senders.

Getwhatsappsharedlineassignment

Get WhatsApp shared line assignment Reads one WhatsApp shared line assignment.

Leaveorganization

Leave an organization; Owners must transfer or close first

Listaccountservicekeys

List Account Service Keys Returns metadata for the authenticated account's unrevoked service keys, including expired keys, ordered newest first.

Listattachments

List attachments Lists the Project's Attachment metadata, with optional time filters.

Listauthorizedapplications

List connected applications Lists the OAuth applications authorized by the authenticated user.

Listbillingplans

List billing plans Lists the billing plan catalog, grouped by their public plan-metadata type.

Listcreditactivity

List credit activity Returns one page of how the selected organization's credit balance changed, newest first: credit notes issued and credit granted, credit applied to invoices, credit restored when the change an invoice paid for never applied, and credit voided.

Listemailrecommendations

List email recommendations Reads Photon guidance from stored sending policies, sending setup and domain checks.

Listfilteredverificationcodes

List filtered verification codes Lists the verification codes Photon kept from this project's dedicated lines and numbers.

Listinvoices

List invoices Returns one page of the selected organization's invoices, newest first: every invoice issued to it with a nonzero total or actual charges, including charges fully paid by credit; drafts and empty invoices are excluded.

Listmessages

List Messages Lists the Project's Messages, with optional resource, conversation, and time filters.

Listnumberareacodes

List number area codes Lists current provider coverage for US local numbers, sorted and deduplicated.

Listnumbercountries

List number countries Lists supported purchase countries independently of current provider inventory.

Listoauthscopes

List OAuth scopes Lists the business permissions available to OAuth applications.

Listoperations

List operations Lists the project's operations using the same operation representation as creation and GET.

Listorganizationmembers

List current organization members

Listprojectplatforms

List project platforms Lists the platform types available to this project.

Listprojects

List projects Returns a cursor-paginated page of the active projects in organizationId.

Listprojectsubscriptions

List project subscriptions Lists the plan each of the selected project's categories holds, with its price and the payer's standing.

Listresourcefilteredverificationcodes

List a line's filtered verification codes Lists the verification codes Photon kept from one dedicated line or number.

Listresources

List resources Lists the project's resources, oldest first, including retired ones unless `state` filters them out.

Listsharedlineassignments

List shared line assignments Lists the project's shared line assignments, oldest first.

Listspaces

List Spaces Lists the Project's stored Spaces, with optional participant and Message filters.

Listusers

List Users Lists stored Users without refreshing their classification; use Get User for current details.

Listvoiceprofiles

List Voice profiles Lists reusable Voice profiles in this project.

Listwebhookapiversions

List webhook API versions Lists the published webhook payload API versions and their lifecycle metadata.

Listwebhookdestinations

List webhook destinations Returns a cursor-paginated page of active webhook destinations configured for the selected project.

Listwebhookegressaddresses

List webhook egress addresses Returns the public network addresses from which this environment sends webhook deliveries.

Listwebhookeventtypes

List webhook event types Lists the webhook event types available in the requested apiVersion, including their descriptions, audiences and reader-schema URLs.

Listwhatsappaccountphonenumbers

List WhatsApp account phone numbers Lists the connected WABA's phone numbers directly from Meta, including numbers whose Photon sender was disconnected.

Listwhatsappsharedlineassignments

List WhatsApp shared line assignments Lists the project's WhatsApp shared line assignments, oldest first.

Markmessageread

Mark a Message as read Persists a request to mark one incoming Message as read using its receiving account.

Previeworganizationchange

Preview an organization billing change Previews a fixed-charge quantity change on the selected organization's own subscription, such as SSO.

Previewprojectchange

Preview a project billing change Previews a change on the selected project's subscription in the supplied category: a fixed-charge quantity change, or a plan change with the held fixed charges it carries over.

Provisionimessagededicatedline

Provision dedicated iMessage line Claims one dedicated iMessage line for the project and enables iMessage on it.

Provisionwhatsappdedicatedline

Provision dedicated WhatsApp line Provisions one dedicated WhatsApp line with WhatsApp and shared Voice enabled.

Purchasesmsnumber

Purchase SMS number Buys one US local number from the provider and records it as a resource with SMS enabled.

Querymessagemetrics

Query metrics Runs read-only SQL over the Project's message_events or call_events table.

Releaseimessagededicatedline

Release dedicated iMessage line Removes only iMessage from one dedicated line.

Releaseresource

Release resource Gives one resource back, whatever it is.

Releasesharedlineassignment

Release shared line assignment Releases a shared line assignment, freeing both its seat and its handle for reassignment.

Releasewhatsappdedicatedline

Release dedicated WhatsApp line Removes only WhatsApp from one dedicated line.

Releasewhatsappsharedlineassignment

Release WhatsApp shared line assignment Releases a WhatsApp shared line assignment, freeing its seat for reassignment.

Resetaccountprofilepicture

Remove profile picture Removes the authenticated account's custom profile picture and returns the account using its default picture.

Resetagentprofileavatar

Reset agent avatar Replaces the selected project's agent avatar with the project's default avatar, a generated planet image derived from the project ID, and returns the updated agent profile.

Revokeaccountservicekey

Revoke Account Service Key Revokes the account-owned service key identified by serviceKeyId and returns its revoked metadata.

Revokeauthorizedapplication

Revoke connected application Revokes the authenticated user's grant for one OAuth application.

Sendmessage

Send a Message Sends SMS, email, WhatsApp Personal, WhatsApp Business, iMessage, or Telegram text and image messages.

Setspacetyping

Set typing in a Space Saves one transient typing update as an authorized Agent in this Space.

Unassignsmslinecampaign

Unassign SMS line campaign Any project writer, including a scoped API key, may detach the campaign.

Unassignvoicelineprofile

Unassign Voice line profile Removes a line's explicit override when the resource version matches so the line follows the project default.

Updateaccount

Update account Updates the supplied firstName and lastName fields on the authenticated account and returns the updated profile.

Updateagentprofile

Update agent profile Updates the supplied firstName and lastName fields in the project's agent profile and returns the updated profile.

Updatedefaultvoiceprofile

Update default Voice profile Patches the default profile's protocol or mediaEncryption when expectedVersion matches.

Updateproject

Update project Updates the identified project's name and returns the updated project.

Updatevoiceprofile

Update Voice profile Patches an additional profile's name, protocol, or mediaEncryption when expectedVersion matches.

Updatevoiceprofileoutboundauthentication

Update Voice outbound authentication Changes a SIP profile's outbound Digest algorithm when expectedVersion matches.

Updatewebhookdestination

Update webhook destination Updates the supplied URL, name, description, status or enabledEvents fields on a project's webhook destination and returns its updated configuration.

Verifytotpenrollment

Verify TOTP enrollment Requires a first-party interactive Account credential authenticated no more than 300 seconds ago.

FAQ

Frequently asked questions

With a standalone Photon MCP server, the agents and LLMs can only access a fixed set of Photon tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Photon and many other apps based on the task at hand, all through a single MCP endpoint.

Yes, you can. ChatGPT fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Photon tools.

Yes, absolutely. You can configure which Photon scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Photon data and credentials are handled as safely as possible.

Start with Photon MCP.It takes 30 seconds.

Managed auth, hosted MCP servers, and every Photon MCP tool your agent needs.Free to start.

Start building