Skip to content
Draft
Show file tree
Hide file tree
Changes from 5 commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
fd64ca2
initial plan for MCP CLI mount feature
Copilot Apr 12, 2026
afeaeed
feat: mount MCP servers as local CLIs after gateway starts
Copilot Apr 12, 2026
4951367
fix: exclude github MCP server from CLI mounting
Copilot Apr 12, 2026
fb83906
feat: always include safeoutputs and mcpscripts in CLI mounting
Copilot Apr 12, 2026
7da162a
Add changeset
github-actions[bot] Apr 12, 2026
91198ae
refactor: convert gateway config scripts from bash to JavaScript
Copilot Apr 13, 2026
d639caf
fix: add type validation for mcpServers in gateway config converters
Copilot Apr 13, 2026
4424bbd
fix: quote shell variables and fix comment references in scripts
Copilot Apr 13, 2026
36a30db
refactor: convert Gemini gateway config converter from bash to JavaSc…
Copilot Apr 13, 2026
e8bc926
refactor: convert start_mcp_gateway.sh to JavaScript
Copilot Apr 13, 2026
b9c7d1e
security: store MCP config under RUNNER_TEMP to prevent tampering
Copilot Apr 13, 2026
e7501b3
security: harden scripts against shell injection, add input validatio…
Copilot Apr 13, 2026
1b18ebd
security: strip newlines in shell escape to prevent line injection
Copilot Apr 13, 2026
e997fe0
refactor: migrate JS logging from console.* to core.* via shim.cjs
Copilot Apr 13, 2026
a30140e
fix: preserve stack trace in start_mcp_gateway.cjs error handler
Copilot Apr 13, 2026
130f98d
Merge remote-tracking branch 'origin/main' into copilot/reconstruct-f…
Copilot Apr 13, 2026
de8393b
fix: merge main, update golden files and test expectations for MCPG v…
Copilot Apr 13, 2026
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
5 changes: 5 additions & 0 deletions .changeset/patch-mount-mcp-servers-as-clis.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .github/workflows/agentics-maintenance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,7 @@ jobs:
validate_workflows:
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.operation == 'validate' && !github.event.repository.fork }}
runs-on: ubuntu-slim
runs-on: ubuntu-latest
permissions:
contents: read
issues: write
Expand Down
67 changes: 44 additions & 23 deletions .github/workflows/smoke-copilot.lock.yml

Large diffs are not rendered by default.

25 changes: 21 additions & 4 deletions .github/workflows/smoke-copilot.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ tools:
- pelikhan
playwright:
web-fetch:
mount-as-clis: true
runtimes:
go:
version: "1.25"
Expand Down Expand Up @@ -128,14 +129,30 @@ strict: false

**IMPORTANT: Keep all outputs extremely short and concise. Use single-line responses where possible. No verbose explanations.**

## Tool Access Overview

This workflow uses `mount-as-clis: true`. The following MCP servers are **NOT available as MCP tools** — they are mounted exclusively as **shell CLI commands** (see `<mcp-clis>` section above). You **must** use them via the `bash` tool:

- **`playwright`** — use `playwright <tool> [--param value...]` in bash (e.g. `playwright browser_navigate --url ...`)
- **`serena`** — use `serena <tool> [--param value...]` in bash (e.g. `serena activate_project --path ...`)
- **`agenticworkflows`** — use `agenticworkflows <tool> [--param value...]` in bash
- **`safeoutputs`** — use `safeoutputs <tool> [--param value...]` in bash (e.g. `safeoutputs add_comment --body "..."`)
- **`mcpscripts`** — use `mcpscripts <tool> [--param value...]` in bash (e.g. `mcpscripts mcpscripts-gh --args "..."`)

The `github` MCP server is **NOT** CLI-mounted — it remains available as a normal MCP tool.

Run `<server> --help` to list all available tools for a server, or `<server> <tool> --help` for detailed parameter info.

These are **not** MCP protocol tools — they are bash executables. Call them with the `bash` tool only.

## Test Requirements

1. **GitHub MCP Testing**: Review the last 2 merged pull requests in ${{ github.repository }}
2. **MCP Scripts GH CLI Testing**: Use the `mcpscripts-gh` tool to query 2 pull requests from ${{ github.repository }} (use args: "pr list --repo ${{ github.repository }} --limit 2 --json number,title,author")
3. **Serena MCP Testing**:
- Use the Serena MCP server tool `activate_project` to initialize the workspace at `${{ github.workspace }}` and verify it succeeds (do NOT use bash to run go commands - use Serena's MCP tools)
- After initialization, use the `find_symbol` tool to search for symbols (find which tool to call) and verify that at least 3 symbols are found in the results
4. **Playwright Testing**: Use the playwright tools to navigate to <https://github.com> and verify the page title contains "GitHub" (do NOT try to install playwright - use the provided MCP tools)
3. **Serena CLI Testing**:
- Use bash to run `serena activate_project --path ${{ github.workspace }}` to initialize the workspace and verify it succeeds (do NOT use bash to run go commands - use the serena CLI only)
- After initialization, use bash to run `serena find_symbol --name_path <symbol>` to search for symbols and verify that at least 3 symbols are found in the results
4. **Playwright CLI Testing**: Use bash to run `playwright browser_navigate --url https://github.com` to navigate to <https://github.com>, then `playwright browser_snapshot` to capture the page and verify the title contains "GitHub" (do NOT try to install playwright - use the `playwright` CLI command via bash only)
5. **Web Fetch Testing**: Use the web-fetch tool to fetch https://github.com and verify the response contains "GitHub" (do NOT use bash or playwright for this test - use the web-fetch tool directly)
6. **File Writing Testing**: Create a test file `/tmp/gh-aw/agent/smoke-test-copilot-${{ github.run_id }}.txt` with content "Smoke test passed for Copilot at $(date)" (create the directory if it doesn't exist)
7. **Bash Tool Testing**: Execute bash commands to verify file creation was successful (use `cat` to read the file back)
Expand Down
Loading
Loading