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
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
fetch-depth: 0 # Need full history for branch comparison

- name: Check DocC sync
run: make doccheck-branch
run: make doccheck-all
lint:
name: Lint & Type Check
runs-on: ubuntu-latest
Expand Down
8 changes: 4 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,12 +73,12 @@ mypy src/
Ensure documentation changes are synced with DocC catalog:

```bash
make doccheck
make doccheck-all
# or
python scripts/check_doc_sync.py
python scripts/check_doc_sync.py --all
```

This checks that changes to `docs/*.md` files are also reflected in the DocC catalog (`Sources/XcodeMCPWrapper/Documentation.docc/`).
This checks that changes to `docs/*.md` files are also reflected in the DocC catalog (`Sources/XcodeMCPWrapper/Documentation.docc/`) across unstaged, staged, and branch scopes.

### 6. Build Verification

Expand Down Expand Up @@ -118,7 +118,7 @@ echo "4. Running type checker..."
mypy src/

echo "5. Checking doc sync..."
python scripts/check_doc_sync.py
python scripts/check_doc_sync.py --all

echo "6. Building package..."
python -m build && twine check dist/*
Expand Down
14 changes: 11 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Makefile for mcpbridge-wrapper

.PHONY: help install install-webui test test-webui lint format format-check typecheck doccheck doccheck-branch package-assets-check clean webui webui-health check
.PHONY: help install install-webui test test-webui lint format format-check typecheck doccheck doccheck-staged doccheck-branch doccheck-all package-assets-check clean webui webui-health check

help:
@echo "Available targets:"
Expand All @@ -13,12 +13,14 @@ help:
@echo " format-check - Run ruff formatter in check mode"
@echo " typecheck - Run mypy type checker"
@echo " doccheck - Check docs/ are synced with DocC catalog"
@echo " doccheck-staged - Check staged docs/ sync with DocC catalog"
@echo " doccheck-branch - Check docs/ sync against git branch"
@echo " doccheck-all - Check docs/ sync for unstaged, staged, and branch changes"
@echo " package-assets-check - Build artifacts and verify required packaged assets"
@echo " webui - Start wrapper with Web UI dashboard (port 8080)"
@echo " webui-health - Check Web UI health status"
@echo " clean - Clean build artifacts"
@echo " check - Run all quality gates (test, lint, format, typecheck, doccheck, package-assets-check)"
@echo " check - Run all quality gates (test, lint, format, typecheck, doccheck-all, package-assets-check)"

install:
@if [ -z "$$VIRTUAL_ENV" ]; then \
Expand Down Expand Up @@ -57,14 +59,20 @@ typecheck:
doccheck:
python scripts/check_doc_sync.py

doccheck-staged:
python scripts/check_doc_sync.py --staged

doccheck-branch:
python scripts/check_doc_sync.py --branch

doccheck-all:
python scripts/check_doc_sync.py --all

package-assets-check:
python -m build --sdist --wheel
python scripts/check_package_assets.py --dist-dir dist

check: test lint format-check typecheck doccheck package-assets-check
check: test lint format-check typecheck doccheck-all package-assets-check

clean:
rm -rf build/ dist/ *.egg-info/
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ With Web UI dashboard (optional — adds real-time monitoring at http://localhos
"command": "uvx",
"args": [
"--from",
"mcpbridge-wrapper",
"mcpbridge-wrapper[webui]",
"mcpbridge-wrapper",
"--web-ui",
"--web-ui-port",
Expand Down Expand Up @@ -251,7 +251,7 @@ claude mcp add --transport stdio xcode -- uvx --from mcpbridge-wrapper mcpbridge

**Using uvx with Web UI (Optional):**
```bash
claude mcp add --transport stdio xcode -- uvx --from mcpbridge-wrapper mcpbridge-wrapper --web-ui --web-ui-port 8080
claude mcp add --transport stdio xcode -- uvx --from mcpbridge-wrapper[webui] mcpbridge-wrapper --web-ui --web-ui-port 8080
```

**Using manual installation:**
Expand Down Expand Up @@ -286,7 +286,7 @@ codex mcp add xcode -- uvx --from mcpbridge-wrapper mcpbridge-wrapper

**Using uvx with Web UI (Optional):**
```bash
codex mcp add xcode -- uvx --from mcpbridge-wrapper mcpbridge-wrapper --web-ui --web-ui-port 8080
codex mcp add xcode -- uvx --from mcpbridge-wrapper[webui] mcpbridge-wrapper --web-ui --web-ui-port 8080
```

**Using manual installation:**
Expand Down Expand Up @@ -334,7 +334,7 @@ Edit `~/.zed/settings.json`:
"command": "uvx",
"args": [
"--from",
"mcpbridge-wrapper",
"mcpbridge-wrapper[webui]",
"mcpbridge-wrapper",
"--web-ui",
"--web-ui-port",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# FU-P9-T2-1 — Fix uvx Web UI examples to include `webui` extras

**Priority:** P1
**Dependencies:** P9-T2
**Phase:** Phase 9 Follow-up Backlog

## Objective
Remove documentation/config mismatches where users can copy a uvx command with `--web-ui` but without Web UI extras, causing runtime dependency failures.

## Deliverables
1. Update all uvx + Web UI examples to use:
- `uvx --from mcpbridge-wrapper[webui] mcpbridge-wrapper`
2. Align client docs and config templates:
- `README.md`
- `docs/cursor-setup.md`
- `docs/claude-setup.md`
- `docs/codex-setup.md`
- `config/cursor-mcp.json`
- `config/zed-agent.json`
- `config/claude-code.txt`
- `config/codex-cli.txt`
3. Update troubleshooting guidance to include both supported paths:
- use `[webui]` extras for uvx + `--web-ui`
- remove `--web-ui` arguments when dashboard is not needed
4. Produce validation evidence in `SPECS/INPROGRESS/FU-P9-T2-1_Validation_Report.md`.

## Acceptance Criteria
1. No documented command/config combines `--web-ui` with base-only `uvx --from mcpbridge-wrapper`.
2. All uvx Web UI examples consistently use `mcpbridge-wrapper[webui]`.
3. Copy/paste Cursor JSON Web UI config no longer implies a `ModuleNotFoundError: uvicorn` failure.
4. Troubleshooting docs include both fix options: add `[webui]` extras or remove `--web-ui`.

## Execution Plan
1. Scan repository for `--web-ui` examples and uvx command variants.
2. Patch affected documentation and config templates only where Web UI is enabled.
3. Verify no remaining mismatched examples with targeted search checks.
4. Run quality gates:
- `pytest`
- `ruff check src/`
- `mypy src/`
- `pytest --cov` (>= 90%)
5. Write and commit validation report.

---
**Archived:** 2026-02-13
**Verdict:** PASS
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# FU-P9-T2-1 Validation Report

**Task:** Fix uvx Web UI examples to include `webui` extras
**Date:** 2026-02-13
**Verdict:** PASS

## Changes Implemented

1. Updated uvx + Web UI examples to use `mcpbridge-wrapper[webui]` in:
- `README.md`
- `docs/cursor-setup.md`
- `docs/claude-setup.md`
- `docs/codex-setup.md`
2. Updated config templates for uvx + Web UI usage:
- `config/cursor-mcp.json`
- `config/zed-agent.json`
- `config/claude-code.txt`
- `config/codex-cli.txt`
3. Updated troubleshooting guidance in `docs/troubleshooting.md` to include:
- uvx fix path with `mcpbridge-wrapper[webui]`
- manual install fix path (`./scripts/install.sh --webui`)
- fallback path to remove `--web-ui` args when dashboard is not needed

## Acceptance Criteria Check

| Criteria | Status | Evidence |
|---|---|---|
| No documented command/config combines `--web-ui` with base-only `uvx --from mcpbridge-wrapper` | PASS | Repository search returned no matches for base uvx + `--web-ui` patterns |
| All uvx Web UI examples use `mcpbridge-wrapper[webui]` | PASS | Updated docs/config files listed above now use `[webui]` in Web UI variants |
| Cursor JSON Web UI config no longer implies `ModuleNotFoundError: uvicorn` | PASS | `config/cursor-mcp.json` and `docs/cursor-setup.md` Web UI examples now install uvx Web UI extras |
| Troubleshooting includes both solutions | PASS | `docs/troubleshooting.md` now documents `[webui]` uvx path and removing `--web-ui` args |

## Quality Gates

Environment note:
- Initial `pytest` run failed during collection with `ModuleNotFoundError: mcpbridge_wrapper` because the package was not installed in the active interpreter.
- Installed dependencies with `python3 -m pip install -e '.[dev,webui]'`, then reran all gates.

Results:
- `pytest` -> **324 passed, 5 skipped**
- `ruff check src/` -> **All checks passed**
- `mypy src/` -> **Success: no issues found**
- `pytest --cov` -> **Total coverage 96.62%** (>= 90% requirement)

## Notes

- Test runs emitted existing non-blocking warnings related to WebSocket deprecations and a transient Web UI port `8080` bind warning from a test thread. These warnings did not affect pass/fail status.
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
## REVIEW REPORT — FU-P9-T2-1 uvx Web UI extras

**Scope:** `origin/main..HEAD`
**Files:** 14

### Summary Verdict
- [x] Approve
- [ ] Approve with comments
- [ ] Request changes
- [ ] Block

### Critical Issues
- None.

### Secondary Issues
- None.

### Architectural Notes
- Changes are documentation/config-template focused and correctly scoped to Web UI uvx examples.
- FLOW artifacts were produced and archived in expected locations.

### Tests
- `pytest` passed (`324 passed, 5 skipped`) after installing editable deps.
- `ruff check src/` passed.
- `mypy src/` passed.
- `pytest --cov` passed with **96.62%** coverage (>= 90%).

### Next Steps
- No actionable findings.
- FOLLOW-UP step is skipped.
4 changes: 4 additions & 0 deletions SPECS/ARCHIVE/INDEX.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@
| FU-P8-T1-1 | [FU-P8-T1-1_Reconcile_P8-T1_URL_Criteria_with_Current_GitHub_Pages_Path_and_Resolve_DocC_Reference_Warnings/](FU-P8-T1-1_Reconcile_P8-T1_URL_Criteria_with_Current_GitHub_Pages_Path_and_Resolve_DocC_Reference_Warnings/) | 2026-02-12 | PASS |
| P9-T3 | [P9-T3_Release_version_0.3.0_Web_UI_Feature_Release/](P9-T3_Release_version_0.3.0_Web_UI_Feature_Release/) | 2026-02-13 | PASS |
| FU-REBUILD-P10-T1-7 | [FU-REBUILD-P10-T1-7_WebUI_Static_Assets/](FU-REBUILD-P10-T1-7_WebUI_Static_Assets/) | 2026-02-13 | PASS |
| FU-P9-T2-1 | [FU-P9-T2-1_Fix_uvx_Web_UI_examples_to_include_webui_extras/](FU-P9-T2-1_Fix_uvx_Web_UI_examples_to_include_webui_extras/) | 2026-02-13 | PASS |

## Historical Artifacts

Expand Down Expand Up @@ -121,6 +122,7 @@
| [REVIEW_FU-P8-T1-1_URL_DocC.md](FU-P8-T1-1_Reconcile_P8-T1_URL_Criteria_with_Current_GitHub_Pages_Path_and_Resolve_DocC_Reference_Warnings/REVIEW_FU-P8-T1-1_URL_DocC.md) | Review report for FU-P8-T1-1 |
| [REVIEW_release-0.3.0.md](P9-T3_Release_version_0.3.0_Web_UI_Feature_Release/REVIEW_release-0.3.0.md) | Review report for P9-T3 |
| [REVIEW_webui-static-assets.md](FU-REBUILD-P10-T1-7_WebUI_Static_Assets/REVIEW_webui-static-assets.md) | Review report for FU-REBUILD-P10-T1-7 |
| [REVIEW_fu_p9_t2_1_uvx_webui_extras.md](FU-P9-T2-1_Fix_uvx_Web_UI_examples_to_include_webui_extras/REVIEW_fu_p9_t2_1_uvx_webui_extras.md) | Review report for FU-P9-T2-1 |

## Archive Log

Expand Down Expand Up @@ -196,3 +198,5 @@
| 2026-02-13 | P9-T3 | Archived REVIEW_release-0.3.0 report |
| 2026-02-13 | FU-REBUILD-P10-T1-7 | Archived WebUI_Static_Assets (PASS) |
| 2026-02-13 | FU-REBUILD-P10-T1-7 | Archived REVIEW_webui-static-assets report |
| 2026-02-13 | FU-P9-T2-1 | Archived Fix_uvx_Web_UI_examples_to_include_webui_extras (PASS) |
| 2026-02-13 | FU-P9-T2-1 | Archived REVIEW_fu_p9_t2_1_uvx_webui_extras report |
4 changes: 2 additions & 2 deletions SPECS/INPROGRESS/next.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ The previously selected task has been archived.

## Recently Archived

- 2026-02-13 — FU-P9-T2-1: Fix uvx Web UI examples to include `webui` extras (PASS)
- 2026-02-13 — FU-REBUILD-P10-T1-7: Include Web UI static assets in published package artifacts (PASS)
- 2026-02-13 — P9-T3: Release version 0.3.0 (Web UI Feature Release) (PASS)
- 2026-02-12 — FU-P8-T1-1: Reconcile P8-T1 URL criteria with current GitHub Pages path and resolve DocC reference warnings (PASS)
- 2026-02-12 — FU-P6-T10-1: Align manual install script with Web UI configuration expectations (PASS)
- 2026-02-12 — P7-T12: Move Cursor IDE uvx settings before installation instructions in README (PASS)

## Suggested Next Tasks

- FU-P9-T2-1: Fix uvx Web UI examples to include `webui` extras (P1)
- None. All tasks in `SPECS/Workplan.md` are complete (88/88).
4 changes: 2 additions & 2 deletions SPECS/Workplan.md
Original file line number Diff line number Diff line change
Expand Up @@ -1157,9 +1157,9 @@ Main branch is currently unstable after an accidental merge of the Phase 10 Web
---

Phase 9 Follow-up Backlog
- [ ] FU-P9-T2-1: Fix uvx Web UI examples to include `webui` extras (P1)
- [x] FU-P9-T2-1: Fix uvx Web UI examples to include `webui` extras (P1)

#### FU-P9-T2-1: Fix uvx Web UI examples to include `webui` extras
#### FU-P9-T2-1: Fix uvx Web UI examples to include `webui` extras
- **Description:** Resolve documentation/config mismatch where examples use `uvx --from mcpbridge-wrapper ... --web-ui` without optional dependencies. Update all uvx Web UI examples to install extras via `--from mcpbridge-wrapper[webui]`, and align troubleshooting/runtime guidance with the correct uvx command.
- **Priority:** P1
- **Dependencies:** P9-T2
Expand Down
8 changes: 8 additions & 0 deletions Sources/XcodeMCPWrapper/Documentation.docc/ClaudeCodeSetup.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,14 @@ claude mcp add --transport stdio xcode -- uvx --from mcpbridge-wrapper mcpbridge

That's it! uvx will automatically download and run the wrapper.

### Option 1B: Using uvx with Web UI (Optional)

Use this variant to enable the dashboard on port `8080`:

```bash
claude mcp add --transport stdio xcode -- uvx --from mcpbridge-wrapper[webui] mcpbridge-wrapper --web-ui --web-ui-port 8080
```

### Option 2: Using Manual Installation

If you installed manually to `~/bin/xcodemcpwrapper`:
Expand Down
8 changes: 8 additions & 0 deletions Sources/XcodeMCPWrapper/Documentation.docc/CodexCLISetup.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,14 @@ codex mcp add xcode -- uvx --from mcpbridge-wrapper mcpbridge-wrapper

That's it! uvx will automatically download and run the wrapper.

### Option 1B: Using uvx with Web UI (Optional)

Use this variant to enable the dashboard on port `8080`:

```bash
codex mcp add xcode -- uvx --from mcpbridge-wrapper[webui] mcpbridge-wrapper --web-ui --web-ui-port 8080
```

### Option 2: Using Manual Installation

If you installed manually to `~/bin/xcodemcpwrapper`:
Expand Down
20 changes: 20 additions & 0 deletions Sources/XcodeMCPWrapper/Documentation.docc/CursorSetup.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,26 @@ Or edit `~/.cursor/mcp.json` directly:
}
```

With Web UI:

```json
{
"mcpServers": {
"xcode-tools": {
"command": "uvx",
"args": [
"--from",
"mcpbridge-wrapper[webui]",
"mcpbridge-wrapper",
"--web-ui",
"--web-ui-port",
"8080"
]
}
}
}
```

### Option 2: Using Manual Installation

If you installed manually to `~/bin/xcodemcpwrapper`:
Expand Down
14 changes: 11 additions & 3 deletions Sources/XcodeMCPWrapper/Documentation.docc/Troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,15 +125,23 @@ chmod +x ~/bin/xcodemcpwrapper

**Symptom:** Wrapper exits when MCP client config includes `--web-ui` args.

**Cause:** Manual install used base mode (`./scripts/install.sh`), but Web UI args require optional `.[webui]` dependencies.
**Cause:** The MCP config enables `--web-ui`, but the installed command is missing Web UI dependencies.

**Solution:**
**Solution (uvx):**
Use `[webui]` extras in the uvx package source when Web UI args are enabled:
```bash
uvx --from mcpbridge-wrapper[webui] mcpbridge-wrapper --help
```

**Solution (manual install):**
```bash
cd /path/to/XcodeMCPWrapper
./scripts/install.sh --webui
```

Then restart your MCP client. If you do not need Web UI, remove `--web-ui` and `--web-ui-port` from MCP config args.
Then restart your MCP client.

If you do not need Web UI, remove `--web-ui` and `--web-ui-port` from MCP config args.

## Tool Returns Empty Results

Expand Down
Loading