Reads VRChat data through its API, such as user info, friends, worlds and avatars.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add vrchat --env VRCHAT_USERNAME='<VRCHAT_USERNAME>' --env VRCHAT_AUTH_TOKEN='<VRCHAT_AUTH_TOKEN>' --env VRCHAT_EMAIL='<VRCHAT_EMAIL>' --env VRCHAT_PASSWORD='<VRCHAT_PASSWORD>' --env VRCHAT_TOTP_SECRET='<VRCHAT_TOTP_SECRET>' -- npx vrchat-mcp~/.codex/config.toml
[mcp_servers.vrchat]
command = "npx"
args = ["vrchat-mcp"]
env = { VRCHAT_USERNAME = "<VRCHAT_USERNAME>", VRCHAT_AUTH_TOKEN = "<VRCHAT_AUTH_TOKEN>", VRCHAT_EMAIL = "<VRCHAT_EMAIL>", VRCHAT_PASSWORD = "<VRCHAT_PASSWORD>", VRCHAT_TOTP_SECRET = "<VRCHAT_TOTP_SECRET>" }
# codex mcp add vrchat --env VRCHAT_USERNAME='<VRCHAT_USERNAME>' --env VRCHAT_AUTH_TOKEN='<VRCHAT_AUTH_TOKEN>' --env VRCHAT_EMAIL='<VRCHAT_EMAIL>' --env VRCHAT_PASSWORD='<VRCHAT_PASSWORD>' --env VRCHAT_TOTP_SECRET='<VRCHAT_TOTP_SECRET>' -- npx vrchat-mcp~/.cursor/mcp.json
{
"mcpServers": {
"vrchat": {
"command": "npx",
"args": [
"vrchat-mcp"
],
"env": {
"VRCHAT_USERNAME": "<VRCHAT_USERNAME>",
"VRCHAT_AUTH_TOKEN": "<VRCHAT_AUTH_TOKEN>",
"VRCHAT_EMAIL": "<VRCHAT_EMAIL>",
"VRCHAT_PASSWORD": "<VRCHAT_PASSWORD>",
"VRCHAT_TOTP_SECRET": "<VRCHAT_TOTP_SECRET>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"vrchat": {
"type": "stdio",
"command": "npx",
"args": [
"vrchat-mcp"
],
"env": {
"VRCHAT_USERNAME": "<VRCHAT_USERNAME>",
"VRCHAT_AUTH_TOKEN": "<VRCHAT_AUTH_TOKEN>",
"VRCHAT_EMAIL": "<VRCHAT_EMAIL>",
"VRCHAT_PASSWORD": "<VRCHAT_PASSWORD>",
"VRCHAT_TOTP_SECRET": "<VRCHAT_TOTP_SECRET>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"vrchat": {
"command": "npx",
"args": [
"vrchat-mcp"
],
"env": {
"VRCHAT_USERNAME": "<VRCHAT_USERNAME>",
"VRCHAT_AUTH_TOKEN": "<VRCHAT_AUTH_TOKEN>",
"VRCHAT_EMAIL": "<VRCHAT_EMAIL>",
"VRCHAT_PASSWORD": "<VRCHAT_PASSWORD>",
"VRCHAT_TOTP_SECRET": "<VRCHAT_TOTP_SECRET>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"vrchat": {
"command": "npx",
"args": [
"vrchat-mcp"
],
"env": {
"VRCHAT_USERNAME": "<VRCHAT_USERNAME>",
"VRCHAT_AUTH_TOKEN": "<VRCHAT_AUTH_TOKEN>",
"VRCHAT_EMAIL": "<VRCHAT_EMAIL>",
"VRCHAT_PASSWORD": "<VRCHAT_PASSWORD>",
"VRCHAT_TOTP_SECRET": "<VRCHAT_TOTP_SECRET>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"vrchat": {
"command": "npx",
"args": [
"vrchat-mcp"
],
"env": {
"VRCHAT_USERNAME": "<VRCHAT_USERNAME>",
"VRCHAT_AUTH_TOKEN": "<VRCHAT_AUTH_TOKEN>",
"VRCHAT_EMAIL": "<VRCHAT_EMAIL>",
"VRCHAT_PASSWORD": "<VRCHAT_PASSWORD>",
"VRCHAT_TOTP_SECRET": "<VRCHAT_TOTP_SECRET>"
}
}
}
}Environment variables
VRCHAT_USERNAMEVRCHAT_AUTH_TOKENVRCHAT_EMAILVRCHAT_PASSWORDVRCHAT_TOTP_SECRET
Replace the placeholders with your own credentials and keep them out of version control.