How to connect Photon MCP to Claude

Connect Claude Web, Desktop and Cowork 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

Introduction

Claude is Anthropic's AI assistant, available on the web, in the desktop app, and on mobile. Cowork is its agent for knowledge work, and it runs on all of those surfaces too. Connected to your apps, Claude can work with your files and services to accomplish complex tasks on your behalf.

This guide walks you through the easiest and most secure way to connect your Photon account to Claude via Composio Connect, enabling it to list recent conversations in your Photon project, create a webhook for new Photon conversations, update the voice profile for customer support, and more such actions on your behalf without compromising your account security.

Setup is the same on Claude Web, Desktop, and Cowork, and you only need to do it once. The connector is tied to your account, so it's available in all three.

Also integrate Photon MCP with

Connecting Photon to Claude Web, Desktop, and Cowork

Two ways to add the Composio connector. Pick whichever you prefer.

1. Add with one click

Click the button. Claude opens with the Composio connector filled in. Click Add, then go to step 2.

Add to Claude

Add manually

In Claude Desktop, click Customize in the left sidebar, then select Connectors and click the + icon at the top.

Claude Desktop connectors screen with Add custom connector selected

Click Add custom connector and paste in the Composio MCP server URL:

bash
https://connect.composio.dev/mcp
Add custom connector dialog with Composio MCP server URL

2. Authorize in your browser

Click Connect. You'll be redirected to a browser window where you can authorize Composio to continue.

Composio authorization screen for Claude Web, Desktop, and Cowork

3. Connect your Photon account

Back in Claude, ask it to connect to Photon or give it any Photon-related task.

For example, ask Claude to:

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

It will prompt you to authenticate and authorize access.

That's it. Composio's tools are now available in Claude, and your Photon account is ready to use.

What is the Photon Claude Connector, and what's possible with it?

The Photon MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Photon account. It provides structured and secure access to Photon projects, messaging resources, communication connections, voice profiles, and webhook destinations, so your agent can create and manage projects, organize users and spaces, configure voice calling profiles, connect communication services, and review messaging activity on your behalf.

  • Project management: Have your agent check a project slug, create projects for your organization, count matching projects, or start deleting a project you no longer need.
  • Users, spaces, and messages: Let the agent create or find users and spaces, then count messages, spaces, or users that match your selected criteria.
  • Voice profile configuration: Direct your agent to create default or additional Voice profiles, assign profiles to lines, update multiple line assignments, or remove profiles and calling settings.
  • Messaging service connections: Instruct your agent to connect a Telegram bot, reserve an email domain, connect WhatsApp services, create shared line assignments, or register a WhatsApp VoIP sender.
  • Account and project cleanup: Have your agent retrieve account or organization details, manage profile images and agent avatars, remove webhook destinations, or disconnect a WhatsApp Business account.

Troubleshooting

1. Why does Claude not use the Composio connector for Photon?

The connector can show as connected, but Claude must use it in each Photon conversation.

  • Click + at the lower left of the chat, or type /.
  • Hover Connectors.
  • Turn on Composio.
  • Ask Claude to connect to Photon again.

2. Why does Claude show an MCP server error before Photon connects?

Claude can show Couldn't reach the MCP server or Authorization with the MCP server failed when you add the connector for Photon.

  • Check that the connector URL is https://connect.composio.dev/mcp.
  • Connectors run from Anthropic's cloud, so your device network is usually not the problem.
  • Add the connector again from Customize > Connectors, then ask Claude to connect Photon.
  • If it fails again, send the error and the ofid_ reference id to support@composio.dev.

3. Why does the Photon authorization link not work?

The Composio connector is one server. Your Photon account connects separately when Claude asks for it.

  • If the browser does not open, or the link expires, ask Claude to retry the Photon connection.
  • Composio creates a fresh Photon authorization link.
  • Open that link in your browser and finish the Photon sign-in.

4. Why do Photon actions fail after they worked before?

The Photon connection can expire or lose permission.

  • Ask Claude to inspect the Photon connection.
  • If the connection is unhealthy, disconnect it when Claude prompts you.
  • Reconnect the Photon account and retry the action.
  • If Claude shows a permission prompt, approve it before Claude changes data in Photon.
  • If the action still fails with a permission error, check that the connected account has that permission in Photon itself.

5. How do I switch to a different Photon account?

Claude can manage the Photon connection for you.

  • Ask Claude to disconnect or delete the current Photon account.
  • Ask Claude to connect Photon again.
  • Open the new Composio authorization link for Photon.
  • Sign in with the other Photon account in the browser.
  • After the account connects, ask Claude to retry the Photon task.

6. Why is my Photon connection missing in Claude Desktop or on a Team plan?

The connector belongs to your Claude account, so your Photon connection works in Claude Web, Desktop, and Cowork.

  • In Claude Desktop, open Customize > Connectors.
  • Next to Composio, click ⋮ and click Clear cache.
  • If Photon tools still do not appear, click ⋮, disconnect, remove the connector, and add it again.
  • On Team or Enterprise, an Owner or Primary Owner must enable the connector before you can connect Photon.
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. Claude Cowork 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