DiscordMCP
A Vencord plugin that provides MCP server capabilities for inspecting Discord's internal state, executing JavaScript code, accessing Flux stores, discovering webpack modules, and inspecting DOM elements within Discord's context.
README
DiscordMCP
A Vencord plugin that provides an MCP (Model Context Protocol) server for inspecting Discord and running JavaScript code.
Features
- MCP Server: Provides an HTTP-based MCP server that can be connected to by MCP clients
- JavaScript Execution: Execute JavaScript code in Discord's context
- Store Inspection: Access and inspect Discord's Flux stores
- Webpack Module Discovery: Find webpack modules by properties
- Variable Discovery: Recursively search for variables in document.* by name (case-insensitive)
- Element Inspection: Inspect DOM elements with detailed metadata including XPath, attributes, computed styles, children/parent info, and position data
Installation
- Enable the plugin in Vencord's settings
- Configure the port (default: 8787)
- The MCP server will start automatically when the plugin is enabled
Configuration
- Port: The port the MCP server listens on (default: 8787)
- Enabled: Toggle to enable/disable the MCP server
MCP Tools
evaluate_javascript
Execute JavaScript code in Discord's context.
Parameters:
code(string, required): JavaScript code to execute
Example:
{
"code": "UserStore.getCurrentUser()"
}
get_store
Get information about a Discord Flux store.
Parameters:
storeName(string, required): Name of the store (e.g., "UserStore", "GuildStore")
get_store_method
Call a method on a Discord store.
Parameters:
storeName(string, required): Name of the storemethodName(string, required): Name of the method to callargs(array, optional): Arguments to pass to the method
Example:
{
"storeName": "UserStore",
"methodName": "getCurrentUser",
"args": []
}
find_webpack_module
Find a webpack module by properties.
Parameters:
props(array, optional): Property names to search forcode(string, optional): Code string to search for (not fully implemented)
find_variable
Recursively search for a variable name (case-insensitive partial match) in document.*.
Parameters:
name(string, required): Part of variable name to search for (case-insensitive)maxDepth(number, optional): Maximum recursion depth (default: 5)
Example:
{
"name": "query",
"maxDepth": 3
}
This will find all properties in document.* whose names contain "query" (case-insensitive), such as document.querySelector, document.querySelectorAll, etc.
inspect_element
Inspect a DOM element using a CSS selector (like querySelector) and return detailed metadata about the element.
Parameters:
selector(string, required): CSS selector string to find the element (e.g.,"#myId",".myClass","div > button", etc.)
Returns:
The tool returns comprehensive metadata about the element including:
- Basic Info: Tag name, ID, class name, text content, innerHTML
- XPath: Full XPath expression to locate the element
- Attributes: All HTML attributes as key-value pairs
- Bounding Rectangle: Position and size information (x, y, width, height, top, left, bottom, right)
- Computed Styles: Important CSS properties (display, visibility, position, colors, fonts, spacing, etc.)
- Parent Info: Tag name, ID, and class of the parent element
- Children Info: Count of children, first 50 child elements with their tag names, IDs, and classes
- Visibility: Whether the element is visible and if it's in the viewport
- Scroll Info: Scroll position and scroll dimensions
- Dimensions: Offset width and height
Example:
{
"selector": "#app-mount"
}
This will return detailed information about the element with ID app-mount, including its XPath, all attributes, computed styles, children, parent information, and more.
Usage with MCP Clients
The server implements the MCP protocol over HTTP. Connect to it using an MCP client configured to use HTTP transport.
Server URL: http://127.0.0.1:8787 (or your configured port)
Security Warning
⚠️ WARNING: This plugin allows arbitrary JavaScript execution in Discord's context. Only use this plugin if you trust the MCP clients connecting to it. Do not expose the server to untrusted networks.
AI Disclaimer
This plugin was developed with assistance from Cursor.AI (Cursor's AI coding assistant). The AI was used to help with code generation, debugging, documentation, and implementation. While AI assistance was utilized, all code and features were reviewed and tested to ensure quality and functionality.
License
Unlicense
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.