vybekiit 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin.js +840 -296
- package/dist/global-skills/add-ai/SKILL.md +53 -0
- package/dist/global-skills/add-analytics/SKILL.md +65 -0
- package/dist/global-skills/add-app-clip/SKILL.md +280 -0
- package/dist/global-skills/add-app-clip/agents/openai.yaml +4 -0
- package/dist/global-skills/add-app-clip/references/native-module.md +96 -0
- package/dist/global-skills/add-blog/SKILL.md +49 -0
- package/dist/global-skills/add-crud/SKILL.md +28 -0
- package/dist/global-skills/add-files/SKILL.md +65 -0
- package/dist/global-skills/add-images/SKILL.md +64 -0
- package/dist/global-skills/add-language/SKILL.md +44 -0
- package/dist/global-skills/add-notifications/SKILL.md +61 -0
- package/dist/global-skills/add-realtime/SKILL.md +49 -0
- package/dist/global-skills/add-route/SKILL.md +28 -0
- package/dist/global-skills/add-search/SKILL.md +43 -0
- package/dist/global-skills/add-signin/SKILL.md +78 -0
- package/dist/global-skills/add-teams/SKILL.md +64 -0
- package/dist/global-skills/add-upload/SKILL.md +27 -0
- package/dist/global-skills/aws-cdk/SKILL.md +72 -0
- package/dist/global-skills/aws-cdk/references/bootstrap-and-project-setup.md +257 -0
- package/dist/global-skills/aws-cdk/references/compliance-and-drift.md +193 -0
- package/dist/global-skills/aws-cdk/references/construct-patterns.md +315 -0
- package/dist/global-skills/aws-cdk/references/import-and-migrate.md +184 -0
- package/dist/global-skills/aws-cdk/references/refactor-and-prevent-replacement.md +198 -0
- package/dist/global-skills/aws-cdk/references/troubleshooting-credentials.md +183 -0
- package/dist/global-skills/aws-cdk/references/troubleshooting-deployment.md +293 -0
- package/dist/global-skills/aws-cdk/references/troubleshooting-synth.md +274 -0
- package/dist/global-skills/aws-cdk/references/v1-to-v2-migration.md +119 -0
- package/dist/global-skills/aws-cloudformation/SKILL.md +88 -0
- package/dist/global-skills/aws-cloudformation/references/author-cloudformation-best-practices.script.md +179 -0
- package/dist/global-skills/aws-cloudformation/references/check-cloudformation-template-compliance.script.md +159 -0
- package/dist/global-skills/aws-cloudformation/references/cloudformation-pre-deploy-validation.script.md +217 -0
- package/dist/global-skills/aws-cloudformation/references/deploy-with-express-mode.script.md +271 -0
- package/dist/global-skills/aws-cloudformation/references/lookup-resource-properties.script.md +130 -0
- package/dist/global-skills/aws-cloudformation/references/troubleshoot-deployment.script.md +200 -0
- package/dist/global-skills/aws-cloudformation/references/validate-cloudformation-template.script.md +135 -0
- package/dist/global-skills/aws-serverless/SKILL.md +51 -0
- package/dist/global-skills/aws-serverless/assets/powertools-handler.py +49 -0
- package/dist/global-skills/aws-serverless/references/api-gateway.md +553 -0
- package/dist/global-skills/aws-serverless/references/architecture.md +262 -0
- package/dist/global-skills/aws-serverless/references/concurrency.md +200 -0
- package/dist/global-skills/aws-serverless/references/deployment.md +94 -0
- package/dist/global-skills/aws-serverless/references/event-sources.md +484 -0
- package/dist/global-skills/aws-serverless/references/lambda.md +548 -0
- package/dist/global-skills/aws-serverless/references/orchestration.md +449 -0
- package/dist/global-skills/aws-serverless/references/production.md +493 -0
- package/dist/global-skills/aws-serverless/references/troubleshooting.md +711 -0
- package/dist/global-skills/back-up-my-code/SKILL.md +48 -0
- package/dist/global-skills/better-auth-best-practices/SKILL.md +182 -0
- package/dist/global-skills/better-auth-security-best-practices/SKILL.md +432 -0
- package/dist/global-skills/building-native-ui/SKILL.md +377 -0
- package/dist/global-skills/building-native-ui/agents/openai.yaml +4 -0
- package/dist/global-skills/building-native-ui/references/animations.md +220 -0
- package/dist/global-skills/building-native-ui/references/controls.md +270 -0
- package/dist/global-skills/building-native-ui/references/form-sheet.md +253 -0
- package/dist/global-skills/building-native-ui/references/gradients.md +106 -0
- package/dist/global-skills/building-native-ui/references/icons.md +213 -0
- package/dist/global-skills/building-native-ui/references/media.md +198 -0
- package/dist/global-skills/building-native-ui/references/route-structure.md +229 -0
- package/dist/global-skills/building-native-ui/references/search.md +248 -0
- package/dist/global-skills/building-native-ui/references/storage.md +121 -0
- package/dist/global-skills/building-native-ui/references/tabs.md +433 -0
- package/dist/global-skills/building-native-ui/references/toolbar-and-headers.md +284 -0
- package/dist/global-skills/building-native-ui/references/visual-effects.md +197 -0
- package/dist/global-skills/building-native-ui/references/webgpu-three.md +605 -0
- package/dist/global-skills/building-native-ui/references/zoom-transitions.md +158 -0
- package/dist/global-skills/buy-domain/SKILL.md +64 -0
- package/dist/global-skills/check-safety/SKILL.md +94 -0
- package/dist/global-skills/claimable-postgres/SKILL.md +249 -0
- package/dist/global-skills/configure-capabilities/SKILL.md +38 -0
- package/dist/global-skills/connect-account/SKILL.md +64 -0
- package/dist/global-skills/connect-account-backend/SKILL.md +41 -0
- package/dist/global-skills/create-auth-skill/SKILL.md +321 -0
- package/dist/global-skills/design-my-data/SKILL.md +48 -0
- package/dist/global-skills/doctor/SKILL.md +84 -0
- package/dist/global-skills/eas-app-stores/SKILL.md +152 -0
- package/dist/global-skills/eas-app-stores/agents/openai.yaml +4 -0
- package/dist/global-skills/eas-app-stores/references/app-store-metadata.md +497 -0
- package/dist/global-skills/eas-app-stores/references/ios-app-store.md +371 -0
- package/dist/global-skills/eas-app-stores/references/play-store.md +246 -0
- package/dist/global-skills/eas-app-stores/references/testflight.md +58 -0
- package/dist/global-skills/eas-app-stores/references/workflows.md +120 -0
- package/dist/global-skills/eas-hosting/SKILL.md +423 -0
- package/dist/global-skills/eas-hosting/agents/openai.yaml +4 -0
- package/dist/global-skills/eas-observe/SKILL.md +32 -0
- package/dist/global-skills/eas-observe/agents/openai.yaml +4 -0
- package/dist/global-skills/eas-observe/references/metrics.md +47 -0
- package/dist/global-skills/eas-observe/references/queries.md +342 -0
- package/dist/global-skills/eas-observe/references/setup.md +317 -0
- package/dist/global-skills/eas-simulator/SKILL.md +156 -0
- package/dist/global-skills/eas-simulator/agents/openai.yaml +4 -0
- package/dist/global-skills/eas-simulator/references/controllers.md +67 -0
- package/dist/global-skills/eas-simulator/references/run-your-app.md +185 -0
- package/dist/global-skills/eas-simulator/references/troubleshooting.md +38 -0
- package/dist/global-skills/eas-update-insights/SKILL.md +230 -0
- package/dist/global-skills/eas-update-insights/agents/openai.yaml +4 -0
- package/dist/global-skills/eas-update-insights/references/channel-insights-schema.md +47 -0
- package/dist/global-skills/eas-update-insights/references/update-insights-schema.md +69 -0
- package/dist/global-skills/eas-workflows/SKILL.md +94 -0
- package/dist/global-skills/eas-workflows/agents/openai.yaml +4 -0
- package/dist/global-skills/eas-workflows/scripts/fetch.js +109 -0
- package/dist/global-skills/eas-workflows/scripts/package.json +11 -0
- package/dist/global-skills/eas-workflows/scripts/validate.js +84 -0
- package/dist/global-skills/email-best-practices/SKILL.md +73 -0
- package/dist/global-skills/expo-api-routes/SKILL.md +368 -0
- package/dist/global-skills/expo-api-routes/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-app-clip/SKILL.md +282 -0
- package/dist/global-skills/expo-app-clip/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-app-clip/references/native-module.md +96 -0
- package/dist/global-skills/expo-brownfield/SKILL.md +54 -0
- package/dist/global-skills/expo-brownfield/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-brownfield/references/brownfield-integrated.md +526 -0
- package/dist/global-skills/expo-brownfield/references/brownfield-isolated.md +402 -0
- package/dist/global-skills/expo-brownfield/references/comparison.md +63 -0
- package/dist/global-skills/expo-brownfield/references/troubleshooting.md +88 -0
- package/dist/global-skills/expo-cicd-workflows/SKILL.md +92 -0
- package/dist/global-skills/expo-cicd-workflows/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-cicd-workflows/scripts/fetch.js +109 -0
- package/dist/global-skills/expo-cicd-workflows/scripts/package.json +11 -0
- package/dist/global-skills/expo-cicd-workflows/scripts/validate.js +84 -0
- package/dist/global-skills/expo-data-fetching/SKILL.md +449 -0
- package/dist/global-skills/expo-data-fetching/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-data-fetching/references/expo-router-loaders.md +341 -0
- package/dist/global-skills/expo-data-fetching/references/offline-and-cancellation.md +68 -0
- package/dist/global-skills/expo-deployment/SKILL.md +167 -0
- package/dist/global-skills/expo-deployment/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-deployment/references/app-store-metadata.md +497 -0
- package/dist/global-skills/expo-deployment/references/ios-app-store.md +371 -0
- package/dist/global-skills/expo-deployment/references/play-store.md +246 -0
- package/dist/global-skills/expo-deployment/references/testflight.md +58 -0
- package/dist/global-skills/expo-deployment/references/workflows.md +160 -0
- package/dist/global-skills/expo-dev-client/SKILL.md +174 -0
- package/dist/global-skills/expo-dev-client/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-dom/SKILL.md +417 -0
- package/dist/global-skills/expo-dom/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-examples/SKILL.md +99 -0
- package/dist/global-skills/expo-examples/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-examples/references/catalog.md +105 -0
- package/dist/global-skills/expo-module/SKILL.md +141 -0
- package/dist/global-skills/expo-module/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-module/references/config-plugin.md +90 -0
- package/dist/global-skills/expo-module/references/create-expo-module.md +206 -0
- package/dist/global-skills/expo-module/references/lifecycle.md +127 -0
- package/dist/global-skills/expo-module/references/module-config.md +48 -0
- package/dist/global-skills/expo-module/references/native-module.md +286 -0
- package/dist/global-skills/expo-module/references/native-view.md +171 -0
- package/dist/global-skills/expo-native-ui/SKILL.md +181 -0
- package/dist/global-skills/expo-native-ui/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-native-ui/references/animations.md +220 -0
- package/dist/global-skills/expo-native-ui/references/controls.md +270 -0
- package/dist/global-skills/expo-native-ui/references/gradients.md +106 -0
- package/dist/global-skills/expo-native-ui/references/icons.md +213 -0
- package/dist/global-skills/expo-native-ui/references/media.md +198 -0
- package/dist/global-skills/expo-native-ui/references/storage.md +121 -0
- package/dist/global-skills/expo-native-ui/references/visual-effects.md +197 -0
- package/dist/global-skills/expo-native-ui/references/webgpu-three.md +605 -0
- package/dist/global-skills/expo-observe/SKILL.md +30 -0
- package/dist/global-skills/expo-observe/references/metrics.md +47 -0
- package/dist/global-skills/expo-observe/references/queries.md +342 -0
- package/dist/global-skills/expo-observe/references/setup.md +317 -0
- package/dist/global-skills/expo-router/SKILL.md +230 -0
- package/dist/global-skills/expo-router/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-router/references/form-sheet.md +253 -0
- package/dist/global-skills/expo-router/references/route-structure.md +229 -0
- package/dist/global-skills/expo-router/references/search.md +248 -0
- package/dist/global-skills/expo-router/references/tabs.md +433 -0
- package/dist/global-skills/expo-router/references/toolbar-and-headers.md +284 -0
- package/dist/global-skills/expo-router/references/zoom-transitions.md +158 -0
- package/dist/global-skills/expo-skill-eval/SKILL.md +314 -0
- package/dist/global-skills/expo-skill-eval/agents/visual-grader.md +52 -0
- package/dist/global-skills/expo-skill-eval/references/design-rubric.md +45 -0
- package/dist/global-skills/expo-skill-eval/references/runtime-matrix.md +34 -0
- package/dist/global-skills/expo-skill-eval/scripts/check-static.sh +64 -0
- package/dist/global-skills/expo-skill-eval/scripts/clean-fixture.sh +56 -0
- package/dist/global-skills/expo-skill-eval/scripts/generate_viewer.py +450 -0
- package/dist/global-skills/expo-skill-eval/scripts/latest-sdk.sh +46 -0
- package/dist/global-skills/expo-skill-eval/scripts/make-fixture.sh +95 -0
- package/dist/global-skills/expo-skill-eval/scripts/make-workspace.sh +31 -0
- package/dist/global-skills/expo-skill-eval/scripts/snapshot-android.sh +284 -0
- package/dist/global-skills/expo-skill-eval/scripts/snapshot-ios.sh +132 -0
- package/dist/global-skills/expo-skill-eval/scripts/snapshot-web.sh +61 -0
- package/dist/global-skills/expo-skill-feedback/SKILL.md +54 -0
- package/dist/global-skills/expo-skill-feedback/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-skill-feedback/scripts/skill-event.cjs +180 -0
- package/dist/global-skills/expo-skill-feedback/scripts/skill-feedback.cjs +118 -0
- package/dist/global-skills/expo-skill-feedback/scripts/telemetry.cjs +65 -0
- package/dist/global-skills/expo-skill-feedback/scripts/telemetry_common.cjs +171 -0
- package/dist/global-skills/expo-tailwind-setup/SKILL.md +480 -0
- package/dist/global-skills/expo-tailwind-setup/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-ui/SKILL.md +47 -0
- package/dist/global-skills/expo-ui/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-ui/references/drop-in-replacements.md +27 -0
- package/dist/global-skills/expo-ui/references/jetpack-compose.md +73 -0
- package/dist/global-skills/expo-ui/references/swift-ui.md +73 -0
- package/dist/global-skills/expo-ui/references/universal.md +73 -0
- package/dist/global-skills/expo-ui/scripts/list-components.js +193 -0
- package/dist/global-skills/expo-upgrade/SKILL.md +134 -0
- package/dist/global-skills/expo-upgrade/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-upgrade/references/expo-av-to-audio.md +132 -0
- package/dist/global-skills/expo-upgrade/references/expo-av-to-video.md +160 -0
- package/dist/global-skills/expo-upgrade/references/native-tabs.md +124 -0
- package/dist/global-skills/expo-upgrade/references/new-architecture.md +79 -0
- package/dist/global-skills/expo-upgrade/references/react-19.md +79 -0
- package/dist/global-skills/expo-upgrade/references/react-compiler.md +59 -0
- package/dist/global-skills/expo-upgrade/references/react-navigation-to-expo-router.md +61 -0
- package/dist/global-skills/expo-web-to-native/SKILL.md +83 -0
- package/dist/global-skills/expo-web-to-native/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-web-to-native/references/false-friends.md +119 -0
- package/dist/global-skills/expo-web-to-native/references/native-patterns.md +39 -0
- package/dist/global-skills/expo-web-to-native/references/run-as-goal.md +48 -0
- package/dist/global-skills/expo-web-to-native/references/verify-on-device.md +45 -0
- package/dist/global-skills/firebase-ai-logic-basics/SKILL.md +165 -0
- package/dist/global-skills/firebase-ai-logic-basics/references/flutter_setup.md +95 -0
- package/dist/global-skills/firebase-ai-logic-basics/references/ios_setup.md +156 -0
- package/dist/global-skills/firebase-ai-logic-basics/references/usage_patterns_android.md +157 -0
- package/dist/global-skills/firebase-ai-logic-basics/references/usage_patterns_web.md +186 -0
- package/dist/global-skills/firebase-app-hosting-basics/SKILL.md +73 -0
- package/dist/global-skills/firebase-app-hosting-basics/references/cli_commands.md +85 -0
- package/dist/global-skills/firebase-app-hosting-basics/references/configuration.md +59 -0
- package/dist/global-skills/firebase-app-hosting-basics/references/emulation.md +59 -0
- package/dist/global-skills/firebase-auth-basics/SKILL.md +118 -0
- package/dist/global-skills/firebase-auth-basics/references/client_sdk_android.md +160 -0
- package/dist/global-skills/firebase-auth-basics/references/client_sdk_web.md +301 -0
- package/dist/global-skills/firebase-auth-basics/references/flutter_setup.md +149 -0
- package/dist/global-skills/firebase-auth-basics/references/ios_setup.md +87 -0
- package/dist/global-skills/firebase-auth-basics/references/security_rules.md +49 -0
- package/dist/global-skills/firebase-basics/SKILL.md +148 -0
- package/dist/global-skills/firebase-basics/references/android_setup.md +41 -0
- package/dist/global-skills/firebase-basics/references/firebase-cli-guide.md +18 -0
- package/dist/global-skills/firebase-basics/references/firebase-service-init.md +20 -0
- package/dist/global-skills/firebase-basics/references/flutter_setup.md +143 -0
- package/dist/global-skills/firebase-basics/references/ios_setup.md +113 -0
- package/dist/global-skills/firebase-basics/references/local-env-setup.md +80 -0
- package/dist/global-skills/firebase-basics/references/refresh/android_studio.md +41 -0
- package/dist/global-skills/firebase-basics/references/refresh/antigravity.md +64 -0
- package/dist/global-skills/firebase-basics/references/refresh/claude.md +12 -0
- package/dist/global-skills/firebase-basics/references/refresh/gemini-cli.md +13 -0
- package/dist/global-skills/firebase-basics/references/refresh/other-agents.md +67 -0
- package/dist/global-skills/firebase-basics/references/setup/android_studio.md +23 -0
- package/dist/global-skills/firebase-basics/references/setup/antigravity.md +98 -0
- package/dist/global-skills/firebase-basics/references/setup/claude_code.md +45 -0
- package/dist/global-skills/firebase-basics/references/setup/cursor.md +93 -0
- package/dist/global-skills/firebase-basics/references/setup/gemini_cli.md +53 -0
- package/dist/global-skills/firebase-basics/references/setup/github_copilot.md +104 -0
- package/dist/global-skills/firebase-basics/references/setup/other_agents.md +99 -0
- package/dist/global-skills/firebase-basics/references/web_setup.md +77 -0
- package/dist/global-skills/firebase-crashlytics/SKILL.md +42 -0
- package/dist/global-skills/firebase-crashlytics/references/android_setup.md +152 -0
- package/dist/global-skills/firebase-crashlytics/references/ios_setup.md +115 -0
- package/dist/global-skills/firebase-data-connect/SKILL.md +191 -0
- package/dist/global-skills/firebase-data-connect/examples.md +638 -0
- package/dist/global-skills/firebase-data-connect/reference/cloud_functions.md +184 -0
- package/dist/global-skills/firebase-data-connect/reference/config.md +271 -0
- package/dist/global-skills/firebase-data-connect/reference/data_seeding.md +185 -0
- package/dist/global-skills/firebase-data-connect/reference/native_sql.md +170 -0
- package/dist/global-skills/firebase-data-connect/reference/operations.md +385 -0
- package/dist/global-skills/firebase-data-connect/reference/realtime.md +210 -0
- package/dist/global-skills/firebase-data-connect/reference/schema.md +290 -0
- package/dist/global-skills/firebase-data-connect/reference/sdk_admin_node.md +141 -0
- package/dist/global-skills/firebase-data-connect/reference/sdk_android.md +126 -0
- package/dist/global-skills/firebase-data-connect/reference/sdk_flutter.md +134 -0
- package/dist/global-skills/firebase-data-connect/reference/sdk_ios.md +157 -0
- package/dist/global-skills/firebase-data-connect/reference/sdk_web.md +146 -0
- package/dist/global-skills/firebase-data-connect/reference/search.md +264 -0
- package/dist/global-skills/firebase-data-connect/reference/security.md +295 -0
- package/dist/global-skills/firebase-data-connect/templates.md +318 -0
- package/dist/global-skills/firebase-firestore/SKILL.md +89 -0
- package/dist/global-skills/firebase-firestore/references/enterprise/android_sdk_usage.md +230 -0
- package/dist/global-skills/firebase-firestore/references/enterprise/data_model.md +66 -0
- package/dist/global-skills/firebase-firestore/references/enterprise/flutter_setup.md +180 -0
- package/dist/global-skills/firebase-firestore/references/enterprise/indexes.md +135 -0
- package/dist/global-skills/firebase-firestore/references/enterprise/ios_setup.md +189 -0
- package/dist/global-skills/firebase-firestore/references/enterprise/provisioning.md +118 -0
- package/dist/global-skills/firebase-firestore/references/enterprise/python_sdk_usage.md +138 -0
- package/dist/global-skills/firebase-firestore/references/enterprise/security_rules.md +577 -0
- package/dist/global-skills/firebase-firestore/references/enterprise/web_sdk_usage.md +127 -0
- package/dist/global-skills/firebase-firestore/references/standard/android_sdk_usage.md +193 -0
- package/dist/global-skills/firebase-firestore/references/standard/flutter_setup.md +176 -0
- package/dist/global-skills/firebase-firestore/references/standard/indexes.md +113 -0
- package/dist/global-skills/firebase-firestore/references/standard/ios_setup.md +174 -0
- package/dist/global-skills/firebase-firestore/references/standard/provisioning.md +110 -0
- package/dist/global-skills/firebase-firestore/references/standard/security_rules.md +577 -0
- package/dist/global-skills/firebase-firestore/references/standard/web_sdk_usage.md +192 -0
- package/dist/global-skills/firebase-hosting-basics/SKILL.md +64 -0
- package/dist/global-skills/firebase-hosting-basics/references/configuration.md +115 -0
- package/dist/global-skills/firebase-hosting-basics/references/deploying.md +48 -0
- package/dist/global-skills/firebase-remote-config-basics/SKILL.md +124 -0
- package/dist/global-skills/firebase-remote-config-basics/references/android_setup.md +91 -0
- package/dist/global-skills/firebase-remote-config-basics/references/ios_setup.md +89 -0
- package/dist/global-skills/firebase-security-rules-auditor/SKILL.md +70 -0
- package/dist/global-skills/go-live/SKILL.md +90 -0
- package/dist/global-skills/harden/SKILL.md +101 -0
- package/dist/global-skills/instrument-feature-flags/SKILL.md +88 -0
- package/dist/global-skills/instrument-feature-flags/references/adding-feature-flag-code.md +3578 -0
- package/dist/global-skills/instrument-feature-flags/references/android.md +146 -0
- package/dist/global-skills/instrument-feature-flags/references/api.md +194 -0
- package/dist/global-skills/instrument-feature-flags/references/best-practices.md +231 -0
- package/dist/global-skills/instrument-feature-flags/references/django.md +263 -0
- package/dist/global-skills/instrument-feature-flags/references/dotnet.md +763 -0
- package/dist/global-skills/instrument-feature-flags/references/elixir.md +47 -0
- package/dist/global-skills/instrument-feature-flags/references/flask.md +131 -0
- package/dist/global-skills/instrument-feature-flags/references/flutter.md +212 -0
- package/dist/global-skills/instrument-feature-flags/references/go.md +208 -0
- package/dist/global-skills/instrument-feature-flags/references/ios.md +146 -0
- package/dist/global-skills/instrument-feature-flags/references/java.md +94 -0
- package/dist/global-skills/instrument-feature-flags/references/laravel.md +170 -0
- package/dist/global-skills/instrument-feature-flags/references/next-js.md +383 -0
- package/dist/global-skills/instrument-feature-flags/references/nodejs.md +216 -0
- package/dist/global-skills/instrument-feature-flags/references/php.md +187 -0
- package/dist/global-skills/instrument-feature-flags/references/python.md +191 -0
- package/dist/global-skills/instrument-feature-flags/references/react-native.md +166 -0
- package/dist/global-skills/instrument-feature-flags/references/react.md +302 -0
- package/dist/global-skills/instrument-feature-flags/references/ruby-on-rails.md +604 -0
- package/dist/global-skills/instrument-feature-flags/references/ruby.md +200 -0
- package/dist/global-skills/instrument-feature-flags/references/rust.md +222 -0
- package/dist/global-skills/instrument-feature-flags/references/usage.md +600 -0
- package/dist/global-skills/instrument-feature-flags/references/web.md +193 -0
- package/dist/global-skills/instrument-product-analytics/SKILL.md +139 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-android.md +1639 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-angular.md +944 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-hybrid.md +1001 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-ssr.md +1004 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-static.md +720 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-view-transitions.md +810 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-django.md +1167 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-expo.md +1412 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-fastapi.md +1585 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-flask.md +1208 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-laravel.md +2267 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-next-app-router.md +712 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-next-pages-router.md +767 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-nuxt-3-6.md +939 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-nuxt-4.md +1078 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-php.md +527 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-python.md +481 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-react-native.md +1823 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-react-react-router-6.md +582 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-react-react-router-7-data.md +892 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-react-react-router-7-declarative.md +649 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-react-react-router-7-framework.md +1218 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-react-tanstack-router-code-based.md +793 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-react-tanstack-router-file-based.md +780 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-ruby-on-rails.md +1320 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-ruby.md +452 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-sveltekit.md +854 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-swift.md +665 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-tanstack-start.md +1199 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-vue-3.md +910 -0
- package/dist/global-skills/instrument-product-analytics/references/android.md +811 -0
- package/dist/global-skills/instrument-product-analytics/references/angular.md +376 -0
- package/dist/global-skills/instrument-product-analytics/references/astro.md +165 -0
- package/dist/global-skills/instrument-product-analytics/references/configuration.md +299 -0
- package/dist/global-skills/instrument-product-analytics/references/django.md +263 -0
- package/dist/global-skills/instrument-product-analytics/references/dotnet.md +763 -0
- package/dist/global-skills/instrument-product-analytics/references/elixir.md +414 -0
- package/dist/global-skills/instrument-product-analytics/references/flask.md +131 -0
- package/dist/global-skills/instrument-product-analytics/references/flutter.md +845 -0
- package/dist/global-skills/instrument-product-analytics/references/go.md +567 -0
- package/dist/global-skills/instrument-product-analytics/references/identify-users.md +272 -0
- package/dist/global-skills/instrument-product-analytics/references/ios.md +154 -0
- package/dist/global-skills/instrument-product-analytics/references/laravel.md +170 -0
- package/dist/global-skills/instrument-product-analytics/references/next-js.md +383 -0
- package/dist/global-skills/instrument-product-analytics/references/nuxt-js-3-6.md +244 -0
- package/dist/global-skills/instrument-product-analytics/references/nuxt-js.md +253 -0
- package/dist/global-skills/instrument-product-analytics/references/php.md +646 -0
- package/dist/global-skills/instrument-product-analytics/references/posthog-python.md +1675 -0
- package/dist/global-skills/instrument-product-analytics/references/python.md +898 -0
- package/dist/global-skills/instrument-product-analytics/references/react-native.md +1338 -0
- package/dist/global-skills/instrument-product-analytics/references/react-router-v6.md +376 -0
- package/dist/global-skills/instrument-product-analytics/references/react-router-v7-data-mode.md +364 -0
- package/dist/global-skills/instrument-product-analytics/references/react-router-v7-declarative-mode.md +376 -0
- package/dist/global-skills/instrument-product-analytics/references/react-router-v7-framework-mode.md +479 -0
- package/dist/global-skills/instrument-product-analytics/references/ruby-on-rails.md +604 -0
- package/dist/global-skills/instrument-product-analytics/references/ruby.md +759 -0
- package/dist/global-skills/instrument-product-analytics/references/svelte.md +234 -0
- package/dist/global-skills/instrument-product-analytics/references/tanstack-start.md +193 -0
- package/dist/global-skills/instrument-product-analytics/references/usage.md +600 -0
- package/dist/global-skills/instrument-product-analytics/references/vue-js.md +306 -0
- package/dist/global-skills/manifest.json +125 -0
- package/dist/global-skills/mongodb-atlas-stream-processing/SKILL.md +284 -0
- package/dist/global-skills/mongodb-atlas-stream-processing/references/connection-configs.md +298 -0
- package/dist/global-skills/mongodb-atlas-stream-processing/references/development-workflow.md +304 -0
- package/dist/global-skills/mongodb-atlas-stream-processing/references/mcp-troubleshooting.md +55 -0
- package/dist/global-skills/mongodb-atlas-stream-processing/references/output-diagnostics.md +150 -0
- package/dist/global-skills/mongodb-atlas-stream-processing/references/pipeline-patterns.md +457 -0
- package/dist/global-skills/mongodb-atlas-stream-processing/references/sizing-and-parallelism.md +178 -0
- package/dist/global-skills/mongodb-connection/SKILL.md +201 -0
- package/dist/global-skills/mongodb-connection/references/monitoring-guide.md +191 -0
- package/dist/global-skills/mongodb-mcp-setup/SKILL.md +324 -0
- package/dist/global-skills/mongodb-natural-language-querying/SKILL.md +195 -0
- package/dist/global-skills/mongodb-query-optimizer/SKILL.md +150 -0
- package/dist/global-skills/mongodb-query-optimizer/references/aggregation-optimization.md +210 -0
- package/dist/global-skills/mongodb-query-optimizer/references/antipattern-examples.md +74 -0
- package/dist/global-skills/mongodb-query-optimizer/references/core-indexing-principles.md +134 -0
- package/dist/global-skills/mongodb-query-optimizer/references/update-query-examples.md +39 -0
- package/dist/global-skills/mongodb-schema-design/SKILL.md +181 -0
- package/dist/global-skills/mongodb-schema-design/references/antipattern-excessive-lookups.md +84 -0
- package/dist/global-skills/mongodb-schema-design/references/antipattern-unnecessary-collections.md +91 -0
- package/dist/global-skills/mongodb-schema-design/references/antipattern-unnecessary-indexes.md +95 -0
- package/dist/global-skills/mongodb-schema-design/references/fundamental-document-model.md +91 -0
- package/dist/global-skills/mongodb-schema-design/references/fundamental-document-size.md +226 -0
- package/dist/global-skills/mongodb-schema-design/references/fundamental-embed-vs-reference.md +418 -0
- package/dist/global-skills/mongodb-schema-design/references/fundamental-schema-validation.md +131 -0
- package/dist/global-skills/mongodb-schema-design/references/pattern-approximation.md +80 -0
- package/dist/global-skills/mongodb-schema-design/references/pattern-archive.md +143 -0
- package/dist/global-skills/mongodb-schema-design/references/pattern-attribute.md +77 -0
- package/dist/global-skills/mongodb-schema-design/references/pattern-bucket.md +102 -0
- package/dist/global-skills/mongodb-schema-design/references/pattern-computed.md +162 -0
- package/dist/global-skills/mongodb-schema-design/references/pattern-document-versioning.md +166 -0
- package/dist/global-skills/mongodb-schema-design/references/pattern-extended-reference.md +72 -0
- package/dist/global-skills/mongodb-schema-design/references/pattern-outlier.md +159 -0
- package/dist/global-skills/mongodb-schema-design/references/pattern-polymorphic.md +167 -0
- package/dist/global-skills/mongodb-schema-design/references/pattern-schema-versioning.md +273 -0
- package/dist/global-skills/mongodb-schema-design/references/pattern-time-series-collections.md +190 -0
- package/dist/global-skills/mongodb-schema-design/references/source-query-stats.md +123 -0
- package/dist/global-skills/mongodb-schema-design/references/source-slow-query-logs.md +63 -0
- package/dist/global-skills/mongodb-search-and-ai/SKILL.md +142 -0
- package/dist/global-skills/mongodb-search-and-ai/references/hybrid-search.md +697 -0
- package/dist/global-skills/mongodb-search-and-ai/references/lexical-search-indexing.md +584 -0
- package/dist/global-skills/mongodb-search-and-ai/references/lexical-search-querying.md +636 -0
- package/dist/global-skills/mongodb-search-and-ai/references/vector-search.md +746 -0
- package/dist/global-skills/native-data-fetching/SKILL.md +505 -0
- package/dist/global-skills/native-data-fetching/agents/openai.yaml +4 -0
- package/dist/global-skills/native-data-fetching/references/expo-router-loaders.md +341 -0
- package/dist/global-skills/neon/SKILL.md +343 -0
- package/dist/global-skills/neon-ai-gateway/SKILL.md +236 -0
- package/dist/global-skills/neon-functions/SKILL.md +490 -0
- package/dist/global-skills/neon-functions/references/ai-sdk.md +139 -0
- package/dist/global-skills/neon-functions/references/hono-websockets.md +145 -0
- package/dist/global-skills/neon-functions/references/mastra-studio.md +127 -0
- package/dist/global-skills/neon-functions/references/mcp.md +137 -0
- package/dist/global-skills/neon-functions/references/sentry.md +131 -0
- package/dist/global-skills/neon-functions/references/sse.md +143 -0
- package/dist/global-skills/neon-object-storage/SKILL.md +197 -0
- package/dist/global-skills/neon-postgres/SKILL.md +376 -0
- package/dist/global-skills/neon-postgres-branches/SKILL.md +281 -0
- package/dist/global-skills/neon-postgres-egress-optimizer/SKILL.md +247 -0
- package/dist/global-skills/onboarding/SKILL.md +101 -0
- package/dist/global-skills/plan-my-idea/SKILL.md +67 -0
- package/dist/global-skills/publish-app/SKILL.md +72 -0
- package/dist/global-skills/publish-extension/SKILL.md +47 -0
- package/dist/global-skills/resend/SKILL.md +294 -0
- package/dist/global-skills/resend/references/api-keys.md +98 -0
- package/dist/global-skills/resend/references/automations.md +228 -0
- package/dist/global-skills/resend/references/broadcasts.md +125 -0
- package/dist/global-skills/resend/references/contact-properties.md +111 -0
- package/dist/global-skills/resend/references/contacts.md +174 -0
- package/dist/global-skills/resend/references/domains.md +179 -0
- package/dist/global-skills/resend/references/events.md +119 -0
- package/dist/global-skills/resend/references/fetch-all-templates.mjs +37 -0
- package/dist/global-skills/resend/references/installation.md +142 -0
- package/dist/global-skills/resend/references/logs.md +161 -0
- package/dist/global-skills/resend/references/receiving.md +287 -0
- package/dist/global-skills/resend/references/segments.md +77 -0
- package/dist/global-skills/resend/references/sending/batch-email-examples.md +807 -0
- package/dist/global-skills/resend/references/sending/best-practices.md +453 -0
- package/dist/global-skills/resend/references/sending/email-management.md +135 -0
- package/dist/global-skills/resend/references/sending/overview.md +209 -0
- package/dist/global-skills/resend/references/sending/single-email-examples.md +470 -0
- package/dist/global-skills/resend/references/templates.md +202 -0
- package/dist/global-skills/resend/references/topics.md +104 -0
- package/dist/global-skills/resend/references/webhooks.md +317 -0
- package/dist/global-skills/reset-password/SKILL.md +59 -0
- package/dist/global-skills/save-data/SKILL.md +70 -0
- package/dist/global-skills/sentry-sdk-setup/SKILL.md +116 -0
- package/dist/global-skills/sentry-workflow/SKILL.md +32 -0
- package/dist/global-skills/setup-email/SKILL.md +69 -0
- package/dist/global-skills/setup-payments/SKILL.md +82 -0
- package/dist/global-skills/setup-sms/SKILL.md +51 -0
- package/dist/global-skills/sign-in-with-email-link/SKILL.md +53 -0
- package/dist/global-skills/sign-in-with-google/SKILL.md +68 -0
- package/dist/global-skills/sign-in-with-phone/SKILL.md +53 -0
- package/dist/global-skills/stripe-best-practices/SKILL.md +48 -0
- package/dist/global-skills/stripe-best-practices/references/billing.md +58 -0
- package/dist/global-skills/stripe-best-practices/references/connect.md +173 -0
- package/dist/global-skills/stripe-best-practices/references/payments.md +79 -0
- package/dist/global-skills/stripe-best-practices/references/security.md +109 -0
- package/dist/global-skills/stripe-best-practices/references/tax.md +37 -0
- package/dist/global-skills/stripe-best-practices/references/treasury.md +16 -0
- package/dist/global-skills/supabase/CHANGELOG.md +53 -0
- package/dist/global-skills/supabase/SKILL.md +145 -0
- package/dist/global-skills/supabase/assets/feedback-issue-template.md +17 -0
- package/dist/global-skills/supabase/references/skill-feedback.md +17 -0
- package/dist/global-skills/supabase-postgres-best-practices/CHANGELOG.md +43 -0
- package/dist/global-skills/supabase-postgres-best-practices/SKILL.md +64 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/_contributing.md +170 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/_sections.md +39 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/_template.md +34 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +55 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +49 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +46 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/conn-limits.md +44 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/conn-pooling.md +41 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +46 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/data-batch-inserts.md +54 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/data-n-plus-one.md +53 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/data-pagination.md +50 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/data-upsert.md +50 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/lock-advisory.md +56 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +68 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/lock-short-transactions.md +50 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/lock-skip-locked.md +54 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +45 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +55 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +55 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/query-composite-indexes.md +44 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/query-covering-indexes.md +40 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/query-index-types.md +48 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/query-missing-indexes.md +43 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/query-partial-indexes.md +45 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/schema-constraints.md +80 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/schema-data-types.md +46 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +59 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +55 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/schema-partitioning.md +55 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/schema-primary-keys.md +61 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/security-privileges.md +54 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/security-rls-basics.md +50 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/security-rls-performance.md +63 -0
- package/dist/global-skills/track-errors/SKILL.md +67 -0
- package/dist/global-skills/update-kit/SKILL.md +75 -0
- package/dist/global-skills/upgrading-expo/SKILL.md +134 -0
- package/dist/global-skills/upgrading-expo/agents/openai.yaml +4 -0
- package/dist/global-skills/upgrading-expo/references/expo-av-to-audio.md +132 -0
- package/dist/global-skills/upgrading-expo/references/expo-av-to-video.md +160 -0
- package/dist/global-skills/upgrading-expo/references/native-tabs.md +124 -0
- package/dist/global-skills/upgrading-expo/references/new-architecture.md +79 -0
- package/dist/global-skills/upgrading-expo/references/react-19.md +79 -0
- package/dist/global-skills/upgrading-expo/references/react-compiler.md +59 -0
- package/dist/global-skills/upgrading-expo/references/react-navigation-to-expo-router.md +61 -0
- package/dist/global-skills/use-dom/SKILL.md +417 -0
- package/dist/global-skills/use-dom/agents/openai.yaml +4 -0
- package/dist/global-skills/use-kit-mcp/SKILL.md +100 -0
- package/dist/global-skills/use-railway/SKILL.md +357 -0
- package/dist/global-skills/use-railway/references/analyze-db-mongo.md +84 -0
- package/dist/global-skills/use-railway/references/analyze-db-mysql.md +254 -0
- package/dist/global-skills/use-railway/references/analyze-db-postgres.md +479 -0
- package/dist/global-skills/use-railway/references/analyze-db-redis.md +208 -0
- package/dist/global-skills/use-railway/references/analyze-db.md +344 -0
- package/dist/global-skills/use-railway/references/configure.md +359 -0
- package/dist/global-skills/use-railway/references/deploy.md +225 -0
- package/dist/global-skills/use-railway/references/feature-flags.md +89 -0
- package/dist/global-skills/use-railway/references/iac.md +108 -0
- package/dist/global-skills/use-railway/references/operate.md +273 -0
- package/dist/global-skills/use-railway/references/request.md +262 -0
- package/dist/global-skills/use-railway/references/sandbox.md +167 -0
- package/dist/global-skills/use-railway/references/setup.md +364 -0
- package/dist/global-skills/use-railway/scripts/analyze-mongo.py +1549 -0
- package/dist/global-skills/use-railway/scripts/analyze-mysql.py +1195 -0
- package/dist/global-skills/use-railway/scripts/analyze-postgres.py +3058 -0
- package/dist/global-skills/use-railway/scripts/analyze-redis.py +1090 -0
- package/dist/global-skills/use-railway/scripts/dal.py +671 -0
- package/dist/global-skills/use-railway/scripts/enable-pg-stats.py +170 -0
- package/dist/global-skills/use-railway/scripts/pg-extensions.py +370 -0
- package/dist/global-skills/use-railway/scripts/railway-api.sh +52 -0
- package/dist/global-skills/vercel-composition-patterns/AGENTS.md +946 -0
- package/dist/global-skills/vercel-composition-patterns/README.md +60 -0
- package/dist/global-skills/vercel-composition-patterns/SKILL.md +89 -0
- package/dist/global-skills/vercel-composition-patterns/metadata.json +11 -0
- package/dist/global-skills/vercel-composition-patterns/rules/_sections.md +29 -0
- package/dist/global-skills/vercel-composition-patterns/rules/_template.md +24 -0
- package/dist/global-skills/vercel-composition-patterns/rules/architecture-avoid-boolean-props.md +100 -0
- package/dist/global-skills/vercel-composition-patterns/rules/architecture-compound-components.md +112 -0
- package/dist/global-skills/vercel-composition-patterns/rules/patterns-children-over-render-props.md +87 -0
- package/dist/global-skills/vercel-composition-patterns/rules/patterns-explicit-variants.md +100 -0
- package/dist/global-skills/vercel-composition-patterns/rules/react19-no-forwardref.md +42 -0
- package/dist/global-skills/vercel-composition-patterns/rules/state-context-interface.md +191 -0
- package/dist/global-skills/vercel-composition-patterns/rules/state-decouple-implementation.md +113 -0
- package/dist/global-skills/vercel-composition-patterns/rules/state-lift-state.md +125 -0
- package/dist/global-skills/vercel-react-best-practices/AGENTS.md +3810 -0
- package/dist/global-skills/vercel-react-best-practices/README.md +123 -0
- package/dist/global-skills/vercel-react-best-practices/SKILL.md +149 -0
- package/dist/global-skills/vercel-react-best-practices/metadata.json +15 -0
- package/dist/global-skills/vercel-react-best-practices/rules/_sections.md +46 -0
- package/dist/global-skills/vercel-react-best-practices/rules/_template.md +28 -0
- package/dist/global-skills/vercel-react-best-practices/rules/advanced-effect-event-deps.md +56 -0
- package/dist/global-skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/dist/global-skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/dist/global-skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/dist/global-skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/dist/global-skills/vercel-react-best-practices/rules/async-cheap-condition-before-await.md +37 -0
- package/dist/global-skills/vercel-react-best-practices/rules/async-defer-await.md +82 -0
- package/dist/global-skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/dist/global-skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/dist/global-skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/dist/global-skills/vercel-react-best-practices/rules/bundle-analyzable-paths.md +63 -0
- package/dist/global-skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +60 -0
- package/dist/global-skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/dist/global-skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/dist/global-skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/dist/global-skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/dist/global-skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/dist/global-skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/dist/global-skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/dist/global-skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-flatmap-filter.md +60 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-request-idle-callback.md +105 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rendering-resource-hints.md +85 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +68 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +82 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +64 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md +59 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/dist/global-skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/dist/global-skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/dist/global-skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/dist/global-skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/dist/global-skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/dist/global-skills/vercel-react-best-practices/rules/server-hoist-static-io.md +149 -0
- package/dist/global-skills/vercel-react-best-practices/rules/server-no-shared-module-state.md +50 -0
- package/dist/global-skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/dist/global-skills/vercel-react-best-practices/rules/server-parallel-nested-fetching.md +34 -0
- package/dist/global-skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/dist/global-skills/web-to-native/SKILL.md +83 -0
- package/dist/global-skills/web-to-native/references/false-friends.md +119 -0
- package/dist/global-skills/web-to-native/references/native-patterns.md +39 -0
- package/dist/global-skills/web-to-native/references/run-as-goal.md +48 -0
- package/dist/global-skills/web-to-native/references/verify-on-device.md +45 -0
- package/dist/global-skills/wire-auth/SKILL.md +28 -0
- package/dist/global-skills/wire-database/SKILL.md +28 -0
- package/dist/global-skills/wire-email/SKILL.md +27 -0
- package/dist/global-skills/wire-payments/SKILL.md +27 -0
- package/dist/global-skills/workers-best-practices/SKILL.md +127 -0
- package/dist/global-skills/workers-best-practices/references/review.md +174 -0
- package/dist/global-skills/workers-best-practices/references/rules.md +463 -0
- package/dist/global-skills/wrangler/SKILL.md +922 -0
- package/dist/global-skills/xcode-project-setup/SKILL.md +140 -0
- package/dist/global-skills/xcode-project-setup/scripts/xcode_spm_setup/Package.resolved +41 -0
- package/dist/global-skills/xcode-project-setup/scripts/xcode_spm_setup/Package.swift +17 -0
- package/dist/global-skills/xcode-project-setup/scripts/xcode_spm_setup/Sources/main.swift +232 -0
- package/package.json +21 -20
- package/LICENSE.md +0 -47
- package/dist/index.js +0 -21593
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mongodb-mcp-setup
|
|
3
|
+
description: Guide users through configuring key MongoDB MCP server options. Use this skill when a user has the MongoDB MCP server installed but hasn't configured the required environment variables, or when they ask about connecting to MongoDB/Atlas and don't have the credentials set up.
|
|
4
|
+
license: Apache-2.0
|
|
5
|
+
metadata:
|
|
6
|
+
version: "1.0.0"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# MongoDB MCP Server Setup
|
|
10
|
+
|
|
11
|
+
This skill guides users through configuring the MongoDB MCP server for use with an agentic client.
|
|
12
|
+
|
|
13
|
+
## Overview
|
|
14
|
+
|
|
15
|
+
The MongoDB MCP server requires authentication. Users have three options:
|
|
16
|
+
|
|
17
|
+
1. **Connection String** (Option A): Direct connection to a specific cluster
|
|
18
|
+
- Quick setup for single cluster
|
|
19
|
+
- Requires `MDB_MCP_CONNECTION_STRING` environment variable
|
|
20
|
+
|
|
21
|
+
2. **Service Account Credentials** (Option B): MongoDB Atlas Admin API access
|
|
22
|
+
- **Recommended for Atlas users** - simplifies authentication and data access
|
|
23
|
+
- Access to Atlas Admin API and dynamic cluster connection via `atlas-connect-cluster`
|
|
24
|
+
- No manual DB user credential management
|
|
25
|
+
- Requires `MDB_MCP_API_CLIENT_ID` and `MDB_MCP_API_CLIENT_SECRET` environment variables
|
|
26
|
+
|
|
27
|
+
3. **Atlas Local** (Option C): Local development with Docker
|
|
28
|
+
- **Best for local testing** - zero configuration required
|
|
29
|
+
- Runs Atlas locally in Docker, requires Docker installed
|
|
30
|
+
- No credentials or cloud cluster access
|
|
31
|
+
|
|
32
|
+
This is an interactive step-by-step guide. The agent detects the user's environment and provides tailored instructions, but **never asks for or handles credentials** — users add those directly to their shell profile or agentic client config in Step 5. Make this clear to the user whenever credentials come up in Steps 3a and 3b.
|
|
33
|
+
|
|
34
|
+
## Step 0: Detect Client
|
|
35
|
+
|
|
36
|
+
Before anything else, determine which agentic client the user is running. This controls how credentials are configured in Step 1 and Step 5.
|
|
37
|
+
|
|
38
|
+
Run:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
env | grep "^CODEX_"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
- **If no `CODEX_*` variables are present** → the user is running a **shell-based client** (Claude, Cursor, Gemini CLI, Copilot CLI, etc.). Credentials are configured via shell profile environment variables.
|
|
45
|
+
- **If any `CODEX_*` variables are present** → the user is running **Codex**. Credentials are stored in `~/.codex/config.toml` (macOS/Linux) or `%USERPROFILE%\.codex\config.toml` (Windows), not in shell environment variables. The desktop app does not inherit shell env vars when launched from Finder, Launchpad, or the Windows Start menu.
|
|
46
|
+
|
|
47
|
+
Carry this **client type** (Codex vs. shell-based) forward through every subsequent step.
|
|
48
|
+
|
|
49
|
+
## Step 1: Check Existing Configuration
|
|
50
|
+
|
|
51
|
+
Check whether credentials are already configured.
|
|
52
|
+
|
|
53
|
+
**For shell-based clients** — check the current environment:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
env | grep "^MDB_MCP" | sed '/^MDB_MCP_READ_ONLY=/!s/=.*/=[set]/'
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**For Codex** — search `~/.codex/config.toml` (macOS/Linux) or `%USERPROFILE%\.codex\config.toml` (Windows):
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
grep -E 'MDB_MCP_(CONNECTION_STRING|API_CLIENT_ID|API_CLIENT_SECRET|READ_ONLY)' ~/.codex/config.toml 2>/dev/null | sed '/MDB_MCP_READ_ONLY/!s/[[:space:]]*=[[:space:]].*/ = "[set]"/'
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Interpretation (both):**
|
|
66
|
+
|
|
67
|
+
- If `MDB_MCP_CONNECTION_STRING` appears → connection string auth is configured
|
|
68
|
+
- If both `MDB_MCP_API_CLIENT_ID` and `MDB_MCP_API_CLIENT_SECRET` appear → service account auth is configured. If only one is present, treat it as incomplete.
|
|
69
|
+
- If `MDB_MCP_READ_ONLY` appears → read-only mode is enabled
|
|
70
|
+
|
|
71
|
+
**Partial Configuration Handling:**
|
|
72
|
+
|
|
73
|
+
- User wants to add read-only to existing setup (has auth, no read-only flag) → skip to Step 4
|
|
74
|
+
- User wants to switch authentication methods → explain they should remove the old credentials first (from `config.toml` for Codex, from their shell profile for shell-based clients), then proceed with Steps 2–5
|
|
75
|
+
- User wants to update credentials → skip to Step 5
|
|
76
|
+
|
|
77
|
+
**Important**: If the user wants an Atlas Admin API action (managing clusters, creating users, performance advisor) but only has `MDB_MCP_CONNECTION_STRING`, explain they need service account credentials and offer to walk through setup.
|
|
78
|
+
|
|
79
|
+
## Step 2: Present Configuration Options
|
|
80
|
+
|
|
81
|
+
If no valid configuration exists, present the options:
|
|
82
|
+
|
|
83
|
+
**Connection String (Option A)** — Best for:
|
|
84
|
+
|
|
85
|
+
- Single cluster access
|
|
86
|
+
- Existing database credentials
|
|
87
|
+
- Self-hosted MongoDB or no Atlas Admin API needs
|
|
88
|
+
|
|
89
|
+
**Service Account Credentials (Option B)** — Best for:
|
|
90
|
+
|
|
91
|
+
- MongoDB Atlas users (recommended)
|
|
92
|
+
- Multi-cluster switching
|
|
93
|
+
- Atlas Admin API access (cluster management, user creation, performance monitoring)
|
|
94
|
+
|
|
95
|
+
**Atlas Local (Option C)** — Best for:
|
|
96
|
+
|
|
97
|
+
- Local development/testing without cloud setup
|
|
98
|
+
- Fastest setup with Docker, no credentials required
|
|
99
|
+
|
|
100
|
+
Ask the user which option they'd like to proceed with.
|
|
101
|
+
|
|
102
|
+
## Step 3a: Connection String Setup
|
|
103
|
+
|
|
104
|
+
If the user chooses Option A:
|
|
105
|
+
|
|
106
|
+
### 3a.1: Explain How to Find the Connection String
|
|
107
|
+
|
|
108
|
+
Explain where and how to obtain their connection string:
|
|
109
|
+
|
|
110
|
+
**For MongoDB Atlas:**
|
|
111
|
+
|
|
112
|
+
1. Go to [cloud.mongodb.com](https://cloud.mongodb.com)
|
|
113
|
+
2. Select your cluster → click **Connect**
|
|
114
|
+
3. Choose **Drivers** or **Shell** → copy the connection string
|
|
115
|
+
4. Replace `<username>` and `<password>` with your database user credentials
|
|
116
|
+
|
|
117
|
+
**For self-hosted MongoDB:**
|
|
118
|
+
|
|
119
|
+
- The connection string is typically configured by your DBA or in your application config
|
|
120
|
+
- Format: `mongodb://username:password@host:port/database`
|
|
121
|
+
|
|
122
|
+
**Expected formats:**
|
|
123
|
+
|
|
124
|
+
- `mongodb://username:password@host:port/database`
|
|
125
|
+
- `mongodb+srv://username:password@cluster.mongodb.net/database`
|
|
126
|
+
- `mongodb://host:port` (local, no auth)
|
|
127
|
+
|
|
128
|
+
Proceed to Step 4 (Determine Read-Only Access).
|
|
129
|
+
|
|
130
|
+
## Step 3b: Service Account Setup
|
|
131
|
+
|
|
132
|
+
If the user chooses Option B:
|
|
133
|
+
|
|
134
|
+
### 3b.1: Guide Through Atlas Service Account Creation
|
|
135
|
+
|
|
136
|
+
Direct the user to create a MongoDB Atlas Service Account:
|
|
137
|
+
|
|
138
|
+
**Full documentation**: https://www.mongodb.com/docs/mcp-server/prerequisites/
|
|
139
|
+
|
|
140
|
+
Walk them through the key steps:
|
|
141
|
+
|
|
142
|
+
1. **Navigate to MongoDB Atlas** — [cloud.mongodb.com](https://cloud.mongodb.com)
|
|
143
|
+
2. **Select your organization** from the ORGANIZATION section near the top of the page
|
|
144
|
+
3. **Go to "Project Identity and Access"** on the left sidebar → **Applications** → **Create Service Account**
|
|
145
|
+
4. **Set Permissions** — Grant Organization Member or Project Owner (see docs for exact permission mappings)
|
|
146
|
+
5. **Generate Credentials** — Create Client ID and Secret
|
|
147
|
+
- ⚠️ The **Client Secret is shown only once** — save it immediately before leaving the page
|
|
148
|
+
5. **Note both values** — you'll need Client ID and Client Secret for Step 5
|
|
149
|
+
|
|
150
|
+
### 3b.2: API Access List Configuration
|
|
151
|
+
|
|
152
|
+
⚠️ **CRITICAL**: The user MUST add their IP address to the service account's API Access List, or all Atlas Admin API operations will fail.
|
|
153
|
+
|
|
154
|
+
Steps:
|
|
155
|
+
|
|
156
|
+
1. On the service account details page, find **API Access List**
|
|
157
|
+
2. Click **Add Access List Entry**
|
|
158
|
+
3. Add your current IP address. Use a specific IP or CIDR range whenever possible.
|
|
159
|
+
- ⚠️ **`0.0.0.0/0` allows access from any IP — this is a significant security risk.** Only use it as a last resort for temporary testing and remove it immediately afterward. It should never be used in production.
|
|
160
|
+
4. Save changes
|
|
161
|
+
|
|
162
|
+
This is more secure than global Network Access settings as it only affects API access, not database connections.
|
|
163
|
+
|
|
164
|
+
Proceed to Step 4 (Determine Read-Only Access).
|
|
165
|
+
|
|
166
|
+
## Step 3c: Atlas Local Setup
|
|
167
|
+
|
|
168
|
+
If the user chooses Option C:
|
|
169
|
+
|
|
170
|
+
### 3c.1: Check Docker Installation
|
|
171
|
+
|
|
172
|
+
Verify Docker is installed:
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
docker info
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
If not installed, direct them to: https://www.docker.com/get-started
|
|
179
|
+
|
|
180
|
+
### 3c.2: Confirm Setup Complete
|
|
181
|
+
|
|
182
|
+
Atlas Local requires no credentials — the user is ready to go:
|
|
183
|
+
|
|
184
|
+
- Create deployments: `atlas-local-create-deployment`
|
|
185
|
+
- List deployments: `atlas-local-list-deployments`
|
|
186
|
+
- All operations work out of the box with Docker
|
|
187
|
+
|
|
188
|
+
**Skip Steps 4 and 5** (no configuration needed) and proceed to Step 6 (Next Steps).
|
|
189
|
+
|
|
190
|
+
## Step 4: Determine Read-Only vs Read-Write Access
|
|
191
|
+
|
|
192
|
+
**Only applies to Options A and B. Skip to Step 6 for Option C.**
|
|
193
|
+
|
|
194
|
+
Ask whether they want read-only or read-write access:
|
|
195
|
+
|
|
196
|
+
- **Read-Write** (default): Full data access, modifications allowed
|
|
197
|
+
- Best for: Development, testing, administrative tasks
|
|
198
|
+
|
|
199
|
+
- **Read-Only**: Data reads only, no modifications
|
|
200
|
+
- Best for: Production data safety, reporting, compliance
|
|
201
|
+
|
|
202
|
+
**If read-only**: include the read-only flag in the credential snippet in Step 5.
|
|
203
|
+
**If read-write**: omit it (defaults to read-write).
|
|
204
|
+
|
|
205
|
+
Proceed to Step 5 (Configure Credentials).
|
|
206
|
+
|
|
207
|
+
## Step 5: Configure Credentials
|
|
208
|
+
|
|
209
|
+
**Do not ask for or handle credentials** — provide exact instructions so the user can add them directly.
|
|
210
|
+
|
|
211
|
+
### 5.1: Add credentials
|
|
212
|
+
|
|
213
|
+
**For shell-based clients** — store credentials in a dedicated `~/.mcp-env` file (not directly in the shell profile), then source it from the profile. This keeps credentials out of files that are often group/world readable by default and prevents accidentally committing them to git.
|
|
214
|
+
|
|
215
|
+
**For Codex** — add to `~/.codex/config.toml` (macOS/Linux) or `%USERPROFILE%\.codex\config.toml` (Windows).
|
|
216
|
+
|
|
217
|
+
Show the user the appropriate snippet:
|
|
218
|
+
|
|
219
|
+
**For Connection String (Option A):**
|
|
220
|
+
|
|
221
|
+
Shell-based clients (`~/.mcp-env`):
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
export MDB_MCP_CONNECTION_STRING="<paste-your-connection-string-here>"
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
Codex (`config.toml`):
|
|
228
|
+
|
|
229
|
+
```toml
|
|
230
|
+
[mcp_servers.mongodb.env]
|
|
231
|
+
MDB_MCP_CONNECTION_STRING = "<paste-your-connection-string-here>"
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
**For Service Account (Option B):**
|
|
235
|
+
|
|
236
|
+
Shell-based clients (`~/.mcp-env`):
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
export MDB_MCP_API_CLIENT_ID="<paste-your-client-id-here>"
|
|
240
|
+
export MDB_MCP_API_CLIENT_SECRET="<paste-your-client-secret-here>"
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
Codex (`config.toml`):
|
|
244
|
+
|
|
245
|
+
```toml
|
|
246
|
+
[mcp_servers.mongodb.env]
|
|
247
|
+
MDB_MCP_API_CLIENT_ID = "<paste-your-client-id-here>"
|
|
248
|
+
MDB_MCP_API_CLIENT_SECRET = "<paste-your-client-secret-here>"
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
**If read-only was chosen (Step 4), also add:**
|
|
252
|
+
|
|
253
|
+
Shell-based: `export MDB_MCP_READ_ONLY="true"` in `~/.mcp-env`.
|
|
254
|
+
|
|
255
|
+
Codex: `MDB_MCP_READ_ONLY = "true"` under the same `[mcp_servers.mongodb.env]` section.
|
|
256
|
+
|
|
257
|
+
⚠️ Both `config.toml` and `~/.mcp-env` are stored in plaintext. Do not commit them to version control.
|
|
258
|
+
|
|
259
|
+
### 5.2: Finalize (shell-based clients only)
|
|
260
|
+
|
|
261
|
+
Restrict permissions on `~/.mcp-env`:
|
|
262
|
+
|
|
263
|
+
```bash
|
|
264
|
+
# adjust for windows if needed
|
|
265
|
+
chmod 600 ~/.mcp-env
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
Add `source ~/.mcp-env` to the shell profile (e.g. `~/.zshrc`). Adjust for the detected shell (e.g. for fish: `bass source ~/.mcp-env` or `set -x`; for PowerShell: dot-source a `.ps1` file instead).
|
|
269
|
+
|
|
270
|
+
Detect the shell and profile file by running `echo $SHELL` if needed.
|
|
271
|
+
|
|
272
|
+
### 5.3: Verify
|
|
273
|
+
|
|
274
|
+
**Shell-based clients** — reload the profile first, then verify:
|
|
275
|
+
|
|
276
|
+
```bash
|
|
277
|
+
source ~/.zshrc # adjust to match the profile file
|
|
278
|
+
env | grep "^MDB_MCP" | sed '/^MDB_MCP_READ_ONLY=/!s/=.*/=[set]/'
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
**Codex:**
|
|
282
|
+
|
|
283
|
+
```bash
|
|
284
|
+
# adjust path if on Windows
|
|
285
|
+
grep -E 'MDB_MCP_(CONNECTION_STRING|API_CLIENT_ID|API_CLIENT_SECRET|READ_ONLY)' ~/.codex/config.toml 2>/dev/null | sed '/MDB_MCP_READ_ONLY/!s/[[:space:]]*=[[:space:]].*/ = "[set]"/'
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
Expected output shows the configured key(s) with values redacted to `[set]`. If nothing appears, check that credentials were saved and (for shell-based clients) that the profile was reloaded.
|
|
289
|
+
|
|
290
|
+
Proceed to Step 6 (Next Steps).
|
|
291
|
+
|
|
292
|
+
## Step 6: Next Steps
|
|
293
|
+
|
|
294
|
+
### For Options A & B (Connection String / Service Account):
|
|
295
|
+
|
|
296
|
+
1. **Restart the agentic client**:
|
|
297
|
+
- **Shell-based clients**: Fully quit the client, then run `source <profile-file>` to load the new variables, and reopen the client from that same terminal session so it inherits the environment.
|
|
298
|
+
- **Codex**: Fully quit and relaunch the app. No terminal session needed — credentials come from `config.toml`.
|
|
299
|
+
|
|
300
|
+
2. **Verify MCP Server**: After restart, test by performing a MongoDB operation.
|
|
301
|
+
|
|
302
|
+
3. **Using the Tools**:
|
|
303
|
+
- Option A: Direct database access tools available
|
|
304
|
+
- Option B: Additionally has Atlas Admin API tools and `atlas-connect-cluster`
|
|
305
|
+
- **Important (Option B)**: Ensure your IP is in the service account's API Access List or all API calls will fail
|
|
306
|
+
|
|
307
|
+
### For Option C (Atlas Local):
|
|
308
|
+
|
|
309
|
+
1. **Ready to use**: No restart or configuration needed!
|
|
310
|
+
|
|
311
|
+
2. **Next steps**:
|
|
312
|
+
- Create deployments: `atlas-local-create-deployment`
|
|
313
|
+
- List deployments: `atlas-local-list-deployments`
|
|
314
|
+
- Use standard database operations once connected
|
|
315
|
+
|
|
316
|
+
## Troubleshooting
|
|
317
|
+
|
|
318
|
+
- **Variables not appearing after `source`** (shell-based clients): Check the profile file path and confirm the file was saved
|
|
319
|
+
- **Client doesn't pick up variables**: Ensure full restart (quit + reopen), not just a reload
|
|
320
|
+
- **Codex desktop app not picking up credentials**: If launched from Finder, Launchpad, or the Windows Start menu, Codex does not inherit shell environment variables from `.zshrc`/`.zprofile`/PowerShell profiles. Use `~/.codex/config.toml` (macOS/Linux) or `%USERPROFILE%\.codex\config.toml` (Windows) instead (see Step 5)
|
|
321
|
+
- **Invalid connection string format**: Re-check the format; must start with `mongodb://` or `mongodb+srv://`
|
|
322
|
+
- **Atlas Admin API errors (Option B)**: Verify your IP is in the service account's API Access List
|
|
323
|
+
- **Read-only mode not working**: Check that `MDB_MCP_READ_ONLY` is set — in `config.toml` under `[mcp_servers.mongodb.env]` for Codex, or via `env | grep ^MDB_MCP_READ_ONLY` for shell-based clients
|
|
324
|
+
- **fish/PowerShell**: Syntax differs — use `set -x` (fish) or `$env:` (PowerShell) instead of `export`
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mongodb-natural-language-querying
|
|
3
|
+
description: Generate read-only MongoDB queries (find) or aggregation pipelines using natural language, with collection schema context and sample documents. Use this skill whenever the user asks to write, create, or generate MongoDB queries, wants to filter/query/aggregate data in MongoDB, asks "how do I query...", needs help with query syntax, or discusses finding/filtering/grouping MongoDB documents. Also use for translating SQL-like requests to MongoDB syntax. Does NOT handle Atlas Search ($search operator), vector/semantic search ($vectorSearch operator), fuzzy matching, autocomplete indexes, or relevance scoring - use search-and-ai for those. Does NOT analyze or optimize existing queries - use mongodb-query-optimizer for that. Does NOT handle aggregation pipelines that involve write operations. Requires MongoDB MCP server.
|
|
4
|
+
license: Apache-2.0
|
|
5
|
+
metadata:
|
|
6
|
+
version: "1.0.0"
|
|
7
|
+
allowed-tools: mcp__mongodb__*
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# MongoDB Natural Language Querying
|
|
11
|
+
|
|
12
|
+
You are an expert MongoDB read-only query and aggregation pipeline generator.
|
|
13
|
+
|
|
14
|
+
## Query Generation Process
|
|
15
|
+
|
|
16
|
+
### 1. Gather Context Using MCP Tools
|
|
17
|
+
|
|
18
|
+
**Required Information:**
|
|
19
|
+
- Database name and collection name (use `mcp__mongodb__list-databases` and `mcp__mongodb__list-collections` if not provided)
|
|
20
|
+
- User's natural language description of the query
|
|
21
|
+
|
|
22
|
+
**Fetch in this order:**
|
|
23
|
+
|
|
24
|
+
1. **Indexes** (for query optimization):
|
|
25
|
+
```
|
|
26
|
+
mcp__mongodb__collection-indexes({ database, collection })
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
2. **Schema** (for field validation):
|
|
30
|
+
```
|
|
31
|
+
mcp__mongodb__collection-schema({ database, collection, sampleSize: 50 })
|
|
32
|
+
```
|
|
33
|
+
- Returns flattened schema with field names and types
|
|
34
|
+
- Includes nested document structures and array fields
|
|
35
|
+
|
|
36
|
+
3. **Sample documents** (for understanding data patterns):
|
|
37
|
+
```
|
|
38
|
+
mcp__mongodb__find({ database, collection, limit: 4 })
|
|
39
|
+
```
|
|
40
|
+
- Shows actual data values and formats
|
|
41
|
+
- Reveals common patterns (enums, ranges, etc.)
|
|
42
|
+
|
|
43
|
+
### 2. Analyze Context and Validate Fields
|
|
44
|
+
|
|
45
|
+
Before generating a query, always validate field names against the schema you fetched. MongoDB won't error on nonexistent field names - it will simply return no results or behave unexpectedly, making bugs hard to diagnose. By checking the schema first, you catch these issues before the user tries to run the query.
|
|
46
|
+
|
|
47
|
+
Also review the available indexes to understand which query patterns will perform best.
|
|
48
|
+
|
|
49
|
+
### 3. Choose Query Type: Find vs Aggregation
|
|
50
|
+
|
|
51
|
+
Prefer find queries over aggregation pipelines because find queries are simpler and easier for other developers to understand.
|
|
52
|
+
|
|
53
|
+
**Use Find Query when:**
|
|
54
|
+
- Simple filtering on one or more fields
|
|
55
|
+
- Basic sorting, limiting, or projecting specific fields
|
|
56
|
+
- No need for grouping, complex transformations, or multi-stage processing
|
|
57
|
+
|
|
58
|
+
**Use Aggregation Pipeline when the request requires:**
|
|
59
|
+
- Grouping or aggregation functions (sum, count, average, etc.)
|
|
60
|
+
- Multiple transformation stages
|
|
61
|
+
- Joins with other collections ($lookup)
|
|
62
|
+
- Array unwinding or complex array operations
|
|
63
|
+
|
|
64
|
+
### 4. Format Your Response
|
|
65
|
+
|
|
66
|
+
Output queries using the user-requested language or driver syntax; if no language or expected format is supplied, always use MongoDB shell syntax (with unquoted keys and single quotes) for readability and compatibility with MongoDB tools.
|
|
67
|
+
|
|
68
|
+
**Find Query Response:**
|
|
69
|
+
```json
|
|
70
|
+
{
|
|
71
|
+
"query": {
|
|
72
|
+
"filter": "{ age: { $gte: 25 } }",
|
|
73
|
+
"projection": "{ name: 1, age: 1, _id: 0 }",
|
|
74
|
+
"sort": "{ age: -1 }",
|
|
75
|
+
"limit": "10"
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Aggregation Pipeline Response:**
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"aggregation": {
|
|
84
|
+
"pipeline": "[{ $match: { status: 'active' } }, { $group: { _id: '$category', total: { $sum: '$amount' } } }]"
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Best Practices
|
|
90
|
+
|
|
91
|
+
### Query Quality
|
|
92
|
+
1. **Generate correct queries** - Build queries that match user requirements, then check index coverage:
|
|
93
|
+
- Generate the query to correctly satisfy all user requirements
|
|
94
|
+
- After generating the query, check if existing indexes can support it
|
|
95
|
+
- If no appropriate index exists, mention this in your response (user may want to create one)
|
|
96
|
+
- Never use `$where` because it prevents index usage
|
|
97
|
+
- Do not use `$text` without a text index
|
|
98
|
+
- `$expr` should only be used when necessary (use sparingly)
|
|
99
|
+
2. **Avoid redundant operators** - Never add operators that are already implied by other conditions:
|
|
100
|
+
- Don't add `$exists` when you already have an equality or inequality check (e.g., `status: "active"` or `age: { $gt: 25 }` already implies the field exists)
|
|
101
|
+
- Don't add overlapping range conditions (e.g., don't use both `$gte: 0` and `$gt: -1`)
|
|
102
|
+
- Each condition should add meaningful filtering that isn't already covered
|
|
103
|
+
3. **Project only needed fields** - Reduce data transfer with projections
|
|
104
|
+
- Add `_id: 0` to the projection when `_id` field is not needed
|
|
105
|
+
4. **Validate field names** against the schema before using them
|
|
106
|
+
5. **Use appropriate operators** - Choose the right MongoDB operator for the task:
|
|
107
|
+
- `$eq`, `$ne`, `$gt`, `$gte`, `$lt`, `$lte` for comparisons
|
|
108
|
+
- `$in`, `$nin` for matching against a list of possible values (equivalent to multiple $eq/$ne conditions OR'ed together)
|
|
109
|
+
- `$and`, `$or`, `$not`, `$nor` for logical operations
|
|
110
|
+
- `$regex` for case-sensitive text pattern matching (prefer left-anchored patterns like `/^prefix/` when possible, as they can use indexes efficiently)
|
|
111
|
+
- `$exists` for field existence checks (prefer `a: {$ne: null}` to `a: {$exists: true}` to leverage available indexes)
|
|
112
|
+
- `$type` for type matching
|
|
113
|
+
6. **Optimize array field checks** - Use efficient patterns for array operations:
|
|
114
|
+
- To check if an array is non-empty: use `"arrayField.0": {$exists: true}` instead of `arrayField: {$exists: true, $type: "array", $ne: []}`
|
|
115
|
+
- Checking for the first element's existence is simpler, more readable, and more efficient than combining existence, type, and inequality checks
|
|
116
|
+
- For matching array elements with multiple conditions, use `$elemMatch`
|
|
117
|
+
- For array length checks, use `$size` when you need an exact count
|
|
118
|
+
|
|
119
|
+
### Aggregation Pipeline Quality
|
|
120
|
+
1. **Filter early** - Use `$match` as early as possible to reduce documents
|
|
121
|
+
2. **Project at the end** - Use `$project` at the end to correctly shape returned documents to the client
|
|
122
|
+
3. **Limit when possible** - Add `$limit` after `$sort` when appropriate
|
|
123
|
+
4. **Use indexes** - Ensure `$match` and `$sort` stages can use indexes:
|
|
124
|
+
- Place `$match` stages at the beginning of the pipeline
|
|
125
|
+
- Initial `$match` and `$sort` stages can use indexes if they precede any stage that modifies documents
|
|
126
|
+
- After generating `$match` filters, check if indexes can support them
|
|
127
|
+
- Minimize stages that transform documents before first `$match`
|
|
128
|
+
5. **Optimize `$lookup`** - Consider denormalization for frequently joined data
|
|
129
|
+
|
|
130
|
+
### Error Prevention
|
|
131
|
+
1. **Validate all field references** against the schema
|
|
132
|
+
2. **Quote field names correctly** - Use dot notation for nested fields
|
|
133
|
+
3. **Escape special characters** in regex patterns
|
|
134
|
+
4. **Check data types** - Ensure field values match field types from schema
|
|
135
|
+
5. **Geospatial coordinates** - MongoDB's GeoJSON format requires longitude first, then latitude (e.g., `[longitude, latitude]` or `{type: "Point", coordinates: [lng, lat]}`). This is opposite to how coordinates are often written in plain English, so double-check this when generating geo queries.
|
|
136
|
+
|
|
137
|
+
## Schema Analysis
|
|
138
|
+
|
|
139
|
+
When provided with sample documents, analyze:
|
|
140
|
+
1. **Field types** - String, Number, Boolean, Date, ObjectId, Array, Object
|
|
141
|
+
2. **Field patterns** - Required vs optional fields (check multiple samples)
|
|
142
|
+
3. **Nested structures** - Objects within objects, arrays of objects
|
|
143
|
+
4. **Array elements** - Homogeneous vs heterogeneous arrays
|
|
144
|
+
5. **Special types** - Dates, ObjectIds, Binary data, GeoJSON
|
|
145
|
+
|
|
146
|
+
## Sample Document Usage
|
|
147
|
+
|
|
148
|
+
Use sample documents to:
|
|
149
|
+
- Understand actual data values and ranges
|
|
150
|
+
- Identify field naming conventions (camelCase, snake_case, etc.)
|
|
151
|
+
- Detect common patterns (e.g., status enums, category values)
|
|
152
|
+
- Estimate cardinality for grouping operations
|
|
153
|
+
- Validate that your query will work with real data
|
|
154
|
+
|
|
155
|
+
## Error Handling
|
|
156
|
+
|
|
157
|
+
If you cannot generate a query:
|
|
158
|
+
1. **Explain why** - Missing schema, ambiguous request, impossible query
|
|
159
|
+
2. **Ask for clarification** - Request more details about requirements
|
|
160
|
+
3. **Suggest alternatives** - Propose different approaches if available
|
|
161
|
+
4. **Provide examples** - Show similar queries that could work
|
|
162
|
+
|
|
163
|
+
## Example Workflow
|
|
164
|
+
|
|
165
|
+
**User Input:** "Find all active users over 25 years old, sorted by registration date"
|
|
166
|
+
|
|
167
|
+
**Your Process:**
|
|
168
|
+
1. Check schema for fields: `status`, `age`, `registrationDate` or similar
|
|
169
|
+
2. Verify field types match the query requirements
|
|
170
|
+
3. Generate query based on user requirements
|
|
171
|
+
4. Check if available indexes can support the query
|
|
172
|
+
5. Suggest creating an index if no appropriate index exists for the query filters
|
|
173
|
+
|
|
174
|
+
**Generated Query:**
|
|
175
|
+
```json
|
|
176
|
+
{
|
|
177
|
+
"query": {
|
|
178
|
+
"filter": "{ status: 'active', age: { $gt: 25 } }",
|
|
179
|
+
"sort": "{ registrationDate: -1 }"
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Managing Context Size
|
|
185
|
+
|
|
186
|
+
Fetching large or numerous sample documents wastes context and can degrade query quality.
|
|
187
|
+
|
|
188
|
+
**Adjust sample count by schema width:**
|
|
189
|
+
- < 30 fields: `limit: 4` (default)
|
|
190
|
+
- 30–80 fields: `limit: 2`
|
|
191
|
+
- 80–150 fields: `limit: 1`
|
|
192
|
+
- 150+ fields: `limit: 1` with a projection of only the fields relevant to the user's query
|
|
193
|
+
|
|
194
|
+
**Preview large array fields and strings:**
|
|
195
|
+
- If schema documents contains arrays, use `$slice: 3` in the sample projection to cap array size. Limit string fields to 100 characters with `$substr` in the sample projection to prevent excessively long values from consuming context.
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mongodb-query-optimizer
|
|
3
|
+
description: >-
|
|
4
|
+
Help with MongoDB query optimization and indexing. Use only when the user asks for optimization or performance: "How do I optimize this query?", "How do I index this?", "Why is this query slow?", "Can you fix my slow queries?", "What are the slow queries on my cluster?", etc. Do not invoke for general MongoDB query writing unless user asks for performance or index help. Prefer indexing as optimization strategy. Use MongoDB MCP when available.
|
|
5
|
+
compatibility: >-
|
|
6
|
+
Best with MongoDB MCP server. Uses collection-indexes and explain when the connection string works; uses Atlas Performance Advisor when Atlas API is configured. Without either, suggest indexes from query shape only. User creates indexes in Atlas or migrations unless tooling allows otherwise.
|
|
7
|
+
license: Apache-2.0
|
|
8
|
+
metadata:
|
|
9
|
+
version: "1.0.0"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# MongoDB Query Optimizer
|
|
13
|
+
|
|
14
|
+
## When this skill is invoked
|
|
15
|
+
|
|
16
|
+
Invoke **only** when the user wants:
|
|
17
|
+
|
|
18
|
+
- Query/index **optimization** or **performance** help
|
|
19
|
+
- **Why** a query is slow or **how to speed it up**
|
|
20
|
+
- **Slow queries** on their cluster and/or **how to optimize them**
|
|
21
|
+
|
|
22
|
+
Do **not** invoke for routine query authoring unless the user has requested help with optimization, slow queries, or indexing.
|
|
23
|
+
|
|
24
|
+
## High Level Workflow
|
|
25
|
+
|
|
26
|
+
### General Performance Help
|
|
27
|
+
|
|
28
|
+
If the user wants to examine slow queries, or is looking for general performance suggestions (not regarding any particular query):
|
|
29
|
+
|
|
30
|
+
- Use MongoDB MCP server **atlas-get-performance-advisor** tool to fetch slow query logs and performance advisor output
|
|
31
|
+
- Make suggestions based on this information
|
|
32
|
+
|
|
33
|
+
If Atlas MCP Server for Atlas is not configured or you don’t have enough information to run **atlas-get-performance-advisor** against the correct cluster, tell the user that general performance analysis requires Atlas MCP Server configuration with API credentials, and suggest they configure it or ask about a specific query instead.
|
|
34
|
+
|
|
35
|
+
### Help with a Specific Query
|
|
36
|
+
|
|
37
|
+
If the user is asking about a particular query:
|
|
38
|
+
|
|
39
|
+
- Use **collection-indexes**, **explain**, and **find** MCP tools to get existing indexes on the collection, explain() output for the query, and a sample document from the collection
|
|
40
|
+
- Use **atlas-get-performance-advisor MCP** tool to fetch slow query logs and performance advisor output
|
|
41
|
+
|
|
42
|
+
Then make an optimization suggestion based on collected information and MongoDB best practices and examples from reference files. Prefer creating an index that fully covers the query if possible. If you cannot use MongoDB MCP Server then still try to make a suggestion.
|
|
43
|
+
|
|
44
|
+
## MCP: available tools
|
|
45
|
+
|
|
46
|
+
**How to invoke.** Call the **MongoDB MCP server** with the **exact tool name** as `toolName` and a single **arguments object** as `arguments`. Do not pass the tool name as an option, query param, or nested key; pass it as the MCP tool name and the parameters as the arguments object. Full MCP Server tool reference: [MongoDB MCP Server Tools](https://www.mongodb.com/docs/mcp-server/tools/).
|
|
47
|
+
|
|
48
|
+
**Database tools** (when the MCP cluster connection works):
|
|
49
|
+
|
|
50
|
+
| Tool name (exact) | Arguments object |
|
|
51
|
+
| :---- | :---- |
|
|
52
|
+
| `collection-indexes` | `{ "database": "<db>", "collection": "<coll>" }` — both required strings. |
|
|
53
|
+
| `explain` | `{ "database": "<db>", "collection": "<coll>", "method": [ { "name": "find", "arguments": { "filter": {...}, "sort": {...}, "limit": N } } ], "verbosity": "executionStats" }`. `method` is an array of one object: `name` is `"find"`, `"aggregate"`, or `"count"`; `arguments` holds that method's params (e.g. find: `filter`, `sort`, `limit`; aggregate: `pipeline`; count: `query`). Optional `verbosity`: `"queryPlanner"` (default), `"executionStats"`, `"queryPlannerExtended"`, `"allPlansExecution"`. |
|
|
54
|
+
| `find` | `{ "database": "<db>", "collection": "<coll>", "filter": {...}, "projection": {...}, "sort": {...}, "limit": N }` — `database`, `collection`, and `filter` are required. Optional: `projection`, `sort`, `limit`. |
|
|
55
|
+
|
|
56
|
+
**Atlas tools** (when Atlas API credentials are configured):
|
|
57
|
+
|
|
58
|
+
| Tool name (exact) | Arguments object |
|
|
59
|
+
| :---- | :---- |
|
|
60
|
+
| `atlas-list-projects` | `{}` or `{ "orgId": "<24-char hex>" }`. Returns projects with their IDs; use to get `projectId` for Performance Advisor. |
|
|
61
|
+
| `atlas-get-performance-advisor` | **Required:** `"projectId"` (24-character hex string), `"clusterName"` (string, 1–64 chars, alphanumeric/underscore/dash). **Optional:** `"operations"` — array of strings from `"suggestedIndexes"`, `"dropIndexSuggestions"`, `"slowQueryLogs"`, `"schemaSuggestions"` (request only what you need); for slowQueryLogs only: `"since"` (ISO 8601 date-time), `"namespaces"` (array of `"db.coll"` strings). |
|
|
62
|
+
|
|
63
|
+
For a user question, try to fetch information from both the connection string and Atlas API related to the query you are optimizing.
|
|
64
|
+
|
|
65
|
+
### 1\. DB connection string works for MongoDB MCP
|
|
66
|
+
|
|
67
|
+
Typical flow: call `collection-indexes` → `explain` → `find` (sample doc).
|
|
68
|
+
|
|
69
|
+
- **`collection-indexes`** — Use the result's `classicIndexes` (each has `name`, `key`) to see if the query can already use an existing index.
|
|
70
|
+
- **`explain`** — Run in `"queryPlanner"` mode first to check for COLLSCAN. If the query uses an index or the collection is very small, run again with `"executionStats"` (10-second timeout) to get docs scanned vs. returned.
|
|
71
|
+
|
|
72
|
+
### 2\. Atlas API access works for MongoDB MCP
|
|
73
|
+
|
|
74
|
+
If you need a project ID, call `atlas-list-projects` first. Then call `atlas-get-performance-advisor` with only the `operations` you need:
|
|
75
|
+
|
|
76
|
+
| Operation value | Use when |
|
|
77
|
+
| :---- | :---- |
|
|
78
|
+
| `slowQueryLogs` | Fetching slow queries—**prioritize by slowest and most frequent**. Optional: `namespaces` to scope to a collection; `since` for a time window. |
|
|
79
|
+
| `suggestedIndexes` | Fetching cluster index recommendations |
|
|
80
|
+
| `dropIndexSuggestions` | User asks what to remove or reduce index overhead |
|
|
81
|
+
| `schemaSuggestions` | User asks for schema/query-structure advice alongside indexes |
|
|
82
|
+
|
|
83
|
+
Do not pass the MCP tool name as an `operations` value—`operations` is a separate argument listing what data to fetch.
|
|
84
|
+
|
|
85
|
+
## Example workflow 1 (help with specific query)
|
|
86
|
+
|
|
87
|
+
**User:** "Why is this query slow? `db.orders.find({status: 'shipped', region: 'US'}).sort({date: -1})`"
|
|
88
|
+
|
|
89
|
+
**If MCP db connection is configured and the database + collection names are known**, run steps 1–3. Otherwise skip to step 4.
|
|
90
|
+
|
|
91
|
+
1. **Check existing collection indexes:**
|
|
92
|
+
- Call `collection-indexes` with database=`store`, collection=`orders`
|
|
93
|
+
- Result shows: `{_id: 1}`, `{status: 1}`, `{date: -1}`
|
|
94
|
+
|
|
95
|
+
2. **Run explain:**
|
|
96
|
+
- Call `explain` with method=`find`, filter=`{status: 'shipped', region: 'US'}`, sort=`{date: -1}`, verbosity=`queryPlanner` and `executionStats`
|
|
97
|
+
- Result: Uses `{status: 1}` index, then in-memory SORT, `totalKeysExamined: 50000`, `nReturned: 100`
|
|
98
|
+
|
|
99
|
+
3. **Run find:**
|
|
100
|
+
- Call `find` with limit=1 to fetch a sample document to impute the schema.
|
|
101
|
+
|
|
102
|
+
**If MCP Atlas connection is configured**, run step 4. Otherwise skip to step 5.
|
|
103
|
+
|
|
104
|
+
4. **Run atlas-get-performance-advisor:**
|
|
105
|
+
- Try to get the cluster name from the MCP connection string, or ask the user for projectId/clusterName
|
|
106
|
+
- Use slowQueryLogs to fetch slow query logs from database=`store`, collection=`orders` in the past 24 hours
|
|
107
|
+
- Use suggestedIndexes to check for index suggestions for the query
|
|
108
|
+
|
|
109
|
+
5. **Diagnose:** Based on explain output and slow query logs, this query targets 100 docs but scans 50K index entries (poor selectivity: 0.002). In-memory sort adds overhead. Index doesn't support both filter fields or sort.
|
|
110
|
+
|
|
111
|
+
6. **Recommend:** Create compound index `{status: 1, region: 1, date: -1}` following ESR (two equality fields, then sort). This eliminates in-memory sort and improves selectivity by filtering on both status and region.
|
|
112
|
+
|
|
113
|
+
If the MongoDB MCP server is not set up, follow best indexing practices.
|
|
114
|
+
|
|
115
|
+
## Example workflow 2 (general database performance help)
|
|
116
|
+
|
|
117
|
+
**User:** "Can you help with optimizing slow queries on my cluster?”
|
|
118
|
+
|
|
119
|
+
1. **Run atlas-get-performance-advisor:**
|
|
120
|
+
- Try to get the cluster name from the connection string and deduce the project name you need in atlas-list-projects; if you are not sure, then ask the user for cluster name and project id.
|
|
121
|
+
- Use slowQueryLogs to fetch slow query logs from the past 24 hours
|
|
122
|
+
- Use suggestedIndexes
|
|
123
|
+
- Use dropIndexSuggestions
|
|
124
|
+
- Use schemaSuggestions
|
|
125
|
+
2. **Diagnose and Recommend:** Based on slow query logs and performance advisor advice, you can create the compound index `{status: 1, region: 1, date: -1}` on the `db.orders` collection to optimize queries such as `find({status: 'shipped', region: 'US'}).sort({date: -1})`
|
|
126
|
+
|
|
127
|
+
Examine all performance advisor output as well as slow query logs. Provide information on what is being improved and why, and focus on suggestions that have the potential for greatest impact (e.g., indexes that affect the most queries, or queries that have the worst performance).
|
|
128
|
+
|
|
129
|
+
## Load references
|
|
130
|
+
|
|
131
|
+
Before beginning diagnosis and recommendation, load reference files.
|
|
132
|
+
|
|
133
|
+
Always load:
|
|
134
|
+
|
|
135
|
+
- `references/core-indexing-principles.md`
|
|
136
|
+
- `references/antipattern-examples.md`
|
|
137
|
+
|
|
138
|
+
Conditionally load these files:
|
|
139
|
+
|
|
140
|
+
- **If diagnosing aggregation pipelines** → `references/aggregation-optimization.md`
|
|
141
|
+
- **If diagnosing queries that change docs such as replaceOne, findOneAndUpdate, etc.** → `references/update-query-examples.md` for oplog-efficient updates and common update anti-patterns
|
|
142
|
+
|
|
143
|
+
## Output
|
|
144
|
+
|
|
145
|
+
- Keep answers short and clear: a few sentences on index and optimization suggestions, and reasoning behind them (e.g. general indexing principles, observing slow query logs in the cluster, or seeing advice in Performance Advisor)
|
|
146
|
+
- Focus on highest impact indexes or optimizations - if you've omitted some optimizations let the user know and present them if asked.
|
|
147
|
+
- Do not use strong language, such as saying “You should create these indexes and they will definitely improve application performance” \- Explain they are suggestions for certain queries, and give the reasoning behind them.
|
|
148
|
+
- Consider how many indexes already exist on the collection (if known) \- there shouldn’t generally be more than 20
|
|
149
|
+
- Suggest removing indexes only if the suggestion comes from Atlas Performance Advisor
|
|
150
|
+
- Do not create indexes directly via MCP unless the user gives approval
|