About chatport
chatport is a GoWA-backed WhatsApp messaging client for CLI users and MCP clients. It sends text, contacts, links, and location pins through a GoWA service configured by the operator.
Key features
- 01Send plain text messages
- 02Send contact cards
- 03Send links with optional captions
- 04Send location pins
- 05CLI and stdio MCP server
Use cases
- 01Send a message through a hosted GoWA service
- 02Share a contact card in WhatsApp
- 03Send a link with a caption
- 04Share coordinates as a location pin
MCP support
Its stdio MCP server exposes tools for sending text, contact cards, links, and location pins. Calls are forwarded to the matching GoWA endpoints configured by WHATSAPP_API_URL.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
4Saved tool list · updated 1w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| phone | string | Yes | Recipient phone number. |
| message | string | Yes | Text message to send. |
Details
From the project READMEchatport
chatport sends WhatsApp messages through a GoWA (go-whatsapp-web-multidevice) service that you host yourself: plain text messages, contact cards, links with an optional caption, and location pins. One binary serves a command-line interface and a stdio MCP server, and both faces talk to the same GoWA REST API.
chatport is a client, not a WhatsApp account. It needs a running
GoWA service paired with the WhatsApp account you want to send
from. Point it at that service with the WHATSAPP_API_URL
environment variable, for example http://localhost:3000. There is
no default: when the variable is missing, every send fails with a
clear error before any request is made, so a misconfigured client
never silently talks to the wrong host.
Install
npx @reneturcios/chatport send-text 15551234567 "hello"
Or run the container image:
docker run -i -e WHATSAPP_API_URL=http://host.docker.internal:3000 ghcr.io/cloudcorprecords/chatport
The container defaults to the MCP server (see below). Pass CLI arguments to use it as a CLI instead.
CLI
export WHATSAPP_API_URL=http://localhost:3000
chatport send-text 15551234567 "hello there"
chatport send-contact 15551234567 "Ada Lovelace" 15559876543
chatport send-link 15551234567 https://example.test/page "worth a look"
chatport send-location 15551234567 37.7749 -122.4194
chatport --version
Successful sends print the GoWA service's JSON response. Exit
codes: 0 on success, 1 when a send fails (including an upstream
API error or a missing WHATSAPP_API_URL), 2 for usage errors.
Phone numbers are passed through exactly as given; use the format your GoWA service expects (typically international format, digits only). Latitude must be between -90 and 90 and longitude between -180 and 180; anything outside is rejected before a request is sent.
MCP server
One bin serves both faces. The mcp subcommand starts a stdio MCP
server:
npx -y @reneturcios/chatport mcp
MCP client configuration:
{
"mcpServers": {
"chatport": {
"command": "npx",
"args": ["-y", "@reneturcios/chatport", "mcp"],
"env": { "WHATSAPP_API_URL": "http://localhost:3000" }
}
}
}
Tools
| Tool | Input | What it sends |
|---|---|---|
whatsapp_send_text | phone, message (both required) | A plain text message. |
whatsapp_send_contact | phone, contact_name, contact_phone (all required) | A contact card for the named contact. |
whatsapp_send_link | phone, link (required), caption (optional) | A link, with a caption when one is supplied. |
whatsapp_send_location | phone, latitude, longitude (all required) | A location pin at the given coordinates. |
Each tool posts to the matching GoWA send endpoint under
WHATSAPP_API_URL (/send/message, /send/contact, /send/link,
/send/location) with the tool's arguments as the JSON body.
Development
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev # run the CLI from source via tsx
License
MIT — see LICENSE.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.