DiscordMCP

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.

Category
Visit Server

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

  1. Enable the plugin in Vencord's settings
  2. Configure the port (default: 8787)
  3. 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 store
  • methodName (string, required): Name of the method to call
  • args (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 for
  • code (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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured