Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Rule Tenant Boundary
padosoft/askmydocs-mcp-pack
cursor
multi-tenancy
tenant-isolation
mcp
registry
orchestrator
feature-tests

McpServerRegistryContract::forTenant($id) is the ONLY API the orchestrator uses to enumerate servers. There is no all() / global() shortcut, by design.

Install
php artisan boost:add-skill padosoft/askmydocs-mcp-pack

Save this content to: .cursor/rules/rule-tenant-boundary.md

# Rule: tenant boundary is structural, not advisory

`McpServerRegistryContract::forTenant($id)` is the ONLY API the
orchestrator uses to enumerate servers. There is no `all()` /
`global()` shortcut, by design.

When you add features that touch the registry:

- They MUST take `?string $tenantId` as a parameter.
- `null` means "platform-global" — visible to every tenant.
- A non-null id means "scoped to that tenant" — invisible to others.
- A server with `tenantId() === 'acme'` MUST NEVER appear in
  `forTenant('globex')` results.

Test posture: when you add a new orchestrator branch, add a feature
test that seeds two tenants with overlapping server ids and asserts
isolation.

Rule: tenant boundary is structural, not advisory

McpServerRegistryContract::forTenant($id) is the ONLY API the orchestrator uses to enumerate servers. There is no all() / global() shortcut, by design.

When you add features that touch the registry:

  • They MUST take ?string $tenantId as a parameter.
  • null means "platform-global" — visible to every tenant.
  • A non-null id means "scoped to that tenant" — invisible to others.
  • A server with tenantId() === 'acme' MUST NEVER appear in forTenant('globex') results.

Test posture: when you add a new orchestrator branch, add a feature test that seeds two tenants with overlapping server ids and asserts isolation.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core