Alexandre Quessy a560bbe057 Add embedded MCP server exposing MapMap control over local HTTP (#612)
* Add embedded MCP server exposing MapMap control over local HTTP

Adds a native Model Context Protocol server (QHttpServer, JSON-RPC 2.0)
running on the GUI thread, exposing sources, layers, playback, project
I/O and state read-back to MCP clients at http://localhost:<port>/mcp.

The port is configurable via QSettings (mcpListeningPort, default 49452)
and a new -m/--mcp-port CLI flag; 0 disables the server. Requires the
QtHttpServer module (and its QtWebSockets dependency).

Add port preference UI

Adapt McpServer to Paint->Source and Mapping->Layer renames. Fix
QHttpServer::listen() removal in Qt 6.11 by using QTcpServer::listen()
with QHttpServer::bind(). Add MCP port spinbox to Preferences Controls
tab (0 disables the server).

* Make MCP server build optional when qthttpserver is unavailable

Use qtHaveModule(httpserver) to conditionally enable MCP support,
guarded by HAVE_MCP preprocessor define throughout the codebase.
This fixes CI builds on platforms without the Qt HttpServer module.

* Add create_layer tool to MCP server for triangle, quad and ellipse shapes

Move addMesh/addTriangle/addEllipse from private to public slots in
MainWindow so the MCP server can call them directly.

* Add Claude Code skill for controlling MapMap via MCP

* Add set_vertices MCP tool and update skill doc

Allows setting the output shape vertices of a layer via MCP.
Documents vertex ordering and the new tool in the skill file.

* Guard mcpListeningPort write in writeSettings with HAVE_MCP

The member variable is only declared under #ifdef HAVE_MCP,
so writing it in writeSettings also needs the guard to fix
the build when qthttpserver is unavailable.
2026-05-26 01:21:07 -04:00
2013-12-09 16:08:46 -05:00
2026-05-22 00:11:44 -04:00
2016-03-25 18:31:10 +01:00
2020-04-06 20:18:49 +00:00
2026-05-22 00:11:44 -04:00
2018-07-24 23:57:23 -04:00

MapMap

MapMap is a free video mapping software.

Projection mapping, also known as video mapping and spatial augmented reality, is a projection technology used to turn objects, often irregularly shaped, into a display surface for video projection. These objects may be complex industrial landscapes, such as buildings. By using specialized software, a two or three dimensional object is spatially mapped on the virtual program which mimics the real environment it is to be projected on. The software can interact with a projector to fit any desired image onto the surface of that object. This technique is used by artists and advertisers alike who can add extra dimensions, optical illusions, and notions of movement onto previously static objects. The video is commonly combined with, or triggered by, audio to create an audio-visual narrative.

Build status

Build on macOS Build on Ubuntu Build on Windows

Acknowledgements

This project is sponsored by Art Plus Code. https://www.artpluscode.com/

This project was made possible by the support of the International Organization of La Francophonie. http://www.francophonie.org/

Ce projet a été rendu possible grâce au support de l'Organisation internationale de la Francophonie. http://www.francophonie.org/

This project also received the support of Perte de Signal. https://perte-de-signal.org/

Build and installation

To build and install it, see the INSTALL file provided with the source code.

To use this software on Gnu/Linux with window managers other than Unity, make sure that this package is NOT installed: appmenu-qt5 or else the menu will not show.

Authors

  • Alexandre Quessy: lead developer, release manager, technical writer, project manager.
  • Sofian Audry: original lead developer, user interface designer, project manager.
  • Dame Diongue: developer.
  • Mike Latona: user interface designer.
  • Vasilis Liaskovitis: developer.

Contributors

  • Lucas Adair : developer, macOS packaging.
  • Christian Ambaud: sponsor, inspiration.
  • Alex Barry: user experience design.
  • Eliza Bennett : documentation, chinese translation.
  • Jonathan Roman Bland : developer.
  • Sylvain Cormier: developer.
  • Maxime Damecour: inspiration.
  • Louis Desjardins: project manager.
  • Ian Donnelly : user interface designer, documentation.
  • Gene Felice : video package, documentation.
  • Julien Keable: developer.
  • Marc Lavallée: help with packaging.
  • Matthew Loewens : documentation, developer.
  • Madison Suniga : documentation.

More info

Get more info from mapmapteam.github.io

Licence

GNU GPL v3

S
Description
Programari per a video mapping per GNU/Linux.
Readme GPL-3.0 7.1 MiB
Languages
C++ 98.4%
QMake 0.7%
Shell 0.5%
C 0.3%
Batchfile 0.1%