signal-mcp
Allows sending and receiving messages, managing contacts and groups, reacting to messages, and more via the Signal messaging platform using signal-cli's JSON-RPC API.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@signal-mcpSend a message to John: 'See you tomorrow!'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
signal-mcp
MCP server for Signal via signal-cli — send messages, receive messages, manage contacts and groups, react, and more over stdio.
Installation
bunx @daanrongen/signal-mcpRelated MCP server: mcp-signal
Tools (10 total)
Domain | Tools | Coverage |
Contacts |
| Account listing, contact and group management, registration checks |
Messaging |
| Send text and files, poll or subscribe for incoming messages, reactions, typing indicators, read receipts |
Configuration
Variable | Required | Description |
| Yes | signal-cli base URL (e.g. |
Setup
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"signal": {
"type": "stdio",
"command": "bunx",
"args": ["@daanrongen/signal-mcp"],
"env": {
"SIGNAL_URL": "http://localhost:8080"
}
}
}
}Claude Code CLI
claude mcp add signal -e SIGNAL_URL=http://localhost:8080 -- bunx @daanrongen/signal-mcpDevelopment
bun install
bun run dev # watch mode
bun test # run tests
bun run typecheck # tsc type check
bun run lint # biome check
bun run build # bundle to dist/main.jsArchitecture
src/
config.ts # SIGNAL_URL env var config
errors.ts # SignalError, SignalRpcError tagged errors
main.ts # stdio entry point, ManagedRuntime setup
domain/
SignalClient.ts # port interface (Context.Tag)
models.ts # Schema.Class domain models
signal.test.ts # unit tests against test adapter
infra/
SignalClientLive.ts # HTTP JSON-RPC adapter (signal-cli)
SignalClientTest.ts # in-memory test adapter
mcp/
server.ts # McpServer factory, tool registration
utils.ts # runTool, formatSuccess helpers
tools/
contacts.ts # list_accounts, list_contacts, list_groups, get_user_status
messaging.ts # send_message, send_attachment, receive_messages, subscribe_messages, send_reaction, send_typing, mark_as_readHexagonal architecture: domain port (SignalClient) is injected via Effect Layer. The live adapter calls the signal-cli JSON-RPC HTTP API; the test adapter returns predictable in-memory values.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for siGit (sigit.si): browse repos, search code, manage PRs/issues, web search.
Remote MCP server to read and manage your Atako AI agents, messages, files, and integrations.
MCP server for secureFlows (secure-flows.com). Alias of io.github.michal-lefler/secureflows-mcp.
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceMCP Server for retrieving Signal messages using signal-export logic.8-
- AlicenseAqualityAmaintenanceLocal Signal MCP server: read via Signal Desktop, send via signal-cli8MIT
- MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for a local-first messaging workspace that integrates Google Messages, WhatsApp, and Signal. It enables reading, sending, searching messages, and managing conversations through MCP tools.53-