matrix-nio-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_PORT | No | Port for the HTTP server | 8000 |
| QDRANT_HOST | No | Qdrant hostname (qdrant inside Docker Compose) | localhost |
| QDRANT_PORT | No | Qdrant port | 6333 |
| WEBHOOK_URL | No | OpenAI-compatible base URL for the LLM callback | |
| IGNORED_ROOMS | No | Comma-separated list of Matrix room IDs to exclude | |
| WEBHOOK_MODEL | No | Model name passed to the LLM | gpt-4o-mini |
| WEBHOOK_TOOLS | No | Optional JSON string of tools/parameters merged into the chat completions request body | |
| BACKFILL_LIMIT | No | Messages fetched per page per room during startup backfill | 100 |
| MATRIX_USER_ID | Yes | Full MXID, e.g. @bot:example.org | |
| OPENAI_API_KEY | Yes | OpenAI API key for embeddings | |
| EMBEDDING_MODEL | No | OpenAI embedding model | text-embedding-3-small |
| HTTP_AUTH_TOKEN | No | If set, requires Authorization: Bearer <token> for all endpoints | |
| MATRIX_DEVICE_ID | Yes | Device ID — must be stable across restarts for E2EE | |
| MATRIX_STORE_PATH | No | Path for the Olm E2EE crypto database (created if absent) | ~/.cache/nio-mcp/store |
| QDRANT_COLLECTION | No | Qdrant collection name | matrix_messages |
| SSE_QUEUE_MAXSIZE | No | Per-subscriber SSE event queue cap (oldest dropped when full) | 100 |
| ALLOW_SEND_MESSAGE | No | Set to true to enable the send_message tool | false |
| BACKFILL_PAGES_MAX | No | Maximum backfill pages per room; 0 = full history | 10 |
| MATRIX_ACCESS_TOKEN | Yes | Long-lived access token | |
| MESSAGE_BUFFER_SIZE | No | In-memory ring buffer size for get_recent_messages | 500 |
| WEBHOOK_BEARER_TOKEN | No | Bearer token sent in the Authorization header | |
| EMBEDDING_VECTOR_SIZE | No | Output dimension requested from the model and used for the Qdrant collection | 1536 |
| MATRIX_HOMESERVER_URL | Yes | Homeserver URL, e.g. https://matrix.example.org | |
| WEBHOOK_PROMPT_HEADER | No | Text prepended once before all per-message lines | New Matrix messages: |
| MATRIX_KEY_BACKUP_FILE | No | Path to an Element-exported E2EE key file; see Decrypting historical messages in encrypted rooms | |
| MATRIX_SYNC_TIMEOUT_MS | No | Matrix /sync long-poll timeout in milliseconds | 30000 |
| WEBHOOK_PROMPT_PER_MSG | No | Template rendered once per buffered message | {sender_name} ({sender}) in {room_name} ({room}): {message} |
| WEBHOOK_COOLDOWN_SECONDS | No | Seconds of silence before the LLM is called | 300 |
| MATRIX_KEY_BACKUP_PASSPHRASE | No | Passphrase chosen when exporting; required when MATRIX_KEY_BACKUP_FILE is set |
Capabilities
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
No tools | |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/james-choncholas/matrix-nio-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server