Skip to content

feat(mcp): split OAuth endpoints and restrict directory tools - #22

Merged
jshorwitz merged 5 commits into
mainfrom
feat/mcp-oauth-only-synterai
Oct 2, 2026
Merged

jshorwitz merged 5 commits into
mainfrom
feat/mcp-oauth-only-synterai

Conversation

@jshorwitz

@jshorwitz jshorwitz commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

This keeps Cursor and Claude on their approved OAuth endpoints and limits the plugin instructions to the 34-tool directory approved by Joel and Product on 2026-10-01.

Stacked on #21. Its current branch tip is already included in this branch; merging origin/chore/cursor-marketplace-review-fixes reported “Already up to date.” Keep this PR draft until #21 merges and production OAuth readiness is verified. Retarget to main after #21 merges; this update does not merge either PR.

  • Cursor uses https://mcp.synterai.com through mcp.json. Claude retains https://mcp.syntermedia.ai in .mcp.json to match the connector under Anthropic review. Manifest validation enforces the split and rejects static credential configuration, headers, and local server commands.
  • Setup is OAuth-only, including the optional SDK runner’s plugin configuration. The README describes the plugin as a no-cost client for the paid service, lists all 52 remaining skills, links privacy and support, and discloses the Claude Bash session hook and manually invoked Node runner. Removed commercial upsell language and obsolete credential instructions.
  • Removed media-generation instructions and the dedicated creative and creator-brief skills. Also removed unsupported landing-page, visibility, and internal sandbox workflows. Remaining guidance uses approved tools or names the required manual platform handoff. Text ad copy uses create_ad_copy; asset selection uses list_creative_assets. GA4 references use ga4_get_properties, ga4_get_report, and ga4_get_conversions.
  • Added tools/directory-tools.json with exactly the approved 34 names and a GitHub Actions check for skills, optional commands, rules, and agents. The extractor covers prose, tables, examples, and MCP-qualified names, and rejects unlisted names and dynamic tool templates. An optional OAuth-token mode initializes an MCP session and checks paginated live tools/list results at either production endpoint.

Validation passed locally: manifest guards, all 59 instruction files against the directory, six validator tests, pinned strict Claude plugin validation, SDK and shell syntax checks, and the release zip build. Verified the zip’s endpoint split, 52 skills, and SDK exclusion; README local links and skill inventory also pass. Reviewed the requested repository-wide language scan; remaining matches are license wording, GitHub checkout actions, advertising-spend examples, and incidental substrings.

Live production tools/list and headless OAuth session reuse were not exercised because no OAuth access token was available. Live protocol handling was tested with mocked JSON/SSE responses, session headers, pagination, and failure cases. This PR does not deploy the hosted server or establish production OAuth readiness.

Drops the X-Synter-Key header and SYNTER_API_KEY variable; validator now enforces OAuth-only on both manifests.
@coderabbitai

coderabbitai Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: cd9711dd-b5e4-4ff5-b39a-c6cf047371c9

📥 Commits

Reviewing files that changed from the base of the PR and between 71a0284 and f6a6e0c.

📒 Files selected for processing (89)
  • .claude-plugin/marketplace.json
  • .claude-plugin/plugin.json
  • .cursor-plugin/marketplace.json
  • .cursor-plugin/plugin.json
  • .github/workflows/directory-tools.yml
  • .github/workflows/release.yml
  • .github/workflows/validate.yml
  • CHANGELOG.md
  • CLAUDE_COMMUNITY_SUBMISSION.md
  • README.md
  • SECURITY.md
  • agents/audience-builder.md
  • agents/budget-optimizer.md
  • agents/campaign-strategist.md
  • agents/creative-director.md
  • agents/media-buyer.md
  • agents/performance-analyst.md
  • agents/visibility-agent.md
  • context/brand-and-safety.md
  • hooks/hooks.json
  • mcp.json
  • output-styles/synter.md
  • rules/synter-operator.mdc
  • scripts/build-zip.sh
  • scripts/check-directory-tools.js
  • scripts/check-directory-tools.test.js
  • scripts/session-context.sh
  • scripts/validate-manifests.js
  • scripts/validate-manifests.test.js
  • sdk/README.md
  • sdk/synter-agent.mjs
  • skills/ad-copy-generation/SKILL.md
  • skills/ad-policy-compliance/SKILL.md
  • skills/agentic-loop-campaign-sandbox/SKILL.md
  • skills/anomaly-detector/SKILL.md
  • skills/attribution/SKILL.md
  • skills/audience-expansion-strategy/SKILL.md
  • skills/audience/SKILL.md
  • skills/bid-optimization/SKILL.md
  • skills/campaign-preflight/SKILL.md
  • skills/campaign-structure-auditor/SKILL.md
  • skills/competitor-analysis/SKILL.md
  • skills/connect/SKILL.md
  • skills/conversion-tracking/SKILL.md
  • skills/creative-fatigue-detector/SKILL.md
  • skills/creative-testing/SKILL.md
  • skills/creative/SKILL.md
  • skills/dayparting/SKILL.md
  • skills/executive-reporting/SKILL.md
  • skills/first-party-data-strategy/SKILL.md
  • skills/geo-integrity-audit/SKILL.md
  • skills/google-ads-quality-score/SKILL.md
  • skills/google-shopping-optimizer/SKILL.md
  • skills/help/SKILL.md
  • skills/incrementality-testing/SKILL.md
  • skills/keyword-research/SKILL.md
  • skills/kill-scale-rules/SKILL.md
  • skills/landing-page-creation/SKILL.md
  • skills/launch/SKILL.md
  • skills/linkedin-ads-targeting/SKILL.md
  • skills/llm-visibility-audit/SKILL.md
  • skills/media-plan/SKILL.md
  • skills/meta-ads-diagnostics/SKILL.md
  • skills/mmm-budget-planner/SKILL.md
  • skills/negative-keywords/SKILL.md
  • skills/optimize/SKILL.md
  • skills/performance-max-optimizer/SKILL.md
  • skills/pixel-capi-auditor/SKILL.md
  • skills/platform-amazon/SKILL.md
  • skills/platform-benchmarks/SKILL.md
  • skills/platform-google/SKILL.md
  • skills/platform-linkedin/SKILL.md
  • skills/platform-meta/SKILL.md
  • skills/platform-microsoft/SKILL.md
  • skills/platform-openai/SKILL.md
  • skills/platform-reddit/SKILL.md
  • skills/platform-tiktok/SKILL.md
  • skills/platform-x/SKILL.md
  • skills/pre-pause-analysis/SKILL.md
  • skills/quickstart/SKILL.md
  • skills/replicate/SKILL.md
  • skills/report/SKILL.md
  • skills/retargeting-sequence-designer/SKILL.md
  • skills/roas-calculator/SKILL.md
  • skills/seasonal-budget-planner/SKILL.md
  • skills/ugc-creative-brief/SKILL.md
  • skills/utm-builder/SKILL.md
  • skills/video-ad-scriptwriter/SKILL.md
  • tools/directory-tools.json
 _______________________________________________
< Finding your faults 10 times faster than Mom. >
 -----------------------------------------------
  \
   \   \
        \ /\
        ( )
      .( o ).
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@jshorwitz jshorwitz changed the title feat(mcp): OAuth-only remote at mcp.synterai.com (merge after prod OAuth fix) feat(mcp): split OAuth endpoints and restrict directory tools Oct 2, 2026
@jshorwitz
jshorwitz marked this pull request as ready for review October 2, 2026 17:08
@jshorwitz
jshorwitz changed the base branch from chore/cursor-marketplace-review-fixes to main October 2, 2026 17:54
@jshorwitz
jshorwitz merged commit 2f760f2 into main Oct 2, 2026
4 of 5 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.

1 participant