Git vs Signal MCP — MCP Server Comparison | AllMCPs
Git vs Signal MCP
A side-by-side look at the Git and Signal MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Git for other tools and integrations work as a local process; choose Signal MCP for communication as a local process. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose Git when
You need dedicated capabilities in the Other Tools and Integrations domain.
You prefer a local stdio subprocess transport.
Its auth model fits you: No auth required.
You want tools like create_entities, create_relations, add_observations.
create_entitiesCreate multiple new entities in the knowledge graph
create_relationsCreate multiple new relations between entities in the knowledge graph. Relations should be in active voice
add_observationsAdd new observations to existing entities in the knowledge graph
delete_entitiesDelete multiple entities and their associated relations from the knowledge graph
delete_observationsDelete specific observations from entities in the knowledge graph
delete_relationsDelete multiple relations from the knowledge graph
read_graphRead the entire knowledge graph
search_nodesSearch for nodes in the knowledge graph based on a query
open_nodesOpen specific nodes in the knowledge graph by their names
Signal MCP tools 80
send_messageSend a text message to a Signal contact. The message is delivered end-to-end encrypted. Returns the sent timestamp, which can be used as target_timestamp for react_to_message or edit_message. To reply/quote a specific message, provide quote_author and quote_timestamp (get timestamps from get_conversation). Use send_group_message for group chats, send_attachment for files/images.
send_group_messageSend a text message to a Signal group. The message is delivered end-to-end encrypted to all group members. Returns the sent timestamp, which can be used as target_timestamp for react_to_message or edit_message. To @mention a member, include their name in the message text and pass a mentions list where each entry has start (character index of the mention in the text), length (character count), and author (E.164 phone number). To reply/quote a message, provide quote_author (sender's phone number) and quote_timestamp (from get_conversation). Use list_groups to get group_id values. Use send_group_attachment to send files or images to a group. Do NOT use for direct messages to a contact — use send_message instead.
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
Git is categorized under Other Tools and Integrations and uses a local stdio subprocess. Signal MCP belongs to Communication and uses a local stdio subprocess. Pick Git for other tools and integrations work and Signal MCP for communication.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.
Git is listed as free. Auth: no auth required. Signal MCP is listed as free. Auth: other. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add git and googlarz-signal-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, Git has a quality signal of 89/100 (Excellent) with 39 views, 0 installs and 91,289 GitHub stars. Signal MCP has 57/100 (Good) with 3 views, 0 installs and 9 GitHub stars.
send_note_to_selfSend a note to yourself via Signal's 'Note to Self' / saved messages feature. The note is synced across all your linked Signal devices. Useful for saving reminders, bookmarks, or drafts that sync to your phone. message supports lightweight markdown for Signal's native rich text: **bold**, ~~strikethrough~~, `monospace` — use it to visually distinguish different kinds of notes (e.g. a bold title per note) instead of plain text blobs. Pass attachments (e.g. a QR code image) and quote_author/quote_timestamp (to thread a follow-up under a previous note, from a prior send_note_to_self result) to combine content in one message instead of separate calls.
edit_messageEdit the text of a previously sent message. Sends the edit via signal-cli to all original recipients; they see the updated text inline with an '(edited)' label. Only the message text can be modified — attachments, quoted replies, and reactions are immutable. The edit must reference the exact timestamp of the original message as returned by send_message or get_conversation. Edits can only be made to messages you sent; editing someone else's message returns an error. There is no enforced time limit, but Signal clients may ignore edits on very old messages. Provide recipient for a DM edit or group_id for a group edit; exactly one is required. Use when correcting a typo or updating information in a message you already sent. Do NOT use to change who a message was sent to — send a new message instead.
receive_messagesManually poll signal-cli for new messages and store them. Prefer get_unread — it does this automatically and returns results in one call. Use receive_messages only if you want to poll without reading results.
receive_directReceive messages by calling signal-cli directly, bypassing the daemon. Use this as a fallback when the daemon is stuck or unresponsive — it stops the daemon, calls signal-cli receive directly, then lets the daemon restart. Prefer receive_messages (daemon mode) for normal use; use this only for troubleshooting.
list_contactsList all Signal contacts known to this account, including names and phone numbers. Use the optional search parameter to filter by name or number substring. Returns contacts from signal-cli's local contact store. Use get_profile to fetch the current Signal profile for a specific contact.
list_groupsList all Signal groups this account belongs to, including group name, ID, members, and admin list. The group_id returned here is required for send_group_message, send_group_attachment, and update_group. Use update_group to modify a group, or leave_group to exit.
get_conversationGet recent message history with a contact or group from local store. Automatically marks returned messages as read in the local store (does NOT send a Signal read receipt — call send_read_receipt for that).
search_messagesFull-text search across all locally stored messages by keyword or phrase. Searches message bodies using SQLite FTS — results are ranked by relevance. Only messages in the local store are searchable; messages never received on this device are excluded. Use sender to narrow results to a specific conversation. Use limit and offset to paginate through large result sets. Use when looking for a specific message or topic across all Signal conversations. Do NOT use to browse a conversation chronologically — use get_conversation for that.
send_attachmentSend one or more files or images to a Signal contact. Supports photos, videos, documents, and audio files. Use path for a single file or paths to send multiple files in one message. Set view_once=true to send media that auto-deletes after the recipient views it once. For groups use send_group_attachment instead.
send_group_attachmentSend one or more files (photos, videos, documents, audio) to a Signal group in a single message. All current group members receive the attachment via the normal Signal encrypted delivery pipeline. Provide path for a single file or paths for multiple files sent together in one message. Set view_once=true so each member can only open the media once before it disappears — ideal for sensitive images; does not apply to document types. The file must exist and be readable on the local filesystem; non-existent paths return an error. Use list_groups to obtain the group_id. Use when sharing a file with a group chat. Do NOT use for direct messages — use send_attachment instead. Do NOT use when you only want to send text — use send_group_message instead.