Skip to content

Conversation

@idosal
Copy link
Collaborator

@idosal idosal commented Jan 24, 2026

MCP Apps can run DOOM!

Code.-.Insiders.mp4

It demonstrates a technique for rendering external URLs with the standard text/html;profile=mcp-app profile. It utilizes the new baseUriDomains CSP meta.

Demo video on VSCode (@connor4312)

Copilot AI review requested due to automatic review settings January 24, 2026 21:31
@pkg-pr-new
Copy link

pkg-pr-new bot commented Jan 24, 2026

Open in StackBlitz

@modelcontextprotocol/ext-apps

npm i https://pkg.pr.new/modelcontextprotocol/ext-apps/@modelcontextprotocol/ext-apps@346

@modelcontextprotocol/server-basic-react

npm i https://pkg.pr.new/modelcontextprotocol/ext-apps/@modelcontextprotocol/server-basic-react@346

@modelcontextprotocol/server-basic-vanillajs

npm i https://pkg.pr.new/modelcontextprotocol/ext-apps/@modelcontextprotocol/server-basic-vanillajs@346

@modelcontextprotocol/server-budget-allocator

npm i https://pkg.pr.new/modelcontextprotocol/ext-apps/@modelcontextprotocol/server-budget-allocator@346

@modelcontextprotocol/server-cohort-heatmap

npm i https://pkg.pr.new/modelcontextprotocol/ext-apps/@modelcontextprotocol/server-cohort-heatmap@346

@modelcontextprotocol/server-customer-segmentation

npm i https://pkg.pr.new/modelcontextprotocol/ext-apps/@modelcontextprotocol/server-customer-segmentation@346

@modelcontextprotocol/server-map

npm i https://pkg.pr.new/modelcontextprotocol/ext-apps/@modelcontextprotocol/server-map@346

@modelcontextprotocol/server-pdf

npm i https://pkg.pr.new/modelcontextprotocol/ext-apps/@modelcontextprotocol/server-pdf@346

@modelcontextprotocol/server-scenario-modeler

npm i https://pkg.pr.new/modelcontextprotocol/ext-apps/@modelcontextprotocol/server-scenario-modeler@346

@modelcontextprotocol/server-shadertoy

npm i https://pkg.pr.new/modelcontextprotocol/ext-apps/@modelcontextprotocol/server-shadertoy@346

@modelcontextprotocol/server-sheet-music

npm i https://pkg.pr.new/modelcontextprotocol/ext-apps/@modelcontextprotocol/server-sheet-music@346

@modelcontextprotocol/server-system-monitor

npm i https://pkg.pr.new/modelcontextprotocol/ext-apps/@modelcontextprotocol/server-system-monitor@346

@modelcontextprotocol/server-threejs

npm i https://pkg.pr.new/modelcontextprotocol/ext-apps/@modelcontextprotocol/server-threejs@346

@modelcontextprotocol/server-transcript

npm i https://pkg.pr.new/modelcontextprotocol/ext-apps/@modelcontextprotocol/server-transcript@346

@modelcontextprotocol/server-video-resource

npm i https://pkg.pr.new/modelcontextprotocol/ext-apps/@modelcontextprotocol/server-video-resource@346

@modelcontextprotocol/server-wiki-explorer

npm i https://pkg.pr.new/modelcontextprotocol/ext-apps/@modelcontextprotocol/server-wiki-explorer@346

commit: 887e0d4

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a new MCP Apps arcade server example that demonstrates serving external HTML content from archive.org as an MCP App resource. The server allows users to browse and play classic arcade games directly in an MCP-enabled host.

Changes:

  • Added a new arcade-server example demonstrating external HTML processing and embedding
  • Implemented archive.org game search functionality with smart fallbacks for search terms
  • Created server-side HTML processing to work around srcdoc iframe limitations with ES modules

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
package-lock.json Added arcade-server package dependencies and resolved peer dependencies
examples/arcade-server/tsconfig.json TypeScript configuration for Node.js server compilation
examples/arcade-server/server.ts Main MCP server with game search and loading tools
examples/arcade-server/search.ts Archive.org search API integration with fallback strategies
examples/arcade-server/index.ts HTTP server entry point with Express and MCP transport setup
examples/arcade-server/game-processor.ts HTML processing logic to rewrite ES modules for iframe compatibility
examples/arcade-server/README.md Documentation explaining the server architecture and usage
examples/arcade-server/.gitignore Standard Node.js gitignore for dist and node_modules
examples/arcade-server/package.json Package configuration with dependencies and scripts

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

idosal and others added 4 commits January 24, 2026 23:52
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
idosal and others added 2 commits January 25, 2026 00:47
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copy link
Contributor

Copilot AI commented Jan 24, 2026

@idosal I've opened a new pull request, #348, to work on those changes. Once the pull request is ready, I'll request review from you.

Copilot AI and others added 6 commits January 25, 2026 01:39
* Initial plan

* Add whitespace validation to validateGameId function

Co-authored-by: idosal <18148989+idosal@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: idosal <18148989+idosal@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants