vrchat-mcp
by: sawa-zen
This project is a Model Context Protocol (MCP) server for interacting with the 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
日本語 | 한êµì–´
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:
- Pull the latest code from the main branch:
git checkout main
git pull origin main
- 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
- Build the package:
npm run build
- Publish to npm:
npm publish
- 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.