MCP HubMCP Hub
sawa-zen

vrchat-mcp

by: sawa-zen

This project is a Model Context Protocol (MCP) server for interacting with the VRChat API.

31created 14/03/2025
Visit
VRChat
API

📌Overview

Purpose: The primary goal of the VRChat MCP server is to provide a structured way to interact with the VRChat API, enabling users to retrieve and manage various information effectively.

Overview: The VRChat MCP server acts as an intermediary to access VRChat API endpoints, offering a wide array of functionalities, including user authentication, as well as retrieval of user, friend, avatar, and world data.

Key Features:

  • User Authentication: Supports secure user authentication processes and allows access to user information, enhancing user management capabilities.

  • Data Retrieval: Facilitates retrieval of detailed information about friends, avatars, and worlds, allowing for richer and more engaging VRChat experiences.


VRChat MCP

npm version License: MIT

日本語 | 한국어

This project is a Model Context Protocol (MCP) server for interacting with the VRChat API. It allows you to retrieve various information from VRChat using a standardized protocol.

Overview

The VRChat MCP server provides a way to access VRChat's API endpoints in a structured manner. It supports a wide range of functionalities, including user authentication, retrieving user and friend information, accessing avatar and world data, and more.

Usage

To start the server, ensure you have the necessary environment variables set:

export VRCHAT_USERNAME=your_username
export VRCHAT_PASSWORD=your_password
export VRCHAT_TOTP_SECRET=your_totp_secret
export VRCHAT_EMAIL=your_email@example.com

Note: Obtain your TOTP secret by enabling Two-factor authentication on your VRChat Profile, decoding the QR code, and extracting the secret string. This method may have security concerns, so proceed with caution.

Then, run the following command:

npx vrchat-mcp

This will launch the MCP server, allowing you to interact with the VRChat API through the defined tools.

Usage with Claude Desktop

To use this MCP server with Claude Desktop, add the following configuration to your Claude Desktop config file:

  • MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "vrchat-mcp": {
      "command": "npx",
      "args": ["vrchat-mcp"],
      "env": {
        "VRCHAT_USERNAME": "your-username",
        "VRCHAT_PASSWORD": "your-password",
        "VRCHAT_TOTP_SECRET": "your-totp-secret",
        "VRCHAT_EMAIL": "your-email@example.com"
      }
    }
  }
}

Then, start Claude Desktop as usual. If you use nodenv or nvm, you may need to specify the full path to the npx command.

VRChat API Endpoints

This is a list of endpoints from the VRChat API that our Model Context Protocol server supports or plans to support. Both GET and POST methods are included.

Authentication and User Information

  • Get current user info
  • Search users
  • Get specific user profile
  • Get user groups
  • Get player moderations
  • Get user status
  • Update user info
  • Update user status
  • Block user
  • Unblock user

Friend Related

  • Get friends list
  • Get online friends
  • Send friend request
  • Accept/Deny friend request
  • Remove friend

Avatar Related

  • Get own avatars
  • Get favorite avatars
  • Search avatars
  • Get specific avatar details
  • Get public avatars
  • Create avatar
  • Update avatar
  • Delete avatar
  • Select avatar
  • Favorite/Unfavorite avatar

World Related

  • Get worlds list
  • Get active worlds
  • Get recently visited worlds
  • Get favorite worlds
  • Search worlds
  • Get specific world details
  • Get world instances
  • Get public worlds
  • Create world
  • Update world
  • Delete world
  • Favorite/Unfavorite world

Instance Related

  • Create instance
  • Get instance info
  • Get instance attendees
  • Get instance short name
  • Join instance
  • Leave instance
  • Invite user to instance

File Related

  • Get file info
  • Get file download info
  • Get file status

Group Related

  • Search groups
  • Get specific group info
  • Get group members
  • Get group permissions
  • Get group requests
  • Get group invites
  • Get group bans
  • Get group galleries
  • Get group owned worlds
  • Create group
  • Update group
  • Delete group
  • Join group
  • Leave group
  • Invite user to group
  • Accept/Deny group invite
  • Ban user from group
  • Unban user from group

Notification Related

  • Get notifications list
  • Get friend requests
  • Get unread notification count
  • Mark notification as read
  • Delete notification
  • Clear all notifications

Inventory Related

  • Get license types
  • Get owned licenses
  • Get stores list

System Related

  • Get API configuration
  • Get API limits
  • Check system health
  • Get online users count
  • Get server announcements

Favorites

  • List Favorites
  • Add Favorite
  • Remove Favorite
  • List Favorite Groups
  • Show Favorite Group
  • Update Favorite Group
  • Clear Favorite Group
  • Get Favorite Limits

Invites

  • List Invite Messages
  • Request Invite
  • Send Invite
  • Get Invite Message
  • Update Invite Message

Others

  • Get tags list
  • Get invisibles list
  • Get moderations
  • Get favorite group types
  • Create moderation
  • Delete moderation

Debugging

First, build the project:

npm install
npm run build

Since MCP servers run over stdio, debugging can be challenging. For the best debugging experience, use the MCP Inspector:

npx @modelcontextprotocol/inspector "./dist/main.js"

Ensure environment variables are properly configured. The Inspector will display a URL you can access in your browser for debugging.

Publishing

To publish a new version of the package:

  1. Pull the latest code from the main branch:
git checkout main
git pull origin main
  1. Update the version as needed:
# For patch version updates (e.g., 0.1.2 → 0.1.3)
npm version patch

# For minor version updates (e.g., 0.1.2 → 0.2.0)
npm version minor

# For major version updates (e.g., 0.1.2 → 1.0.0)
npm version major
  1. Build the package:
npm run build
  1. Publish to npm:
npm publish
  1. Push changes to the remote repository:
git push origin main --tags

Contributing

Contributions are welcome! Please fork the repository and submit a pull request for any improvements or bug fixes.

License

This project is licensed under the MIT License. See the LICENSE file for details.