Skip to main content
Glama
VRChat MCP Server

VRChat MCP Server

by sawa-zen

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.

Related MCP server: VRChat MCP OSC

Usage

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

export VRCHAT_USERNAME=your_username
export VRCHAT_AUTH_TOKEN=your_auth_token
NOTE

How to obtain AUTH TOKEN

You can use the following command to login and obtain an auth token:

$ npx vrchat-auth-token-checker

VRChat Username: your-username
Password: ********

# If 2FA is enabled
2FA Code: 123456

# Success output
Auth Token: authcookie-xxxxx

Command source code

Please handle the obtained token with care as it has a very long lifetime

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, you do not need to run npx vrchat-mcp manually. Instead, 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_AUTH_TOKEN": "your-auth-token"
      }
    }
  }
}

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

Available Tools

This Model Context Protocol server provides the following VRChat-related tools:

  • vrchat_get_friends_list: Get a list of friends

  • vrchat_send_friend_request: Send a friend request

  • vrchat_search_avatars: Search for avatars

  • vrchat_select_avatar: Select and switch to a specific avatar

  • vrchat_search_worlds: Search for worlds

  • vrchat_list_favorited_worlds: Get a list of favorited worlds

  • vrchat_create_instance: Create a new instance

  • vrchat_get_instance: Get information about a specific instance

  • vrchat_search_groups: Search for groups

  • vrchat_join_group: Join a group

  • vrchat_list_favorites: Get a list of favorites

  • vrchat_add_favorite: Add a new favorite

  • vrchat_list_favorite_groups: Get a list of favorite groups

  • vrchat_list_invite_messages: Get a list of invite messages

  • vrchat_request_invite: Request an invite

  • vrchat_get_invite_message: Get a specific invite message

  • vrchat_get_notifications: Get a list of notifications

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, we strongly recommend using the MCP Inspector.

You can launch the MCP Inspector via npm with this command:

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

Be sure that environment variables are properly configured.

Upon launching, the Inspector will display a URL that you can access in your browser to begin debugging.

Publishing

To publish a new version of the package, follow these steps:

  1. Pull the latest code from the main branch

    git checkout main
    git pull origin main
  2. Build the package

    npm run build
  3. Publish to npm

    npm publish
  4. 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.

Available Tools

18 tools
vrchat_add_favoriteC

Add a new favorite.

Inputs: type (required), favoriteId (required), tags (required).

vrchat_create_instanceC

Create a new instance of a world.

Inputs: worldId (required), type (required), region, ownerId, +7 more.

vrchat_get_current_userB

Retrieve your own VRChat user information

Inputs: no named parameters.

vrchat_get_friends_listC

Retrieve a list of VRChat friend information. The following information can be retrieved: - "bio" - "bioLinks" - "currentAvatarImageUrl" - "currentAvatarThumbnailImageUrl" - "currentAvatarTags" - "developerType" - "displayName" - "fallbackAvatar" - "id" - "isFriend" - "last_platform" - "last_login" - "profilePicOverride" - "pronouns" - "status" - "statusDescription" - "tags" - "userIcon" - "location" - "friendKey"

Inputs: offset, n, offline.

vrchat_get_instanceA

Get information about a specific instance. Note: Detailed information about instance members is only available if you are the instance owner.

Inputs: worldId (required), instanceId (required).

vrchat_get_invite_messageA

Returns a specific invite message. Admin Credentials are required to view messages of other users!

Message type refers to a different collection of messages:
- message = Message during a normal invite
- response = Message when replying to a message
- request = Message when requesting an invite
- requestResponse = Message when replying to a request for invite

Inputs: userId (required), slot (required), messageType.

vrchat_get_notificationsC

Retrieve a list of VRChat notifications.

Inputs: type, sent, hidden, after, +2 more.

vrchat_join_groupC

Join a VRChat group by ID

Inputs: groupId (required).

vrchat_list_favorited_worldsC

List favorited worlds by query filters.

Inputs: featured, sort, n, order.

vrchat_list_favorite_groupsB

Returns a list of favorite groups owned by a user.

Inputs: n, offset, ownerId.

vrchat_list_favoritesC

Returns a list of favorites.

Inputs: n, offset, type, tag.

vrchat_list_invite_messagesA

Returns a list of all the users Invite Messages. Admin Credentials are required to view messages of other users!

Inputs: userId (required), messageType (required).

vrchat_request_inviteA

Request an invite from a user. IMPORTANT: Always obtain explicit permission from the user before sending an invite request. Note that invite requests cannot be sent to users in private instances. Returns the Notification of type requestInvite that was sent.

Inputs: userId (required), instanceId (required), messageSlot (required).

vrchat_search_avatarsB

Search and list avatars by query filters. You can only search your own or featured avatars. It is not possible as a normal user to search other people's avatars.

Inputs: featured, sort, user, userId, +9 more.

vrchat_search_groupsC

Search VRChat groups by name or shortCode

Inputs: query (required), offset, n.

vrchat_search_worldsC

Search and list worlds by query filters.

Inputs: featured, sort, user, userId, +6 more.

vrchat_select_avatarC

Select and switch to a specific avatar by its ID.

Inputs: avatarId (required).

vrchat_send_friend_requestC

Send a friend request to another user.

Inputs: userId (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 18 tools

    Disambiguation4/5

    Most tools have distinct purposes targeting specific VRChat resources like users, instances, favorites, and searches, with clear boundaries. However, vrchat_list_favorites and vrchat_list_favorited_worlds/vrchat_list_favorite_groups could cause minor confusion as they overlap in listing favorites, though descriptions help differentiate them.

    Naming Consistency5/5

    All tools follow a consistent vrchat_verb_noun naming pattern, using snake_case throughout. This predictability makes it easy to understand each tool's function at a glance, with no deviations in style or structure.

    Tool Count4/5

    With 18 tools, the count is slightly high but reasonable for covering VRChat's social and world management features. It includes core operations like user management, instance handling, and searches, though it might feel a bit heavy compared to more focused servers.

    Completeness4/5

    The tool set covers key VRChat workflows such as user interactions (friends, invites), world/avatar management (search, select, create), and favorites, with good CRUD-like operations. Minor gaps include updating or deleting favorites or instances, but agents can work around these with the available tools.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      C
      quality
      B
      maintenance
      A Discord Model Context Protocol server that enables AI assistants to interact with Discord, providing functionality for sending messages, managing channels, handling forum posts, and working with reactions.
      46
      860 npm
      111
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol server that provides AI models with structured access to external data and services, acting as a bridge between AI assistants and applications, databases, and APIs in a standardized, secure way.
      2
      -