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
Missing features
Mechanism to be able to cancel an in-flight tool
Proposed implementation
Enable multiplayer local testing for agents
Maybe the easiest way would be making the Agent use
metaforgeCLI 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
--mcparg with parameters. Default profile would be creator, and for devs one need to specify--mcp dev. Then it is just anifin theMcpServerPlugin.InjectToWorldwhere it assemblesMcpToolRegistry. 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