Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .github/agentics/nightly-mcp-stress-test.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,13 @@ The gateway is provided by the workflow infrastructure and handles all Docker co

The following 21 MCP servers are pre-configured and accessible via the gateway:

1. **github** - GitHub MCP Server (ghcr.io/github/github-mcp-server:v0.30.2)
2. **filesystem** - Filesystem MCP Server (mcp/filesystem)
1. **github** - GitHub MCP Server (ghcr.io/github/github-mcp-server:v0.30.2) - Configured with authentication
2. **filesystem** - Filesystem MCP Server (mcp/filesystem) - Configured with ALLOWED_PATHS
3. **memory** - Memory MCP Server (mcp/memory)
4. **sqlite** - SQLite MCP Server (mcp/sqlite)
5. **brave-search** - Brave Search MCP Server (mcp/brave-search)
6. **fetch** - Fetch MCP Server (mcp/fetch)
7. **puppeteer** - Puppeteer MCP Server (mcp/puppeteer)
7. **puppeteer** - Puppeteer MCP Server (mcp/puppeteer) - Configured with browser environment
8. **slack** - Slack MCP Server (mcp/slack)
9. **gdrive** - Google Drive MCP Server (mcp/gdrive)
10. **google-maps** - Google Maps MCP Server (mcp/google-maps)
Expand All @@ -47,12 +47,12 @@ The following 21 MCP servers are pre-configured and accessible via the gateway:
13. **sentry** - Sentry MCP Server (mcp/sentry)
14. **git** - Git MCP Server (mcp/git)
15. **time** - Time MCP Server (mcp/time)
16. **playwright** - Playwright MCP Server (mcp/playwright)
16. **playwright** - Playwright MCP Server (mcr.microsoft.com/playwright:v1.49.1-noble) - Configured with browser environment
Copy link

Copilot AI Feb 4, 2026

Choose a reason for hiding this comment

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

The documentation references the incorrect Playwright container image mcr.microsoft.com/playwright:v1.49.1-noble. This should be corrected to mcr.microsoft.com/playwright/mcp to match the proper MCP server image used elsewhere in the codebase.

This documentation inconsistency will mislead users about the actual server configuration and should be updated along with the workflow configuration file.

Suggested change
16. **playwright** - Playwright MCP Server (mcr.microsoft.com/playwright:v1.49.1-noble) - Configured with browser environment
16. **playwright** - Playwright MCP Server (mcr.microsoft.com/playwright/mcp) - Configured with browser environment

Copilot uses AI. Check for mistakes.
17. **wikipedia** - Wikipedia MCP Server (mcp/wikipedia-mcp)
18. **duckduckgo** - DuckDuckGo MCP Server (mcp/duckduckgo)
19. **youtube-transcript** - YouTube Transcript MCP Server (mcp/youtube-transcript)
20. **hackernews** - Hacker News MCP Server (mcp/hackernews-mcp)
21. **kubernetes** - Kubernetes MCP Server (mcp/kubernetes)
21. **kubernetes** - Kubernetes MCP Server (mcp/kubernetes) - Configured with cluster access

## Step 1: Initialize Test Session 📋

Expand Down
11 changes: 10 additions & 1 deletion .github/workflows/nightly-mcp-stress-test.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ mcp-servers:
filesystem:
type: stdio
container: "mcp/filesystem"
env:
ALLOWED_PATHS: "/workspace"
mounts:
- "/tmp/mcp-test-fs:/workspace:rw"
memory:
Expand All @@ -50,6 +52,8 @@ mcp-servers:
puppeteer:
type: stdio
container: "mcp/puppeteer"
env:
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: "false"
Comment on lines +55 to +56
Copy link

Copilot AI Feb 4, 2026

Choose a reason for hiding this comment

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

Setting PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: "false" instructs Puppeteer to download Chromium at runtime. This is typically the default behavior and is unusual to set explicitly to "false".

If the mcp/puppeteer container already has Chromium pre-installed (which is common for MCP server containers), this environment variable is unnecessary. Additionally, downloading Chromium at runtime may cause delays in server startup and could fail if network access is restricted.

Consider either:

  1. Removing this environment variable if Chromium is already included in the container
  2. Setting it to "true" if the intention is to skip downloading and use a pre-installed browser
  3. Verifying whether the mcp/puppeteer container requires this configuration at all

The lock file (line 504 in nightly-mcp-stress-test.lock.yml) shows puppeteer configured without any environment variables, which suggests this may not be necessary.

Suggested change
env:
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: "false"
# Rely on the mcp/puppeteer container's preinstalled Chromium; no extra env needed

Copilot uses AI. Check for mistakes.
slack:
type: stdio
container: "mcp/slack"
Expand All @@ -76,7 +80,9 @@ mcp-servers:
container: "mcp/time"
playwright:
type: stdio
container: "mcp/playwright"
container: "mcr.microsoft.com/playwright:v1.49.1-noble"
Copy link

Copilot AI Feb 4, 2026

Choose a reason for hiding this comment

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

The container image has been changed from mcp/playwright to mcr.microsoft.com/playwright:v1.49.1-noble, but this appears to be incorrect. The image mcr.microsoft.com/playwright:v1.49.1-noble is the base Playwright browser testing framework image, not a Playwright MCP server.

Other workflows in this repository (such as smoke-codex.lock.yml, smoke-copilot.lock.yml, and daily-multi-device-docs-tester.lock.yml) consistently use mcr.microsoft.com/playwright/mcp, which is the official Playwright MCP Server image. The base Playwright image does not include the MCP protocol implementation needed to communicate with the MCP Gateway.

The container should be changed to mcr.microsoft.com/playwright/mcp to match the pattern used throughout the codebase and ensure the MCP server can properly communicate with the gateway.

Suggested change
container: "mcr.microsoft.com/playwright:v1.49.1-noble"
container: "mcr.microsoft.com/playwright/mcp"

Copilot uses AI. Check for mistakes.
env:
PLAYWRIGHT_BROWSERS_PATH: "/ms-playwright"
wikipedia:
type: stdio
container: "mcp/wikipedia-mcp"
Expand All @@ -92,6 +98,9 @@ mcp-servers:
kubernetes:
type: stdio
container: "mcp/kubernetes"
env:
KUBECONFIG: "${{ secrets.KUBECONFIG || '/dev/null' }}"
Copy link

Copilot AI Feb 4, 2026

Choose a reason for hiding this comment

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

The fallback value for KUBECONFIG is set to '/dev/null' when the secret is not available. While /dev/null is a valid Unix file path, it's not a valid Kubernetes config file. This could cause the Kubernetes MCP server to fail or behave unexpectedly when trying to read cluster configuration.

Consider using a more appropriate fallback such as:

  1. An empty string '' to indicate no config is available
  2. A path to a dummy/empty config file if the server requires a file path
  3. Not setting the environment variable at all when the secret is missing

The current approach may result in misleading error messages from the Kubernetes MCP server when it attempts to parse /dev/null as a kubeconfig file.

Suggested change
KUBECONFIG: "${{ secrets.KUBECONFIG || '/dev/null' }}"
KUBECONFIG: "${{ secrets.KUBECONFIG || '' }}"

Copilot uses AI. Check for mistakes.
KUBERNETES_CLUSTER_URL: "${{ secrets.KUBERNETES_CLUSTER_URL || '' }}"

sandbox:
mcp:
Expand Down
Loading