Search Modrinth and publish Minecraft mods (create projects, upload versions) via the Modrinth API.
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.
| Tool | Auth | What it does |
|---|---|---|
modrinth_whoami | ✅ | Verify your token; return the authenticated user. |
modrinth_search_projects | – | Search public Modrinth projects. |
modrinth_get_project | – | Get a project's metadata by slug or id. |
modrinth_list_project_versions | – | List a project's published versions. |
modrinth_create_version | ✅ | Publish a new version by uploading one or more jars. |
modrinth_create_project | ✅ | Create a new project (as a draft). |
modrinth_modify_version | ✅ | Edit metadata of an existing version. |
Read-only tools work without a token. Anything that writes needs a Modrinth Personal Access Token.
Create a PAT at https://modrinth.com/settings/pats with these scopes:
Set it as the MODRINTH_TOKEN environment variable.
/plugin marketplace add justinscott12/modrinth-mcp
/plugin install modrinth-mcp@justinscott12
It 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.
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-mcp
| Variable | Default | Purpose |
|---|---|---|
MODRINTH_TOKEN | – | Modrinth Personal Access Token. Required for write actions. |
MODRINTH_STAGING | unset | Set to 1 to hit https://staging-api.modrinth.com for safe testing. |
MODRINTH_USER_AGENT | modrinth-mcp/<version> … | Override the User-Agent sent to Modrinth. |
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 target game_versions and loaders.Note:
create_versionandcreate_projectpublish public content. Only call them when you actually intend to publish.
npm install
MODRINTH_STAGING=1 MODRINTH_TOKEN=your-staging-pat npm start
The server speaks MCP over stdio. stdout is reserved for the protocol; logs go to stderr.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y @justinscott12/modrinth-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-justinscott12-modrinth-mcp": {
"command": "npx",
"args": [
"-y",
"@justinscott12/modrinth-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup reference@justinscott12/modrinth-mcpnpmio.github.justinscott12/modrinth-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.