Integrations
VexAI connects to external services through custom APIs, RSS feeds, inbound webhooks, GitHub, and email. Each integration is independently configurable and secured.
Custom API Caller
Register named API endpoints with saved authentication headers and default parameters. Once registered, call any API by name, with no need to repeat credentials each time.
All outbound requests are validated against a blocklist of private and reserved IP ranges. Requests to 127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, and link-local addresses are automatically blocked.
Workflow
- Register:
register_apiwith a name, base URL, and auth headers - Call:
call_apiwith the registered name, endpoint path, HTTP method, and optional body - Manage:
list_apisto view all registered APIs,delete_apito remove one
Each registered API is limited to 10 calls per minute. Exceeding this limit returns an error until the window resets.
Supported Methods
All standard HTTP methods are supported: GET, POST, PUT, PATCH, DELETE, HEAD, and OPTIONS.
RSS Feed Monitor
Subscribe any Discord channel to one or more RSS or Atom feeds. New entries are posted automatically at configurable intervals.
Display Formats
| Format | Description |
|---|---|
embed | Rich embed with title, description, thumbnail image, and source link |
compact | Single-line message with the post title and a link |
full | Full post content rendered as a Discord message (truncated at 2000 chars) |
The minimum polling interval is 5 minutes to respect feed providers. Set longer intervals for feeds that update infrequently.
Tools
| Tool | Description |
|---|---|
subscribe_rss | Subscribe a channel to an RSS/Atom feed with format and interval |
unsubscribe_rss | Remove a feed subscription |
list_rss | List all active feed subscriptions for the guild |
Inbound Webhook Server
A lightweight HTTP server that receives payloads from external services and posts them to configured Discord channels. Supports HMAC signature verification for secure delivery.
Signature Verification
| Provider | Verification Method |
|---|---|
| GitHub | X-Hub-Signature-256 HMAC-SHA256 |
| GitLab | X-Gitlab-Token shared secret |
| Generic | Custom HMAC header (configurable) |
Always configure signature verification for production webhooks. Without it, anyone who discovers your webhook URL can inject payloads into your Discord channels.
Configuration
{
"integrations": {
"webhookServer": {
"enabled": true,
"port": 3847,
"baseUrl": "https://mybot.example.com"
}
}
}
The server listens on the configured port. External services (GitHub, GitLab, etc.) send webhooks to https://mybot.example.com/webhook/{name}.
GitHub Tools
Query GitHub repositories, issues, pull requests, and commits directly from Discord. Works with a registered API config or a personal access token.
Available Data
- Repository info: stars, forks, description, language breakdown
- Issues: list, search, view details and comments
- Pull requests: list open/closed/merged PRs with diffs
- Commits: recent commit log with messages and authors
Configuration
{
"integrations": {
"github": {
"token": "ghp_xxxxxxxxxxxxxxxxxxxx"
}
}
}
You can also register GitHub as a custom API using register_api with an Authorization: Bearer header. The dedicated config path is just a convenience.
OpenMail Email
Receive inbound emails in a dedicated Discord approval channel. Emails are never exposed to the LLM until the server owner explicitly approves them, providing a human gate for sensitive content.
The approval channel is restricted to the bot owner. Other users and the LLM cannot see pending emails.
Approval Workflow
Inbound emails are queued in the approval channel as embeds. The owner reacts to each email to decide its fate:
| Reaction | Action |
|---|---|
| â | Approve: email content becomes available to the LLM |
| đī¸ | Archive to memory: saved to long-term memory without LLM exposure |
| đī¸ | Delete: permanently discarded |
Features
- WebSocket updates: real-time notifications when new emails arrive
- Pending reconciliation: on restart, any unprocessed emails are re-queued in the approval channel
- Channel exclusion: the approval channel is excluded from search and mirror operations
Configuration
{
"integrations": {
"openmail": {
"enabled": true,
"apiKey": "om_live_xxx",
"inboxId": "inb_xxx",
"approvalChannelId": "123456789",
"autoCreateApprovalChannel": true,
"wsEnabled": true
}
}
}
When autoCreateApprovalChannel is true and no approvalChannelId is set, VexAI creates a private channel named #email-approval on first email receipt.