Skip to content

Consolidate 5 plugins into AgentKit and SaaSKit (v2.0.0)#20

Open
saif-at-scalekit wants to merge 53 commits into
mainfrom
restructure/agentkit-saaskit-consolidation
Open

Consolidate 5 plugins into AgentKit and SaaSKit (v2.0.0)#20
saif-at-scalekit wants to merge 53 commits into
mainfrom
restructure/agentkit-saaskit-consolidation

Conversation

@saif-at-scalekit
Copy link
Copy Markdown
Collaborator

@saif-at-scalekit saif-at-scalekit commented May 8, 2026

Summary

Restructures the marketplace from 5 separate plugins into 2 focused plugins: AgentKit and SaaSKit.

This PR incorporates the work from #19 (docs/agent-auth-hybrid-layout) and builds the full restructure on top.

Backward Compatibility

Old plugin names are preserved as symlinks so existing install commands keep working:

Old name (symlink) Points to Rationale
plugins/agent-auth agentkit Direct rename
plugins/full-stack-auth saaskit Consolidated into SaaSKit
plugins/mcp-auth saaskit MCP server auth is now part of SaaSKit
plugins/modular-sso saaskit SSO is now part of SaaSKit
plugins/modular-scim saaskit SCIM is now part of SaaSKit

Tested: claude plugin install agent-auth@scalekit-auth-stack resolves through the symlink and loads AgentKit skills. Claude Code's marketplace uses git clone, which preserves symlinks on disk.

The install script (scripts/install_claude_marketplace.sh) now:

  • Installs both agentkit and saaskit (previously only installed agent-auth)
  • Cleans up old v1.x plugin names on reinstall

Namespace Change

  • All slash commands now use /agentkit: or /saaskit: namespace

AgentKit (5 skills)

Renamed from agent-auth, adopting Scalekit AgentKit branding with docs/ + rules/ + thin skills/ content model.

Skill Purpose
integrating-agentkit Core AgentKit integration
discovering-connector-tools Live tool metadata discovery
exposing-agentkit-via-mcp Configure AgentKit MCP endpoint
production-readiness-agentkit Production checklist
scalekit-code-doctor Generate and review Scalekit code with verified SDK signatures

SaaSKit (13 skills)

New plugin consolidating FSA, SSO, SCIM, and MCP server auth into one coherent surface.

Skill Consolidates
implementing-saaskit Core auth flow (+ Go, Spring Boot, Laravel reference files)
managing-saaskit-sessions Session management
implementing-access-control RBAC and permissions
implementing-saaskit-python Django + FastAPI + Flask (merged)
implementing-saaskit-nextjs Next.js App Router
implementing-modular-sso SSO + admin portal (merged)
implementing-scim-provisioning SCIM directory sync
adding-mcp-oauth MCP server auth (+ FastMCP, Express, FastAPI refs)
adding-api-auth API keys + client credentials (merged)
migrating-to-saaskit Migration from Auth0/Firebase/Cognito/custom
production-readiness-saaskit Unified production checklist (4 sources merged)
testing-auth-setup Validate auth integration via dryrun CLI
scalekit-code-doctor Generate and review Scalekit code with verified SDK signatures

Content model

Both plugins follow: docs/ (canonical documentation) + rules/ (cross-cutting guidance) + thin skills/ (routing layers pointing to docs)

Cleanup in this PR

  • Removed legacy test-tool.md command alias
  • Removed 42 static agent-connectors/*.md files — pointed to docs.scalekit.com/agentkit/connectors/ instead
  • Renamed providers.mdconnectors.md to match product terminology
  • Renamed building-agentkit-mcp-serverexposing-agentkit-via-mcp (configuring, not building)
  • Renamed discovering-agentkit-toolsdiscovering-connector-tools (tools belong to connectors)
  • Converted dryrun command → testing-auth-setup skill (discoverable via natural language)
  • Fixed saaskit/hooks/hooks.jsontype was on wrong nesting level

Pre-merge Coordination Checklist

These items should be coordinated before or shortly after merging this PR.
Old names still work via symlinks, so there is no hard deadline — but docs should reference the new names going forward.

1. docs.scalekit.com (developer-docs repo)

Claude Code install templates — update to use new plugin names:

  • src/components/templates/coding-agents/_agentkit-claude-code.mdxagent-auth@agentkit@
  • src/components/templates/coding-agents/_fsa-claude-code.mdxfull-stack-auth@saaskit@
  • src/components/templates/coding-agents/_mcp-auth-claude-code.mdxmcp-auth@saaskit@
  • src/components/templates/coding-agents/_sso-claude-code.mdxmodular-sso@saaskit@
  • src/components/templates/coding-agents/_scim-claude-code.mdxmodular-scim@saaskit@

GitHub Copilot CLI and Codex templates — same pattern:

  • _agentkit-github-copilot-cli.mdx / _agentkit-codex.mdx
  • _fsa-github-copilot-cli.mdx / _fsa-codex.mdx
  • _mcp-auth-github-copilot-cli.mdx / _mcp-auth-codex.mdx
  • _sso-github-copilot-cli.mdx / _sso-codex.mdx
  • _scim-github-copilot-cli.mdx / _scim-codex.mdx

Docs pages with inline install commands:

  • src/content/docs/dev-kit/build-with-ai/index.mdx — master plugin install table
  • src/content/docs/cookbooks/set-up-agentkit-with-your-coding-agent.mdx
  • src/content/docs/agentkit/quickstart.mdx
  • src/content/docs/authenticate/fsa/quickstart.mdx
  • src/content/docs/authenticate/mcp/quickstart.mdx
  • src/content/docs/authenticate/sso/add-modular-sso.mdx
  • src/content/docs/directory/scim/quickstart.mdx
  • src/content/docs/home/saaskit/index.mdx
  • src/content/docs/sso/quickstart.mdx
  • src/content/docs/passwordless/quickstart.mdx
  • src/content/docs/passwordless/oidc.mdx
  • src/content/docs/agent-auth/start-agent-auth-coding-agents/ (referenced in web search)

Config files:

  • src/configs/agent-instructions.ts
  • src/configs/llms.config.ts

2. scalekit.com marketing pages

  • Homepage (scalekit.com) — has inline Claude plugin install commands with old names
  • /agent-auth product page — has agent-auth@scalekit-auth-stack install command
  • /product-updates/add-scalekit-from-your-coding-agent — has old install commands

3. scalekit.com blog posts

  • /blog/outbound-prospecting-agent-development — has agent-auth@scalekit-auth-stack
  • Audit other blog posts for old plugin install commands

4. Scalekit dashboard app (app.scalekit.com)

  • app/scalekit-web-ui/src/pages/Quickstart/snippets.ts — has old plugin install commands
  • Check onboarding/quickstart flows in the dashboard for old plugin names

5. build-with-ai/skills repo (scalekit-inc/skills)

17 files reference old plugin names:

  • skills/setup-scalekit/SKILL.md
  • skills/integrating-agent-auth/SKILL.md
  • skills/building-agent-mcp-server/SKILL.md
  • skills/production-readiness-agent-auth/SKILL.md
  • skills/production-readiness-full-stack-auth/SKILL.md
  • skills/production-readiness-mcp-auth/SKILL.md
  • skills/modular-sso/SKILL.md
  • skills/mcp-auth-expressjs-scalekit/SKILL.md
  • skills/mcp-auth-fastmcp-scalekit/SKILL.md
  • skills/mcp-auth-fastapi-fastmcp-scalekit/SKILL.md
  • skills/mcp-oauth-fastmcp/SKILL.md
  • skills/adding-mcp-oauth/SKILL.md
  • skills/express-mcp-server/SKILL.md
  • skills/fastapi-fastmcp/SKILL.md
  • skills/README.md

6. Third-party listings

These are external and may update automatically, but worth tracking:

  • LobeHub skills marketplace (lobehub.com/skills/scalekit-inc-skills-setup-scalekit)
  • claudemarketplaces.com plugin listing
  • dev.to posts by scalekit-inc

7. Install script — Windows compatibility

  • install.sh uses bash (set -euo pipefail, curl, tar, mktemp) — does not work on Windows
  • Add a PowerShell equivalent (install.ps1) or cross-platform alternative
  • Or document that Windows users should use the manual /plugin marketplace add method

8. Post-merge verification

  • Verify symlinks resolve correctly via claude --plugin-dir (tested locally)
  • Verify symlinks resolve correctly via marketplace git clone (tested end-to-end)
  • Test fresh install: /plugin marketplace add scalekit-inc/claude-code-authstack/plugin install agentkit@scalekit-auth-stack
  • Test fresh install: /plugin install saaskit@scalekit-auth-stack
  • Test backward compat: /plugin install agent-auth@scalekit-auth-stack (should resolve via symlink)
  • Verify --plugin-dir local testing works for both plugins

saif-shines and others added 6 commits May 5, 2026 21:20
Shift the agent-auth plugin toward a Tessl-like docs/skills/rules layout so durable AgentKit guidance is separated from Claude-specific runtime files. This makes live metadata the documented source of truth for tools while keeping existing connector notes available as secondary references.

Co-authored-by: Cursor <cursoragent@cursor.com>
Raise the agent-auth plugin manifest to 2.0.0 so the hybrid AgentKit reorganization can ship as a major update and users can pick up the new version cleanly.

Co-authored-by: Cursor <cursoragent@cursor.com>
Add a one-line Claude Code installer that adds the marketplace, installs the agent-auth plugin, and points users to enable auto-update. Also thread official docs.scalekit.com AgentKit links through the new canonical docs so the plugin can point back to the published product documentation.

Co-authored-by: Cursor <cursoragent@cursor.com>
Add the stable llms.txt and sitemap-0.xml links to the main Claude Code auth stack docs and the canonical agent-auth docs entrypoints so users and agents have clear fallback indexes into published Scalekit documentation.

Co-authored-by: Cursor <cursoragent@cursor.com>
Move the live AgentKit discovery and execution workflow into the testing skill so the plugin follows the modern skills-first structure. Keep `/test-tool` only as a legacy compatibility alias to preserve older usage without making `commands/` the source of truth.

Co-authored-by: Cursor <cursoragent@cursor.com>
Restructure the marketplace from 5 separate plugins (agent-auth,
full-stack-auth, mcp-auth, modular-sso, modular-scim) into 2 focused
plugins: AgentKit (AI agent authentication) and SaaSKit (B2B SaaS auth).

AgentKit (5 skills):
- Renamed from agent-auth, adopting Scalekit AgentKit branding
- Added docs/ + rules/ content model from PR #19
- Skills: integrating, discovering tools, testing tools, MCP server, production readiness

SaaSKit (11 skills):
- New plugin consolidating FSA, SSO, SCIM, and MCP server auth
- 13 docs files including framework guides (Python, Next.js, Go, Spring Boot, Laravel)
- Thin skills routing into docs/ layer
- Skills: core auth, sessions, access control, SSO, SCIM, MCP OAuth, API auth,
  Python frameworks, Next.js, migration, production readiness
- Consolidated agents, commands, hooks, and references from all 4 source plugins

Both plugins at version 2.0.0 with the docs/ + rules/ + thin skills/ content model.
The Scalekit MCP server at mcp.scalekit.com provides tool discovery,
auth link generation, and tool execution natively. The testing skill
forced users to set up env vars, remember slash command syntax, and
wait for a Python script — all to get the same result.

Updated discovering-connector-tools, integrating-agentkit, and docs
to point to the MCP server as the live playground.
… mcp-helper

Removed 3 agents that don't justify being separate agents:
- sdk-version-advisor: just a lookup, skills already cover SDK install
- session-management-reviewer: preserved as references/session-management-patterns.md
- scalekit-mcp-helper: 22 lines, MCP server + skills cover this

Also removed duplicate setup-scalekit from agentkit (kept in saaskit).
Remaining agents: setup-scalekit, scalekit-mcp-auth-troubleshooter.
Per-connector docs (scopes, quirks, tool categories) were present in
cursor and codex but missing from claude-code. Copied full set to
maintain parity across all auth stacks.
Per-connector docs are unmaintainable — live AgentKit metadata and
docs.scalekit.com/agentkit/connectors/ are the source of truth.
…n dirs

marketplace.json still listed the old 5 plugins (mcp-auth, agent-auth,
modular-sso, modular-scim, full-stack-auth). After merge, claude plugin
install agentkit@scalekit-auth-stack would fail because the marketplace
manifest didn't know about agentkit or saaskit.

- Replace 5 old plugin entries with agentkit + saaskit
- Update marketplace description
- Remove 5 old plugin directories (other repos already cleaned up)
The old 5 plugin names (agent-auth, mcp-auth, full-stack-auth,
modular-sso, modular-scim) were symlinks to the new consolidated
plugins (agentkit, saaskit). They were accidentally removed.

Restore symlinks so both old and new install commands work:
  claude plugin install agent-auth@scalekit-auth-stack  (old, still works)
  claude plugin install agentkit@scalekit-auth-stack    (new, preferred)

marketplace.json now lists all 7 names — 2 primary + 5 aliases.
Add the scalekit-code-doctor skill (SKILL.md + references) to both
agentkit and saaskit plugins. This cross-cutting developer tool skill
enables code generation and review with verified Scalekit SDK signatures
across all four SDKs (Node, Python, Go, Java) and REST API.
Adds a UserPromptSubmit hook that calls the Scalekit CLI to check if the
agentkit plugin is outdated. The CLI handles caching (8h TTL), GitHub API
calls, semver comparison, and output formatting.

- Silent when up to date
- One-line message when outdated
- Cross-platform: npx works on Windows, macOS, Linux
- 15s timeout covers npx package resolution
UserPromptSubmit fires on every single prompt, adding npx latency to
every message. SessionStart fires once when a session begins or resumes,
which is the right frequency for a version check.
Comment thread .claude-plugin/marketplace.json Outdated
Comment thread .claude-plugin/marketplace.json Outdated
Comment thread plugins/agentkit/.claude-plugin/plugin.json Outdated
@saif-at-scalekit saif-at-scalekit requested a review from ravibits May 20, 2026 07:57
saif-shines and others added 13 commits May 20, 2026 13:28
Old skill names (add-auth-fastmcp, express-mcp-server, fastapi-fastmcp) were
renamed to adding-mcp-oauth during consolidation. Update links to point to the
correct SKILL.md and framework-specific reference files.
/mcp/authentication -> /authenticate/mcp/quickstart/
All 18 skills updated with quality improvements:
- Removed verbose meta-commentary, added verification commands
- Added concrete code examples from scalekit-code-doctor references
- Consolidated duplicated content into reference files
- Improved descriptions with specific trigger terms

New reference files added for scalekit-code-doctor (EXAMPLE-REPOS.md).
… skills

- install.sh: make plugin install idempotent (|| true); fix post-install message
- agentkit plugin.json: update stale homepage URL to /agentkit/overview/
- scim-provisioning: pip install scalekit-sdk → scalekit-sdk-python
- adding-mcp-oauth: Scalekit → ScalekitClient (import + constructor)
- connectors/README.md: remove false claim about deleted connector notes
- CHANGELOG.md: fix wrong skill names, wrong count, Removed → Aliased
- agentkit README: add missing scalekit-code-doctor skill
- saaskit README: add missing testing-auth-setup and scalekit-code-doctor skills

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…, dedup

- implementing-modular-sso: fix access token expiry 24h → 5min (configurable)
- implementing-saaskit-python: add django-reference.md and flask-reference.md
- agentkit: remove duplicate scalekit-code-doctor; point README to /saaskit:scalekit-code-doctor
- agentkit/saaskit README: fix invalid shell install command (claude /plugin → /plugin inside REPL)
- agentkit README: document MCP OAuth 2.1 auth behavior and troubleshooting steps
- root README: add Windows install caveat (install.sh requires macOS/Linux/WSL)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Addresses CTO review issue #6 — new users facing 13 overlapping choices
with no entry point.

Both /agentkit:setup and /saaskit:setup ask 2-3 questions about framework
and use case, then route to the right skill. Covers orientation (concepts
table), environment setup steps, and cross-skill navigation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- implementing-saaskit-nextjs: scalekit.io → scalekit.com in env URL
- docs/frameworks/laravel.md: scalekit.io → scalekit.com
- docs/frameworks/nextjs.md: scalekit.io → scalekit.com
- implementing-saaskit/laravel-reference.md: scalekit.io → scalekit.com
- implementing-modular-sso: validate_token → validate_access_token_and_get_claims (Python)
- implementing-access-control SKILL.md: decode_access_token → validate_access_token_and_get_claims
- docs/access-control.md: decode_access_token → validate_access_token_and_get_claims
- adding-mcp-oauth SKILL.md: validate_token → validate_access_token_and_get_claims (Python middleware)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…lization

- Node: Scalekit → ScalekitClient in express-reference and bring-your-own-auth
- SCIM: getPrimaryDirectoryByOrganizationId → listDirectories pattern
- SCIM webhook: fix try/catch on bool return, use raw body for signature verification
- MCP server: use sub-client methods (organization.createOrganization etc.)
- auth-flows: getLogoutUrl positional args → options object
- sso.md: replace process.env in browser with literal constant
- Python: dict options → typed AuthorizationUrlOptions/LogoutUrlOptions classes
- Env var: SCALEKIT_ENV_URL → SCALEKIT_ENVIRONMENT_URL
- Domain: .scalekit.io → .scalekit.com in .env.example
…uncated agent file

- Strip .md suffix from 22 docs.scalekit.com URLs
- SCALEKIT_ENV_URL → SCALEKIT_ENVIRONMENT_URL (41 remaining instances)
- Fix Python module shadowing: scalekit = scalekit.client.ScalekitClient → sk_client = ScalekitClient
- Complete truncated scalekit-mcp-auth-troubleshooter section 8 + add section 9
- Remove 5 [web:NN] citation markers from troubleshooter agent
…ct→AuthorizationUrlOptions in flask/django refs
@ravibits
Copy link
Copy Markdown

Code review

Found 3 issues:

  1. install.sh swallows plugin install failures — both claude plugin install lines use || true, so network errors, version mismatches, and marketplace failures are silently discarded. The success banner on line 31 always prints regardless, telling developers their plugins are installed when they may not be.

claude plugin install agentkit@scalekit-auth-stack || true
claude plugin install saaskit@scalekit-auth-stack || true
cat <<EOF
Installed Scalekit Auth Stack for Claude Code.

  1. agentkit/.env.example uses wrong environment variable name — SCALEKIT_ENV_URL (line 1) does not match SCALEKIT_ENVIRONMENT_URL used in every skill, setup guide, and SDK call. A developer who copies from .env.example will set the wrong variable and get silent auth failures.

SCALEKIT_ENV_URL=https://your-env.scalekit.dev
SCALEKIT_CLIENT_ID=skc_your_client_id
SCALEKIT_CLIENT_SECRET=your_client_secret

  1. integrating-agentkit/SKILL.md references a non-existent skill — line 288 routes users to sk-actions-custom-provider to create custom connectors, but this skill does not exist in the plugin. Following this instruction gives a "skill not found" error.

- Use the Scalekit MCP server (`https://mcp.scalekit.com`) to validate a tool call interactively.
- Use `exposing-agentkit-via-mcp` when the user wants AgentKit tools exposed over MCP.
- Use `sk-actions-custom-provider` to create custom connectors.

🤖 Generated with Claude Code

- If this code review was useful, please react with 👍. Otherwise, react with 👎.

…et_logout_url

- get_authorization_url: pass AuthorizationUrlOptions object, not dict
- get_logout_url: pass LogoutUrlOptions object, not bare kwargs
Both methods use attribute access internally — dicts/kwargs crash at runtime.
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.

3 participants