GuildControl MCP
io.github.j-256由 GitHub 帳號 j-256 發布v0.2.0更新於 Nov 3, 2026
Safety-first MCP server for Discord with privacy-safe reads, audits, and reviewed administration
概覽
本機 stdio MCP 伺服器,讓助理透過你自己的機器人讀取並在審核後管理 Discord 伺服器,具備嚴格範圍限制與隱私最小化輸出。
- 可以做什麼
- 在精確政策範圍內讀取伺服器、頻道、訊息、討論串、論壇、成員、審核、稽核、活動與語音資料,輸出依隱私分級並以精確 ID 定位
- 傳送、回覆、編輯、加表情回應、發起投票、轉發與刪除訊息,並透過審核後的寫入協調任務
- 建立與調整伺服器結構:頻道、角色、論壇、權限、新手導引、AutoMod 與藍圖
- 管理成員、角色、暱稱、驗證與語音成員身分,支援可續批次與大量封鎖
- 稽核並管理社群設定,例如應用程式、Webhook、邀請、活動、變現與設定
- 漸進式探索工具、檢索內建文件,並檢視不含內容的操作與協調紀錄
- 適用情境
- 當助理需要檢視或管理你擁有的 Discord 伺服器時適用,特別適合先唯讀、以精確 ID 定位、任何變更前都需核准的情境。適合需要可稽核、最小權限 Discord 存取而非共用機器人的營運者。
- 執行需求
- 需要 Node.js 22.15 或更新版本及本機 stdio MCP 主機;另提供 OCI 映像與 MCPB 套件。需要你所控制 Discord 伺服器的「管理伺服器」權限、一個 Discord 應用程式與機器人及其 Application ID 和 Server ID,並透過 DISCORD_BOT_TOKEN 環境變數或權杖檔案提供機器人權杖。另需一份非機密的 JSON 政策檔案。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 GuildControl MCP,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
GuildControl MCP
[GuildControl MCP shield and reviewed connection icon]GuildControl MCP is a local stdio Model Context Protocol server for safe Discord guild and separately allowlisted one-to-one access through an operator-owned bot. It combines broad typed coverage with exact scope, privacy-minimized results, reviewed writes, content-free evidence, and explicit ambiguity handling.
Least privilege. Review before mutation. Verifiable outcomes. No Discord-content persistence.
Documentation portal | Verified product tour | Get a verified read | Safety and usability decisions | Switch from another MCP | Fit and boundaries | Field comparison | Complete reference | Privacy | Security
GuildControl is an independent project and is not affiliated with or endorsed by Discord Inc. Discord is used only to identify the platform that GuildControl connects to.
Why this connector
Use the first verified read guide for setup and recovery. Read product boundaries and host compatibility before adopting the custody, privacy, approval, and recovery model. The complete reference covers every policy, tool, permission, resource, prompt, command, and workflow limit.
Quick start
The fastest supported outcome is an owner-managed read-only bot, one strict non-secret policy, one private host guide, and a successful channel inventory. You need Node.js 22.15 or newer, Manage Server authority in a Discord server you control, and a local stdio MCP host. GuildControl provides no shared bot, relay, or token store.
Guided setup: start here
Create an application and bot in the Discord Developer Portal, enable Developer Mode in Discord, and copy the Application ID and target Server ID. Then run:
npx guildctl starts interactive onboarding: host selection, minimum server-observer policy creation or exact revalidation, live bot and MCP verification, and a private activation guide. It fails closed on drift and never stores the token, reads message content, enables writes, discovers host paths, or edits host configuration.
The result explains credential handoff; a one-time prompt is cleared after smoke. See the first verified read guide for custody and recovery.
Optional guildctl host detect checks path metadata only. onboard --detect-host selects one candidate; ambiguity requires a choice. Detection reads no candidate content or credential.
For unattended setup, supply every public decision and an existing secret reference:
JSON mode never prompts or opens a browser. The first verified read guide covers supported hosts, default paths, alternate credential custody, the manual route, and recovery.
Do not grant the bot Administrator. Generate the exact initial permission grant from a read-only preset, then narrow the installed bot role with category or channel overrides. The bot setup guide explains bot ownership, optional intents, and later feature-specific permissions.
Optional preflight: inspect without credentials
Inspect an exact release and its read-only preset without a token or Discord request:
catalog --check verifies the credential-free, execution-disabled production contract, including complete per-tool setup and readiness metadata. catalog --html FILE renders it as a release-exact guided, searchable offline explorer with no external asset, runtime request, credential, or configured completion ID.
Switch from another Discord MCP
Generate a complete release-exact outcome map before creating policy or changing the old deployment:
The migration guide covers every scored peer release. Planning scans no checkout, reads no configuration, host setting, environment value, or credential, contacts no network or Discord endpoint, and changes nothing. It maps every audited source tool into supported, review-required, or intentionally excluded outcomes and validates target routes against the negotiated production catalog. It does not rewrite prompts, arguments, configuration, credentials, or host settings.
Install your owner-managed bot
Create a Discord application and bot in the Developer Portal, copy the public Application ID and target Server ID, and generate a callback-free install link whose guild and least-privilege permission grant come from the recommended preset:
Open the printed URL while signed in as a member allowed to manage that server. It requests only View Channel for server-observer, locks the server selector to the supplied ID, requests no user token, and never sends the bot token to the connector command. Keep Public Bot disabled unless other people should be able to install your application. Use channel-reader instead to request View Channel plus Read Message History; its plan also identifies Message Content as the recommended Developer Portal intent.
Optional --html FILE adds a deterministic standalone checklist, copy controls, explicit Discord navigation, pinned follow-up commands, and exact plan evidence without a token, external asset, background request, persisted browser state, automatic browser launch, or overwrite. The terminal plan remains complete without HTML.
Create the safest first configuration
From a canonical process-owned private directory, keep the token in a secret-capable launching environment, verify one exact guild, save the complete non-secret policy in one file, and test the full MCP path:
On PowerShell 7.1 or newer, read the token into the current process without displaying it or placing its value in command history, then run the same commands:
Enter each displayed multi-line shell command on one line in PowerShell; the npx arguments remain the same. With older Windows PowerShell, use an MCP host secret facility or protected token file instead of a token literal in command history.
If the launcher, container runtime, or orchestrator mounts the token as a file, select that input instead. The path must be absolute, the file must already exist for verified setup, and --token-file cannot be combined with --token-env or an ambient DISCORD_BOT_TOKEN:
The server-observer preset exposes guild metadata, roles, permission diagnostics, connector health, content-free activity, and tool discovery without enabling writes, the Gateway, telemetry, persistence, or Message Content access. Setup is the first-run readiness gate: it validates the strict policy, verifies the application and bot, audits the exact guild installation, stores public IDs and a credential reference but never the token, and prints the launch descriptor. A ready setup exits successfully even when it reports non-blocking warnings for deliberate review. route_discord_goal safely routes later discovery, reads, and reviewed planning, never mutation; it creates bookkeeping keys itself instead of asking the operator to invent them.
The versioned file is the only policy boundary. It covers identity, explicit read modes, typed reusable exact-ID groups, notification and thread behavior, tools, capabilities, scopes, limits, storage, Gateway, runtime, and observability. A typical deployment has one JSON policy and one external bot-token secret. The JSON Schema, config show, and config explain support secret-free inspection; managed profiles use the same document.
Operational commands require --config FILE, --profile NAME, or the non-secret GUILDCONTROL_CONFIG_FILE selector. Ambient policy variables are rejected and there is no alternate environment-policy or automatic import mode. The offline migrate planner never becomes a runtime policy source. Running setup without a preset verifies an existing policy without rewriting it, while a preset explicitly creates or replaces the selected target.
Connect with the one-click bundle or a generated adapter
After setup reports ready, compatible MCPB hosts can import guildcontrol-2.3.5.mcpb from the immutable GitHub Release or MCP Registry. Select the strict config and enter only the token through the sensitive prompt. The verified bundle supports macOS, Windows, and Linux, duplicates no policy field, embeds privacy and dependency evidence, and completes a real unpacked MCP handshake.
For a file-backed token or another host, host emits deterministic adapters for Claude Code, Codex, Cursor, VS Code, Gemini CLI, and common MCP JSON. Optional host detect reports plausible hosts from metadata only. host plan and host apply review and install one static JSON projection without resolving credentials or replacing unrelated entries; Codex receives an exact reviewable TOML projection, and --inspect-host-file reports exact JSON drift without returning observed values. The connection guide covers setup and verification.
Once the host is connected, the first useful request can stay natural and narrow:
config validate, doctor, and smoke are optional assurance and recovery tools after successful setup. Offline doctor can inspect policy without an available credential; --online contacts Discord only when it is available, while smoke verifies a child MCP handshake. Human doctor output shows actionable warnings and failures; add --verbose for every check or --json for complete evidence. Doctor exits 1 for warnings, including ready with warnings.
Review any policy replacement
Keep the active policy unchanged while editing a separate candidate, then use the integrated review path:
config replace prints the plan before named confirmation, recomputes under lock, writes atomically, keeps a backup, and verifies the result. Detached review remains available:
The private workbench keeps edits in memory until explicit candidate download and has no secret, network, persistence, Discord, active-file write, or approval authority. Both application paths reread the files, reject identity or file drift, and preserve a recoverable backup. The active document remains the only policy source.
Review recent write outcomes and durable cross-process claims from the same selected policy without making a Discord request or resolving its credential:
The bounded review collapses each activity into its newest outcome, retains superseded history, joins durable claims only through content-free digests, and warns on every unsettled state. Its optional private explorer adds search and filters but cannot contact Discord, resolve a claim, retry an operation, or persist browser state. Use coordination resolve only after stopping the owner and checking the exact Discord state and audit log.
Feature policy uses the same document shape. Reviewed features retain separate capabilities, exact scopes, bounded limits, and documented toolsets; single-member authority never grants batch authority. No environment-policy interface, legacy alias, fallback parser, or automatic migration layer exists.
Use channel-reader only when bounded message history, caller-retained channel catch-up, and native search are needed. It requires at least one exact channel:
Expand the policy through review
Keep first setup read-only, then enable one additive recipe through integrated review. message-channel is the narrowest first write: plain sends, replies, connector-owned edits in exact channels or eligible child threads, and exact-target typing. coordination-channel adds directed notes; channel-publisher adds broader publishing; guild-starter adds reviewed public layouts with nonprivileged GUILDS evidence; guild-builder adds blueprint lifecycle; incident-response adds lockdown; and direct-messenger adds exact-user private messaging. Every recipe reports permissions, intents, scopes, risks, and exclusions.
The detached automation path remains explicit:
Both paths show the complete policy delta, requirements, risks, warnings, and path-bound evidence without a secret or Discord request. Application recomputes, requires name confirmation, rejects drift, and keeps a backup. Recipes grant no Discord authority.
Online doctor verifies identity, complete ID-only installation drift, and application posture. Smoke launches serve, negotiates stable MCP over stdio, validates catalogs and read-only status, writes nothing to Discord, and shuts down configured runtimes. See the operator reference.
Build from source
The exact installation, operator CLI, and configuration references cover standalone configuration, managed profiles, OCI bind mounts, progressive discovery, toolsets, allowlists, optional Gateway modes, observability, and every independently gated feature.
Capability map
Capabilities are exposed only when their toolset and policy gates are selected. A toolset narrows the callable surface but never grants Discord or local write authority. Browse the exact tool reference, resources, and prompts.
Safety model
Discord permissions are the outer boundary. Connector policy narrows that authority further.
- Production traffic uses fixed Discord REST and vetted Gateway origins; runtime configuration cannot redirect credentials
- Each Gateway shard counts every successful outbound event in one rolling connection budget, bounds caller-command pressure below reserved lifecycle capacity, and discards queued exact-ID requests on every connection boundary
- Exact scopes cover guilds, channels, roles, members, features, and HTTPS link origins
- Guild tools reject DMs. Private-message tools require an independent exact ordinary-user allowlist and caller-known one-to-one channel IDs, support only plain text or bounded static Components V2, suppress mentions, enforce fixed anti-spam limits, and provide no discovery, bulk targeting, callback-bearing components, arbitrary embed URLs, or Gateway feed
- Components V2 links require exact HTTPS origins; the connector never fetches them or follows redirects
- Components V2 request Buttons use connector-generated HMAC IDs, require ready exact native Interaction ingress, create only a private bounded request for an exact allowlisted user, and never run a Discord write or administration action automatically
- Discord names, messages, embeds, components, filenames, URLs, and other remote text are treated as untrusted data rather than instructions
- Discord content may be returned transiently when explicitly requested, but it is not cached, journaled, exported, or persisted by the connector
- New invite codes and URLs are delivered only through a caller-selected exclusive private file; MCP results, lifecycle records, errors, logs, and telemetry remain bearer-capability-free
- Incoming-webhook credentials remain in exclusive exact-ID private files; MCP accepts only webhook and message IDs, and persistent activity, receipts, errors, logs, and telemetry remain credential- and content-free
- Entitlement writes are separately scoped; test deletion needs creation proof, and consumption stores only a fulfillment-reference hash
- Every consequential write retains its domain-specific permission, freshness, approval, audit, readback, and uncertainty gates
- Message deletion accepts exact message IDs only and preserves every independent deletion gate
- Channel deletion requires exact scope, complete dependency and permission evidence, irreversible-loss acknowledgement, and an exact target-bound blueprint attestation or no-artifact choice before signed review and Gateway absence proof; it never reads messages
- Role deletion requires exact scope, zero holders, complete hierarchy, permission, and dependency evidence, irreversible-loss acknowledgement, an exact target-bound blueprint attestation or no-artifact choice, signed review, and fresh absence plus survivor-preservation proof
- Guild pruning requires a separate exact guild allowlist, optional exact include-role allowlist, explicit acknowledgement that Discord does not reveal the candidate IDs, protected-identity role shields, a fresh native estimate below both requested and configured ceilings, signed review, and one non-retried request with strict count-only outcome evidence
- Guild incident actions require one exact allowlisted guild, complete known
MANAGE_GUILDor owner evidence, future deadlines no more than 24 hours ahead, signed review, one non-retried sparse write, and exact response plus fresh readback; clearing protection early is treated as destructive - Privileged-intent enablement accepts only Guild Members or Message Content when the strict policy proves that intent is required or recommended, preserves every observed non-target application flag, and excludes Presence, disabling, generic application editing, and automatic remediation
The common reviewed-write sequence starts from the execute tool. Callers can still supply a digest from a detached plan when independent review requires it:
Already-current requests are record-free no-ops where the Discord operation permits that proof. A known client rejection settles as failed. A transport failure, server failure, malformed success response, or missing readback is uncertain and must not be retried blindly. Durable claims keep the affected exact targets quarantined across connector processes until safe receipt evidence or explicit operator resolution proves what may proceed.
Read the complete safety model and security policy before enabling a write surface.
Trust and verification
catalog --check --json is designed for independent comparison. It needs no credential, ignores ambient connector authority, returns no configured completion identifiers, executes no Discord operation, opens no Gateway, exports no telemetry, and creates no activity record. Matching contract digests identify matching normalized MCP instructions, server capabilities, tool access lifecycles, policy-completion bindings, tool schemas and annotations, prompts, resources, templates, safety response, review app, and execution guard.
Release automation verifies reproducible npm and MCPB artifacts, hardened OCI, SPDX inventories, and signed provenance, then publishes an immutable GitHub Release before registering app.lasers.guildcontrol/discord. Normal releases require one protected npm-stage approval and one promotion approval; package, Release, and Registry authority stays in separate jobs. Provenance is a build receipt, an SBOM a parts list, and an attestation their artifact-and-issuer binding; none certifies security or completeness. See the evidence boundaries and release runbook.
Architecture
The stdio transport, Discord REST client, scope policy, domain services, reviewed planning, durable coordination, activity log, observability, Gateway, and MCP adapter remain separate. Production uses native fetch, TypeScript ESM, exact dependencies, and lazy schemas that skip registration cost for excluded tools.
This keeps transport, permission evidence, local authority, reviewed writes, persistence, and MCP presentation independently testable. New capabilities must fit those boundaries rather than add a generic Discord dispatcher.
Documentation
- Verified documentation portal
- First verified read and initialization recovery
- Safety and usability decision record
- Release-exact migration from another Discord MCP
- Product boundaries, honest limitations, and host compatibility
- Source-audited field comparison
- Complete operator and capability reference
- Setup and operator support
- Privacy policy
- Security model and reporting
- Release and independent verification runbook
- MCP Registry manifest
- AGPL-3.0-only license
Development
See CONTRIBUTING.md for changes and SUPPORT.md for setup and operator questions. Default tests use injected transports and do not contact Discord:
Live probes are explicit and read-only by default. No default verification command fetches message content or performs a Discord mutation.
License
AGPL-3.0-only
來源:README.md,提交 2eda7d5
工具
0版本歷史
1- v0.2.0最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分