Add missing create_pull_request tool to Gitea MCP server. This completes
the PR lifecycle - previously only had list/get/review/comment tools.
- Add create_pull_request to GiteaClient
- Add async wrapper to PullRequestTools with branch permissions
- Register tool in server.py with proper schema
- Parameters: title, body, head, base, labels (optional)
- Branch-aware security: only allowed on development/feature branches
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace the old approach (create venvs in marketplace directory) with
the new venv-repair.sh approach (symlinks to external cache).
This ensures post-update.sh:
- Instantly restores symlinks if cache exists
- Only does full pip install on first run
- Works correctly after marketplace updates
Flow after this fix:
Update marketplace → post-update.sh → venv-repair → Session works
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Problem:
- Venvs in marketplace directory got deleted on every update
- Users had to manually run setup.sh and wait for full pip install
- This caused MCP servers to fail until manually fixed
Solution:
- Store venvs in external cache (~/.cache/claude-mcp-venvs/)
- Auto-repair symlinks via SessionStart hook (instant operation)
- Only run pip install on first use or when requirements change
Architecture:
Cache (runtime) → Marketplaces → External venv cache
The chain of symlinks ensures all three locations work:
1. ~/.claude/plugins/cache/.../mcp-servers/* (runtime)
2. ~/.claude/plugins/marketplaces/.../mcp-servers/* (install)
3. ~/.cache/claude-mcp-venvs/* (persistent venvs)
Performance:
- First install: ~2-3 min (unchanged)
- After marketplace update: 0.03 sec (was 2-3 min)
Files:
- scripts/venv-repair.sh: Fast symlink restoration for hooks
- scripts/setup-venvs.sh: Full setup with external cache
- plugins/projman/hooks/startup-check.sh: Auto-repair on session start
- .gitignore: Ignore .venv symlinks
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Previously post-update.sh would only warn when venvs were missing,
requiring a separate setup.sh run. Now it automatically creates
missing venvs and installs dependencies including editable packages.
Also added viz-platform and contract-validator to the update list.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The filter tool was adding an __index_level_0__ column to results
because pandas query() preserves the original index, which gets
converted to a column when storing the DataFrame.
Added .reset_index(drop=True) after query() to drop the preserved
index and create a clean sequential index.
Fixes#203
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The setup script only installed requirements.txt dependencies but not the
local package itself, causing MCP servers to fail with ModuleNotFoundError.
Changes:
- Add `pip install -e .` for servers with pyproject.toml
- Add viz-platform and contract-validator to MCP server setup
- Add symlink verification for new plugins
- Update version banner to v5.0.0
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add /initial-setup command for contract-validator plugin
- Add contract-validator section to README.md (NEW in v5.0.0)
- Update data-platform version tag: *NEW* -> *NEW in v4.0.0*
- Update viz-platform version tag: *NEW* -> *NEW in v4.0.0*
- Add Contract Validator MCP Server section to README.md
- Add contract-validator to test commands table and repo structure
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update version to 5.0.0 in README.md, marketplace.json, CLAUDE.md
- Convert [Unreleased] to [5.0.0] in CHANGELOG.md
- Add contract-validator to CANONICAL-PATHS.md
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add 34 tests across 3 test modules:
- test_parse_tools.py: 11 tests for README/CLAUDE.md parsing
- test_validation_tools.py: 11 tests for compatibility and agent validation
- test_report_tools.py: 12 tests for report generation and filtering
Coverage: parse_tools 79%, validation_tools 96%, report_tools 89%
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add contract-validator to marketplace.json with proper metadata
- Update CLAUDE.md plugin table and commands list
- Validation passes with ./scripts/validate-marketplace.sh
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add 2 autonomous agents:
- full-validation: Complete cross-plugin compatibility validation
triggered by /validate-contracts command
- agent-check: Single agent definition validation triggered
by /check-agent command
Each agent documents capabilities, workflow, validation rules,
and example interactions.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add 3 user-facing commands:
- /validate-contracts: Full marketplace compatibility validation
- /check-agent: Validate single agent definition
- /list-interfaces: Show plugin interfaces summary
Each command documents usage, workflow, parameters, and available
MCP tools for implementation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add report generation and issue listing tools:
- generate_compatibility_report: Full marketplace validation with
markdown or JSON output, includes summary statistics
- list_issues: Filtered issue listing by severity and type
The report tools coordinate parse_tools and validation_tools to
scan all plugins in a marketplace, run pairwise compatibility
checks, and aggregate findings into comprehensive reports.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add plugins/viz-platform/ directory structure
- Create .claude-plugin/plugin.json with metadata
- Create .mcp.json pointing to viz-platform MCP server
- Create hooks/hooks.json with SessionStart hook
- Create symlink to mcp-servers/viz-platform
- Add plugin to marketplace.json
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add chart_create tool: create line, bar, scatter, pie, heatmap, histogram, area charts
- Add chart_configure_interaction tool: hover templates, click data, selection, zoom
- Support theme color integration when theme is active
- Default color palette based on Mantine theme
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add list_components tool: list DMC components by category
- Add get_component_props tool: get props schema with types/defaults/enums
- Add validate_component tool: validate props with error/warning messages
- Includes typo detection and common mistake warnings
- All tools registered in MCP server with proper JSON schemas
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add component_registry.py with version-locked registry loading
- Create dmc_2_5.json with 39 components for DMC 2.5.1/Mantine 7
- Add generate-dmc-registry.py script for future registry generation
- Update dependencies to DMC >=2.0.0 (installs 2.5.1)
- Includes prop validation with typo detection
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add viz-platform MCP server structure at mcp-servers/viz-platform/:
- mcp_server/server.py: Main MCP server entry point with async initialization
- mcp_server/config.py: Hybrid config loader with DMC version detection
- mcp_server/dmc_tools.py: Placeholder for DMC validation tools
- pyproject.toml and requirements.txt for dependencies
- tests/ directory structure
Server starts without errors with empty tool list.
Config detects DMC installation status via importlib.metadata.
Closes#170
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>