Skip to content

feat: bundle the Contentstack MCP Profile Hub server with every plugin - #31

Merged
timbenniks-contentstack merged 1 commit into
nextfrom
feat/bundle-mcp-profile-hub
Nov 3, 2026
Merged

timbenniks-contentstack merged 1 commit into
nextfrom
feat/bundle-mcp-profile-hub

Conversation

@timbenniks-contentstack

Copy link
Copy Markdown
Contributor

Installing the plugin now gives the agent the Contentstack skills and the Contentstack tools from the hosted MCP Profile Hub (https://mcp-profile-hub.contentstack.com/api/mcp). Sign-in is OAuth in the browser on first use: no API key, and every call runs with the user's own Contentstack roles.

This is the packaging step for listing Contentstack in the OpenAI (ChatGPT and Codex) plugin directory and the Cursor Marketplace, from this one repo instead of a new one. Server side: contentstack/contentstack-mcp-profile-manager#337 (epic DX-32269).

What changed

Each client reads its own file, in the format its docs define (checked 3 Nov 2026):

Client File Shape
Claude Code, claude.ai .mcp.json (new) type: "http"
Codex, ChatGPT, Agent Plugins clients mcp.json (new) type: "streamable-http", agent-plugins.org schema
Cursor .cursor-plugin/plugin.json inline mcpServers, url only. Overrides Cursor's default mcp.json discovery, so Cursor never reads the portable file's type
Gemini CLI gemini-extension.json mcpServers, httpUrl (streamable HTTP)
  • .claude-plugin/plugin.json gains documentationUrl, supportUrl, privacyPolicyUrl and termsOfServiceUrl. claude plugin validate flags a plugin that connects to a remote MCP server without a privacy policy.
  • README: a short "Contentstack MCP server" section and the new files in the layout. CHANGELOG: added to the 0.3.1 entry, so it ships in the 0.3.1 release with the Studio changes already on next.

Heads-up for reviewers

  • Existing installs pick up the server on their next update and get a sign-in prompt the first time a Contentstack tool runs. The README says how to turn the server off for skills-only use.
  • No version bump needed. next is already at 0.3.1, which hasn't been released yet, so this ships in 0.3.1.
  • Still to decide before the directory submissions (not in this PR): the plugin name (contentstack-skills reads oddly once it carries the server, and OpenAI rejects "MCP" in a display name), the icon (claude plugin validate already warns about it), and whether ChatGPT gets all 24 skills or a CMS-focused subset.

Verification

  • node scripts/validate.mjs: 24 skills and 7 manifests valid.
  • claude plugin validate .: passes with the same two warnings as next (no icon, root CLAUDE.md). The new privacy warning is resolved.
  • Not yet verified: installing in each client and completing sign-in. Codex and Cursor review the bundle at submission.

🤖 Generated with Claude Code

Installing the plugin now gives the agent the skills and the Contentstack
tools together, from the hosted server at
https://mcp-profile-hub.contentstack.com/api/mcp (OAuth in the browser on
first use, no API key, the user's own roles).

Each client reads its own file, in the format its docs define (checked
3 Nov 2026):
- Claude Code / claude.ai: .mcp.json, type http.
- Codex, ChatGPT and Agent Plugins clients: mcp.json, type streamable-http
  with the agent-plugins.org schema.
- Cursor: inline mcpServers in .cursor-plugin/plugin.json (url only), which
  overrides Cursor's default mcp.json discovery.
- Gemini CLI: mcpServers in gemini-extension.json, httpUrl.

Also adds the docs, support, privacy and terms URLs to the Claude manifest:
claude plugin validate flags a plugin that connects to a remote MCP server
without a privacy policy. Ships in 0.3.1, which is on next and not yet released.

Verified: node scripts/validate.mjs passes; claude plugin validate passes with
the same two warnings as before (no icon, root CLAUDE.md).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@timbenniks-contentstack
timbenniks-contentstack requested a review from a team as a code owner November 3, 2026 10:50
@snyk-io

snyk-io Bot commented Nov 3, 2026

Copy link
Copy Markdown

✅ Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
✅ Code Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown

🔒 Security Scan Results

ℹ️ Note: Only vulnerabilities with available fixes (upgrades or patches) are counted toward thresholds.

Check Type Count (with fixes) Without fixes Threshold Result
🔴 Critical Severity 0 0 10 ✅ Passed
🟠 High Severity 0 0 25 ✅ Passed
🟡 Medium Severity 0 0 500 ✅ Passed
🔵 Low Severity 0 0 1000 ✅ Passed

⏱️ SLA Breach Summary

✅ No SLA breaches detected. All vulnerabilities are within acceptable time thresholds.

Severity Breaches (with fixes) Breaches (no fixes) SLA Threshold (with/no fixes) Status
🔴 Critical 0 0 15 / 30 days ✅ Passed
🟠 High 0 0 30 / 120 days ✅ Passed
🟡 Medium 0 0 90 / 365 days ✅ Passed
🔵 Low 0 0 180 / 365 days ✅ Passed

✅ BUILD PASSED - All security checks passed

@timbenniks-contentstack
timbenniks-contentstack merged commit dad18f9 into next Nov 3, 2026
6 checks passed
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.

2 participants