MCP Tools (mcp_*)
This page is for application developers using Discord MCP-local tools that are available to normal, non-privileged apps.
These tools are part of the Discord MCP service itself. They do not proxy directly to Discord.
Access and Safety #
Most mcp_* tools require:
X-Owner-Access: 1orX-Owner-Access: true
One exception exists:
mcp_get_access_contextis callable without owner access.
Without owner access, the other mcp_* tools are hidden from
/v1/tools/list and denied at execution.
X-Allowed-Methods behavior #
If X-Allowed-Methods is set, the Discord MCP applies it to mcp_* tools too:
- read operations: require
GETorPOST - write operations: require
POST
Operational mapping:
- Read operations:
mcp_get_settingsmcp_get_runtime_settingsmcp_get_provider_settingsmcp_get_access_contextmcp_list_editable_optionsmcp_validate_tool_call- Write operations:
mcp_set_optionmcp_set_provider_option
Tool Reference #
mcp_get_settings #
Read current app-specific settings.
- Arguments: none
Example (/v1/tools/call):
{
"name": "mcp_get_settings",
"arguments": {}
}
mcp_get_runtime_settings #
Read the currently loaded runtime settings snapshot.
- Arguments: none
Example:
{
"name": "mcp_get_runtime_settings",
"arguments": {}
}
mcp_get_access_context #
Debug helper: returns the evaluated access context for the current request/session.
- Arguments: none
- Includes:
app_idowner_accessprivileged_callprivileged_applicationpermission_bitsprivileged_intentscurrent_usercurrent_guildcurrent_channelcurrent_messageallowed_mentionstarget_users,target_guilds,target_channelsallowed_methods,allowed_pathscache_max_ttl
Example:
{
"name": "mcp_get_access_context",
"arguments": {}
}
mcp_get_provider_settings #
Read provider configuration visible to the current app.
- Arguments:
provider(required): provider name such asalibabaordiscord- Returns:
- service-level defaults for that provider
- app-specific overrides for that provider
- the merged effective settings
Example:
{
"name": "mcp_get_provider_settings",
"arguments": {
"provider": "alibaba"
}
}
mcp_validate_tool_call #
Dry-run preflight helper for model self-correction loops and operator debugging.
- Arguments:
name(required): target tool namearguments(optional): tool arguments object- Behavior:
- runs the Discord MCP access/method/permission checks
- runs route/target preflight for Discord tools
- does not execute upstream Discord mutations
Example:
{
"name": "mcp_validate_tool_call",
"arguments": {
"name": "delete_message",
"arguments": {
"guild_id": "123456789012345678",
"channel_id": "223456789012345678",
"message_id": "323456789012345678"
}
}
}
mcp_list_editable_options #
List the user-editable app options supported by mcp_set_option, with short
format guidance.
- Arguments: none
Example:
{
"name": "mcp_list_editable_options",
"arguments": {}
}
mcp_set_option #
Set one user-editable option for the current application.
- Arguments:
option(required): one of:notesdm_prefixdefault_allowed_methodsdefault_allowed_pathsdefault_target_usersdefault_target_guildsdefault_target_channelsdefault_permission_bitsdefault_cache_max_ttlevent_webhook
value(required): string/number/booleanvalue: "default"deletes the option
Example (notes):
{
"name": "mcp_set_option",
"arguments": {
"option": "notes",
"value": "On-call app for moderation workflows"
}
}
Example (default_allowed_methods):
{
"name": "mcp_set_option",
"arguments": {
"option": "default_allowed_methods",
"value": "GET,POST"
}
}
Example (default_permission_bits):
{
"name": "mcp_set_option",
"arguments": {
"option": "default_permission_bits",
"value": "8192"
}
}
mcp_set_provider_option #
Set one app-specific provider override.
- Arguments:
provider(required)option(required)value(required)value: "default"deletes the override field
Use this when one application needs its own token, model, webhook URL, or other provider field without changing the global default for the whole Discord MCP service.
Whether a field can be edited here depends on the provider. Some providers allow every app-specific field, while others only allow a small safe subset.
Example:
{
"name": "mcp_set_provider_option",
"arguments": {
"provider": "alibaba",
"option": "model",
"value": "your-image-model"
}
}
Related Docs #
- Security headers:
docs/headers.md