Linq

io.github.linq-teamPublished by GitHub account linq-teamv0.79.0Updated Nov 6, 2026

Send and manage iMessage, RCS, and SMS conversations through the Linq API.

Overview

AI-generated overview

Lets an assistant send and manage iMessage, RCS and SMS conversations by writing TypeScript against the Linq API in a sandbox.

What you can do
  • Search the Linq SDK documentation for methods, parameters and usage examples
  • Run TypeScript code against a pre-authenticated Linq API client inside an isolated sandbox
  • Send and manage iMessage, RCS and SMS conversations through that code
  • Return or print results from each run, since variables do not persist between calls
When to use it
Useful when you want an assistant to work with Linq messaging — sending or managing iMessage, RCS and SMS conversations — and you are comfortable letting it write and run SDK code rather than call fixed tools.
Requirements
Runs locally as an npm package via npx, so Node.js is needed. Requires a Linq API key in LINQ_API_V3_API_KEY; the README also shows LINQ_WEBHOOK_SECRET. Network access to the Linq API is required. Can optionally be launched as a remote HTTP server with an Authorization bearer header or the x-linq-api-v3-api-key header.
Before you install
The server holds a Linq API key (LINQ_API_V3_API_KEY) and the README also references LINQ_WEBHOOK_SECRET; keep both out of shared configs. Generated code can send messages and change conversation state on your Linq account, so review what the assistant runs. Code runs in a sandbox without web or filesystem access, and requests time out after 30 seconds with roughly 5 minutes per execution.

Installation

In SourceWeft

  1. Open Linq in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Linq API V3 TypeScript MCP Server

It is generated with Stainless.

Installation

Direct invocation

You can run the MCP Server directly via npx:

sh
export LINQ_API_V3_API_KEY="My API Key"export LINQ_WEBHOOK_SECRET="My Webhook Secret"npx -y @linqapp/sdk-mcp@latest

Via MCP Client

There is a partial list of existing clients at modelcontextprotocol.io. If you already have a client, consult their documentation to install the MCP server.

For clients with a configuration JSON, it might look something like this:

json
{  "mcpServers": {    "linqapp_sdk_api": {      "command": "npx",      "args": ["-y", "@linqapp/sdk-mcp"],      "env": {        "LINQ_API_V3_API_KEY": "My API Key",        "LINQ_WEBHOOK_SECRET": "My Webhook Secret"      }    }  }}

Cursor

If you use Cursor, you can install the MCP server by using the button below. You will need to set your environment variables in Cursor's mcp.json, which can be found in Cursor Settings > Tools & MCP > New MCP Server.

[Add to Cursor]

VS Code

If you use MCP, you can install the MCP server by clicking the link below. You will need to set your environment variables in VS Code's mcp.json, which can be found via Command Palette > MCP: Open User Configuration.

Open VS Code

Claude Code

If you use Claude Code, you can install the MCP server by running the command below in your terminal. You will need to set your environment variables in Claude Code's .claude.json, which can be found in your home directory.

claude mcp add linqapp_sdk_mcp_api --env LINQ_API_V3_API_KEY="My API Key" LINQ_WEBHOOK_SECRET="My Webhook Secret" -- npx -y @linqapp/sdk-mcp

Code Mode

This MCP server is built on the "Code Mode" tool scheme. In this MCP Server, your agent will write code against the TypeScript SDK, which will then be executed in an isolated sandbox. To accomplish this, the server will expose two tools to your agent:

  • The first tool is a docs search tool, which can be used to generically query for documentation about your API/SDK.

  • The second tool is a code tool, where the agent can write code against the TypeScript SDK. The code will be executed in a sandbox environment without web or filesystem access. Then, anything the code returns or prints will be returned to the agent as the result of the tool call.

Using this scheme, agents are capable of performing very complex tasks deterministically and repeatably.

Running remotely

Launching the client with --transport=http launches the server as a remote server using Streamable HTTP transport. The --port setting can choose the port it will run on, and the --socket setting allows it to run on a Unix socket.

Authorization can be provided via the Authorization header using the Bearer scheme.

Additionally, authorization can be provided via the following headers:

HeaderEquivalent client optionSecurity scheme
x-linq-api-v3-api-keyapiKeyBearerAuth

A configuration JSON for this server might look like this, assuming the server is hosted at http://localhost:3000:

json
{  "mcpServers": {    "linqapp_sdk_api": {      "url": "http://localhost:3000",      "headers": {        "Authorization": "Bearer <auth value>"      }    }  }}

Source: packages/mcp-server/README.md at commit 8a85ce3

Tools

2

execute

Runs JavaScript code to interact with the Linq API V3 API. You are a skilled TypeScript programmer writing code to interface with the service. Define an async function named "run" that takes a single parameter of an initialized SDK client and it will be run. For example: ``` async function run(client) { const chat = await client.chats.create({ from: '+12052535597', message: {}, to: ['+12052532136'], }); console.log(chat.chat); } ``` You will be returned anything that your function returns, plus the results of any console.log statements. Do not add try-catch blocks for single API calls. The tool will handle errors for you. Do not add comments unless necessary for generating better code. Code will run in a container, and cannot interact with the network outside of the given SDK client. Variables will not persist between calls, so make sure to return or log any data you might need later. Remember that you are writing TypeScript code, so you need to be careful with your types. Always type dynamic key-value stores explicitly as Record<string, YourValueType> instead of {}.

Parameterscoderequiredintent

search_docs

Search SDK documentation to find methods, parameters, and usage examples for interacting with the API. Use this before writing code when you need to discover the right approach.

Parametersqueryrequireddetaillanguagerequired

Version history

1
  1. v0.79.0LatestNov 6, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts