Compare commits
18 Commits
8781179fd0
...
v7.1.0
| Author | SHA1 | Date | |
|---|---|---|---|
| 7b127d8e5c | |||
| ba7350e130 | |||
| 4b7c40e1f5 | |||
| 9673c0c994 | |||
| e1d1ffc555 | |||
| 318d027bfa | |||
| 34a5e4a5a3 | |||
| 9710d296e4 | |||
| 59b5545a9b | |||
| b3c388b732 | |||
| a4fb5b6feb | |||
| de4126bf68 | |||
| 5a8c3b041f | |||
| 33a7c91f4f | |||
| 7d0b6050f9 | |||
| 34fc1d842c | |||
| ab3847c656 | |||
| 49891c1e0c |
@@ -6,12 +6,12 @@
|
||||
},
|
||||
"metadata": {
|
||||
"description": "Project management plugins with Gitea and NetBox integrations",
|
||||
"version": "7.0.0"
|
||||
"version": "7.1.0"
|
||||
},
|
||||
"plugins": [
|
||||
{
|
||||
"name": "projman",
|
||||
"version": "3.4.0",
|
||||
"version": "7.1.0",
|
||||
"description": "Sprint planning and project management with Gitea integration",
|
||||
"source": "./plugins/projman",
|
||||
"author": {
|
||||
@@ -25,9 +25,105 @@
|
||||
"tags": ["sprint", "agile", "gitea", "project-management"],
|
||||
"license": "MIT"
|
||||
},
|
||||
{
|
||||
"name": "doc-guardian",
|
||||
"version": "7.1.0",
|
||||
"description": "Automatic documentation drift detection and synchronization",
|
||||
"source": "./plugins/doc-guardian",
|
||||
"author": {
|
||||
"name": "Leo Miranda",
|
||||
"email": "leobmiranda@gmail.com"
|
||||
},
|
||||
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/doc-guardian/README.md",
|
||||
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
|
||||
"hooks": ["./hooks/hooks.json"],
|
||||
"category": "productivity",
|
||||
"tags": ["documentation", "drift-detection", "sync"],
|
||||
"license": "MIT"
|
||||
},
|
||||
{
|
||||
"name": "code-sentinel",
|
||||
"version": "7.1.0",
|
||||
"description": "Security scanning and code refactoring tools",
|
||||
"source": "./plugins/code-sentinel",
|
||||
"author": {
|
||||
"name": "Leo Miranda",
|
||||
"email": "leobmiranda@gmail.com"
|
||||
},
|
||||
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/code-sentinel/README.md",
|
||||
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
|
||||
"hooks": ["./hooks/hooks.json"],
|
||||
"category": "security",
|
||||
"tags": ["security-scan", "refactoring", "vulnerabilities"],
|
||||
"license": "MIT"
|
||||
},
|
||||
{
|
||||
"name": "project-hygiene",
|
||||
"version": "7.1.0",
|
||||
"description": "Post-task cleanup hook that removes temp files and manages orphaned files",
|
||||
"source": "./plugins/project-hygiene",
|
||||
"author": {
|
||||
"name": "Leo Miranda",
|
||||
"email": "leobmiranda@gmail.com"
|
||||
},
|
||||
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/project-hygiene/README.md",
|
||||
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
|
||||
"hooks": ["./hooks/hooks.json"],
|
||||
"category": "productivity",
|
||||
"tags": ["cleanup", "automation", "hygiene"],
|
||||
"license": "MIT"
|
||||
},
|
||||
{
|
||||
"name": "cmdb-assistant",
|
||||
"version": "7.1.0",
|
||||
"description": "NetBox CMDB integration with data quality validation and machine registration",
|
||||
"source": "./plugins/cmdb-assistant",
|
||||
"author": {
|
||||
"name": "Leo Miranda",
|
||||
"email": "leobmiranda@gmail.com"
|
||||
},
|
||||
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/cmdb-assistant/README.md",
|
||||
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
|
||||
"hooks": ["./hooks/hooks.json"],
|
||||
"category": "infrastructure",
|
||||
"tags": ["cmdb", "netbox", "dcim", "ipam", "data-quality", "validation"],
|
||||
"license": "MIT"
|
||||
},
|
||||
{
|
||||
"name": "claude-config-maintainer",
|
||||
"version": "7.1.0",
|
||||
"description": "CLAUDE.md and settings.local.json optimization for Claude Code projects",
|
||||
"source": "./plugins/claude-config-maintainer",
|
||||
"author": {
|
||||
"name": "Leo Miranda",
|
||||
"email": "leobmiranda@gmail.com"
|
||||
},
|
||||
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/claude-config-maintainer/README.md",
|
||||
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
|
||||
"hooks": ["./hooks/hooks.json"],
|
||||
"category": "development",
|
||||
"tags": ["claude-md", "configuration", "optimization"],
|
||||
"license": "MIT"
|
||||
},
|
||||
{
|
||||
"name": "clarity-assist",
|
||||
"version": "7.1.0",
|
||||
"description": "Prompt optimization and requirement clarification with ND-friendly accommodations",
|
||||
"source": "./plugins/clarity-assist",
|
||||
"author": {
|
||||
"name": "Leo Miranda",
|
||||
"email": "leobmiranda@gmail.com"
|
||||
},
|
||||
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/clarity-assist/README.md",
|
||||
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
|
||||
"hooks": ["./hooks/hooks.json"],
|
||||
"category": "productivity",
|
||||
"tags": ["prompts", "requirements", "clarification", "nd-friendly"],
|
||||
"license": "MIT"
|
||||
},
|
||||
{
|
||||
"name": "git-flow",
|
||||
"version": "1.2.0",
|
||||
"version": "7.1.0",
|
||||
"description": "Git workflow automation with intelligent commit messages and branch management",
|
||||
"source": "./plugins/git-flow",
|
||||
"author": {
|
||||
@@ -43,7 +139,7 @@
|
||||
},
|
||||
{
|
||||
"name": "pr-review",
|
||||
"version": "1.1.0",
|
||||
"version": "7.1.0",
|
||||
"description": "Multi-agent pull request review with confidence scoring and actionable feedback",
|
||||
"source": "./plugins/pr-review",
|
||||
"author": {
|
||||
@@ -58,51 +154,51 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
{
|
||||
"name": "clarity-assist",
|
||||
"version": "1.2.0",
|
||||
"description": "Prompt optimization and requirement clarification with ND-friendly accommodations",
|
||||
"source": "./plugins/clarity-assist",
|
||||
"name": "data-platform",
|
||||
"version": "7.1.0",
|
||||
"description": "Data engineering tools with pandas, PostgreSQL/PostGIS, and dbt integration",
|
||||
"source": "./plugins/data-platform",
|
||||
"author": {
|
||||
"name": "Leo Miranda",
|
||||
"email": "leobmiranda@gmail.com"
|
||||
},
|
||||
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/clarity-assist/README.md",
|
||||
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/data-platform/README.md",
|
||||
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
|
||||
"hooks": ["./hooks/hooks.json"],
|
||||
"category": "productivity",
|
||||
"tags": ["prompts", "requirements", "clarification", "nd-friendly"],
|
||||
"category": "data",
|
||||
"tags": ["pandas", "postgresql", "postgis", "dbt", "data-engineering", "etl"],
|
||||
"license": "MIT"
|
||||
},
|
||||
{
|
||||
"name": "code-sentinel",
|
||||
"version": "1.0.1",
|
||||
"description": "Security scanning and code refactoring tools",
|
||||
"source": "./plugins/code-sentinel",
|
||||
"name": "viz-platform",
|
||||
"version": "7.1.0",
|
||||
"description": "Visualization tools with Dash Mantine Components validation, Plotly charts, and theming",
|
||||
"source": "./plugins/viz-platform",
|
||||
"author": {
|
||||
"name": "Leo Miranda",
|
||||
"email": "leobmiranda@gmail.com"
|
||||
},
|
||||
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/code-sentinel/README.md",
|
||||
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/viz-platform/README.md",
|
||||
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
|
||||
"hooks": ["./hooks/hooks.json"],
|
||||
"category": "security",
|
||||
"tags": ["security-scan", "refactoring", "vulnerabilities"],
|
||||
"category": "visualization",
|
||||
"tags": ["dash", "plotly", "mantine", "charts", "dashboards", "theming", "dmc"],
|
||||
"license": "MIT"
|
||||
},
|
||||
{
|
||||
"name": "doc-guardian",
|
||||
"version": "1.1.0",
|
||||
"description": "Automatic documentation drift detection and synchronization",
|
||||
"source": "./plugins/doc-guardian",
|
||||
"name": "contract-validator",
|
||||
"version": "7.1.0",
|
||||
"description": "Cross-plugin compatibility validation and Claude.md agent verification",
|
||||
"source": "./plugins/contract-validator",
|
||||
"author": {
|
||||
"name": "Leo Miranda",
|
||||
"email": "leobmiranda@gmail.com"
|
||||
},
|
||||
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/doc-guardian/README.md",
|
||||
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/contract-validator/README.md",
|
||||
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
|
||||
"hooks": ["./hooks/hooks.json"],
|
||||
"category": "productivity",
|
||||
"tags": ["documentation", "drift-detection", "sync"],
|
||||
"category": "development",
|
||||
"tags": ["validation", "contracts", "compatibility", "agents", "interfaces", "cross-plugin"],
|
||||
"license": "MIT"
|
||||
}
|
||||
]
|
||||
|
||||
16
.mcp.json
16
.mcp.json
@@ -3,6 +3,22 @@
|
||||
"gitea": {
|
||||
"command": "./mcp-servers/gitea/run.sh",
|
||||
"args": []
|
||||
},
|
||||
"netbox": {
|
||||
"command": "./mcp-servers/netbox/run.sh",
|
||||
"args": []
|
||||
},
|
||||
"viz-platform": {
|
||||
"command": "./mcp-servers/viz-platform/run.sh",
|
||||
"args": []
|
||||
},
|
||||
"data-platform": {
|
||||
"command": "./mcp-servers/data-platform/run.sh",
|
||||
"args": []
|
||||
},
|
||||
"contract-validator": {
|
||||
"command": "./mcp-servers/contract-validator/run.sh",
|
||||
"args": []
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,8 +6,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
---
|
||||
|
||||
## [7.1.0] - 2026-02-04
|
||||
|
||||
### Added
|
||||
|
||||
- **marketplace:** Task-specific launcher script for token optimization
|
||||
- New script: `scripts/claude-launch.sh` loads only needed plugins via `--plugin-dir`
|
||||
- Profiles: sprint (default), review, data, infra, full
|
||||
- Reduces token overhead from ~22K to ~4-6K tokens
|
||||
- Enables `ENABLE_TOOL_SEARCH=true` for MCP lazy loading
|
||||
- **marketplace:** Lean/full profile switching to reduce token overhead
|
||||
- New script: `scripts/switch-profile.sh` to toggle between profiles
|
||||
- Lean profile: 6 plugins (projman, git-flow, pr-review, clarity-assist, code-sentinel, doc-guardian)
|
||||
|
||||
27
README.md
27
README.md
@@ -1,7 +1,32 @@
|
||||
# Leo Claude Marketplace - v7.0.0
|
||||
# Leo Claude Marketplace - v7.1.0
|
||||
|
||||
A collection of Claude Code plugins for project management, infrastructure automation, and development workflows.
|
||||
|
||||
## Quick Start
|
||||
|
||||
Use the launcher script to load only the plugins you need, reducing token overhead from ~22K to ~4-6K tokens:
|
||||
|
||||
```bash
|
||||
./scripts/claude-launch.sh [profile] [extra-args...]
|
||||
```
|
||||
|
||||
| Profile | Plugins Loaded | Use Case |
|
||||
|---------|----------------|----------|
|
||||
| `sprint` | projman, git-flow, pr-review, code-sentinel, doc-guardian, clarity-assist | Default. Sprint planning and development |
|
||||
| `review` | pr-review, code-sentinel | Lightweight code review |
|
||||
| `data` | data-platform, viz-platform | Data engineering and visualization |
|
||||
| `infra` | cmdb-assistant | Infrastructure/CMDB management |
|
||||
| `full` | All 12 plugins via marketplace.json | When you need everything |
|
||||
|
||||
**Examples:**
|
||||
```bash
|
||||
./scripts/claude-launch.sh # Default sprint profile
|
||||
./scripts/claude-launch.sh data --model opus # Data profile with Opus
|
||||
./scripts/claude-launch.sh full # Load all plugins
|
||||
```
|
||||
|
||||
The script enables `ENABLE_TOOL_SEARCH=true` for MCP lazy loading.
|
||||
|
||||
## Plugins
|
||||
|
||||
### Development & Project Management
|
||||
|
||||
0
docs/prompts/INDEX.md
Normal file
0
docs/prompts/INDEX.md
Normal file
1
plugins/cmdb-assistant/.claude-plugin/metadata.json
Normal file
1
plugins/cmdb-assistant/.claude-plugin/metadata.json
Normal file
@@ -0,0 +1 @@
|
||||
{"mcp_servers": ["netbox"]}
|
||||
1
plugins/contract-validator/.claude-plugin/metadata.json
Normal file
1
plugins/contract-validator/.claude-plugin/metadata.json
Normal file
@@ -0,0 +1 @@
|
||||
{"mcp_servers": ["contract-validator"]}
|
||||
1
plugins/data-platform/.claude-plugin/metadata.json
Normal file
1
plugins/data-platform/.claude-plugin/metadata.json
Normal file
@@ -0,0 +1 @@
|
||||
{"mcp_servers": ["data-platform"]}
|
||||
1
plugins/doc-guardian/.claude-plugin/metadata.json
Normal file
1
plugins/doc-guardian/.claude-plugin/metadata.json
Normal file
@@ -0,0 +1 @@
|
||||
{"mcp_servers": ["gitea"]}
|
||||
1
plugins/git-flow/.claude-plugin/metadata.json
Normal file
1
plugins/git-flow/.claude-plugin/metadata.json
Normal file
@@ -0,0 +1 @@
|
||||
{"mcp_servers": ["gitea"]}
|
||||
1
plugins/pr-review/.claude-plugin/metadata.json
Normal file
1
plugins/pr-review/.claude-plugin/metadata.json
Normal file
@@ -0,0 +1 @@
|
||||
{"mcp_servers": ["gitea"]}
|
||||
1
plugins/projman/.claude-plugin/metadata.json
Normal file
1
plugins/projman/.claude-plugin/metadata.json
Normal file
@@ -0,0 +1 @@
|
||||
{"mcp_servers": ["gitea"]}
|
||||
1
plugins/viz-platform/.claude-plugin/metadata.json
Normal file
1
plugins/viz-platform/.claude-plugin/metadata.json
Normal file
@@ -0,0 +1 @@
|
||||
{"mcp_servers": ["viz-platform"]}
|
||||
91
scripts/claude-launch.sh
Executable file
91
scripts/claude-launch.sh
Executable file
@@ -0,0 +1,91 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# claude-launch.sh - Launch Claude Code with task-specific plugin profiles
|
||||
#
|
||||
# Usage: ./scripts/claude-launch.sh [profile] [extra-args...]
|
||||
#
|
||||
# Profiles:
|
||||
# sprint - Project management, git, PR review, security, docs (default)
|
||||
# infra - Infrastructure/CMDB management
|
||||
# data - Data engineering and visualization
|
||||
# review - Code review only (lightweight)
|
||||
# full - All plugins via marketplace.json (~22K tokens)
|
||||
#
|
||||
# Examples:
|
||||
# ./scripts/claude-launch.sh # Default sprint profile
|
||||
# ./scripts/claude-launch.sh sprint # Explicit sprint profile
|
||||
# ./scripts/claude-launch.sh data --model opus # Data profile with Opus
|
||||
# ./scripts/claude-launch.sh full # Load all plugins
|
||||
#
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# Colors for output
|
||||
CYAN='\033[0;36m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Script directory (for relative plugin paths)
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
REPO_ROOT="$(dirname "$SCRIPT_DIR")"
|
||||
PLUGINS_DIR="$REPO_ROOT/plugins"
|
||||
|
||||
# Default profile
|
||||
PROFILE="${1:-sprint}"
|
||||
|
||||
# Shift profile arg if provided (to pass remaining args to claude)
|
||||
if [[ $# -gt 0 ]]; then
|
||||
shift
|
||||
fi
|
||||
|
||||
# Define plugin lists for each profile
|
||||
declare -A PROFILES
|
||||
PROFILES[sprint]="projman git-flow pr-review code-sentinel doc-guardian clarity-assist"
|
||||
PROFILES[infra]="cmdb-assistant"
|
||||
PROFILES[data]="data-platform viz-platform"
|
||||
PROFILES[review]="pr-review code-sentinel"
|
||||
PROFILES[full]="" # Empty = use marketplace.json
|
||||
|
||||
# Validate profile
|
||||
if [[ ! ${PROFILES[$PROFILE]+_} ]]; then
|
||||
echo -e "${YELLOW}Unknown profile: $PROFILE${NC}"
|
||||
echo "Available profiles: sprint, infra, data, review, full"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Build --plugin-dir arguments
|
||||
PLUGIN_ARGS=()
|
||||
PLUGIN_LIST="${PROFILES[$PROFILE]}"
|
||||
|
||||
if [[ -n "$PLUGIN_LIST" ]]; then
|
||||
echo -e "${CYAN}Profile: $PROFILE${NC}"
|
||||
echo -e "${GREEN}Loading plugins:${NC}"
|
||||
|
||||
for plugin in $PLUGIN_LIST; do
|
||||
plugin_path="$PLUGINS_DIR/$plugin"
|
||||
if [[ -d "$plugin_path" ]]; then
|
||||
echo " • $plugin"
|
||||
PLUGIN_ARGS+=("--plugin-dir" "$plugin_path")
|
||||
else
|
||||
echo -e "${YELLOW} ⚠ $plugin (not found at $plugin_path)${NC}"
|
||||
fi
|
||||
done
|
||||
echo ""
|
||||
else
|
||||
echo -e "${CYAN}Profile: full${NC}"
|
||||
echo -e "${GREEN}Loading all plugins via marketplace.json${NC}"
|
||||
echo ""
|
||||
fi
|
||||
|
||||
# Enable MCP Tool Search for deferred tool loading
|
||||
export ENABLE_TOOL_SEARCH=true
|
||||
echo -e "${GREEN}MCP Tool Search: enabled${NC}"
|
||||
echo ""
|
||||
|
||||
# Launch claude with plugin args and any extra arguments
|
||||
if [[ ${#PLUGIN_ARGS[@]} -gt 0 ]]; then
|
||||
exec claude "${PLUGIN_ARGS[@]}" "$@"
|
||||
else
|
||||
exec claude "$@"
|
||||
fi
|
||||
@@ -116,19 +116,19 @@ validate_target() {
|
||||
}
|
||||
|
||||
# --- Get MCP Servers for Plugin ---
|
||||
# Reads the mcp_servers array from plugin.json
|
||||
# Reads the mcp_servers array from metadata.json (separate from plugin.json to avoid schema validation issues)
|
||||
# Returns newline-separated list of MCP server names, or empty if none
|
||||
get_mcp_servers() {
|
||||
local plugin_name="$1"
|
||||
local plugin_json="$REPO_ROOT/plugins/$plugin_name/.claude-plugin/plugin.json"
|
||||
local metadata_json="$REPO_ROOT/plugins/$plugin_name/.claude-plugin/metadata.json"
|
||||
|
||||
if [[ ! -f "$plugin_json" ]]; then
|
||||
if [[ ! -f "$metadata_json" ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
# Read mcp_servers array from plugin.json
|
||||
# Read mcp_servers array from metadata.json
|
||||
# Returns empty if field doesn't exist or is empty
|
||||
jq -r '.mcp_servers // [] | .[]' "$plugin_json" 2>/dev/null || true
|
||||
jq -r '.mcp_servers // [] | .[]' "$metadata_json" 2>/dev/null || true
|
||||
}
|
||||
|
||||
# --- Check if plugin has any MCP servers ---
|
||||
|
||||
@@ -68,16 +68,16 @@ get_available_plugins() {
|
||||
}
|
||||
|
||||
# --- Get MCP Servers for Plugin ---
|
||||
# Reads the mcp_servers array from plugin.json
|
||||
# Reads the mcp_servers array from metadata.json (separate from plugin.json to avoid schema validation issues)
|
||||
get_mcp_servers() {
|
||||
local plugin_name="$1"
|
||||
local plugin_json="$REPO_ROOT/plugins/$plugin_name/.claude-plugin/plugin.json"
|
||||
local metadata_json="$REPO_ROOT/plugins/$plugin_name/.claude-plugin/metadata.json"
|
||||
|
||||
if [[ ! -f "$plugin_json" ]]; then
|
||||
if [[ ! -f "$metadata_json" ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
jq -r '.mcp_servers // [] | .[]' "$plugin_json" 2>/dev/null || true
|
||||
jq -r '.mcp_servers // [] | .[]' "$metadata_json" 2>/dev/null || true
|
||||
}
|
||||
|
||||
# --- Check if plugin has any MCP servers defined ---
|
||||
|
||||
@@ -12,7 +12,9 @@ case "${1:-lean}" in
|
||||
lean)
|
||||
cp "$MARKETPLACE_DIR/marketplace-lean.json" "$MARKETPLACE_DIR/marketplace.json"
|
||||
cp "$ROOT_DIR/.mcp-lean.json" "$ROOT_DIR/.mcp.json"
|
||||
rm -rf ~/.claude/plugins/cache/
|
||||
echo "Switched to LEAN profile (6 plugins, 1 MCP server)"
|
||||
echo "Plugin cache cleared."
|
||||
echo ""
|
||||
echo "Plugins: projman, git-flow, pr-review, clarity-assist, code-sentinel, doc-guardian"
|
||||
echo "MCP: gitea only"
|
||||
@@ -22,7 +24,9 @@ case "${1:-lean}" in
|
||||
full)
|
||||
cp "$MARKETPLACE_DIR/marketplace-full.json" "$MARKETPLACE_DIR/marketplace.json"
|
||||
cp "$ROOT_DIR/.mcp-full.json" "$ROOT_DIR/.mcp.json"
|
||||
rm -rf ~/.claude/plugins/cache/
|
||||
echo "Switched to FULL profile (12 plugins, 5 MCP servers)"
|
||||
echo "Plugin cache cleared."
|
||||
echo ""
|
||||
echo "Plugins: all"
|
||||
echo "MCP: gitea, netbox, data-platform, viz-platform, contract-validator"
|
||||
|
||||
@@ -77,19 +77,19 @@ validate_target() {
|
||||
}
|
||||
|
||||
# --- Get MCP Servers for Plugin ---
|
||||
# Reads the mcp_servers array from plugin.json
|
||||
# Reads the mcp_servers array from metadata.json (separate from plugin.json to avoid schema validation issues)
|
||||
# Returns newline-separated list of MCP server names, or empty if none
|
||||
get_mcp_servers() {
|
||||
local plugin_name="$1"
|
||||
local plugin_json="$REPO_ROOT/plugins/$plugin_name/.claude-plugin/plugin.json"
|
||||
local metadata_json="$REPO_ROOT/plugins/$plugin_name/.claude-plugin/metadata.json"
|
||||
|
||||
if [[ ! -f "$plugin_json" ]]; then
|
||||
if [[ ! -f "$metadata_json" ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
# Read mcp_servers array from plugin.json
|
||||
# Read mcp_servers array from metadata.json
|
||||
# Returns empty if field doesn't exist or is empty
|
||||
jq -r '.mcp_servers // [] | .[]' "$plugin_json" 2>/dev/null || true
|
||||
jq -r '.mcp_servers // [] | .[]' "$metadata_json" 2>/dev/null || true
|
||||
}
|
||||
|
||||
# --- Remove from .mcp.json ---
|
||||
|
||||
Reference in New Issue
Block a user