Android Texter

io.github.argosautomation由 GitHub 帳號 argosautomation 發布v1.1.0更新於 Nov 6, 2026

Send and read SMS and MMS from your own Android phone and number via Android Texter.

已驗證STDIO僅桌面效率與工作流溝通與協作

概覽

AI 產生的概覽

將助手連接到 Android Texter 帳號,讓它能透過使用者自己配對的 Android 手機讀取、搜尋、發送及排程真實簡訊與多媒體訊息。

可以做什麼
  • 列出已配對的手機及其狀態、電量、號碼與 SIM 卡
  • 瀏覽、讀取與搜尋會話及訊息記錄,包含群組會話
  • 立即或排程發送簡訊、圖片訊息,並可向最多 500 個號碼大量發送
  • 查詢訊息狀態,列出或取消排程訊息
  • 列出、搜尋與儲存聯絡人及其標籤
適用情境
適合希望助手用你自己的號碼與電信方案草擬、發送或排程簡訊、查看回覆,或在聊天客戶端內檢索訊息記錄與聯絡人的情境。
執行需求
透過 npx 以 stdio 在本機執行(需 Node.js 18 或更新版本),也可下載腳本以 node 執行。需要 Android Texter 帳號、已安裝應用程式並配對手機,以及透過環境變數 ATX_API_KEY 提供的 API 金鑰。另有選用的 ATX_API_BASE 與 ATX_CLIENT_NAME。
安裝前請注意
發送類工具會用你的號碼與電信方案向真人發送真實簡訊,大量發送最多可達 500 位收件人,發送前應先確認收件人與措辭。API 金鑰是存放在客戶端設定中的機密。save_contact 會寫入聯絡人。免費方案有每日發送上限,24 小時內未能送出的訊息會被標記為失敗。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Android Texter,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Android Texter MCP Server

Let Claude, Cursor, Windsurf, and any other MCP client send and read text messages through Android Texter.

Android Texter turns your own Android phone into an SMS and MMS gateway. Texts go out from the phone's real number over its carrier plan, and replies come back into your account. This server connects your AI assistant to that account, so you can say "text Sam that the meeting moved to 3pm" or "who replied to yesterday's broadcast?" and it happens on your phone.

  • Sends from your own number, not a shared short code or a rented line
  • Reads conversations, searches message history, and manages contacts
  • Schedules texts for later and cancels them
  • Runs locally over stdio; your API key stays on your computer

Before you start

  1. An Android Texter account with the app installed on an Android phone and paired to it. Sign up at androidtexter.com.
  2. An API key. In the dashboard, open Settings > API Keys (androidtexter.com/dashboard/settings/api-keys) and create one. Keys start with atx_.
  3. Node.js 18 or newer (node --version).

Install

The server runs with npx, so there is nothing to install by hand. Pick your client below and replace atx_YOUR_API_KEY with your key.

Claude Desktop

Open Settings > Developer > Edit Config (or edit claude_desktop_config.json directly: ~/Library/Application Support/Claude/ on macOS, %APPDATA%\Claude\ on Windows) and add:

json
{  "mcpServers": {    "android-texter": {      "command": "npx",      "args": ["-y", "android-texter-mcp"],      "env": {        "ATX_API_KEY": "atx_YOUR_API_KEY"      }    }  }}

Restart Claude Desktop. The Android Texter tools appear under the tools menu in a new chat.

Claude Code

bash
claude mcp add android-texter --scope user --env ATX_API_KEY=atx_YOUR_API_KEY -- npx -y android-texter-mcp

Run claude mcp list to check that it connected.

Cursor

Add to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):

json
{  "mcpServers": {    "android-texter": {      "command": "npx",      "args": ["-y", "android-texter-mcp"],      "env": {        "ATX_API_KEY": "atx_YOUR_API_KEY"      }    }  }}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json (or Settings > Cascade > MCP Servers > View raw config):

json
{  "mcpServers": {    "android-texter": {      "command": "npx",      "args": ["-y", "android-texter-mcp"],      "env": {        "ATX_API_KEY": "atx_YOUR_API_KEY"      }    }  }}

VS Code

Add to .vscode/mcp.json. VS Code asks for the key once and stores it securely:

json
{  "inputs": [    { "type": "promptString", "id": "atx-api-key", "description": "Android Texter API key", "password": true }  ],  "servers": {    "android-texter": {      "command": "npx",      "args": ["-y", "android-texter-mcp"],      "env": { "ATX_API_KEY": "${input:atx-api-key}" }    }  }}

Any other MCP client

Run npx -y android-texter-mcp as a stdio server with ATX_API_KEY in its environment.

On Windows, if your client cannot find npx, use "command": "cmd" with "args": ["/c", "npx", "-y", "android-texter-mcp"].

Without npm

The same server is available as a single file from the dashboard (Settings > Integrations > Download Script). Save it anywhere and use "command": "node" with "args": ["/absolute/path/to/android-texter-mcp.js"] in place of the npx lines above.

Environment variables

VariableRequiredDescription
ATX_API_KEYYesYour Android Texter API key, from Settings > API Keys.
ATX_API_BASENoAPI root URL. Default https://androidtexter.com/api. Only change it for a test backend.
ATX_CLIENT_NAMENoName shown for this connection on the API Keys activity log. Detected automatically for most clients.

Tools

ToolWhat it does
list_devicesYour paired phones, with online status, battery, number, and SIMs.
list_conversationsRecent conversations, filtered by folder: all, inbox (replied), outbox (no reply yet), archived, spam.
get_conversationThe messages in one conversation, by phone number or thread (groups too).
search_messagesSearch every sent and received text by words, number, or contact name.
send_messageSend a text or picture message (MMS) now or at a scheduled time, from a chosen phone and SIM. Several numbers make a group text.
send_broadcastSend one text to up to 500 numbers, each as its own message, with {{name}}-style personalization.
get_message_statusWhether a sent message is queued, sent, delivered, or failed.
list_scheduled_messagesMessages waiting to go out later.
cancel_scheduled_messageCall off a scheduled message before it sends.
list_contactsList or search contacts, or everyone with a tag.
list_contact_tagsEvery tag in use on your contacts.
save_contactCreate a contact or update one by phone number. Fields you leave out are kept; tags are added.

Sending tools send real texts to real people from your number. Good clients ask before calling them; you can also set them to always ask in your client's tool settings.

Example prompts

  • "Which of my phones are online?"
  • "Show my last 10 conversations that got a reply."
  • "Read my conversation with +1 555 123 4567 and draft a reply."
  • "Text +15551234567: Running 10 minutes late, see you soon."
  • "Schedule a text to +15559876543 for tomorrow at 9am Eastern: Good morning!"
  • "Find anyone who texted the word interested this week."
  • "Add +15551112222 as Dana Lee from Acme with the tag vip."
  • "Send everyone tagged vip: Hi {{first_name|there}}, early access opens today."

Troubleshooting

  • "ATX_API_KEY is not set" or "Invalid API key": check the key in your client config and that it has not been deleted on the API Keys page.
  • "No devices registered": pair a phone in the Android Texter app first.
  • Messages stay queued: the phone is offline or the app is not running. Open the app on the phone. A message that cannot go out within 24 hours is marked failed.
  • "Daily message limit reached": the free plan has a daily cap. Upgrade in the dashboard under Billing.

Help: [email protected]. API reference: androidtexter.com/docs.

Development

bash
npm installnpm run typechecknpm run build            # build/index.js, the npm binnpm run build:download   # also copies it to the dashboard download in the Android Texter monorepo

License

MIT

來源:mcp/README.md,提交 e9196e6

工具

12

list_devices

List paired phones

List the Android phones paired to your Android Texter account. Each entry has its id, name, phone_number, status (online or offline), battery_level, last_seen, and its SIMs (slot, label, number) on dual-SIM phones. Texts are sent from these phones with their own numbers and carrier plans, so check that one is online before sending.

無需輸入參數。

list_conversations

List conversations

List your text conversations, most recent activity first. Each entry has phone (the other party, or a group's members joined by commas), last_message, last_direction, last_at, message_count, thread_type (direct or group), thread_ref, and the device it is on. Use get_conversation to read one in full.

輸入參數viewlimit

get_conversation

Read a conversation

Read the messages in the conversation with one phone number, newest first. Each message has direction (inbound or outbound), body, status, created_at, and media_url for picture messages. For a group conversation, pass the thread_ref from list_conversations.

輸入參數pagelimitphone必填thread_ref

search_messages

Search messages

Search all of your texts, sent and received, for a word or phrase. Matches the message text, the phone number, and the contact's name. Newest first.

輸入參數q必填pagelimit

send_message

Send a text

Send a text message from one of your paired Android phones, using that phone's own number and carrier plan, to a real person. Confirm the recipient and wording with the user before sending. The call returns once the message is queued and pushed to the phone, not when it is delivered: use get_message_status with the returned message_id to follow it. Pass scheduled_at to send it later instead of now. Free plans have a daily sending limit.

輸入參數phone必填message必填sim_slotdevice_idmedia_urlscheduled_at

send_broadcast

Send one text to many people

Send the same text to a list of phone numbers (up to 500), each as its own one-to-one message from your paired phone's own number. Only use this when the user has asked to text a list of people, and confirm the list and wording first: every recipient gets a real text. The message can be personalized from each recipient's contact record with {{name}}, {{first_name}}, {{last_name}}, {{full_name}}, {{company}}, {{city}} or {{state}}, and {{first_name|there}} gives a fallback when the field is empty. {{name}} is the name set by save_contact; first_name and last_name are only filled for contacts imported with those fields. Broadcasts send now and cannot be scheduled. Returns sent and failed counts and a message_id per recipient.

輸入參數phones必填message必填device_idmedia_urlround_robin

get_message_status

Check a message's status

Check where an outbound message is: queued (waiting for the phone), sent (the phone handed it to the carrier), delivered, or failed. Pass the message_id returned by send_message or send_broadcast.

輸入參數message_id必填

list_scheduled_messages

List scheduled messages

List the messages that are scheduled to go out later and have not been sent or cancelled yet, soonest first. Use this before scheduling more, and to get the id needed by cancel_scheduled_message.

無需輸入參數。

cancel_scheduled_message

Cancel a scheduled message

Cancel a message that is scheduled for a future send, so it never goes out. Only works while it is still pending; a message that has already been released to the phone cannot be recalled.

輸入參數message_id必填

list_contacts

List contacts

List or search your Android Texter contacts. Each contact has id, phone, name, email, company, notes, tags, and line type and carrier when a lookup has been run. Filter by tag to build a list for send_broadcast.

輸入參數tagpagelimitsearch

list_contact_tags

List contact tags

List every tag used on your contacts, for filtering list_contacts.

無需輸入參數。

save_contact

Create or update a contact

Create a contact, or update the one that already has this phone number. Only the fields you pass are changed; fields you leave out keep their current values. Tags are added to the contact's existing tags, never removed.

輸入參數nametagsemailnotesphone必填company

版本歷史

1
  1. v1.1.0最新Nov 6, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分