@nerviq/cli 1.0.1 → 1.2.1
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/bin/cli.js +170 -73
- package/package.json +1 -1
- package/src/activity.js +20 -0
- package/src/aider/domain-packs.js +27 -2
- package/src/aider/mcp-packs.js +231 -0
- package/src/aider/techniques.js +3211 -1397
- package/src/audit.js +257 -2
- package/src/catalog.js +18 -2
- package/src/codex/domain-packs.js +23 -1
- package/src/codex/mcp-packs.js +254 -0
- package/src/codex/techniques.js +4738 -3257
- package/src/copilot/domain-packs.js +23 -1
- package/src/copilot/mcp-packs.js +254 -0
- package/src/copilot/techniques.js +3433 -1936
- package/src/cursor/domain-packs.js +23 -1
- package/src/cursor/mcp-packs.js +257 -0
- package/src/cursor/techniques.js +3698 -1869
- package/src/deprecation.js +98 -0
- package/src/domain-pack-expansion.js +571 -0
- package/src/domain-packs.js +25 -2
- package/src/formatters/otel.js +151 -0
- package/src/gemini/domain-packs.js +23 -1
- package/src/gemini/mcp-packs.js +257 -0
- package/src/gemini/techniques.js +3734 -2238
- package/src/integrations.js +194 -0
- package/src/mcp-packs.js +233 -0
- package/src/opencode/domain-packs.js +23 -1
- package/src/opencode/mcp-packs.js +231 -0
- package/src/opencode/techniques.js +3501 -1687
- package/src/org.js +68 -0
- package/src/source-urls.js +410 -260
- package/src/stack-checks.js +565 -0
- package/src/supplemental-checks.js +817 -0
- package/src/techniques.js +2929 -1449
- package/src/telemetry.js +160 -0
- package/src/windsurf/domain-packs.js +23 -1
- package/src/windsurf/mcp-packs.js +257 -0
- package/src/windsurf/techniques.js +3648 -1834
- package/src/workspace.js +233 -0
package/src/codex/mcp-packs.js
CHANGED
|
@@ -385,6 +385,260 @@ const CODEX_MCP_PACKS = [
|
|
|
385
385
|
tomlProjection: { command: 'npx', args: ['-y', 'huggingface-mcp-server'], env: { HF_TOKEN: '${HF_TOKEN}' } },
|
|
386
386
|
enabledTools: ['search_models', 'get_model_info', 'search_datasets'],
|
|
387
387
|
},
|
|
388
|
+
// ── 23 new packs ─────────────────────────────────────────────────────────
|
|
389
|
+
{
|
|
390
|
+
key: 'supabase-mcp', label: 'Supabase',
|
|
391
|
+
description: 'Database, auth, and storage for Supabase.',
|
|
392
|
+
useWhen: 'Repos using Supabase.',
|
|
393
|
+
adoption: 'Requires: SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY.',
|
|
394
|
+
trustLevel: 'medium', transport: 'stdio', requiredAuth: ['SUPABASE_URL', 'SUPABASE_SERVICE_ROLE_KEY'],
|
|
395
|
+
serverName: 'supabase',
|
|
396
|
+
tomlProjection: { command: 'npx', args: ['-y', '@supabase/mcp-server-supabase@latest'],
|
|
397
|
+
env: { SUPABASE_URL: '${SUPABASE_URL}', SUPABASE_SERVICE_ROLE_KEY: '${SUPABASE_SERVICE_ROLE_KEY}' } },
|
|
398
|
+
enabledTools: ['list_tables', 'query', 'insert', 'update'],
|
|
399
|
+
},
|
|
400
|
+
{
|
|
401
|
+
key: 'prisma-mcp', label: 'Prisma ORM',
|
|
402
|
+
description: 'Schema inspection and migrations via Prisma.',
|
|
403
|
+
useWhen: 'Repos with a Prisma schema.',
|
|
404
|
+
adoption: 'Requires: DATABASE_URL.',
|
|
405
|
+
trustLevel: 'medium', transport: 'stdio', requiredAuth: ['DATABASE_URL'],
|
|
406
|
+
serverName: 'prisma',
|
|
407
|
+
tomlProjection: { command: 'npx', args: ['-y', 'prisma-mcp-server@latest'],
|
|
408
|
+
env: { DATABASE_URL: '${DATABASE_URL}' } },
|
|
409
|
+
enabledTools: ['introspect_schema', 'list_models', 'query_raw'],
|
|
410
|
+
},
|
|
411
|
+
{
|
|
412
|
+
key: 'vercel-mcp', label: 'Vercel',
|
|
413
|
+
description: 'Deployment management via Vercel.',
|
|
414
|
+
useWhen: 'Repos deployed on Vercel.',
|
|
415
|
+
adoption: 'Requires: VERCEL_TOKEN.',
|
|
416
|
+
trustLevel: 'medium', transport: 'stdio', requiredAuth: ['VERCEL_TOKEN'],
|
|
417
|
+
serverName: 'vercel',
|
|
418
|
+
tomlProjection: { command: 'npx', args: ['-y', '@vercel/mcp-server@latest'],
|
|
419
|
+
env: { VERCEL_TOKEN: '${VERCEL_TOKEN}' } },
|
|
420
|
+
enabledTools: ['list_projects', 'get_deployment', 'list_deployments'],
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
key: 'cloudflare-mcp', label: 'Cloudflare',
|
|
424
|
+
description: 'Workers, KV, R2, and D1 management.',
|
|
425
|
+
useWhen: 'Repos using Cloudflare edge.',
|
|
426
|
+
adoption: 'Requires: CLOUDFLARE_API_TOKEN.',
|
|
427
|
+
trustLevel: 'medium', transport: 'stdio', requiredAuth: ['CLOUDFLARE_API_TOKEN'],
|
|
428
|
+
serverName: 'cloudflare',
|
|
429
|
+
tomlProjection: { command: 'npx', args: ['-y', '@cloudflare/mcp-server-cloudflare@latest'],
|
|
430
|
+
env: { CLOUDFLARE_API_TOKEN: '${CLOUDFLARE_API_TOKEN}' } },
|
|
431
|
+
enabledTools: ['list_workers', 'get_kv', 'list_r2_buckets'],
|
|
432
|
+
},
|
|
433
|
+
{
|
|
434
|
+
key: 'aws-mcp', label: 'AWS',
|
|
435
|
+
description: 'S3, Lambda, DynamoDB access.',
|
|
436
|
+
useWhen: 'Repos using AWS.',
|
|
437
|
+
adoption: 'Requires: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION.',
|
|
438
|
+
trustLevel: 'low', transport: 'stdio', requiredAuth: ['AWS_ACCESS_KEY_ID', 'AWS_SECRET_ACCESS_KEY', 'AWS_REGION'],
|
|
439
|
+
serverName: 'aws',
|
|
440
|
+
tomlProjection: { command: 'npx', args: ['-y', '@aws-samples/mcp-server-aws@latest'],
|
|
441
|
+
env: { AWS_ACCESS_KEY_ID: '${AWS_ACCESS_KEY_ID}', AWS_SECRET_ACCESS_KEY: '${AWS_SECRET_ACCESS_KEY}', AWS_REGION: '${AWS_REGION}' } },
|
|
442
|
+
enabledTools: ['list_buckets', 'list_functions', 'list_tables'],
|
|
443
|
+
},
|
|
444
|
+
{
|
|
445
|
+
key: 'redis-mcp', label: 'Redis',
|
|
446
|
+
description: 'Cache and session management.',
|
|
447
|
+
useWhen: 'Repos using Redis.',
|
|
448
|
+
adoption: 'Requires: REDIS_URL.',
|
|
449
|
+
trustLevel: 'medium', transport: 'stdio', requiredAuth: ['REDIS_URL'],
|
|
450
|
+
serverName: 'redis',
|
|
451
|
+
tomlProjection: { command: 'npx', args: ['-y', 'redis-mcp-server@latest'],
|
|
452
|
+
env: { REDIS_URL: '${REDIS_URL}' } },
|
|
453
|
+
enabledTools: ['get', 'set', 'del', 'hget', 'hset'],
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
key: 'mongodb-mcp', label: 'MongoDB',
|
|
457
|
+
description: 'Document database access.',
|
|
458
|
+
useWhen: 'Repos using MongoDB.',
|
|
459
|
+
adoption: 'Requires: MONGODB_URI.',
|
|
460
|
+
trustLevel: 'medium', transport: 'stdio', requiredAuth: ['MONGODB_URI'],
|
|
461
|
+
serverName: 'mongodb',
|
|
462
|
+
tomlProjection: { command: 'npx', args: ['-y', '@mongodb-js/mongodb-mcp-server@latest'],
|
|
463
|
+
env: { MONGODB_URI: '${MONGODB_URI}' } },
|
|
464
|
+
enabledTools: ['find', 'insertOne', 'updateOne', 'deleteOne'],
|
|
465
|
+
},
|
|
466
|
+
{
|
|
467
|
+
key: 'twilio-mcp', label: 'Twilio',
|
|
468
|
+
description: 'SMS, voice, and messaging.',
|
|
469
|
+
useWhen: 'Repos using Twilio.',
|
|
470
|
+
adoption: 'Requires: TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN.',
|
|
471
|
+
trustLevel: 'low', transport: 'stdio', requiredAuth: ['TWILIO_ACCOUNT_SID', 'TWILIO_AUTH_TOKEN'],
|
|
472
|
+
serverName: 'twilio',
|
|
473
|
+
tomlProjection: { command: 'npx', args: ['-y', 'twilio-mcp-server@latest'],
|
|
474
|
+
env: { TWILIO_ACCOUNT_SID: '${TWILIO_ACCOUNT_SID}', TWILIO_AUTH_TOKEN: '${TWILIO_AUTH_TOKEN}' } },
|
|
475
|
+
enabledTools: ['send_sms', 'list_messages', 'list_calls'],
|
|
476
|
+
},
|
|
477
|
+
{
|
|
478
|
+
key: 'sendgrid-mcp', label: 'SendGrid',
|
|
479
|
+
description: 'Transactional email delivery.',
|
|
480
|
+
useWhen: 'Repos using SendGrid.',
|
|
481
|
+
adoption: 'Requires: SENDGRID_API_KEY.',
|
|
482
|
+
trustLevel: 'medium', transport: 'stdio', requiredAuth: ['SENDGRID_API_KEY'],
|
|
483
|
+
serverName: 'sendgrid',
|
|
484
|
+
tomlProjection: { command: 'npx', args: ['-y', 'sendgrid-mcp-server@latest'],
|
|
485
|
+
env: { SENDGRID_API_KEY: '${SENDGRID_API_KEY}' } },
|
|
486
|
+
enabledTools: ['send_email', 'list_templates', 'get_stats'],
|
|
487
|
+
},
|
|
488
|
+
{
|
|
489
|
+
key: 'algolia-mcp', label: 'Algolia Search',
|
|
490
|
+
description: 'Search indexing via Algolia.',
|
|
491
|
+
useWhen: 'Repos using Algolia.',
|
|
492
|
+
adoption: 'Requires: ALGOLIA_APP_ID, ALGOLIA_API_KEY.',
|
|
493
|
+
trustLevel: 'medium', transport: 'stdio', requiredAuth: ['ALGOLIA_APP_ID', 'ALGOLIA_API_KEY'],
|
|
494
|
+
serverName: 'algolia',
|
|
495
|
+
tomlProjection: { command: 'npx', args: ['-y', 'algolia-mcp-server@latest'],
|
|
496
|
+
env: { ALGOLIA_APP_ID: '${ALGOLIA_APP_ID}', ALGOLIA_API_KEY: '${ALGOLIA_API_KEY}' } },
|
|
497
|
+
enabledTools: ['search', 'list_indices', 'get_index'],
|
|
498
|
+
},
|
|
499
|
+
{
|
|
500
|
+
key: 'planetscale-mcp', label: 'PlanetScale',
|
|
501
|
+
description: 'Serverless MySQL via PlanetScale.',
|
|
502
|
+
useWhen: 'Repos on PlanetScale.',
|
|
503
|
+
adoption: 'Requires: PLANETSCALE_TOKEN.',
|
|
504
|
+
trustLevel: 'medium', transport: 'stdio', requiredAuth: ['PLANETSCALE_TOKEN'],
|
|
505
|
+
serverName: 'planetscale',
|
|
506
|
+
tomlProjection: { command: 'npx', args: ['-y', 'planetscale-mcp-server@latest'],
|
|
507
|
+
env: { PLANETSCALE_TOKEN: '${PLANETSCALE_TOKEN}' } },
|
|
508
|
+
enabledTools: ['list_databases', 'list_branches', 'execute_query'],
|
|
509
|
+
},
|
|
510
|
+
{
|
|
511
|
+
key: 'neon-mcp', label: 'Neon Serverless Postgres',
|
|
512
|
+
description: 'Serverless Postgres via Neon.',
|
|
513
|
+
useWhen: 'Repos using Neon.',
|
|
514
|
+
adoption: 'Requires: NEON_API_KEY.',
|
|
515
|
+
trustLevel: 'medium', transport: 'stdio', requiredAuth: ['NEON_API_KEY'],
|
|
516
|
+
serverName: 'neon',
|
|
517
|
+
tomlProjection: { command: 'npx', args: ['-y', '@neondatabase/mcp-server-neon@latest'],
|
|
518
|
+
env: { NEON_API_KEY: '${NEON_API_KEY}' } },
|
|
519
|
+
enabledTools: ['list_projects', 'list_branches', 'execute_sql'],
|
|
520
|
+
},
|
|
521
|
+
{
|
|
522
|
+
key: 'turso-mcp', label: 'Turso Edge SQLite',
|
|
523
|
+
description: 'Edge SQLite via Turso.',
|
|
524
|
+
useWhen: 'Repos using Turso.',
|
|
525
|
+
adoption: 'Requires: TURSO_DATABASE_URL, TURSO_AUTH_TOKEN.',
|
|
526
|
+
trustLevel: 'medium', transport: 'stdio', requiredAuth: ['TURSO_DATABASE_URL', 'TURSO_AUTH_TOKEN'],
|
|
527
|
+
serverName: 'turso',
|
|
528
|
+
tomlProjection: { command: 'npx', args: ['-y', 'turso-mcp-server@latest'],
|
|
529
|
+
env: { TURSO_DATABASE_URL: '${TURSO_DATABASE_URL}', TURSO_AUTH_TOKEN: '${TURSO_AUTH_TOKEN}' } },
|
|
530
|
+
enabledTools: ['execute_query', 'list_tables'],
|
|
531
|
+
},
|
|
532
|
+
{
|
|
533
|
+
key: 'upstash-mcp', label: 'Upstash Redis+Kafka',
|
|
534
|
+
description: 'Serverless Redis and Kafka.',
|
|
535
|
+
useWhen: 'Repos using Upstash.',
|
|
536
|
+
adoption: 'Requires: UPSTASH_REDIS_REST_URL, UPSTASH_REDIS_REST_TOKEN.',
|
|
537
|
+
trustLevel: 'medium', transport: 'stdio', requiredAuth: ['UPSTASH_REDIS_REST_URL', 'UPSTASH_REDIS_REST_TOKEN'],
|
|
538
|
+
serverName: 'upstash',
|
|
539
|
+
tomlProjection: { command: 'npx', args: ['-y', '@upstash/mcp-server@latest'],
|
|
540
|
+
env: { UPSTASH_REDIS_REST_URL: '${UPSTASH_REDIS_REST_URL}', UPSTASH_REDIS_REST_TOKEN: '${UPSTASH_REDIS_REST_TOKEN}' } },
|
|
541
|
+
enabledTools: ['redis_get', 'redis_set', 'redis_del'],
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
key: 'convex-mcp', label: 'Convex',
|
|
545
|
+
description: 'Reactive backend via Convex.',
|
|
546
|
+
useWhen: 'Repos using Convex.',
|
|
547
|
+
adoption: 'Requires: CONVEX_DEPLOYMENT.',
|
|
548
|
+
trustLevel: 'medium', transport: 'stdio', requiredAuth: ['CONVEX_DEPLOYMENT'],
|
|
549
|
+
serverName: 'convex',
|
|
550
|
+
tomlProjection: { command: 'npx', args: ['-y', '@convex-dev/mcp-server@latest'],
|
|
551
|
+
env: { CONVEX_DEPLOYMENT: '${CONVEX_DEPLOYMENT}' } },
|
|
552
|
+
enabledTools: ['run_query', 'run_mutation', 'list_functions'],
|
|
553
|
+
},
|
|
554
|
+
{
|
|
555
|
+
key: 'clerk-mcp', label: 'Clerk Authentication',
|
|
556
|
+
description: 'User auth via Clerk.',
|
|
557
|
+
useWhen: 'Repos using Clerk.',
|
|
558
|
+
adoption: 'Requires: CLERK_SECRET_KEY.',
|
|
559
|
+
trustLevel: 'medium', transport: 'stdio', requiredAuth: ['CLERK_SECRET_KEY'],
|
|
560
|
+
serverName: 'clerk',
|
|
561
|
+
tomlProjection: { command: 'npx', args: ['-y', '@clerk/mcp-server@latest'],
|
|
562
|
+
env: { CLERK_SECRET_KEY: '${CLERK_SECRET_KEY}' } },
|
|
563
|
+
enabledTools: ['list_users', 'get_user', 'create_user'],
|
|
564
|
+
},
|
|
565
|
+
{
|
|
566
|
+
key: 'resend-mcp', label: 'Resend Email',
|
|
567
|
+
description: 'Transactional email via Resend.',
|
|
568
|
+
useWhen: 'Repos using Resend.',
|
|
569
|
+
adoption: 'Requires: RESEND_API_KEY.',
|
|
570
|
+
trustLevel: 'medium', transport: 'stdio', requiredAuth: ['RESEND_API_KEY'],
|
|
571
|
+
serverName: 'resend',
|
|
572
|
+
tomlProjection: { command: 'npx', args: ['-y', 'resend-mcp-server@latest'],
|
|
573
|
+
env: { RESEND_API_KEY: '${RESEND_API_KEY}' } },
|
|
574
|
+
enabledTools: ['send_email', 'list_domains', 'get_email'],
|
|
575
|
+
},
|
|
576
|
+
{
|
|
577
|
+
key: 'temporal-mcp', label: 'Temporal Workflow',
|
|
578
|
+
description: 'Workflow orchestration via Temporal.',
|
|
579
|
+
useWhen: 'Repos using Temporal.',
|
|
580
|
+
adoption: 'Requires: TEMPORAL_ADDRESS.',
|
|
581
|
+
trustLevel: 'medium', transport: 'stdio', requiredAuth: ['TEMPORAL_ADDRESS'],
|
|
582
|
+
serverName: 'temporal',
|
|
583
|
+
tomlProjection: { command: 'npx', args: ['-y', 'temporal-mcp-server@latest'],
|
|
584
|
+
env: { TEMPORAL_ADDRESS: '${TEMPORAL_ADDRESS}' } },
|
|
585
|
+
enabledTools: ['list_workflows', 'get_workflow', 'signal_workflow'],
|
|
586
|
+
},
|
|
587
|
+
{
|
|
588
|
+
key: 'launchdarkly-mcp', label: 'LaunchDarkly',
|
|
589
|
+
description: 'Feature flags via LaunchDarkly.',
|
|
590
|
+
useWhen: 'Repos using LaunchDarkly.',
|
|
591
|
+
adoption: 'Requires: LAUNCHDARKLY_ACCESS_TOKEN.',
|
|
592
|
+
trustLevel: 'medium', transport: 'stdio', requiredAuth: ['LAUNCHDARKLY_ACCESS_TOKEN'],
|
|
593
|
+
serverName: 'launchdarkly',
|
|
594
|
+
tomlProjection: { command: 'npx', args: ['-y', 'launchdarkly-mcp-server@latest'],
|
|
595
|
+
env: { LAUNCHDARKLY_ACCESS_TOKEN: '${LAUNCHDARKLY_ACCESS_TOKEN}' } },
|
|
596
|
+
enabledTools: ['list_flags', 'get_flag', 'toggle_flag'],
|
|
597
|
+
},
|
|
598
|
+
{
|
|
599
|
+
key: 'datadog-mcp', label: 'Datadog',
|
|
600
|
+
description: 'Monitoring and APM via Datadog.',
|
|
601
|
+
useWhen: 'Repos using Datadog.',
|
|
602
|
+
adoption: 'Requires: DATADOG_API_KEY, DATADOG_APP_KEY.',
|
|
603
|
+
trustLevel: 'medium', transport: 'stdio', requiredAuth: ['DATADOG_API_KEY', 'DATADOG_APP_KEY'],
|
|
604
|
+
serverName: 'datadog',
|
|
605
|
+
tomlProjection: { command: 'npx', args: ['-y', '@datadog/mcp-server@latest'],
|
|
606
|
+
env: { DATADOG_API_KEY: '${DATADOG_API_KEY}', DATADOG_APP_KEY: '${DATADOG_APP_KEY}' } },
|
|
607
|
+
enabledTools: ['query_metrics', 'list_monitors', 'search_logs'],
|
|
608
|
+
},
|
|
609
|
+
{
|
|
610
|
+
key: 'grafana-mcp', label: 'Grafana',
|
|
611
|
+
description: 'Dashboards via Grafana.',
|
|
612
|
+
useWhen: 'Repos using Grafana.',
|
|
613
|
+
adoption: 'Requires: GRAFANA_URL, GRAFANA_API_KEY.',
|
|
614
|
+
trustLevel: 'medium', transport: 'stdio', requiredAuth: ['GRAFANA_URL', 'GRAFANA_API_KEY'],
|
|
615
|
+
serverName: 'grafana',
|
|
616
|
+
tomlProjection: { command: 'npx', args: ['-y', 'grafana-mcp-server@latest'],
|
|
617
|
+
env: { GRAFANA_URL: '${GRAFANA_URL}', GRAFANA_API_KEY: '${GRAFANA_API_KEY}' } },
|
|
618
|
+
enabledTools: ['list_dashboards', 'get_panel', 'query_datasource'],
|
|
619
|
+
},
|
|
620
|
+
{
|
|
621
|
+
key: 'circleci-mcp', label: 'CircleCI',
|
|
622
|
+
description: 'CI/CD via CircleCI.',
|
|
623
|
+
useWhen: 'Repos using CircleCI.',
|
|
624
|
+
adoption: 'Requires: CIRCLECI_TOKEN.',
|
|
625
|
+
trustLevel: 'medium', transport: 'stdio', requiredAuth: ['CIRCLECI_TOKEN'],
|
|
626
|
+
serverName: 'circleci',
|
|
627
|
+
tomlProjection: { command: 'npx', args: ['-y', 'circleci-mcp-server@latest'],
|
|
628
|
+
env: { CIRCLECI_TOKEN: '${CIRCLECI_TOKEN}' } },
|
|
629
|
+
enabledTools: ['list_pipelines', 'get_pipeline', 'list_jobs'],
|
|
630
|
+
},
|
|
631
|
+
{
|
|
632
|
+
key: 'anthropic-mcp', label: 'Anthropic Claude API',
|
|
633
|
+
description: 'Claude API for AI-powered apps.',
|
|
634
|
+
useWhen: 'Repos building on Claude API.',
|
|
635
|
+
adoption: 'Requires: ANTHROPIC_API_KEY.',
|
|
636
|
+
trustLevel: 'high', transport: 'stdio', requiredAuth: ['ANTHROPIC_API_KEY'],
|
|
637
|
+
serverName: 'anthropic',
|
|
638
|
+
tomlProjection: { command: 'npx', args: ['-y', '@anthropic-ai/mcp-server@latest'],
|
|
639
|
+
env: { ANTHROPIC_API_KEY: '${ANTHROPIC_API_KEY}' } },
|
|
640
|
+
enabledTools: ['create_message', 'list_models'],
|
|
641
|
+
},
|
|
388
642
|
];
|
|
389
643
|
|
|
390
644
|
// --- Helpers ---
|