Skip to content

feat: add local read-only Discord MCP - #1

Merged
JoelBChapmanII merged 1 commit into
masterfrom
feat/local-discord-mcp
Aug 1, 2026
Merged

feat: add local read-only Discord MCP#1
JoelBChapmanII merged 1 commit into
masterfrom
feat/local-discord-mcp

Conversation

@JoelBChapmanII

Copy link
Copy Markdown
Owner

No description provided.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Ready to approve

The implementation consistently enforces the stated allowlisting boundaries and includes targeted tests validating the read-only tool surface and fail-closed behavior.

This review doesn't count toward merge requirements. Sign up for the private preview to control whether Copilot approvals count.

Pull request overview

This PR introduces a minimal TypeScript-based MCP server that exposes read-only Discord REST tools guarded by explicit local allowlists, aligning with the goal of a “local read-only Discord MCP”.

Changes:

  • Added a read-only MCP server (src/server.ts) that exposes 5 Discord tools and enforces guild/channel allowlisting.
  • Implemented a small Discord REST client plus config parsing/validation (src/discord.ts, src/config.ts) and a stdio entrypoint (src/index.ts).
  • Added Node test-runner coverage for tool advertisement and fail-closed allowlisting behavior, plus expanded documentation and project scaffolding.
File summaries
File Description
tsconfig.json TypeScript build configuration for an ESM/NodeNext project outputting dist/.
package.json Defines Node/TS toolchain, build/test scripts, and runtime dependencies for MCP + Discord REST.
package-lock.json Locks dependency graph for reproducible installs.
src/config.ts Parses env configuration and enforces required guild allowlisting + snowflake validation.
src/discord.ts Discord REST wrapper, allowlist assertions, and error normalization.
src/server.ts Implements the MCP tools (guild/channel/message read operations) with allowlist checks.
src/index.ts Stdio-based executable entrypoint wiring config + Discord client into the MCP server.
test/config.test.ts Tests config validation and allowlist parsing behavior.
test/server.test.ts Tests tool surface (5 tools) and rejects non-allowlisted channel before Discord calls.
README.md Documents safety boundaries, tools, setup, and usage (including Codex config).
.gitignore Ignores build artifacts, dependencies, and local env files.
.env.example Provides a template for required/optional environment variables.
Review details
  • Files reviewed: 9/12 changed files
  • Comments generated: 0
  • Review effort level: Lite

We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.

@JoelBChapmanII
JoelBChapmanII merged commit e9d921a into master Aug 1, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants