Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DISCORD_TOKENNoThe bot token. Required for anything real; the server boots without it and the diagnostics explain what to fix.
OMNICORD_PORTNoHTTP port, default 3414.3414
OMNICORD_GUILDNoOptional default server ID so tools can omit the guild parameter.
OMNICORD_GATEWAYNoDefault on when a token is set: the bot shows as online and real time event subscriptions work. Set to off for REST only operation.on
OMNICORD_DATA_DIRNoWhere saved blueprints and scheduled messages live. Default: .omnicord next to package.json for a source checkout, .omnicord in your user folder for an installed copy..omnicord
OMNICORD_HTTP_HOSTNoHTTP bind address, default 127.0.0.1.127.0.0.1
OMNICORD_SAFE_MODENoDefault on. Destructive tools preview first and require a confirm token; set to false only for trusted automation.true
OMNICORD_HTTP_TOKENNoBearer token for HTTP mode. Required to bind beyond localhost.
OMNICORD_HTTP_ORIGINSNoComma separated browser origins allowed to call the HTTP endpoint. Empty means none.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_rate_limit_statusA

How rate limiting has been going: how many times Discord asked Omnicord to slow down (the request layer waits automatically), and the invalid-request counter that matters because Discord temporarily bans an IP after 10,000 invalid responses in ten minutes. Useful when calls feel slow.

get_bot_infoA

Identity and status of the connected Discord bot: bot user, application, guild count, enabled gateway intents, and the Omnicord version. Use run_setup_check for a full health check with fix instructions.

run_setup_checkA

End-to-end health check of the Omnicord setup: token presence and validity, privileged gateway intent toggles, guild count against Discord's verification thresholds, and default guild membership. Every failed check comes with instructions for fixing it. Run this first when anything misbehaves.

get_server_overviewA

Structured snapshot of a server: identity, member counts, boost status, channel outline grouped by category, and role count. The natural first call when starting work on a server.

list_channelsA

All channels in a server grouped by category, with type and topic. Filter by type: text, voice, forum, stage, announcement, category.

list_rolesA

All roles in a server, highest first, with color, position, and a plain-language digest of their key permissions.

read_messagesA

Recent messages from a channel as a digest: author, time, content, attachments, reactions, and resolved reply references. Returns oldest first. Use next_before to page further back.

search_messagesA

Search recent messages in one channel by content and author. The bot API has no native search, so this scans history newest to oldest up to scan_limit messages and reports exactly how far it looked. Results are case-insensitive substring matches.

search_membersA

Find specific members by a name fragment, or list those holding a given role. For the whole roster use list_members; for one member's full profile use get_member; to turn a fuzzy name into an id use find. Name search uses Discord's member search; role filtering walks the member list and reports if it hit the paging cap.

get_memberA

One member in detail: identity, nickname, roles by name, join date, and timeout state. Accepts a user ID or a name.

findA

Universal name resolver. Give it a name fragment and get ranked candidates across channels, roles, and members with their IDs. Use this when unsure what an entity is called or to grab an ID once and reuse it.

send_messageA

Send a message to a channel, optionally as a reply or with embeds. For a private message to one person use send_dm; to post under a custom name and avatar use send_webhook_message; to send later use schedule_message. Mentions are suppressed by default; raise the mentions mode only deliberately. Supports dry_run.

create_channelA

Create a text, voice, forum, stage, announcement, or category channel, optionally inside a category. Permission overwrites come with the permissions tools in a later phase. Supports dry_run.

create_roleA

Create a role from a vetted preset (none, member, moderator, admin) and/or an explicit list of permission names. Administrator is never granted by a preset; it must be spelled out explicitly. Supports dry_run.

assign_roleA

Give a member a role. Preflights the bot's role hierarchy so the failure mode is an explanation, not a 403. Supports dry_run.

delete_messageA

Delete one message. Safe to call directly: the first call deletes nothing and returns a preview plus a confirm_token, and the deletion only happens when the call is repeated with that token. Use this two-step flow to let the user approve through the conversation rather than telling them to delete things by hand in Discord. Supports dry_run.

list_reference_layoutsA

Curated server blueprints to start from: vetted structures for common server kinds. Fetch one with get_reference_layout, adapt names and channels to the user's theme, then stage it with plan_server_build.

get_reference_layoutA

One reference layout in full: the blueprint plus the reasoning behind its structure. Adapt it rather than applying it verbatim; the user's theme and wording should win.

plan_server_buildA

Validate a blueprint against the live server and stage an ordered build plan. Checks Discord limits, name collisions, role references, feature requirements, and the bot's permissions, and reports every problem at once. Changes nothing. Compose the blueprint from the user's request, optionally starting from a reference layout. Existing channels and roles with matching names are reused, never duplicated.

execute_build_planA

Execute a staged plan by plan_id, or pass a blueprint directly. Either way the blueprint is re-validated against the live server at this moment, then built in dependency order: roles, then categories, then channels, with private_to and read_only compiled into permission overwrites at creation. Strictly additive: existing entities are reused, nothing is deleted or modified. If a step fails, the run stops and the report says exactly what was created, what failed, and what was never attempted. Re-running after a fix resumes naturally because finished work is reused.

update_channelA

Edit a channel's name, topic, slowmode, NSFW flag, or category. Only passed fields change. Pass category "none" to move a channel out of its category. Supports dry_run.

delete_channelA

Delete a channel or category. Safe to call directly: the first call deletes nothing and returns a preview plus a confirm_token, and the deletion only happens when the call is repeated with that token. When the user asks to delete something, call this and relay the preview for their go-ahead instead of sending them to do it manually in Discord; the gate exists exactly so deletion can be approved through the conversation. Deleting a category leaves its channels in place, uncategorized.

update_roleA

Edit a role's name, color, hoist, mentionable flag, or permissions. Passing preset and/or permissions replaces the role's permission set with the named bundle plus listed names. Only passed fields change. Supports dry_run.

delete_roleB

Delete a role. Members holding it simply lose it; nothing else changes. Safe to call directly: the first call deletes nothing and returns a preview plus a confirm_token, and the deletion only happens when the call is repeated with that token. Prefer this gated flow over telling the user to delete the role manually.

edit_messageA

Edit a message the bot itself sent. Discord does not allow editing anyone else's messages, no matter the permission level.

pin_messageA

Pin a message in a channel. Needs the Pin Messages permission (split from Manage Messages in 2026). Channels hold at most 50 pins.

unpin_messageB

Unpin a message. The message itself is untouched.

list_pinned_messagesA

Pinned messages in a channel, newest pin first.

timeout_memberA

Time a member out so they cannot talk, react, or join voice, for up to 28 days. Safe to call directly: the first call changes nothing and returns a preview plus a confirm_token; repeating the call with the token applies the timeout. Relay the preview for the user's go-ahead. The reason lands in the audit log.

remove_timeoutB

Lift an active timeout from a member early.

kick_memberA

Remove a member from the server. They can rejoin with a new invite. Safe to call directly: the first call changes nothing and returns a preview plus a confirm_token; repeating the call with the token performs the kick. Relay the preview for the user's go-ahead instead of doing nothing.

ban_memberA

Ban a user from the server, optionally deleting their recent messages. Works on users who already left (pass their user ID). Safe to call directly: the first call changes nothing and returns a preview plus a confirm_token; repeating the call with the token performs the ban. Relay the preview for the user's go-ahead.

unban_memberA

Lift a ban so the user can rejoin with an invite.

bulk_banA

Ban up to 200 users at once by ID, for raid cleanup. Safe to call directly: the first call changes nothing and returns a preview plus a confirm_token; repeating the call with the token performs the bans. Reports which bans succeeded and which failed.

list_bansA

Current bans with reasons, paged.

get_audit_logA

Discord's historical record of administrative actions: who did what, to what, when, and why. Use this to investigate what already happened; for activity as it happens use subscribe_events. Filter by action name (like channel_create, member_ban_add, message_delete) or by the acting user.

add_reactionsA

Add one or more reactions to a message in a single call. Takes unicode emoji directly or custom emoji by name.

remove_reactionA

Remove a reaction: the bot's own by default, or another user's (which needs Manage Messages).

clear_reactionsA

Clear all reactions from a message, or all of one emoji. Safe to call directly: the first call changes nothing and returns a preview plus a confirm_token; repeating the call with the token executes. Relay the preview for the user's go-ahead.

get_reactionsA

Who reacted to a message with a given emoji.

create_pollA

Post a native Discord poll: a question, two to ten answers, and a duration of up to 32 days.

get_poll_resultsB

Current tallies for a poll message.

end_pollA

Close one of the bot's own polls early and finalize the results.

create_inviteA

Create an invite link for a channel. Defaults are deliberate: expires in 24 hours, unlimited uses. A never-expiring invite must be asked for explicitly with max_age_seconds 0.

list_invitesA

Active invites for the server or one channel.

get_inviteA

Inspect an invite code: where it leads and how used it is.

delete_inviteA

Revoke an invite link. Safe to call directly: the first call changes nothing and returns a preview plus a confirm_token; repeating the call with the token revokes it.

list_webhooksB

Webhooks in the server or one channel. Tokens are never included.

create_webhookA

Create an incoming webhook on a channel. Webhooks post with any display name and avatar, which is how messages 'as someone' work legitimately.

update_webhookA

Rename a webhook, change its avatar, or move it to another channel.

delete_webhookA

Delete a webhook. Anything still posting through it stops working. Safe to call directly: the first call changes nothing and returns a preview plus a confirm_token; repeating the call with the token deletes it.

send_webhook_messageA

Post through a webhook with an optional display name and avatar override. Mentions are suppressed.

list_emojisB

Custom emojis in the server, with usage syntax.

create_emojiA

Upload a custom emoji from an image URL. Discord's limit for emoji files is 256 KB; png, jpeg, gif, and webp work.

update_emojiB

Rename a custom emoji.

delete_emojiA

Delete a custom emoji. Safe to call directly: the first call changes nothing and returns a preview plus a confirm_token; repeating the call with the token deletes it.

list_eventsA

Scheduled community events (the kind members RSVP to), with type, time, status, and interest counts. For pending scheduled messages see list_scheduled_messages; for live event subscriptions see list_event_subscriptions.

get_eventC

One scheduled event in detail.

create_eventA

Create a Discord scheduled community event that members see on the events list and can mark interest in: a voice, stage, or external (in-person or off-platform) event. This is not for sending a message later (use schedule_message) or watching live activity (use subscribe_events). Voice and stage events need a channel; external events need a location and an end time.

update_eventA

Edit a scheduled event's details, or move it through its lifecycle: status start makes it live, status end completes it.

cancel_eventA

Cancel and remove a scheduled event. Interested members lose the listing. Safe to call directly: the first call changes nothing and returns a preview plus a confirm_token; repeating the call with the token cancels it.

get_event_attendeesC

Members who marked themselves interested in an event.

subscribe_eventsA

Watch the server live: start recording real-time activity as it happens (messages, joins and leaves, reactions, channel and role changes, bans, voice movement) into a buffer you then read with get_recent_events. Use this to observe what is going on now. It is not for scheduled community events (create_event) or timed messages (schedule_message). Available types: message_created, message_deleted, member_joined, member_left, reaction_added, reaction_removed, channel_created, channel_deleted, role_created, role_updated, role_deleted, ban_added, ban_removed, voice_state_changed.

get_recent_eventsB

Read and clear buffered events from a subscription, oldest first.

list_event_subscriptionsB

Active event subscriptions and their buffer sizes.

unsubscribe_eventsA

Stop recording and discard a subscription's buffer.

create_threadA

Start a thread in a text or announcement channel: standalone, branched from a message when message_id is given, or private (invite-only) when asked. For a post in a forum channel, use create_forum_post instead.

list_threadsA

Active threads across the server or one channel. Archived threads come from a specific channel with include_archived.

get_threadA

One thread's settings, state, and counts.

update_threadA

Rename a thread, archive or unarchive it, lock or unlock it, or change its slowmode and auto-archive window.

delete_threadA

Delete a thread and its messages. Safe to call directly: the first call changes nothing and returns a preview plus a confirm_token; repeating the call with the token deletes it. Archiving is the reversible alternative.

list_thread_membersC

Who is in a thread.

add_thread_memberC

Pull a member into a thread.

remove_thread_memberA

Remove a member from a thread. Needs Manage Threads.

create_forum_postB

Start a post in a forum channel: a title, the opening message, and optional tags from the forum's tag list.

list_forum_postsB

Posts in a forum, filterable by tag, optionally archived too.

reply_to_forum_postA

Add a reply inside a forum post.

update_forum_postA

Edit a post's title or tags, pin or unpin it within the forum, lock or unlock replies, or archive it.

delete_forum_postA

Delete a forum post and every reply in it. Safe to call directly: the first call changes nothing and returns a preview plus a confirm_token; repeating the call with the token deletes it.

create_forum_tagA

Add a tag to a forum's tag list. Moderated tags can only be applied by people with Manage Threads.

update_forum_tagA

Rename a forum tag or change its moderated flag.

delete_forum_tagA

Remove a tag from a forum; posts carrying it simply lose it. Safe to call directly: the first call changes nothing and returns a preview plus a confirm_token; repeating the call with the token removes it.

list_automod_rulesC

Server-side automatic moderation rules and what they do.

create_automod_ruleA

Create a server-side moderation rule that runs on Discord's own infrastructure: Discord-maintained preset word lists (slurs, profanity, sexual content), custom keyword filters (with optional regex), spam detection, or mention-flood limits. For slur or hate-speech filtering prefer trigger keyword_preset with the slurs preset: Discord maintains the word list, so none needs to be written. Actions: block the message, alert a channel, and/or time the sender out (timeout is not available on spam or keyword_preset rules).

update_automod_ruleA

Rename a rule, enable or disable it, or replace its keyword list.

delete_automod_ruleA

Delete an AutoMod rule; its protection stops immediately. Safe to call directly: the first call changes nothing and returns a preview plus a confirm_token; repeating the call with the token deletes it. Disabling is the reversible alternative.

update_serverA

Edit server settings: name, description, AFK behavior, system and rules channels, verification level. Only passed fields change. Descriptions need a Community server.

get_server_previewA

A server's preview: name, description, and approximate member counts. Works for servers the bot is in; other servers need to be discoverable.

get_server_widgetB

Widget settings: enabled state and invite channel.

update_server_widgetA

Enable or disable the widget, or point its invite channel.

get_welcome_screenC

The Community welcome screen, when the server has one.

update_welcome_screenC

Edit the Community welcome screen: the description and up to five channel cards.

get_onboardingB

The new-member onboarding flow, when configured.

update_onboardingA

Configure the new-member onboarding flow on a Community server: prompts with options that grant channels and roles, the default channels every member sees, and the enabled state. Discord's app asks for at least seven default channels when configuring this by hand; the API has been observed to accept fewer.

list_integrationsC

Installed integrations: bots, Twitch and YouTube links.

delete_integrationA

Remove an integration from the server. Safe to call directly: the first call changes nothing and returns a preview plus a confirm_token; repeating the call with the token removes it.

list_server_templatesA

Discord templates created from this server.

create_server_templateA

Snapshot this server's structure as a Discord template others can create servers from. One template per server.

sync_server_templateB

Update a template to match the server's current structure.

delete_server_templateA

Delete a server template; its share link stops working. Safe to call directly: the first call changes nothing and returns a preview plus a confirm_token; repeating the call with the token deletes it.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/OrygnsCode/Omnicord'

If you have feedback or need assistance with the MCP directory API, please join our Discord server