examples: add arcade example to servers (#399)

This commit is contained in:
Ido Salomon 2026-01-29 20:55:57 +02:00 • committed by GitHub
commit adf0bbd611
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 25 additions and 2 deletions

View file

@ -98,6 +98,7 @@ jobs:
fail-fast: false
matrix:
example:
- arcade-server
- basic-server-preact
- basic-server-react
- basic-server-solid

View file

@ -26,6 +26,7 @@ jobs:
. \
./examples/basic-server-react \
./examples/basic-server-vanillajs \
./examples/arcade-server \
./examples/budget-allocator-server \
./examples/cohort-heatmap-server \
./examples/customer-segmentation-server \

View file

@ -176,6 +176,16 @@ To use these examples with MCP clients that support the stdio transport (such as
"--stdio"
]
},
"arcade": {
"command": "npx",
"args": [
"-y",
"--silent",
"--registry=https://registry.npmjs.org/",
"@modelcontextprotocol/server-arcade",
"--stdio"
]
},
"budget-allocator": {
"command": "npx",
"args": [
@ -393,6 +403,13 @@ Then configure your MCP client to build and run the local server. Replace `~/cod
"cd ~/code/ext-apps/examples/basic-server-solid && npm run build >&2 && node dist/index.js --stdio"
]
},
"arcade": {
"command": "bash",
"args": [
"-c",
"cd ~/code/ext-apps/examples/arcade-server && npm run build >&2 && node dist/index.js --stdio"
]
},
"budget-allocator": {
"command": "bash",
"args": [

Binary file not shown.

After

Width:  |  Height:  |  Size: 446 KiB

View file

@ -35,7 +35,7 @@ export function validateGameId(gameId: string): boolean {
*/
export function createServer(port: number): McpServer {
const server = new McpServer({
name: "arcade-mcp-server",
name: "Arcade Server",
version: "1.0.0",
});

View file

@ -27,6 +27,7 @@ const EXTRA_WAIT_MS: Record<string, number> = {
// Servers to skip (screenshots maintained manually)
const SKIP_SERVERS = new Set([
"arcade-server", // Loads games from archive.org - screenshots maintained manually
"video-resource", // Uses custom screenshot from PR comment
"qr-server", // Uses custom screenshot from PR comment
"say-server", // TTS model download from HuggingFace can be slow
@ -37,6 +38,7 @@ const EXAMPLE_FILTER = process.env.EXAMPLE;
// Server configurations (excludes integration-server which is for E2E testing)
const ALL_SERVERS = [
{ key: "arcade-server", name: "Arcade Server", dir: "arcade-server" },
{
key: "basic-react",
name: "Basic MCP App Server (React)",

View file

@ -35,6 +35,7 @@ const DYNAMIC_MASKS: Record<string, string[]> = {
// Servers that need extra stabilization time (e.g., for tile loading, WebGL init)
const SLOW_SERVERS: Record<string, number> = {
"map-server": 15000, // CesiumJS needs time for tiles to load
"arcade-server": 15000, // Game loading from archive.org can be slow
threejs: 2000, // Three.js WebGL initialization
"say-server": 10000, // TTS model download from HuggingFace can be slow
};
@ -57,7 +58,7 @@ const HOST_MASKS: Record<string, string[]> = {
// Servers to skip in CI (require special resources like GPU, large ML models)
const SKIP_SERVERS = new Set<string>([
// None currently - say-server view works without TTS model for screenshots
"arcade-server", // Loads games from archive.org which may be slow/unreliable in CI
"qr-server", // TODO
"say-server", // TTS model download from HuggingFace can be slow
]);
@ -67,6 +68,7 @@ const EXAMPLE_FILTER = process.env.EXAMPLE;
// Server configurations (key is used for screenshot filenames, name is the MCP server name, dir is the folder name)
const ALL_SERVERS = [
{ key: "arcade-server", name: "Arcade Server", dir: "arcade-server" },
{
key: "integration",
name: "Integration Test Server",