@basicbit/vrchat-mcp 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/LICENSE +21 -21
- package/README.md +39 -9
- package/assets/logo.svg +58 -39
- package/dist/package.json +10 -4
- package/dist/src/auth/index.js +65 -3
- package/dist/src/auth/index.js.map +1 -1
- package/dist/src/config/defaults.json +4 -2
- package/dist/src/config/index.js +23 -12
- package/dist/src/config/index.js.map +1 -1
- package/dist/src/core/client.js +27 -4
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/generatedOperations.js +133 -0
- package/dist/src/core/generatedOperations.js.map +1 -0
- package/dist/src/core/generatedToolDescriptions.js +26 -0
- package/dist/src/core/generatedToolDescriptions.js.map +1 -0
- package/dist/src/core/generatedToolOverrides.js +19 -61
- package/dist/src/core/generatedToolOverrides.js.map +1 -1
- package/dist/src/core/generatedToolSkips.js +6 -23
- package/dist/src/core/generatedToolSkips.js.map +1 -1
- package/dist/src/core/operationDetails.js +96 -0
- package/dist/src/core/operationDetails.js.map +1 -0
- package/dist/src/core/operationPolicy.js +32 -0
- package/dist/src/core/operationPolicy.js.map +1 -0
- package/dist/src/core/readToolRegistry.js +35 -81
- package/dist/src/core/readToolRegistry.js.map +1 -1
- package/dist/src/core/writeToolRegistry.js +59 -101
- package/dist/src/core/writeToolRegistry.js.map +1 -1
- package/dist/src/models/avatars.js +2 -1
- package/dist/src/models/avatars.js.map +1 -1
- package/dist/src/models/common.js +4 -0
- package/dist/src/models/common.js.map +1 -0
- package/dist/src/models/events.js +8 -4
- package/dist/src/models/events.js.map +1 -1
- package/dist/src/models/favorites.js +120 -0
- package/dist/src/models/favorites.js.map +1 -0
- package/dist/src/models/friends.js +7 -6
- package/dist/src/models/friends.js.map +1 -1
- package/dist/src/models/groups.js +91 -5
- package/dist/src/models/groups.js.map +1 -1
- package/dist/src/models/invites.js +81 -3
- package/dist/src/models/invites.js.map +1 -1
- package/dist/src/models/statusPage.js +9 -0
- package/dist/src/models/statusPage.js.map +1 -1
- package/dist/src/models/users.js +3 -2
- package/dist/src/models/users.js.map +1 -1
- package/dist/src/models/worlds.js +2 -1
- package/dist/src/models/worlds.js.map +1 -1
- package/dist/src/schemas/read.js +22 -9
- package/dist/src/schemas/read.js.map +1 -1
- package/dist/src/schemas/write.js +17 -3
- package/dist/src/schemas/write.js.map +1 -1
- package/dist/src/services/api/client.js +20 -0
- package/dist/src/services/api/client.js.map +1 -1
- package/dist/src/services/events/curated.js +37 -3
- package/dist/src/services/events/curated.js.map +1 -1
- package/dist/src/services/favorites/index.js +106 -0
- package/dist/src/services/favorites/index.js.map +1 -0
- package/dist/src/services/groups/index.js +1 -0
- package/dist/src/services/groups/index.js.map +1 -1
- package/dist/src/services/groups/roles.js +75 -0
- package/dist/src/services/groups/roles.js.map +1 -0
- package/dist/src/services/invites/bulk.js +310 -0
- package/dist/src/services/invites/bulk.js.map +1 -0
- package/dist/src/services/invites/curated.js +203 -5
- package/dist/src/services/invites/curated.js.map +1 -1
- package/dist/src/services/invites/messages.js +65 -0
- package/dist/src/services/invites/messages.js.map +1 -0
- package/dist/src/services/statusPage/curated.js +42 -5
- package/dist/src/services/statusPage/curated.js.map +1 -1
- package/dist/src/tools/auth.js +4 -4
- package/dist/src/tools/auth.js.map +1 -1
- package/dist/src/tools/curated/events.js +4 -3
- package/dist/src/tools/curated/events.js.map +1 -1
- package/dist/src/tools/curated/favorites.js +79 -0
- package/dist/src/tools/curated/favorites.js.map +1 -0
- package/dist/src/tools/curated/groups.js +88 -3
- package/dist/src/tools/curated/groups.js.map +1 -1
- package/dist/src/tools/curated/invites.js +78 -2
- package/dist/src/tools/curated/invites.js.map +1 -1
- package/dist/src/tools/generated.js +4 -4
- package/dist/src/tools/generated.js.map +1 -1
- package/dist/src/tools/raw.js +4 -7
- package/dist/src/tools/raw.js.map +1 -1
- package/dist/src/tools/read/system.js +98 -0
- package/dist/src/tools/read/system.js.map +1 -1
- package/dist/src/tools/registerAllTools.js +2 -0
- package/dist/src/tools/registerAllTools.js.map +1 -1
- package/dist/src/utils/toolNames.js +0 -6
- package/dist/src/utils/toolNames.js.map +1 -1
- package/docs/architecture.md +1 -1
- package/docs/curated-tools.md +28 -5
- package/docs/privacy.md +23 -0
- package/docs/robust-notes.md +29 -0
- package/docs/tools-guide.md +9 -3
- package/docs/tools.md +3641 -8201
- package/docs/vrcx.md +1 -1
- package/package.json +10 -4
- package/server.json +3 -3
- package/skills/vrchat-mcp/SKILL.md +16 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.7 - 2026-06-13
|
|
4
|
+
|
|
5
|
+
- Refresh dependency locks for Hono, Undici, esbuild, and Node type patch updates.
|
|
6
|
+
- Raise the direct Undici and Node type dependency minimums to the refreshed patch versions.
|
|
7
|
+
|
|
8
|
+
## 0.1.6 - 2026-06-03
|
|
9
|
+
|
|
10
|
+
- Fix local browser auth submissions from same-port loopback aliases such as `localhost`.
|
|
11
|
+
- Keep auth Host and Origin validation strict for non-loopback, wrong-port, non-HTTP, and userinfo-shaped inputs.
|
|
12
|
+
- Keep live status-page e2e coverage opt-in so release CI does not depend on transient external status-page availability.
|
|
13
|
+
|
|
3
14
|
## 0.1.5 - 2026-05-19
|
|
4
15
|
|
|
5
16
|
- Correct the MCP Registry package metadata so the npm package entry points at the published release version.
|
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025 BASICBIT
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 BASICBIT
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -4,20 +4,27 @@
|
|
|
4
4
|
|
|
5
5
|
# VRChat MCP
|
|
6
6
|
|
|
7
|
-
Unofficial [Model Context Protocol](https://modelcontextprotocol.io/) tools for VRChat friends, worlds, groups, events, notifications, status, invites, and local VRCX history.
|
|
7
|
+
Unofficial local [Model Context Protocol](https://modelcontextprotocol.io/) tools for VRChat friends, worlds, groups, events, notifications, status, invites, and local VRCX history.
|
|
8
8
|
|
|
9
9
|
[](https://www.npmjs.com/package/@basicbit/vrchat-mcp) [](./LICENSE)
|
|
10
10
|
|
|
11
|
-
VRChat MCP runs locally through stdio. Your VRChat auth cookies stay on your machine and default to your OS keychain, with file storage as the fallback when a keychain backend is unavailable.
|
|
11
|
+
VRChat MCP runs locally through stdio. Your VRChat auth cookies stay on your machine and default to your OS keychain, with file storage as the fallback when a keychain backend is unavailable. Curated write tools, generated read/write tools, and read-only VRCX local-history tools are available by default; use your MCP client or agent harness to approve account-changing tool calls.
|
|
12
12
|
|
|
13
13
|
This project is unofficial and is not affiliated with VRChat Inc.
|
|
14
14
|
|
|
15
|
+
## Policy and Safety Boundaries
|
|
16
|
+
|
|
17
|
+
VRChat does not provide a public OAuth flow for third-party API applications. VRChat's Creator Guidelines say API applications should not request or store VRChat login credentials, auth tokens, or session data, should identify themselves with a clear User-Agent, should cache/back off instead of sending unmetered requests, and should not act on behalf of another user.
|
|
18
|
+
|
|
19
|
+
This project is therefore intended only as a local, user-controlled personal tool. Do not run it as a hosted/public MCP service, do not collect anyone else's credentials or cookies, do not automate spam or harassment, and do not use it to evade VRChat enforcement or moderation. Use write tools only for actions you would intentionally perform yourself in VRChat.
|
|
20
|
+
|
|
15
21
|
## Install
|
|
16
22
|
|
|
17
23
|
Requirements:
|
|
18
24
|
|
|
19
25
|
- Node.js 24.15.0 or newer.
|
|
20
26
|
- An MCP client that can run local stdio servers.
|
|
27
|
+
- Native dependencies are installed for keychain and VRCX SQLite support (`keytar`, `better-sqlite3`).
|
|
21
28
|
|
|
22
29
|
On headless Linux or containers without a keychain daemon such as `libsecret`, set `VRCHAT_MCP_COOKIE_STORE=file` for explicit persistent cookie storage.
|
|
23
30
|
|
|
@@ -105,6 +112,8 @@ After adding the server to your MCP client, ask it to call `vrchat_auth_begin`.
|
|
|
105
112
|
|
|
106
113
|
After logging in, call `vrchat_auth_status` to confirm the session. By default, cookies are stored in the OS keychain so the login survives MCP server restarts. If the OS keychain is unavailable, VRChat MCP falls back to file storage.
|
|
107
114
|
|
|
115
|
+
Do not ask another person to use this login flow for you. Do not send the local login URL, cookies, or session files to hosted tools or third-party services.
|
|
116
|
+
|
|
108
117
|
Useful auth tools:
|
|
109
118
|
|
|
110
119
|
- `vrchat_auth_begin`: start local browser login.
|
|
@@ -141,7 +150,7 @@ Show recent worlds from my local VRCX history.
|
|
|
141
150
|
|
|
142
151
|
## Tools
|
|
143
152
|
|
|
144
|
-
VRChat MCP exposes curated tools
|
|
153
|
+
VRChat MCP exposes curated tools plus generated read/write/delete routers by default. Curated tools cover common tasks with compact, agent-friendly inputs and outputs.
|
|
145
154
|
|
|
146
155
|
Common curated tools include:
|
|
147
156
|
|
|
@@ -153,19 +162,36 @@ Common curated tools include:
|
|
|
153
162
|
- `vrchat_group_profile`
|
|
154
163
|
- `vrchat_events_upcoming`
|
|
155
164
|
- `vrchat_notifications_recent`
|
|
156
|
-
- `
|
|
165
|
+
- `vrchat_invite`
|
|
166
|
+
- `vrchat_group_invite`
|
|
167
|
+
- `vrchat_friend_request`
|
|
168
|
+
- `vrchat_boop`
|
|
157
169
|
- `vrcx_instances_recent`
|
|
158
170
|
|
|
159
|
-
Generated
|
|
171
|
+
Generated OpenAPI API-gap coverage uses three router tools:
|
|
160
172
|
|
|
161
|
-
- `
|
|
162
|
-
- `
|
|
173
|
+
- `vrchat_read` for available GET operations; pass `operationId` plus path/query/header/cookie values under `params`.
|
|
174
|
+
- `vrchat_write` for available POST/PUT/PATCH operations; pass `operationId`, `params`, and JSON payloads under `body`.
|
|
175
|
+
- `vrchat_delete` for available DELETE operations; pass `operationId`, `params`, and optional JSON payloads under `body`.
|
|
176
|
+
|
|
177
|
+
Use `vrchat_operations` to list available generated operation IDs and `vrchat_operation_details` for exact per-operation params/body schemas.
|
|
178
|
+
|
|
179
|
+
Generated read and write tools are enabled by default. Set `VRCHAT_MCP_DISABLE_GENERATED_READ_TOOLS=true` or `VRCHAT_MCP_DISABLE_GENERATED_WRITE_TOOLS=true` to hide them, or use JSON config to narrow either surface to specific operation IDs:
|
|
180
|
+
|
|
181
|
+
```json
|
|
182
|
+
{
|
|
183
|
+
"generatedReadTools": { "enabled": true, "operationIds": ["getAvatarStyles"] },
|
|
184
|
+
"generatedWriteTools": { "enabled": true, "operationIds": ["selectAvatar"] }
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
When an `operationIds` list is empty and that generated tool class is enabled, all generated operations in that class are available through its router except hard-skipped operations and operations with curated replacements. Prefer curated tools for common workflows, but generated routers keep the local server capable as the VRChat API evolves without duplicating known curated coverage or exposing generated endpoints this client cannot reliably call.
|
|
163
189
|
|
|
164
190
|
See `docs/tools-guide.md` for a short guide and `docs/tools.md` for the generated catalog.
|
|
165
191
|
|
|
166
192
|
## Write Controls
|
|
167
193
|
|
|
168
|
-
|
|
194
|
+
Curated write tools and generated write tools for API gaps are enabled by default so the local MCP server is usable from the first run. Your MCP client or agent harness is expected to control tool-call permission, approval, and denial for account-changing actions.
|
|
169
195
|
|
|
170
196
|
To force read-only mode, add this `env` fragment inside the server entry for your MCP client:
|
|
171
197
|
|
|
@@ -177,6 +203,8 @@ To force read-only mode, add this `env` fragment inside the server entry for you
|
|
|
177
203
|
}
|
|
178
204
|
```
|
|
179
205
|
|
|
206
|
+
Only use write tools when you intend this local MCP server to perform VRChat account actions. Bulk social tools are capped and back off on 429s, but you are responsible for avoiding spam, harassment, or unwanted automation.
|
|
207
|
+
|
|
180
208
|
For group write tools, you can restrict writes to specific group IDs with a JSON config file:
|
|
181
209
|
|
|
182
210
|
```json
|
|
@@ -211,7 +239,8 @@ Example JSON config:
|
|
|
211
239
|
"auth": { "cookieStore": "file" },
|
|
212
240
|
"writes": { "allow": false },
|
|
213
241
|
"groups": { "allowlist": ["grp_abc123"] },
|
|
214
|
-
"cache": { "enabled": true }
|
|
242
|
+
"cache": { "enabled": true },
|
|
243
|
+
"vrcx": { "enabled": true }
|
|
215
244
|
}
|
|
216
245
|
```
|
|
217
246
|
|
|
@@ -236,6 +265,7 @@ Useful scripts:
|
|
|
236
265
|
- `npm run smoke:live`: run the opt-in live smoke check.
|
|
237
266
|
- `npm run generate:tools-docs`: regenerate `docs/tools.md`.
|
|
238
267
|
- `npm run generate:schemas`: regenerate OpenAPI schemas.
|
|
268
|
+
- `npm run mcpb:build`: build a local MCPB bundle under `mcpb/`.
|
|
239
269
|
|
|
240
270
|
Live E2E tests and LLM evals are opt-in. See `docs/evals.md` for details.
|
|
241
271
|
|
package/assets/logo.svg
CHANGED
|
@@ -1,39 +1,58 @@
|
|
|
1
|
-
<svg
|
|
2
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
3
|
-
viewBox="0 0 256 256"
|
|
4
|
-
role="img"
|
|
5
|
-
aria-labelledby="title desc"
|
|
6
|
-
>
|
|
7
|
-
<title id="title">VRChat MCP logo</title>
|
|
8
|
-
<desc id="desc">
|
|
9
|
-
<defs>
|
|
10
|
-
<linearGradient id="bg" x1="
|
|
11
|
-
<stop offset="0" stop-color="#
|
|
12
|
-
<stop offset="0.
|
|
13
|
-
<stop offset="1" stop-color="#
|
|
14
|
-
</linearGradient>
|
|
15
|
-
<linearGradient
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
<
|
|
39
|
-
|
|
1
|
+
<svg
|
|
2
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
3
|
+
viewBox="0 0 256 256"
|
|
4
|
+
role="img"
|
|
5
|
+
aria-labelledby="title desc"
|
|
6
|
+
>
|
|
7
|
+
<title id="title">VRChat MCP logo</title>
|
|
8
|
+
<desc id="desc">Two nested speech bubbles inside a dark rounded app tile.</desc>
|
|
9
|
+
<defs>
|
|
10
|
+
<linearGradient id="tile-bg" x1="128" y1="0" x2="128" y2="256" gradientUnits="userSpaceOnUse">
|
|
11
|
+
<stop offset="0" stop-color="#171b2f" />
|
|
12
|
+
<stop offset="0.58" stop-color="#101628" />
|
|
13
|
+
<stop offset="1" stop-color="#0b1020" />
|
|
14
|
+
</linearGradient>
|
|
15
|
+
<linearGradient
|
|
16
|
+
id="tile-border"
|
|
17
|
+
x1="26"
|
|
18
|
+
y1="18"
|
|
19
|
+
x2="230"
|
|
20
|
+
y2="238"
|
|
21
|
+
gradientUnits="userSpaceOnUse"
|
|
22
|
+
>
|
|
23
|
+
<stop offset="0" stop-color="#fff8ed" stop-opacity="0.52" />
|
|
24
|
+
<stop offset="0.48" stop-color="#6f8fd0" stop-opacity="0.5" />
|
|
25
|
+
<stop offset="1" stop-color="#2c355a" stop-opacity="0.64" />
|
|
26
|
+
</linearGradient>
|
|
27
|
+
<filter
|
|
28
|
+
id="soft-shadow"
|
|
29
|
+
x="-20%"
|
|
30
|
+
y="-20%"
|
|
31
|
+
width="140%"
|
|
32
|
+
height="150%"
|
|
33
|
+
color-interpolation-filters="sRGB"
|
|
34
|
+
>
|
|
35
|
+
<feDropShadow dx="0" dy="10" stdDeviation="12" flood-color="#020617" flood-opacity="0.42" />
|
|
36
|
+
</filter>
|
|
37
|
+
</defs>
|
|
38
|
+
<rect width="256" height="256" rx="56" fill="url(#tile-border)" />
|
|
39
|
+
<rect x="2" y="2" width="252" height="252" rx="54" fill="url(#tile-bg)" />
|
|
40
|
+
<g transform="translate(0 8)">
|
|
41
|
+
<path
|
|
42
|
+
d="M34 66c0-25.4 20.6-46 46-46h96c25.4 0 46 20.6 46 46v78c0 25.4-20.6 46-46 46h-36.8l-50.4 36.3c-9.2 6.6-22.1 0-22.1-11.3v-29.8C47.4 177.4 34 161.8 34 143.6V66Z"
|
|
43
|
+
fill="#f6efe6"
|
|
44
|
+
filter="url(#soft-shadow)"
|
|
45
|
+
/>
|
|
46
|
+
<path
|
|
47
|
+
d="M78 58h94c11.6 0 21 9.4 21 21v50c0 11.6-9.4 21-21 21h-37.6L106 170.5c-4.8 3.5-11.6.1-11.6-5.9V150H78c-11.6 0-21-9.4-21-21V79c0-11.6 9.4-21 21-21Z"
|
|
48
|
+
fill="#4f6fa8"
|
|
49
|
+
/>
|
|
50
|
+
<path
|
|
51
|
+
d="M100 85h64M100 108h52M100 131h34"
|
|
52
|
+
fill="none"
|
|
53
|
+
stroke="#fff8ed"
|
|
54
|
+
stroke-width="9"
|
|
55
|
+
stroke-linecap="round"
|
|
56
|
+
/>
|
|
57
|
+
</g>
|
|
58
|
+
</svg>
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@basicbit/vrchat-mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"mcpName": "io.github.BASIC-BIT/vrchat-mcp",
|
|
5
5
|
"description": "MCP server for VRChat friends, worlds, groups, events, notifications, and VRCX history.",
|
|
6
6
|
"type": "module",
|
|
@@ -18,9 +18,12 @@
|
|
|
18
18
|
"docs/curated-tools.md",
|
|
19
19
|
"docs/design-notes.md",
|
|
20
20
|
"docs/evals.md",
|
|
21
|
+
"docs/privacy.md",
|
|
22
|
+
"docs/robust-notes.md",
|
|
21
23
|
"docs/tools-guide.md",
|
|
22
24
|
"docs/tools.md",
|
|
23
25
|
"docs/vrcx.md",
|
|
26
|
+
"skills/vrchat-mcp/SKILL.md",
|
|
24
27
|
"README.md",
|
|
25
28
|
"CHANGELOG.md",
|
|
26
29
|
"server.json",
|
|
@@ -50,11 +53,14 @@
|
|
|
50
53
|
"generate:schemas": "openapi-zod-client specs/vrchat-openapi.yaml -o src/generated/vrchat-schemas.ts -t scripts/templates/openapi-schemas.hbs --export-schemas -p .prettierrc.json && tsx scripts/postprocess-schemas.ts src/generated/vrchat-schemas.ts",
|
|
51
54
|
"generate:test-schemas": "openapi-zod-client test/fixtures/spec.yaml -o test/generated/mock-schemas.ts -t scripts/templates/openapi-schemas.hbs --export-schemas -p .prettierrc.json && tsx scripts/postprocess-schemas.ts test/generated/mock-schemas.ts",
|
|
52
55
|
"generate:tools-docs": "tsx scripts/generate-tools-docs.ts",
|
|
56
|
+
"mcpb:build": "npm run build && tsx scripts/build-mcpb.ts",
|
|
57
|
+
"release:verify": "npm run check && npm run build && npm pack --dry-run",
|
|
53
58
|
"mcpo": "uvx mcpo --port 8000 --api-key \"top-secret\" -- npx tsx src/index.ts",
|
|
54
59
|
"start": "node dist/bin/cli.js",
|
|
55
60
|
"metrics:scc": "tsx scripts/metrics/scc.ts",
|
|
56
61
|
"metrics:lizard": "tsx scripts/metrics/lizard.ts",
|
|
57
|
-
"metrics": "
|
|
62
|
+
"metrics:tool-budget": "tsx scripts/metrics/tool-budget.ts",
|
|
63
|
+
"metrics": "npm run metrics:tool-budget && npm run metrics:scc && npm run metrics:lizard"
|
|
58
64
|
},
|
|
59
65
|
"engines": {
|
|
60
66
|
"node": ">=24.15.0"
|
|
@@ -82,7 +88,7 @@
|
|
|
82
88
|
"@apidevtools/json-schema-ref-parser": "^15.3.5",
|
|
83
89
|
"@eslint/js": "^10.0.1",
|
|
84
90
|
"@types/better-sqlite3": "^7.6.13",
|
|
85
|
-
"@types/node": "^25.
|
|
91
|
+
"@types/node": "^25.9.2",
|
|
86
92
|
"@typescript-eslint/eslint-plugin": "^8.50.0",
|
|
87
93
|
"@typescript-eslint/parser": "^8.50.0",
|
|
88
94
|
"@vitest/coverage-v8": "^4.0.16",
|
|
@@ -104,7 +110,7 @@
|
|
|
104
110
|
"better-sqlite3": "^12.6.2",
|
|
105
111
|
"keytar": "^7.9.0",
|
|
106
112
|
"tough-cookie": "^6.0.0",
|
|
107
|
-
"undici": "^8.
|
|
113
|
+
"undici": "^8.4.0",
|
|
108
114
|
"yaml": "^2.8.4",
|
|
109
115
|
"zod": "^4.2.1"
|
|
110
116
|
}
|
package/dist/src/auth/index.js
CHANGED
|
@@ -3,6 +3,7 @@ import { createServer } from 'node:http';
|
|
|
3
3
|
import { randomBytes } from 'node:crypto';
|
|
4
4
|
import { EventEmitter } from 'node:events';
|
|
5
5
|
import { URL } from 'node:url';
|
|
6
|
+
import { getConfig } from '../config/index.js';
|
|
6
7
|
import { logger } from '../infra/logger.js';
|
|
7
8
|
import { getCookieStore } from './cookieStore.js';
|
|
8
9
|
const MAX_LOGIN_BODY_BYTES = 16 * 1024;
|
|
@@ -50,6 +51,52 @@ function parseLoginSubmission(params) {
|
|
|
50
51
|
emailOtp: directEmailOtp ?? (factorKind === 'emailOtp' ? code : undefined),
|
|
51
52
|
};
|
|
52
53
|
}
|
|
54
|
+
function loginUserAgent() {
|
|
55
|
+
return getConfig().api.userAgent;
|
|
56
|
+
}
|
|
57
|
+
function isAllowedLoopbackHost(host, expectedPort) {
|
|
58
|
+
let parsed;
|
|
59
|
+
try {
|
|
60
|
+
parsed = new URL(`http://${host}`);
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
if (host.includes('@') ||
|
|
66
|
+
parsed.username.length > 0 ||
|
|
67
|
+
parsed.password.length > 0 ||
|
|
68
|
+
parsed.pathname !== '/' ||
|
|
69
|
+
parsed.search ||
|
|
70
|
+
parsed.hash) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
const hostname = parsed.hostname.toLowerCase();
|
|
74
|
+
const port = Number(parsed.port || '80');
|
|
75
|
+
return (port === expectedPort &&
|
|
76
|
+
(hostname === 'localhost' || hostname === '127.0.0.1' || hostname === '[::1]'));
|
|
77
|
+
}
|
|
78
|
+
function isAllowedLoopbackOrigin(origin, expectedPort) {
|
|
79
|
+
let parsed;
|
|
80
|
+
try {
|
|
81
|
+
parsed = new URL(origin);
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
if (origin.includes('@') ||
|
|
87
|
+
parsed.username.length > 0 ||
|
|
88
|
+
parsed.password.length > 0 ||
|
|
89
|
+
parsed.pathname !== '/' ||
|
|
90
|
+
parsed.search ||
|
|
91
|
+
parsed.hash) {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
const hostname = parsed.hostname.toLowerCase();
|
|
95
|
+
const port = Number(parsed.port || '80');
|
|
96
|
+
return (parsed.protocol === 'http:' &&
|
|
97
|
+
port === expectedPort &&
|
|
98
|
+
(hostname === 'localhost' || hostname === '127.0.0.1' || hostname === '[::1]'));
|
|
99
|
+
}
|
|
53
100
|
class AuthManager {
|
|
54
101
|
jar = new CookieJar();
|
|
55
102
|
server = null;
|
|
@@ -198,6 +245,9 @@ class AuthManager {
|
|
|
198
245
|
}
|
|
199
246
|
renderPage(res, body) {
|
|
200
247
|
res.setHeader('content-type', 'text/html; charset=utf-8');
|
|
248
|
+
res.setHeader('referrer-policy', 'no-referrer');
|
|
249
|
+
res.setHeader('x-frame-options', 'DENY');
|
|
250
|
+
res.setHeader('content-security-policy', "default-src 'none'; style-src 'unsafe-inline'; form-action 'self'; base-uri 'none'; frame-ancestors 'none'");
|
|
201
251
|
res.end(`<!doctype html>
|
|
202
252
|
<html lang="en">
|
|
203
253
|
<head>
|
|
@@ -239,6 +289,18 @@ class AuthManager {
|
|
|
239
289
|
res.end('Auth server not ready');
|
|
240
290
|
return null;
|
|
241
291
|
}
|
|
292
|
+
const host = req.headers.host;
|
|
293
|
+
if (!host || !isAllowedLoopbackHost(host, this.port)) {
|
|
294
|
+
res.statusCode = 403;
|
|
295
|
+
res.end('Invalid host');
|
|
296
|
+
return null;
|
|
297
|
+
}
|
|
298
|
+
const origin = req.headers.origin;
|
|
299
|
+
if (origin && !isAllowedLoopbackOrigin(origin, this.port)) {
|
|
300
|
+
res.statusCode = 403;
|
|
301
|
+
res.end('Invalid origin');
|
|
302
|
+
return null;
|
|
303
|
+
}
|
|
242
304
|
const urlObj = new URL(req.url ?? '/', `http://127.0.0.1:${this.port}`);
|
|
243
305
|
const token = urlObj.searchParams.get('token');
|
|
244
306
|
if (!token || token !== this.serverToken) {
|
|
@@ -327,7 +389,7 @@ class AuthManager {
|
|
|
327
389
|
method: 'GET',
|
|
328
390
|
headers: {
|
|
329
391
|
authorization: `Basic ${basic}`,
|
|
330
|
-
'user-agent':
|
|
392
|
+
'user-agent': loginUserAgent(),
|
|
331
393
|
},
|
|
332
394
|
});
|
|
333
395
|
const setCookies1 = res1.headers.getSetCookie?.() ?? [];
|
|
@@ -347,7 +409,7 @@ class AuthManager {
|
|
|
347
409
|
headers: {
|
|
348
410
|
cookie: cookieHeader,
|
|
349
411
|
'content-type': 'application/json',
|
|
350
|
-
'user-agent':
|
|
412
|
+
'user-agent': loginUserAgent(),
|
|
351
413
|
},
|
|
352
414
|
body: JSON.stringify({ code: totp }),
|
|
353
415
|
});
|
|
@@ -367,7 +429,7 @@ class AuthManager {
|
|
|
367
429
|
headers: {
|
|
368
430
|
cookie: cookieHeader,
|
|
369
431
|
'content-type': 'application/json',
|
|
370
|
-
'user-agent':
|
|
432
|
+
'user-agent': loginUserAgent(),
|
|
371
433
|
},
|
|
372
434
|
body: JSON.stringify({ code: emailOtp }),
|
|
373
435
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,10 +45,12 @@
|
|
|
45
45
|
"enabled": false
|
|
46
46
|
},
|
|
47
47
|
"generatedReadTools": {
|
|
48
|
-
"
|
|
48
|
+
"enabled": true,
|
|
49
|
+
"operationIds": []
|
|
49
50
|
},
|
|
50
51
|
"generatedWriteTools": {
|
|
51
|
-
"
|
|
52
|
+
"enabled": true,
|
|
53
|
+
"operationIds": []
|
|
52
54
|
},
|
|
53
55
|
"vrcx": {
|
|
54
56
|
"enabled": true,
|
package/dist/src/config/index.js
CHANGED
|
@@ -5,6 +5,12 @@ import { z } from 'zod';
|
|
|
5
5
|
import pkg from '../../package.json' with { type: 'json' };
|
|
6
6
|
import defaultsJson from './defaults.json' with { type: 'json' };
|
|
7
7
|
const DISABLED_ALLOWLIST_VALUES = new Set(['', '0', 'false', 'no', 'off']);
|
|
8
|
+
const GeneratedToolConfigSchema = z
|
|
9
|
+
.object({
|
|
10
|
+
enabled: z.boolean(),
|
|
11
|
+
operationIds: z.array(z.string()),
|
|
12
|
+
})
|
|
13
|
+
.strict();
|
|
8
14
|
const ConfigBaseSchema = z
|
|
9
15
|
.object({
|
|
10
16
|
api: z
|
|
@@ -74,16 +80,8 @@ const ConfigBaseSchema = z
|
|
|
74
80
|
enabled: z.boolean(),
|
|
75
81
|
})
|
|
76
82
|
.strict(),
|
|
77
|
-
generatedReadTools:
|
|
78
|
-
|
|
79
|
-
disable: z.boolean(),
|
|
80
|
-
})
|
|
81
|
-
.strict(),
|
|
82
|
-
generatedWriteTools: z
|
|
83
|
-
.object({
|
|
84
|
-
disable: z.boolean(),
|
|
85
|
-
})
|
|
86
|
-
.strict(),
|
|
83
|
+
generatedReadTools: GeneratedToolConfigSchema,
|
|
84
|
+
generatedWriteTools: GeneratedToolConfigSchema,
|
|
87
85
|
vrcx: z
|
|
88
86
|
.object({
|
|
89
87
|
enabled: z.boolean(),
|
|
@@ -193,6 +191,7 @@ function readConfigFile(filePath) {
|
|
|
193
191
|
if (!isPlainObject(parsed)) {
|
|
194
192
|
throw new Error('Config file must contain a JSON object.');
|
|
195
193
|
}
|
|
194
|
+
normalizeLegacyConfigFile(parsed);
|
|
196
195
|
return parsed;
|
|
197
196
|
}
|
|
198
197
|
catch (err) {
|
|
@@ -204,6 +203,18 @@ function readConfigFile(filePath) {
|
|
|
204
203
|
function isPlainObject(value) {
|
|
205
204
|
return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
|
|
206
205
|
}
|
|
206
|
+
function normalizeLegacyGeneratedToolConfig(value) {
|
|
207
|
+
if (!isPlainObject(value))
|
|
208
|
+
return;
|
|
209
|
+
if (typeof value.disable === 'boolean') {
|
|
210
|
+
value.enabled = !value.disable;
|
|
211
|
+
delete value.disable;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
function normalizeLegacyConfigFile(config) {
|
|
215
|
+
normalizeLegacyGeneratedToolConfig(config.generatedReadTools);
|
|
216
|
+
normalizeLegacyGeneratedToolConfig(config.generatedWriteTools);
|
|
217
|
+
}
|
|
207
218
|
function mergeConfig(base, override) {
|
|
208
219
|
if (!isPlainObject(base) || !isPlainObject(override)) {
|
|
209
220
|
return (override ?? base);
|
|
@@ -289,13 +300,13 @@ function applyToolingEnvOverrides(overrides, env) {
|
|
|
289
300
|
if (env.VRCHAT_MCP_DISABLE_GENERATED_READ_TOOLS !== undefined) {
|
|
290
301
|
overrides.generatedReadTools = {
|
|
291
302
|
...overrides.generatedReadTools,
|
|
292
|
-
|
|
303
|
+
enabled: !env.VRCHAT_MCP_DISABLE_GENERATED_READ_TOOLS,
|
|
293
304
|
};
|
|
294
305
|
}
|
|
295
306
|
if (env.VRCHAT_MCP_DISABLE_GENERATED_WRITE_TOOLS !== undefined) {
|
|
296
307
|
overrides.generatedWriteTools = {
|
|
297
308
|
...overrides.generatedWriteTools,
|
|
298
|
-
|
|
309
|
+
enabled: !env.VRCHAT_MCP_DISABLE_GENERATED_WRITE_TOOLS,
|
|
299
310
|
};
|
|
300
311
|
}
|
|
301
312
|
}
|