Skip to content

fix(financial-analysis): repair malformed .mcp.json that silently drops all 12 connectors - #303

Open
knym wants to merge 1 commit into
anthropics:mainfrom
knym:fix/financial-analysis-mcp-json
Open

fix(financial-analysis): repair malformed .mcp.json that silently drops all 12 connectors#303
knym wants to merge 1 commit into
anthropics:mainfrom
knym:fix/financial-analysis-mcp-json

Conversation

@knym

@knym knym commented Jul 26, 2026

Copy link
Copy Markdown

Problem

plugins/vertical-plugins/financial-analysis/.mcp.json is not valid JSON. The egnyte entry is missing its trailing comma and the box object is never closed:

    "egnyte": {
      "type": "http",
      "url": "https://mcp-server.egnyte.com/mcp"
    }            <-- missing comma
    "box": {
      "type": "http",
      "url": "https://mcp.box.com"
  }              <-- "box" never closed
}

python3 -c "import json; json.load(open(...))" fails with Expecting ',' delimiter: line 47 column 5. This is the only invalid JSON file under plugins/.

Impact

All 12 data connectors are silently dropped. Installation succeeds with no error or warning, so a user who has paid for FactSet / PitchBook / Moody's / LSEG / S&P Global / Morningstar / Daloopa access has no way to tell the connectors were never registered — the skills just behave as if no data source exists.

Verified by installing the plugin from an otherwise identical local marketplace, with and without this fix:

Version Install result claude plugin details reports
current main success, no warning MCP servers (0)
with this fix success MCP servers (12) daloopa, morningstar, sp-global, factset, moodys, mtnewswire, aiera, lseg, pitchbook, chronograph, egnyte, box

Reproduce on current main:

claude plugin marketplace add anthropics/financial-services
claude plugin install financial-analysis@claude-for-financial-services
claude plugin details financial-analysis@claude-for-financial-services   # MCP servers (0)

Fix

Add the missing comma and close the box object. Two lines, no behavior change beyond the connectors loading as intended.

Why CI did not catch this

.github/workflows/plugin-validate.yml runs claude plugin validate <plugin_dir>, which only validates .claude-plugin/plugin.json.mcp.json is not checked. On current main:

$ claude plugin validate plugins/vertical-plugins/financial-analysis
Validating plugin manifest: .../.claude-plugin/plugin.json
✔ Validation passed

Not addressed in this PR to keep it minimal, but adding a json.load pass over every plugins/**/.mcp.json to the validate workflow would prevent a recurrence.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant