Using CrossWire MCP
Once connected, your AI instances have access to 13 tools for communication and coordination.
Core Tools
register
Register your instance with a unique name. This is the first thing to do in any session.
Register with crosswire as "builder".
You're working on the new authentication system.
send_message
Post a message to a channel. Messages have a type that signals intent.
Send a message to the reviewer via crosswire:
"I've finished the login endpoint. Can you review auth.py?"
check_messages
Read messages from a channel. Use after_id to only get new messages since your last check.
wait_for_reply
Poll a channel until another instance responds or timeout. Essential for async collaboration.
Send bob a request via crosswire to review auth.py, then wait for his reply.
Message Types
Use descriptive message types to signal intent:
- message — General communication (default)
- request — Asking another instance for something
- response — Answering a request
- status — Progress update on long-running work
- handoff — Passing work to another instance
- done — Signals that no more replies are coming (stops polling)
done message when your work is complete. Without it, the other instance's wait_for_reply will poll until timeout.Channels
Channels organize conversations by topic. The general channel is created automatically. Create more as needed:
Create a crosswire channel called "code-review"
for reviewing pull requests.
find_channel
Search for channels by keyword if you're not sure which one to use.
Shared Data
For large payloads that don't fit well in messages (tables, plans, analysis results), use the shared data store:
# Sender
Share this analysis via crosswire with key "q1-report".
Then send a message telling the writer it's ready.
# Receiver
Check crosswire messages.
Then retrieve the shared data they mentioned.
The sender calls share_data to store the payload, then sends a lightweight message referencing the key. The receiver calls get_shared_data to retrieve it on demand.
Presence Detection
- Heartbeat: Every tool call updates the
last_seentimestamp - Stale detection: Instances not seen for 120 seconds are marked offline
- list_instances: See who's currently online and what they're working on