modrinth-mcp
modrinth-mcp
An MCP server that wraps the Modrinth API so an AI agent (Claude Code, Claude Desktop, Cursor, …) can search projects, read project/version metadata, and publish Minecraft mods — create projects and upload built jars as new versions.
Tools
Tool | Auth | What it does |
| ✅ | Verify your token; return the authenticated user. |
| – | Search public Modrinth projects. |
| – | Get a project's metadata by slug or id. |
| – | List a project's published versions. |
| ✅ | Publish a new version by uploading one or more jars. |
| ✅ | Create a new project (as a draft). |
| ✅ | Edit metadata of an existing version. |
Read-only tools work without a token. Anything that writes needs a Modrinth Personal Access Token.
Getting a token
Create a PAT at https://modrinth.com/settings/pats with these scopes:
Read projects
Read versions
Create versions
Write versions
Set it as the MODRINTH_TOKEN environment variable.
Install
As a Claude Code plugin
/plugin marketplace add justinscott12/modrinth-mcp
/plugin install modrinth-mcp@justinscott12It runs the published npm package under the hood via npx. Claude Code
plugins have no token-entry UI, so the server reads its token from the
MODRINTH_TOKEN environment variable in the environment Claude Code
runs in. Set it before launching Claude Code, e.g.:
# macOS/Linux (add to your shell profile to persist)
export MODRINTH_TOKEN=your-modrinth-pat
# Windows PowerShell (persist for your user)
setx MODRINTH_TOKEN "your-modrinth-pat"Then restart Claude Code and run modrinth_whoami to confirm. Read-only
tools (search, get project/versions) work without a token.
As an MCP server (any client)
Add to your MCP client config (e.g. Claude Desktop claude_desktop_config.json):
{
"mcpServers": {
"modrinth": {
"command": "npx",
"args": ["-y", "@justinscott12/modrinth-mcp"],
"env": {
"MODRINTH_TOKEN": "your-modrinth-pat"
}
}
}
}Or in Claude Code directly:
claude mcp add modrinth --env MODRINTH_TOKEN=your-modrinth-pat -- npx -y @justinscott12/modrinth-mcpEnvironment variables
Variable | Default | Purpose |
| – | Modrinth Personal Access Token. Required for write actions. |
| unset | Set to |
|
| Override the User-Agent sent to Modrinth. |
Example flow
modrinth_whoami— confirm auth works.modrinth_create_project— create the project page (created as a draft).modrinth_create_version— upload your built jar(s) with the targetgame_versionsandloaders.Submit the project for review on the Modrinth site when ready.
Note:
create_versionandcreate_projectpublish public content. Only call them when you actually intend to publish.
Development
npm install
MODRINTH_STAGING=1 MODRINTH_TOKEN=your-staging-pat npm startThe server speaks MCP over stdio. stdout is reserved for the protocol; logs go to stderr.