Skip to content

Explorer MCP server V2 #9393

Description

@pravusjif

Missing features

Mechanism to be able to cancel an in-flight tool

Proposed implementation

Add real per-command cancellation without breaking the stateless "one POST = one message" model:

1. On `tools/call`, create a linked `CancellationTokenSource`, register it in a `Dictionary<requestId, CTS>`, and pass its token (not the shared server token) to the tool.
2. Implement a `notifications/cancelled` handler (its `params` carry `requestId`) — look up the CTS by id and cancel it.
3. Clean up the dictionary entry on call completion (`finally`).

Enable multiplayer local testing for agents

Maybe the easiest way would be making the Agent use metaforge CLI tool to handle the accounts setup

(For debugging) CRDT steate get + CRDT history get

Tools for allowing the agent check the CRDT state of the scene + the full CRDT commands history

(For debugging) Selective toggling of tools

Can we disable some tools? (with a paremter, to separate tools for creators and for debugging)
- We can make --mcp arg with parameters. Default profile would be creator, and for devs one need to specify --mcp dev. Then it is just an if in the McpServerPlugin.InjectToWorld where it assembles McpToolRegistry. Different profiles will have just differently assembled registry

(For debugging) Connect MCP server to CDP Protocol - get network logs

(For debugging) Get Unity player/editor logs (beyond get_scene_tools)

Potential approach already implemented at PR #9436

Metadata

Metadata

Labels

3-lowMinor cosmetic issues, low impact, can be scheduled later.featurea new featuresdk

Projects

Status
Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions