DiscordMCP
Security

The first rule, not the last page.

An instance holds a token that can restructure one Discord server. Our bot holds one that can restructure every server it is in. Those two sentences are the reason for every decision here, and none of them was bolted on afterwards.

Zero third-party packages

No process here runs anybody else’s code, neither the one with your token nor the one with ours. No library, no overnight update, no supply chain.

No token stays with us

If you bring your own bot, its token passes through here on the way into your instance and is erased as soon as the instance reports it is running; what stays is a fingerprint. If you take our bot, there is no token of yours. Ours lives in a single process, in no instance, and each instance may touch only its own server with it.

One process per customer

Own address, own certificate, own journal channel, own settings file. There is no shared database for one customer's server to turn up in another customer's answer.

The portal is never root

Setting up an instance needs root. The web service strangers post to does not have it: it writes a request into a directory, and a worker nothing on the internet can reach picks it up.

One standing connection, not one per server

Your own bot opens no gateway connection to Discord: it asks when it has something to do and is silent otherwise. Our bot holds exactly one, for all servers together, because it has to read what you write to it. It lives in a process that does nothing else.

The refusals are written down too

Every change goes into a channel on your own server, and so does every refusal. The refusal is the more useful half: an attempt that never reached Discord leaves no trace anywhere else.

Each of these is a decision with a file behind it rather than a statement of intent. We write them down so you can hold us to them.

The shape of it

Your bot or ours, and what the difference is

With your own bot you create the Discord application yourself. The token is good for your server only, and you can revoke it at any moment without asking us. With our bot you share one application with other customers: one token that can enter every server it is in. That is why it lives in a single process that does nothing else and ties every request from an instance to that instance’s own server.

22 of the 53 permissions Discord can grant

Point at a square and it says which permission it is.

51 tools, and you decide about every single one. The invite link asks for 22 permissions: the ones the tools need, moderation included, and Administrator, because a bot cannot open a channel it is not in. What your bot may actually do is not written in those permissions. It is written in your list of tools that are switched on.

Yes, Administrator is in there, and this is the most honest line on the page. Without it your bot cannot enter a channel it was not explicitly named in, and on a server that has been running a while those are often the important ones. What decides whether something can happen is not the permission anyway. It is whether the tool exists, and that is what you switch on, one at a time, with a warning on anything that cannot be taken back.

Own process, own subdomain, own certificate, own log channel, on both ways in. No shared database and no third-party packages on the machine.

What we see, and what we do not

Every sentence here has a file behind it in one of the three repositories.

How to take everything back

Four steps, each of them yours to take without asking us.

  1. Own bot: in the Discord Developer Portal, Reset Token. Our access is dead at that moment.
  2. Remove the bot from your server under Server Settings → Integrations. Ours or yours, the same place.
  3. On your account page here, shut the instance down. The unit, the directory and the subdomain go; the server you were running is untouched.
  4. At the bottom of the same page, close the account. It takes everything above with it, and it is never done by a calendar - only by you, or by us at your request.

The journal channel stays, because it is a channel on your server and belongs to you.

No card. Ends on its own.