xmpp-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_XMPP_HOST | Yes | The XMPP server host (e.g., xmpp.example.org). | |
| MCP_XMPP_PORT | No | Optional: The port to connect to on the XMPP server. | |
| MCP_XMPP_LOGIN | Yes | The bot account JID with resource (e.g., codex-bot@example.org/codex). | |
| MCP_XMPP_PASSWORD | Yes | The bot account password. | |
| MCP_XMPP_STATE_DIR | No | Optional: Directory for persistent state (SQLite database). | |
| MCP_XMPP_ALLOWED_JID | Yes | The bare JID allowed to communicate with the bot (e.g., you@example.org). | |
| MCP_XMPP_CONNECT_TIMEOUT | No | Optional: Connection timeout in seconds. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| xmpp_statusA | Check the restricted XMPP connection and current durable message cursor. |
| xmpp_send_messageA | Send text to the single configured allowlisted JID. The recipient cannot be overridden. Reuse request_id to correlate a response when the recipient's XMPP client preserves message threads. |
| xmpp_set_chat_stateA | Publish an XEP-0085 chat state to the single allowlisted JID. state must be active, composing, paused, inactive, or gone. The recipient cannot be overridden. Pass request_id when the peer preserves XMPP threads. |
| xmpp_poll_messagesA | Read allowlisted messages after a durable cursor without blocking. |
| xmpp_wait_for_messageA | Wait for the next allowlisted message after a durable cursor. timeout_seconds is clamped to 1..1800 seconds. A timeout is a normal result. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 5 tools
Each tool targets a distinct action: status check, send, set chat state, poll, and wait. Poll and wait are differentiated by blocking behavior, so there is no ambiguity.
All tools share an xmpp_ prefix and mostly follow a verb_noun pattern (send_message, set_chat_state, poll_messages, wait_for_message). The one exception is xmpp_status, which is a noun phrase rather than a verb_noun, a minor deviation.
With 5 tools, the server is well-scoped for its focused purpose of interacting with a single XMPP connection. Each tool earns its place, and the count is within the ideal 3-15 range.
The tool set covers the essential lifecycle for an XMPP connection: check status, send messages, publish chat state, and retrieve messages via poll or wait. No obvious gaps exist for the stated domain of a restricted single-recipient XMPP connection.