Skip to content

Commit 8585f93

Browse files
committed
Fix MCP server name
Currently, Claude Code complains that it won't use the MCP server because of the incorrect name and it falls back to the fall back option, which is less efficient. Because the skills reference tools that don't exist (mcp__content-mcp__*), when a skill runs it will never find the MCP tools and will always fall back to the slower, less precise filesystem-based alternatives. The skills still work due to the fallback mechanism, but they miss the benefits of the MCP server (structured results, semantic search via find_similar_requirements, PDF parsing, etc.). The correct name is `content-agent`. See https://github.com/ComplianceAsCode/content-mcp/blob/main/README.md
1 parent 633e4bd commit 8585f93

10 files changed

Lines changed: 75 additions & 75 deletions

File tree

.claude/skills/build-product/SKILL.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,16 @@ Build a ComplianceAsCode product.
1111

1212
## Tool Strategy
1313

14-
This skill uses `mcp__content-mcp__*` tools when available (preferred — deterministic, structured results). When the MCP server is not configured, fall back to filesystem-based alternatives noted as **Fallback** in each step. See `.claude/skills/shared/mcp_fallbacks.md` for detailed fallback procedures. The skill must complete successfully either way.
14+
This skill uses `mcp__content-agent__*` tools when available (preferred — deterministic, structured results). When the MCP server is not configured, fall back to filesystem-based alternatives noted as **Fallback** in each step. See `.claude/skills/shared/mcp_fallbacks.md` for detailed fallback procedures. The skill must complete successfully either way.
1515

1616
## Phase 1: Validate Product
1717

1818
1. **Check if product is valid**:
19-
Use `mcp__content-mcp__get_product_details` with `product_id=$ARGUMENTS` to validate the product exists and get its metadata.
19+
Use `mcp__content-agent__get_product_details` with `product_id=$ARGUMENTS` to validate the product exists and get its metadata.
2020
**Fallback**: Read `products/$ARGUMENTS/product.yml` directly. If the file doesn't exist, the product is invalid.
2121

2222
2. **If product not found**, list available products:
23-
Use `mcp__content-mcp__list_products` to get all available products.
23+
Use `mcp__content-agent__list_products` to get all available products.
2424
**Fallback**: Run `ls products/` to list available product directories.
2525

2626
3. **If no product specified**, ask user using AskUserQuestion:
@@ -72,7 +72,7 @@ Expected artifacts in `build/`:
7272
- Non-zero = Build failed
7373

7474
2. **Verify key artifacts exist**:
75-
Use `mcp__content-mcp__get_datastream_info` with `product=$ARGUMENTS` to verify the datastream was built successfully and get artifact details.
75+
Use `mcp__content-agent__get_datastream_info` with `product=$ARGUMENTS` to verify the datastream was built successfully and get artifact details.
7676
**Fallback**: Check files directly:
7777
```bash
7878
ls -la build/ssg-$ARGUMENTS-ds.xml

.claude/skills/create-rule/SKILL.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Create a new security rule for ComplianceAsCode. This skill handles both templat
1111

1212
## Tool Strategy
1313

14-
This skill uses `mcp__content-mcp__*` tools when available (preferred — deterministic, structured results). When the MCP server is not configured, fall back to filesystem-based alternatives noted as **Fallback** in each step. See `.claude/skills/shared/mcp_fallbacks.md` for detailed fallback procedures. The skill must complete successfully either way.
14+
This skill uses `mcp__content-agent__*` tools when available (preferred — deterministic, structured results). When the MCP server is not configured, fall back to filesystem-based alternatives noted as **Fallback** in each step. See `.claude/skills/shared/mcp_fallbacks.md` for detailed fallback procedures. The skill must complete successfully either way.
1515

1616
## Phase 1: Validate Input
1717

@@ -20,7 +20,7 @@ This skill uses `mcp__content-mcp__*` tools when available (preferred — determ
2020
- Example valid IDs: `sshd_max_auth_tries`, `accounts_password_minlen`
2121

2222
2. **Check if rule already exists**:
23-
Use `mcp__content-mcp__search_rules` with `query=$ARGUMENTS` to check if a rule with this ID already exists.
23+
Use `mcp__content-agent__search_rules` with `query=$ARGUMENTS` to check if a rule with this ID already exists.
2424
**Fallback**: Use `Glob` to search for `**/$ARGUMENTS/rule.yml`.
2525
- If rule exists, inform user and ask if they want to modify it instead
2626

@@ -42,14 +42,14 @@ Use AskUserQuestion to ask the user:
4242

4343
If user chose templated rule:
4444

45-
1. **List available templates** using `mcp__content-mcp__list_templates` to get all available templates with their descriptions.
45+
1. **List available templates** using `mcp__content-agent__list_templates` to get all available templates with their descriptions.
4646
**Fallback**: Run `ls shared/templates/` to list available template directories.
4747

4848
2. **Present available templates** from the list obtained in step 1 and help the user select the right one based on their use case.
4949

5050
3. **Ask for template selection** using AskUserQuestion
5151

52-
4. **Get template parameter schema** using `mcp__content-mcp__get_template_schema` with `template_name=<selected_template>` to get the full parameter schema, supported languages, and documentation.
52+
4. **Get template parameter schema** using `mcp__content-agent__get_template_schema` with `template_name=<selected_template>` to get the full parameter schema, supported languages, and documentation.
5353
**Fallback**: Read `shared/templates/<template_name>/template.yml` or `template.py` for parameter definitions. Check existing rules using this template for usage examples.
5454

5555
5. **Collect template variables**:
@@ -110,7 +110,7 @@ Collect the following information using AskUserQuestion or prompts:
110110

111111
### For Templated Rules
112112

113-
Use `mcp__content-mcp__generate_rule_from_template` with:
113+
Use `mcp__content-agent__generate_rule_from_template` with:
114114
- `template_name`: The selected template name
115115
- `parameters`: Template variables collected from the user
116116
- `rule_id`: $ARGUMENTS
@@ -122,7 +122,7 @@ This generates the rule directory and rule.yml with the template configuration a
122122

123123
### For Non-Templated Rules
124124

125-
Use `mcp__content-mcp__generate_rule_boilerplate` with:
125+
Use `mcp__content-agent__generate_rule_boilerplate` with:
126126
- `rule_id`: $ARGUMENTS
127127
- `title`: The rule title
128128
- `description`: The rule description
@@ -323,7 +323,7 @@ Most profiles in the project reference control files rather than listing rules d
323323

324324
### Step 1: List Available Profiles
325325

326-
Use `mcp__content-mcp__list_profiles` with `product=<product>` to list all available profiles for each target product.
326+
Use `mcp__content-agent__list_profiles` with `product=<product>` to list all available profiles for each target product.
327327
**Fallback**: Run `ls products/<product>/profiles/*.profile` to list profiles.
328328

329329
### Step 2: Ask User Which Profile(s)
@@ -472,7 +472,7 @@ ls tests/data/profile_stability/
472472
cat <rule_directory>/rule.yml
473473
```
474474

475-
2. **Validate rule YAML** using `mcp__content-mcp__validate_rule_yaml` with the content of the generated rule.yml. This validates syntax, structure, and reference formats.
475+
2. **Validate rule YAML** using `mcp__content-agent__validate_rule_yaml` with the content of the generated rule.yml. This validates syntax, structure, and reference formats.
476476
**Fallback**: Validate against the JSON schema:
477477
```bash
478478
python3 -c "
@@ -488,7 +488,7 @@ ls tests/data/profile_stability/
488488
" <path_to_rule.yml>
489489
```
490490

491-
For control files, use `mcp__content-mcp__validate_control_file` with the control file path.
491+
For control files, use `mcp__content-agent__validate_control_file` with the control file path.
492492
**Fallback**: Validate against the control schema:
493493
```bash
494494
python3 -c "

.claude/skills/draft-pr/SKILL.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Generate a pull request description for the current branch by analyzing commits
99

1010
## Tool Strategy
1111

12-
This skill uses `mcp__content-mcp__*` tools when available (preferred — deterministic, structured results). When the MCP server is not configured, fall back to filesystem-based alternatives noted as **Fallback** in each step. See `.claude/skills/shared/mcp_fallbacks.md` for detailed fallback procedures. The skill must complete successfully either way.
12+
This skill uses `mcp__content-agent__*` tools when available (preferred — deterministic, structured results). When the MCP server is not configured, fall back to filesystem-based alternatives noted as **Fallback** in each step. See `.claude/skills/shared/mcp_fallbacks.md` for detailed fallback procedures. The skill must complete successfully either way.
1313

1414
## Phase 1: Gather Branch Data
1515

@@ -64,10 +64,10 @@ Look for product indicators:
6464
### 2.3 Read Key Changed Files
6565

6666
For significant changed files, use MCP functions to get structured metadata:
67-
- **Rules**: Use `mcp__content-mcp__get_rule_details` with the rule ID to get title, description, rationale, template, severity, references, and platform info
68-
- **Profiles**: Use `mcp__content-mcp__get_profile_details` with product and profile ID to get profile structure and rule selections
69-
- **Controls**: Use `mcp__content-mcp__get_control_details` to understand control framework structure
70-
- **Templates**: Use `mcp__content-mcp__get_template_schema` to get template parameter info
67+
- **Rules**: Use `mcp__content-agent__get_rule_details` with the rule ID to get title, description, rationale, template, severity, references, and platform info
68+
- **Profiles**: Use `mcp__content-agent__get_profile_details` with product and profile ID to get profile structure and rule selections
69+
- **Controls**: Use `mcp__content-agent__get_control_details` to understand control framework structure
70+
- **Templates**: Use `mcp__content-agent__get_template_schema` to get template parameter info
7171

7272
**Fallback**: Read the files directly — `rule.yml`, `.profile`, control YAML, and template files in `shared/templates/<name>/`.
7373

.claude/skills/inspect-control/SKILL.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ Analyze a control file and report its current state: how many requirements are m
1111

1212
## Tool Strategy
1313

14-
This skill uses `mcp__content-mcp__*` tools when available (preferred — deterministic, structured results). When the MCP server is not configured, fall back to filesystem-based alternatives noted as **Fallback** in each step. See `.claude/skills/shared/mcp_fallbacks.md` for detailed fallback procedures. The skill must complete successfully either way.
14+
This skill uses `mcp__content-agent__*` tools when available (preferred — deterministic, structured results). When the MCP server is not configured, fall back to filesystem-based alternatives noted as **Fallback** in each step. See `.claude/skills/shared/mcp_fallbacks.md` for detailed fallback procedures. The skill must complete successfully either way.
1515

1616
## Phase 1: Validate and Load Control File
1717

1818
1. **Parse arguments**: Extract control_id from `$ARGUMENTS`.
1919

20-
2. **Validate control exists**: Call `mcp__content-mcp__get_control_stats` with `control_id=$ARGUMENTS`.
21-
- If the tool returns an error (control not found), call `mcp__content-mcp__list_controls` and present available control files via `AskUserQuestion`:
20+
2. **Validate control exists**: Call `mcp__content-agent__get_control_stats` with `control_id=$ARGUMENTS`.
21+
- If the tool returns an error (control not found), call `mcp__content-agent__list_controls` and present available control files via `AskUserQuestion`:
2222
- "Control file '$ARGUMENTS' not found. Which control file do you want to inspect?"
2323
- Options: top 4 most relevant from the list + Other
2424
- **Fallback**: Look for `controls/$ARGUMENTS.yml` or `products/**/controls/$ARGUMENTS.yml`. If not found, run `ls controls/*.yml` and `ls products/*/controls/*.yml` to list available control files. To compute stats, read the control YAML and count requirements grouped by `status` field.
@@ -51,7 +51,7 @@ Only show status rows that have non-zero counts.
5151

5252
## Phase 3: List Unmapped Requirements
5353

54-
1. Call `mcp__content-mcp__list_unmapped_requirements` with `control_id` and default `status_filter` (pending).
54+
1. Call `mcp__content-agent__list_unmapped_requirements` with `control_id` and default `status_filter` (pending).
5555
**Fallback**: Read the control YAML and filter requirements where `status` is `pending` or where `rules:` is empty/missing.
5656

5757
2. Present the unmapped work queue:
@@ -86,7 +86,7 @@ Present actionable next steps based on the analysis:
8686
8787
- To map all unmapped requirements interactively: `/map-controls {control_id} --product <product>`
8888
- To map a single requirement: `/map-requirement {control_id} <requirement_id> --product <product>`
89-
- To view full control details: use `mcp__content-mcp__get_control_details`
89+
- To view full control details: use `mcp__content-agent__get_control_details`
9090
9191
**Tip**: If you have the source security policy document (PDF, Markdown, or HTML), pass it with `--policy <path>` to enrich mapping with the original requirement text. This improves cross-framework matching by using the full policy context instead of just the control file's summary. Example:
9292
`/map-controls {control_id} --product <product> --policy security_policies/<file>`

0 commit comments

Comments
 (0)