fix(plugin): load the bundled MCP server + admin-configurable marketplace URL #63

Merged
bvandeusen merged 3 commits from dev into main 2026-06-10 00:25:23 -04:00
Owner

Two changes since the last main merge:

  1. fix: plugin MCP server now loads. /reload-plugins reported "0 plugin MCP servers". Root cause (two compounding issues): plugin.json used "mcpServers": "./.mcp.json" (a string path, not a valid inline object/reference), AND .mcp.json is gitignored so it was never in the marketplace clone. Fixed by inlining the mcpServers object (with ${user_config.*} substitution) directly into the tracked plugin.json; bumped plugin to 0.1.1 so clients re-fetch.
  2. feat: admin-configurable plugin marketplace URL (CI-green on dev) — Admin → Plugin marketplace setting, surfaced in every user's MCP Access install command so it's copyable.

No migrations.

🤖 Generated with Claude Code

Two changes since the last main merge: 1. **fix: plugin MCP server now loads.** `/reload-plugins` reported "0 plugin MCP servers". Root cause (two compounding issues): plugin.json used `"mcpServers": "./.mcp.json"` (a string path, not a valid inline object/reference), AND `.mcp.json` is gitignored so it was never in the marketplace clone. Fixed by inlining the `mcpServers` object (with `${user_config.*}` substitution) directly into the tracked `plugin.json`; bumped plugin to 0.1.1 so clients re-fetch. 2. **feat: admin-configurable plugin marketplace URL** (CI-green on dev) — `Admin → Plugin marketplace` setting, surfaced in every user's MCP Access install command so it's copyable. No migrations. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
bvandeusen added 3 commits 2026-06-10 00:25:18 -04:00
feat(plugin): admin-configurable marketplace URL as the install default
CI & Build / Python lint (push) Successful in 3s
CI & Build / TypeScript typecheck (push) Successful in 33s
CI & Build / Python tests (push) Successful in 46s
CI & Build / Build & push image (push) Successful in 59s
1d82e81527
The Settings install command had a <your-scribe-repo> placeholder — not
copyable. Add an instance-global 'plugin_marketplace_url' setting (admin sets
it to the app's own repo) that every user's MCP Access reads, so the
/plugin marketplace add command is copyable out of the box. Keeps it universal
(each deployment configures its own repo) rather than hardcoding one.

- services/settings.get_admin_setting(key): admin-scoped global read.
- routes/plugin: GET /api/plugin/marketplace-url (any user) + PUT (admin).
- SettingsView: Admin → 'Plugin marketplace' field to set it; MCP Access
  marketplace field falls back to the configured value.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
/reload-plugins reported '0 plugin MCP servers'. Root cause: plugin.json had
"mcpServers": "./.mcp.json" — a string path, which is neither a valid inline
object nor a recognized reference (per docs, plugin MCP servers are a root
.mcp.json OR an inline object in plugin.json), so it parsed to zero servers.

Inline the mcpServers object directly in plugin.json and remove the separate
.mcp.json. The user_config substitution syntax was already correct
(plugins-reference: values substitute as ${user_config.KEY} in MCP configs).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
bvandeusen merged commit 3a5835b109 into main 2026-06-10 00:25:23 -04:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bvandeusen/FabledScribe#63