Agency-grade Discord MCP server with multi-guild project routing
discord-ops exposes 72 tools with minimal schema documentation and sparse parameter descriptions. While tool names follow verb_noun conventions (send_message, get_channel, delete_role), most tools lack visible input schemas in the provided source. The server.ts excerpt shows Zod schema parsing but does not reveal individual tool schema definitions. Parameter descriptions are absent or trivial across the tool list. Output schemas are undocumented. Error handling is generic (rate limit responses only). Security audit logging exists but permission gates are not visible per-tool. The codebase is well-structured (profiles, rate limiting, sanitization) but tool definitions themselves are under-specified for LLM reasoning.
Add a reaction to a Discord message
Archive a Discord thread
Assign a role to a Discord guild member
Ban a member from a Discord guild
Create an application emoji
Create a new Discord channel
Create a post in a Discord forum channel
No input schemas visible in source code. All 72 tools lack documented parameter types, constraints, and validation rules. The server.ts shows Zod parsing but individual tool schema definitions are not provided.
Tool descriptions are trivial (10-30 chars). LLMs cannot determine when to select a tool or what it does. E.g., 'Send a message to a Discord channel' lacks context on required parameters, return value, or when to use vs. send_embed or send_template.
No parameter descriptions visible. LLMs cannot infer what 'project', 'channel', 'user_id', or 'role' parameters mean, their valid ranges, or whether they accept names vs. IDs. This forces agents to guess or make extra discovery calls.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | <=2025-11-25 | v2 |
Create an invite to a Discord guild
Create a Discord bot persona
Create a new role in a Discord guild
Create a thread in a Discord channel
Create a webhook in a Discord channel
Delete an application emoji
Delete a Discord channel
Delete a Discord message
Delete a Discord role
Delete a Discord webhook
Edit a Discord channel
Edit a Discord message
Edit a Discord role
Edit a Discord webhook
End a Discord poll
Execute a Discord webhook
Forward a message to another Discord channel
Get information about a Discord channel
Get Discord events from the event sink
Get information about a Discord guild
Get invites for a Discord guild
Get information about a Discord guild member
Retrieve a specific message from Discord
Retrieve messages from a Discord channel
Retrieve notes from a project board
Get results from a Discord poll
Get reactions on a Discord message
Get replies to a Discord message
Get information about a Discord webhook
Perform a health check on the MCP server
Kick a member from a Discord guild
Leave a note on a project board
List application emojis
List configured Discord bots
List channels in a Discord guild
List posts in a Discord forum channel
List Discord guilds the bot is in
List members in a Discord guild
List available bot personas
List configured Discord projects
List roles in a Discord guild
List project board sessions
List available message templates
List threads in a Discord channel
List webhooks in a Discord channel
Move a Discord channel to a different category
Send notifications to project owners
Pin a message in Discord
Delete multiple messages from a channel
Query the Discord audit log
Mark a note as resolved
Search for messages in a Discord channel
Send a message as a specific persona
Send an embedded message to Discord
Send a message to a Discord channel
Send a native Discord poll
Send a templated message to Discord
Set the bot's nickname in a guild
Set channel permissions
Set slowmode on a Discord channel
Timeout a member in a Discord guild
Unban a member from a Discord guild
Unpin a message in Discord
Update bot application metadata
Update a Discord forum post
Output schemas are undocumented. Agents do not know what fields to expect from list_channels, get_guild, or list_members, making downstream tool chaining error-prone. No pagination guidance (limit, offset, total_count) visible.
Destructive tools (delete_message, ban_member, purge_messages, delete_channel) lack confirmation or dry-run patterns. Agents can irreversibly delete data without a safety gate.