Linq MCP server for AI agents and assistants

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Linq MCP or direct API to send messages, manage conversations, share attachments, and handle phone numbers through natural language.

Linq logoLinq
Api Key

Linq is a communications API for sending and managing iMessage, RCS, and SMS conversations. It also supports attachments, phone numbers, payments, and webhooks in one platform.

68 Tools

Try Linq now

Type what you want done — sign in and watch it run live in the Tool Router playground.

TOOL ROUTER PLAYGROUND
Linq
Try asking
TOOLS

Supported Tools

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

Add Chat Participant

Add an external participant to an existing group chat.

Add Poll Options

Irreversibly add recipient-visible options to an existing iMessage poll.

Block Handle

Block a handle account-wide from inbound and direct outbound messaging.

Cancel Payment

Irreversibly cancel a financial payment and close its virtual card.

Cancel Payment Request

Irreversibly cancel an unpaid payment request and its underlying payment intent.

Check Messaging Capability

Check whether a recipient can receive iMessage or RCS without sending a message.

Connect Payment Handle

Start the financial-consent ceremony for a customer phone number or email so an agent can later pay on that customer's behalf.

Create Chat

Create or reuse a chat on an explicit sending line and send an irreversible recipient-visible initial message.

Create Payment

Create or advance a real financial payment on a connected customer's behalf, potentially minting a single-use virtual card.

Create Payment Request

Create a customer-facing checkout that can collect a one-time charge or start an auto-renewing subscription.

Create Poll

Irreversibly send a recipient-visible iMessage poll to an existing chat.

Create Webhook Subscription

Create a webhook subscription for selected Linq events at a controlled HTTPS callback.

Delete Attachment

Permanently delete a Linq attachment and its stored bytes.

Delete Message

Irreversibly delete a message record from Linq.

Delete Webhook Subscription

Permanently delete a Linq webhook subscription and stop its future event deliveries.

Edit Message

Irreversibly change recipient-visible text in one part of a message sent within the last 15 minutes.

Get Attachment

Return metadata and current status for a Linq attachment referenced by a message.

Get Available Number

Select an available Linq sending number, optionally for recipients or a line type.

Get Chat

Return one chat by ID, including participants, service, state, and health information.

Get Chat Location

Return precise locations currently shared by contacts in a chat.

Get Experience

Return one Linq experience and preserve its dynamic action field definitions.

Get Message

Return one Linq message by ID with its content parts, sender, actual and preferred transport, delivery state, reply target, and timestamps.

Get Payment

Read a payment's financial state, amount, customer handle, merchant details, and any customer-action URL.

Get Payment Credentials

Return the complete, highly sensitive short-lived handoff used to reveal a ready payment's virtual card directly from the provider.

Get Payment Handle Connection

Read the financial-consent connection status for a customer phone number or email.

Get Payment Provider

Read the organization's onboarding status for a payment provider.

Get Payment Request

Return one payment request's amount, lifecycle status, checkout details, and provider join keys.

Get Poll

Return an iMessage poll's current options, voters, and distinct voter count.

Get Reputation Audit

Return a Linq line reputation audit created with explicit approval.

Get Webhook Subscription

Return one Linq webhook subscription by ID, including its callback URL, event and phone filters, active state, and configured routing-header names.

Leave Chat

Leave an iMessage group chat.

List Blocked Handles

Return phone numbers, email addresses, short codes, and sender IDs currently blocked account-wide from inbound and direct outbound messaging.

List Chats

Return one page of chats, optionally filtered by sending line or participant, with a cursor for the next page.

List Contact Cards

Return Linq account contact-card identity data, optionally for one E.

List Experiences

Discover Linq experiences and their dynamic action fields.

List Messages

Return one page of messages from a chat, including content, sender, transport, delivery state, direction, reply target, and timestamps, plus a cursor for older messages.

List Message Thread

Return one page containing the origin message and threaded replies, starting from any message in the thread.

List Payment Requests

Return one newest-first page of payment requests for reconciliation, optionally filtered by lifecycle status.

List Phone Numbers

Return the connected Linq account's sending lines with line type, forwarding configuration, and reputation status.

List Webhook Events

Return the webhook event types currently available for subscription on the connected Linq account.

List Webhook Subscriptions

Return the connected Linq account's webhook subscriptions, including event and phone-number filters, target URLs, active state, and routing-header names.

Mark Chat As Read

Mark every message in a chat as read and send an irreversible read receipt.

Remove Chat Background

Reset a chat's recipient-visible transcript background to the default.

Remove Chat Participant

Remove an external participant from a group chat.

Request Attachment Upload

Reserve persistent attachment storage and return a 15-minute presigned upload URL.

Request Chat Location

Prompt a contact in a one-to-one iMessage chat to consent to sharing their precise location.

Revoke Payment Handle Connection

Irreversibly revoke this partner's financial-consent grant for a customer phone number or email.

Send Message

Send one irreversible, externally visible message to phone numbers or emails.

Send Message to Chat

Send one follow-up or threaded reply to an existing Linq chat using its established sending line.

Send Voice Memo to Chat

Irreversibly send recipient-visible audio as a native iMessage voice memo bubble to every participant in an existing Linq chat.

Set Chat Background

Set a recipient-visible color, animated, or photo transcript background.

Set Up Contact Card

Create or replace a Linq contact card for a sending line.

Share Contact Card With Chat

Share the connected sending line's active contact card with a chat.

Start Payment Provider Onboarding

Create a hosted payment-provider onboarding session for the organization.

Start Reputation Audit

Start a potentially metered or limited reputation audit for a Linq sending line.

Start Typing Indicator

Show a best-effort recipient-visible typing indicator for about 85-90 seconds.

Stop Chat Location Sharing

Stop a specific contact's inbound location share.

Stop Typing Indicator

Immediately clear the connected line's recipient-visible typing indicator for a chat.

Toggle Poll Vote

Irreversibly send a recipient-visible update that adds or removes the connected line's vote on one option of an iMessage poll.

Unblock Handle

Remove an account-wide messaging block.

Update Chat

Update a group chat's display name or icon.

Update Contact Card

Update the public contact-card identity for one Linq sending line.

Update iMessage App Card

Irreversibly send a recipient-visible in-place update to an iMessage app card.

Update Message Reaction

Irreversibly mutate recipient-visible reaction state by adding or removing a tapback, or by adding an iMessage sticker.

Update Phone Number

Change a Linq sending line's production forwarding configuration.

Update Sticker Placement

Irreversibly send a recipient-visible update that moves, resizes, or rotates an existing iMessage sticker on a message.

Update Webhook Subscription

Update a Linq webhook subscription's callback, filters, active state, or routing-header names.

Verify Payment Handle

Submit a customer's single-use OTP to complete the financial-consent ceremony and authorize future payments on the customer's behalf.

SETUP GUIDE

Connect Linq MCP Tool with your Agent

1

Install Composio

typescript
npm install @composio/core ai @ai-sdk/mcp @ai-sdk/openai
Install the Composio SDK and your agent framework
2

Create a session with MCP enabled

typescript
import { Composio } from "@composio/core";

const composio = new Composio();
const { mcp } = await composio.create("your-user-id", {
  toolkits: ["linq"],
  mcp: true,
});
Create a session scoped to Linq and read its MCP URL and headers
3

Connect your agent to the MCP server

typescript
import { createMCPClient } from "@ai-sdk/mcp";
import { openai } from "@ai-sdk/openai";
import { generateText, stepCountIs } from "ai";

const client = await createMCPClient({
  transport: { type: "http", url: mcp.url, headers: mcp.headers },
});

const { text } = await generateText({
  model: openai("gpt-5.6-sol"),
  tools: await client.tools(),
  prompt: "Send an SMS to +14155550123 saying the appointment is confirmed for tomorrow at 10 AM",
  stopWhen: stepCountIs(10),
});

console.log(text);
await client.close();
Pass the session's MCP URL and headers to your agent and run a Linq request
SETUP GUIDE

Connect Linq API Tool with your Agent

1

Install Composio

typescript
npm install @composio/core @composio/openai openai
Install the Composio SDK, the OpenAI provider, and the OpenAI SDK
2

Create a Composio session

typescript
import OpenAI from "openai";
import { Composio } from "@composio/core";
import { OpenAIResponsesProvider } from "@composio/openai";

const composio = new Composio({ provider: new OpenAIResponsesProvider() });
const client = new OpenAI();

const session = await composio.create("your-user-id", { toolkits: ["linq"] });
const tools = await session.tools();
Initialize Composio with the OpenAI Responses provider and create a session scoped to Linq
3

Run Linq tools with your agent

typescript
let response = await client.responses.create({
  model: "gpt-5.6-sol",
  tools,
  input: [{ role: "user", content: "Send an SMS to +14155550123 saying the appointment is confirmed for tomorrow at 10 AM" }],
});

while (response.output.some((o) => o.type === "function_call")) {
  const outputs = await composio.provider.handleToolCalls(session, response.output);
  response = await client.responses.create({
    model: "gpt-5.6-sol",
    tools,
    previous_response_id: response.id,
    input: outputs,
  });
}

console.log(response.output_text);
Send a request, execute the Linq tool calls through the session, and print the final answer

Why Use Composio?

AI Native Linq Integration

  • Supports both Linq MCP and direct API based integrations
  • Structured, LLM-friendly schemas for sending messages and managing conversations
  • Rich coverage for SMS, RCS, iMessage, attachments, payments, and webhooks

Secure API Key Auth

  • Connect Linq with securely stored API key credentials
  • Keep authentication details out of prompts, source code, and agent responses
  • Manage Linq access per user and environment

Agent Optimized Design

  • Tools are tuned using real error and success rates to improve reliability over time
  • Clear schemas help agents choose the right Linq action for each request
  • Comprehensive execution logs show what ran, when, and on whose behalf

Enterprise Grade Security

  • Fine-grained RBAC lets you control which agents and users can access Linq
  • Scoped, least-privilege access helps protect messaging and payment operations
  • Full audit trails support review and compliance

Rolling this out across your team?

Give your team centralized access control across every framework with Composio’s MCP Gateway.

EXPLORE MCP GATEWAY
FAQ

Frequently asked questions

Yes, Linq requires you to configure your own API key credentials. Once set up, Composio handles secure credential storage and API request handling for you.

Yes! Composio's Tool Router enables agents to use multiple toolkits. Learn more.

Yes. Composio is SOC 2 Type II compliant and is built to keep your Linq connection and credentials secure. OAuth tokens and API keys are encrypted, and sensitive customer data is protected at rest and in transit.

Composio also undergoes independent security testing and continuously monitors its systems for security threats. You can review the latest reports and policies in the Composio Trust Center.

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

Create the key in your Linq account settings, then paste it once on Composio's connection page. Composio stores it encrypted and uses it only for the Linq actions your agent runs. Nobody else in your workspace can read it, and you can revoke it inside Linq at any time.

When you connect a Linq account through Composio, every action runs under that account, so anything the agent creates, sends, or changes shows up in Linq as done by you. Keep an approval step in your prompt for actions with side effects, such as sending or deleting, and have the agent draft first.

Whatever the credentials you connect allow inside Linq. If Linq lets you scope a key to specific permissions, create a scoped one so the agent can only do what you intend. You can revoke the key inside Linq at any time.

Yes. Composio supports multiple connected accounts for the same app, and that works in Claude, ChatGPT, or any other assistant you connect through Composio. Give each Linq connection a name such as work or personal, and the assistant uses the one you mention in the request. Each account keeps its own credentials and nothing is merged.

The connection stops working the moment Linq rejects the old key. Create a new key in Linq and reconnect the account from the Composio dashboard or by asking your agent to reconnect Linq. Nothing else changes.

Composio's free Hobby plan includes 100,000 tool calls per month with no credit card, which covers most personal Linq use. Paid plans add higher limits and team features. Your Linq plan and its API limits still apply as usual.

Built-in connectors usually give one AI access to a limited set of apps. Many people use Composio because it lets their AI connect to more apps than it normally supports, or connect to multiple accounts for the same app (e.g. connect Claude to multiple Linq accounts).

With Composio, you connect Linq once and then use it across different AI assistants without setting it up separately in each one. Connect your apps to Composio once, then connect Composio to whichever AI you use, whether that's Claude, ChatGPT, Hermes, or your own custom assistant.

Start with Linq.It takes 30 seconds.

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

Start building