Skip to content

Add Fiddler Everywhere skills#2416

Open
martin-vladkov wants to merge 4 commits into
github:mainfrom
martin-vladkov:martin-vladkov/add-fiddler-everywhere-skills
Open

Add Fiddler Everywhere skills#2416
martin-vladkov wants to merge 4 commits into
github:mainfrom
martin-vladkov:martin-vladkov/add-fiddler-everywhere-skills

Conversation

@martin-vladkov

@martin-vladkov martin-vladkov commented Jul 24, 2026

Copy link
Copy Markdown

Pull Request Checklist

  • I have read and followed the CONTRIBUTING.md guidelines.
  • I have read and followed the Guidance for submissions involving paid services.
  • My contribution adds a new instruction, prompt, agent, skill, workflow, or canvas extension file in the correct directory.
  • The file follows the required naming convention.
  • The content is clearly structured and follows the example format.
  • I have tested my instructions, prompt, agent, skill, workflow, or canvas extension with GitHub Copilot.
  • I have run npm start and verified that README.md is up to date.
  • I am targeting the main branch for this pull request.

Description

This contribution adds three agent skills that help GitHub Copilot agents set up and use a web debugging workflow for HTTP/HTTPS traffic.

The skills provide practical guidance for installing the required tooling, connecting Copilot-compatible agents to an MCP server, and using the available MCP tools to capture, inspect, and analyze network traffic. This can help developers investigate API failures, unexpected request or response behavior, authentication issues, headers, payloads, status codes, and other traffic-related problems without manually transferring debugging context into their editor.

The workflow uses Fiddler Everywhere as the traffic-capture and inspection tool.

Skill Purpose
fiddler-download-setup Guides the agent through downloading, installing, and launching Fiddler Everywhere when it is not already available.
fiddler-mcp-setup Configures the Fiddler Everywhere MCP server so supported agents can access its traffic-debugging tools.
fiddler-traffic-debugging Guides the agent in capturing, inspecting, and analyzing HTTP/HTTPS traffic through the available MCP tools.

Requirements and limitations

  • Fiddler Everywhere must be installed and running on the user's machine before the traffic-debugging tools can be used.
  • HTTPS traffic inspection may require local certificate configuration and user authorization.
  • Fiddler Everywhere is a commercial product, although its available licensing and usage options may vary.

Type of Contribution

  • New skill files

Additional Notes

These skills were created and tested by the Fiddler Everywhere team. The contributor is affiliated with the tool referenced by the skills.

The source files and related documentation are also available in the public https://github.com/telerik/fiddler-agent-tools.


By submitting this pull request, I confirm that my contribution abides by the Code of Conduct and will be licensed under the MIT License.

@github-actions github-actions Bot added new-submission PR adds at least one new contribution skills PR touches skills labels Jul 24, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🔒 PR Risk Scan Results

Scanned 4 changed file(s).

Severity Count
🔴 High 0
🟠 Medium 1
ℹ️ Info 0
Severity Rule File Line Match
🟠 package-exec-command docs/README.skills.md 31 | [acreadiness-assess](../skills/acreadiness-assess/SKILL.md)<br />`gh skills install github/awesome-copilot acreadiness-assess` | Run the AgentRC readiness assessment on the curre

This is an automated soft-gate report. Findings indicate review targets and do not block merge by themselves.

@github-actions github-actions Bot added the skill-check-error Skill validator reported errors label Jul 24, 2026
@github-actions

github-actions Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

🔍 Vally Lint Results

✅ All checks passed

Scope Checked
Skills 3
Agents 0
Total 3
Severity Count
❌ Errors 0
⚠️ Warnings 0
ℹ️ Advisories 0

Summary

Level Finding
ℹ️ npm warn EBADENGINE Unsupported engine {
ℹ️ npm warn EBADENGINE package: 'commander@15.0.0',
ℹ️ npm warn EBADENGINE required: { node: '>=22.12.0' },
ℹ️ npm warn EBADENGINE current: { node: 'v20.20.2', npm: '10.8.2' }
ℹ️ npm warn EBADENGINE }
ℹ️ npm warn deprecated prebuild-install@7.1.3: No longer maintained. Please contact the author of the relevant native addon; alternatives are available.
ℹ️ ✅ fiddler-download-setup (2/2 checks passed)
ℹ️ ✓ [spec-compliance] All 1 skill(s) are spec-compliant.
ℹ️ ✓ spec-compliance: All spec checks passed.
ℹ️ ✓ [valid-refs] All file references across 1 skill(s) are valid.
Full linter output
### Linting skills/fiddler-download-setup
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: 'commander@15.0.0',
npm warn EBADENGINE   required: { node: '>=22.12.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn deprecated prebuild-install@7.1.3: No longer maintained. Please contact the author of the relevant native addon; alternatives are available.
✅ fiddler-download-setup (2/2 checks passed)
    ✓ [spec-compliance] All 1 skill(s) are spec-compliant.
        ✓ spec-compliance: All spec checks passed.
    ✓ [valid-refs] All file references across 1 skill(s) are valid.
        ✓ valid-refs: All file references resolve to existing files within the skill directory.

1 skill(s) linted, 1 passed

### Linting skills/fiddler-mcp-setup
✅ fiddler-mcp-setup (2/2 checks passed)
    ✓ [spec-compliance] All 1 skill(s) are spec-compliant.
        ✓ spec-compliance: All spec checks passed.
    ✓ [valid-refs] All file references across 1 skill(s) are valid.
        ✓ valid-refs: All file references resolve to existing files within the skill directory.

1 skill(s) linted, 1 passed

### Linting skills/fiddler-traffic-debugging
✅ fiddler-traffic-debugging (2/2 checks passed)
    ✓ [spec-compliance] All 1 skill(s) are spec-compliant.
        ✓ spec-compliance: All spec checks passed.
    ✓ [valid-refs] All file references across 1 skill(s) are valid.
        ✓ valid-refs: All file references resolve to existing files within the skill directory.

1 skill(s) linted, 1 passed

@github-actions github-actions Bot removed the skill-check-error Skill validator reported errors label Jul 24, 2026
@martin-vladkov
martin-vladkov marked this pull request as ready for review July 24, 2026 11:55
Copilot AI review requested due to automatic review settings July 24, 2026 11:55

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds three Fiddler Everywhere skills covering installation, MCP configuration, and HTTP traffic analysis.

Changes:

  • Adds cross-platform Fiddler installation guidance.
  • Adds MCP setup and authentication workflows.
  • Adds traffic-debugging guidance and generated documentation entries.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 17 comments.

File Description
skills/fiddler-download-setup/SKILL.md Adds installation and onboarding workflow.
skills/fiddler-mcp-setup/SKILL.md Adds MCP discovery, authentication, and configuration.
skills/fiddler-traffic-debugging/SKILL.md Adds captured-traffic analysis workflow.
docs/README.skills.md Lists the three new skills.

Comment thread skills/fiddler-download-setup/SKILL.md Outdated
Comment thread skills/fiddler-mcp-setup/SKILL.md Outdated
Comment thread skills/fiddler-traffic-debugging/SKILL.md Outdated
Comment thread skills/fiddler-traffic-debugging/SKILL.md Outdated
Comment thread skills/fiddler-traffic-debugging/SKILL.md Outdated
Comment thread skills/fiddler-mcp-setup/SKILL.md Outdated
Comment thread skills/fiddler-mcp-setup/SKILL.md Outdated
Comment thread skills/fiddler-mcp-setup/SKILL.md
Comment thread skills/fiddler-mcp-setup/SKILL.md Outdated
Comment thread skills/fiddler-mcp-setup/SKILL.md Outdated
Copilot AI review requested due to automatic review settings July 24, 2026 13:14

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

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

Comments suppressed due to low confidence (3)

skills/fiddler-download-setup/SKILL.md:59

  • The Linux check does not recognize the AppImage produced by this skill: Phase 3 saves ~/Downloads/FiddlerEverywhere.AppImage, but this glob only matches versioned lowercase names. It also accepts a PATH installation while deriving the version only from $APPIMAGE, which is empty in that case. A second run therefore reports NOT_INSTALLED or an empty installed version and unnecessarily reinstalls/upgrades. Align the downloaded filename/detection paths and obtain the version from whichever installation source was found.
APPIMAGE=$(ls ~/Downloads/fiddler-everywhere-*.AppImage 2>/dev/null | sort -V | tail -1)
if command -v fiddler-everywhere &>/dev/null || [ -n "$APPIMAGE" ]; then
  # Extract version from AppImage filename as the most reliable source
  INSTALLED_VERSION=$(echo "$APPIMAGE" | grep -oP '[\d]+\.[\d]+\.[\d]+')

skills/fiddler-download-setup/SKILL.md:116

  • This always resolves the Apple Silicon macOS manifest even after detecting the actual OS and architecture. On Intel macOS, $VERSION can therefore name a release unavailable at the Intel download URL; on Linux, the displayed version is from the wrong platform. Select the manifest from the detected platform before resolving the version.
```bash
uname -s && uname -m
VERSION=$(curl -s "https://downloads.getfiddler.com/mac-arm64/latest-mac.yml" \
  | grep '^version:' | awk '{print $2}')
echo "Latest Fiddler Everywhere: $VERSION"

skills/fiddler-mcp-setup/SKILL.md:259

  • The MCP initialization sequence proceeds directly from initialize to tools/list. MCP protocol version 2024-11-05 requires the client to send notifications/initialized after the initialize response and before normal operations; a conforming server can reject this tools request. Add that notification for both shell variants before fetching the tool list.
**2. Fetch the tools list to confirm `initiate_login` is available:**

Comment on lines +101 to +102
- `UP_TO_DATE` — inform the user their Fiddler Everywhere is already on the latest version
and stop further execution of the skill.
Comment on lines +294 to +298
Install the `fiddler-mcp-setup` skill from its remote location and invoke it:

**Remote skill URL:** `https://github.com/telerik/fiddler-agent-tools/tree/master/skills/fiddler-mcp-setup`

Follow the `fiddler-mcp-setup` skill instructions to complete MCP configuration end-to-end.
```powershell
curl.exe -sS -w "\nHTTP_STATUS:%{http_code}\n" -X POST "http://localhost:$PORT/api/McpManagement/Configure" `
-H "Content-Type: application/json" `
-d '{\"provider\":\"PROVIDER\"}'`
Comment thread docs/README.skills.md Outdated
Copilot AI review requested due to automatic review settings July 24, 2026 13:20

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 5 comments.

Comments suppressed due to low confidence (7)

skills/fiddler-download-setup/SKILL.md:59

  • The Linux detection still searches for a lowercase, versioned AppImage, but this skill downloads ~/Downloads/FiddlerEverywhere.AppImage, which is also the path used by the companion setup skill. A subsequent run therefore misses the installed AppImage; simply changing the glob is insufficient because the following version extraction relies on the old filename. Use one canonical path and persist or otherwise retrieve its installed version consistently.
APPIMAGE=$(ls ~/Downloads/fiddler-everywhere-*.AppImage 2>/dev/null | sort -V | tail -1)
if command -v fiddler-everywhere &>/dev/null || [ -n "$APPIMAGE" ]; then
  # Extract version from AppImage filename as the most reliable source
  INSTALLED_VERSION=$(echo "$APPIMAGE" | grep -oP '[\d]+\.[\d]+\.[\d]+')

skills/fiddler-download-setup/SKILL.md:298

  • This installs and executes a skill from the mutable master branch of an external repository even though the reviewed companion skill is part of this repository. Future upstream changes would bypass this repository's review and could alter setup behavior. Install the reviewed github/awesome-copilot copy instead.
Install the `fiddler-mcp-setup` skill from its remote location and invoke it:

**Remote skill URL:** `https://github.com/telerik/fiddler-agent-tools/tree/master/skills/fiddler-mcp-setup`

Follow the `fiddler-mcp-setup` skill instructions to complete MCP configuration end-to-end.

skills/fiddler-mcp-setup/SKILL.md:276

  • This PowerShell payload also sends backslash-escaped quotes literally, so tools/list receives invalid JSON and the Windows login flow stops here. Remove the backslashes from the single-quoted JSON.
  -d '{\"jsonrpc\":\"2.0\",\"id\":2,\"method\":\"tools/list\",\"params\":{}}'

skills/fiddler-mcp-setup/SKILL.md:298

  • This PowerShell tools/call body contains literal backslashes for the same reason, so it is not valid JSON and cannot initiate login. Use raw JSON inside the single-quoted argument.
  -d '{\"jsonrpc\":\"2.0\",\"id\":3,\"method\":\"tools/call\",\"params\":{\"name\":\"initiate_login\",\"arguments\":{}}}'

skills/fiddler-mcp-setup/SKILL.md:323

  • The Configure body contains literal backslashes in PowerShell, and the trailing backtick also continues the command onto a nonexistent next line. This makes Windows autoconfiguration fail before Fiddler can parse the provider.
  -d '{\"provider\":\"PROVIDER\"}'`

skills/fiddler-mcp-setup/SKILL.md:259

  • The MCP lifecycle requires the client to send notifications/initialized after receiving the initialize response and before normal requests such as tools/list. This sequence skips that mandatory notification, so a protocol-compliant server may reject the login flow. Add the notification for both shell variants before fetching tools.
**2. Fetch the tools list to confirm `initiate_login` is available:**

skills/fiddler-mcp-setup/SKILL.md:331

  • This second 403 path repeats the direct subscription-upgrade prompt, which conflicts with the PR's stated compliance with the paid-services guidance. Keep the failure actionable but neutral about commercial options.
| `403` | Stop: "Your Fiddler plan does not include MCP access. Please upgrade your subscription." |

Comment on lines +113 to +116
uname -s && uname -m
VERSION=$(curl -s "https://downloads.getfiddler.com/mac-arm64/latest-mac.yml" \
| grep '^version:' | awk '{print $2}')
echo "Latest Fiddler Everywhere: $VERSION"
Comment on lines +310 to +311
| Windows EXE blocked by SmartScreen | Right-click → Run as Administrator |
| App won't open on macOS | Run `xattr -cr "/Applications/Fiddler Everywhere.app"` to clear quarantine |
$initResp = curl.exe -si -X POST "http://localhost:$PORT/mcp" `
-H "Content-Type: application/json" `
-H "Accept: application/json, text/event-stream" `
-d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{},\"clientInfo\":{\"name\":\"mcp-setup\",\"version\":\"1.0\"}}}'
Comment on lines +152 to +154
- If the target process is known or can be inferred from the IDE/CLI context, call `CaptureApplication` with the process name or PID.
- Then call `ClearSessions` (with `sessionsSource: LiveTraffic`) to discard prior noise, so the next run produces a clean capture.
- Ask the user to run the feature if they haven't yet, or proceed to analysis if they already have.
|----------|--------|
| Indicates config exists / already configured | Inform the user: "Fiddler MCP is already configured for `PROVIDER`." Ask if they want to re-run setup to refresh the configuration. Only continue if confirmed. |
| Indicates not configured | Proceed to Step 5. |
| `403` | Stop: "Your Fiddler plan does not include MCP access. Please upgrade your subscription." |
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-submission PR adds at least one new contribution skills PR touches skills

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants