Implement Model Context Protocol (MCP) Server - #328
Merged
Merged
Conversation
…e no effective difference
…iven extra height despite the world being flat
…ly outside of the map
Update instructions, allow MCP to undo/redo mutations, use terrain object and overlay collections, calculate resource field value, validate the map for errors, and screenshot the entire map
…UI/graphical editor main executable), implement scripting capabilities for MCP server, The assembly split enforces cleaner architecture, particularly prevents the rest of the codebase from having significant dependencies on the MCP server. Also, some technical debt (things relying on things they should not rely on) was cleared up.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Also restructures the project into 3 components:
MapEditorLibrary. Contains most core editor logic, game object data models, mutations etc. This library has no dependencies on other parts of WAE. It does still depend on MonoGame and XNAUI because they were just too widely used in the codebase for splitting them to be a reasonable workload at this point of time.MapEditorMCP. Contains the MCP server. Interfaces withMapEditorLibrary. Only exportsMCPServer- all the other logic and classes of the DLL are invisible to other components.TSMapEditor. References the two aforementioned projects. Implements map rendering and all map editing UI, includingINItializableWindows. Produces the main executable (WorldAlteringEditor.exe) when compiled, as it has done so far.This project structure enforces better architecture by forcing tighter separation between different parts of the application and their concerns. Particularly, it is impossible to accidentally import MCP server types into core WAE code, keeping the MCP server as a mostly self-contained component.
This pull request also reworks the Connected Tiles tool to allow creating circular paths and to support placing endings. These improvements were required for AI agents to be able to achieve good results with the Connected Tiles tool, but they also enhance the power of the tool for humans.