## devvit-mcp
A companion MCP server for writing applications on Reddit's developer platform.
## Installation
Add the following to your `mcp.json` for the editor or LLM of choice.
```json
{
"mcpServers": {
"devvit-mcp": {
"command": "npx",
"args": ["-y", "@devvit/mcp"]
}
}
}
```
## Opting Out Of Telemetry
```json
{
"mcpServers": {
"devvit-mcp": {
"command": "npx",
"args": ["-y", "@devvit/mcp"],
"env": {
"DEVVIT_DISABLE_METRICS": "true"
}
}
}
}
```
## Developing on the MCP Server
```sh
git clone git@github.com:reddit/devvit-mcp.git
cd devvit-mcp
nvm use
npm install
npm run dev
```
If you want to test your MCP server inside of other projects. Pass in the entire path to your node runtime and the location of `/dist/index.js` on your machine.
- Node path: `which node`
- Dist: `pwd` from the root of your `devvit-mcp` + `/dist/index.js`
```ts
{
"mcpServers": {
"devvit-mcp": {
"command": "/Users/marcus.wood/.nvm/versions/node/v22.13.0/bin/node",
"args": ["/Users/marcus.wood/open-source/devvit-mcp/dist/index.js"]
}
}
}
```
## MCP Gotchas
- Never put a `console.log` in the hot path of your app if you're trying to debug. You'll see weird error messages like `Unexpected token 'a', " at Anthrop"... is not valid JSON`. We've shimmed `logger` to automatically handle this conversion for you.
- Only log console.error in your MCP when running through MCP.
### Debugging
- Using `npm run dev`, going to tools, listing them out, and triggering is the best experience.
- To test this live with logs, use [Claude desktop](https://modelcontextprotocol.io/quickstart/user) and connecting the MCP there. They have log files that report errors on your machine. You can view them by opening in VSCode or running `tail` commands.
- If you see something like this:
```
Error: Server does not support logging (required for notifications/message)
at Server.assertNotificationCapability
```
You need to add the capability to your `new MCPServer`. [Use this permalink](https://github.com/modelcontextprotocol/typescript-sdk/blob/1909bbcc671b00431579ea15c7713082406b1005/src/server/index.ts#L146) to know what key you should add.
## Versioning
This package uses automated versioning managed by CI/CD. The version in `package.json` is a placeholder and will be automatically updated during the release process. Check git tags for the actual released versions.
## Credits
Huge thanks to Arabold for open sourcing [docs-mcp-server](https://github.com/arabold/docs-mcp-server). Portions of this code is heavily inspired by this library. Please use it if you need other docs servers!