@vibescope/mcp-server 0.1.0 → 0.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/README.md +1 -1
- package/dist/api-client.d.ts +120 -2
- package/dist/api-client.js +51 -5
- package/dist/handlers/bodies-of-work.js +84 -50
- package/dist/handlers/cost.js +62 -54
- package/dist/handlers/decisions.js +29 -16
- package/dist/handlers/deployment.js +114 -107
- package/dist/handlers/discovery.d.ts +3 -0
- package/dist/handlers/discovery.js +55 -657
- package/dist/handlers/fallback.js +42 -28
- package/dist/handlers/file-checkouts.d.ts +18 -0
- package/dist/handlers/file-checkouts.js +101 -0
- package/dist/handlers/findings.d.ts +14 -1
- package/dist/handlers/findings.js +104 -28
- package/dist/handlers/git-issues.js +36 -32
- package/dist/handlers/ideas.js +44 -26
- package/dist/handlers/index.d.ts +2 -0
- package/dist/handlers/index.js +6 -0
- package/dist/handlers/milestones.js +34 -27
- package/dist/handlers/organizations.js +86 -78
- package/dist/handlers/progress.js +22 -11
- package/dist/handlers/project.js +62 -22
- package/dist/handlers/requests.js +15 -11
- package/dist/handlers/roles.d.ts +18 -0
- package/dist/handlers/roles.js +130 -0
- package/dist/handlers/session.js +52 -15
- package/dist/handlers/sprints.js +78 -65
- package/dist/handlers/tasks.js +135 -74
- package/dist/handlers/tool-docs.d.ts +4 -3
- package/dist/handlers/tool-docs.js +252 -5
- package/dist/handlers/validation.js +30 -14
- package/dist/index.js +25 -7
- package/dist/tools.js +417 -4
- package/package.json +1 -1
- package/src/api-client.ts +161 -8
- package/src/handlers/__test-setup__.ts +12 -0
- package/src/handlers/bodies-of-work.ts +127 -111
- package/src/handlers/cost.test.ts +34 -44
- package/src/handlers/cost.ts +77 -92
- package/src/handlers/decisions.test.ts +3 -2
- package/src/handlers/decisions.ts +32 -27
- package/src/handlers/deployment.ts +144 -190
- package/src/handlers/discovery.test.ts +4 -5
- package/src/handlers/discovery.ts +60 -746
- package/src/handlers/fallback.test.ts +78 -0
- package/src/handlers/fallback.ts +51 -38
- package/src/handlers/file-checkouts.test.ts +477 -0
- package/src/handlers/file-checkouts.ts +127 -0
- package/src/handlers/findings.test.ts +274 -2
- package/src/handlers/findings.ts +123 -57
- package/src/handlers/git-issues.ts +40 -80
- package/src/handlers/ideas.ts +56 -54
- package/src/handlers/index.ts +6 -0
- package/src/handlers/milestones.test.ts +1 -1
- package/src/handlers/milestones.ts +47 -45
- package/src/handlers/organizations.ts +104 -129
- package/src/handlers/progress.ts +24 -22
- package/src/handlers/project.ts +89 -57
- package/src/handlers/requests.ts +18 -14
- package/src/handlers/roles.test.ts +303 -0
- package/src/handlers/roles.ts +208 -0
- package/src/handlers/session.test.ts +37 -2
- package/src/handlers/session.ts +64 -21
- package/src/handlers/sprints.ts +114 -134
- package/src/handlers/tasks.test.ts +61 -0
- package/src/handlers/tasks.ts +170 -139
- package/src/handlers/tool-docs.ts +1024 -0
- package/src/handlers/validation.test.ts +53 -1
- package/src/handlers/validation.ts +32 -21
- package/src/index.ts +25 -7
- package/src/tools.ts +417 -4
- package/dist/config/tool-categories.d.ts +0 -31
- package/dist/config/tool-categories.js +0 -253
- package/dist/knowledge.d.ts +0 -6
- package/dist/knowledge.js +0 -218
- package/src/knowledge.ts +0 -230
package/src/tools.ts
CHANGED
|
@@ -884,15 +884,29 @@ Returns session info, persona, role, and next task. Use mode:'full' for complete
|
|
|
884
884
|
},
|
|
885
885
|
{
|
|
886
886
|
name: 'get_findings',
|
|
887
|
-
description: `Get findings for a project, optionally filtered by category, severity, or status.`,
|
|
887
|
+
description: `Get findings for a project, optionally filtered by category, severity, or status. Use summary_only=true to reduce token usage by returning only essential fields (id, title, category, severity, status). For just counts, use get_findings_stats instead.`,
|
|
888
888
|
inputSchema: {
|
|
889
889
|
type: 'object',
|
|
890
890
|
properties: {
|
|
891
891
|
project_id: { type: 'string', description: 'Project UUID' },
|
|
892
892
|
category: { type: 'string', enum: ['performance', 'security', 'code_quality', 'accessibility', 'documentation', 'architecture', 'testing', 'other'], description: 'Filter by category (optional)' },
|
|
893
893
|
severity: { type: 'string', enum: ['info', 'low', 'medium', 'high', 'critical'], description: 'Filter by severity (optional)' },
|
|
894
|
-
status: { type: 'string', enum: ['open', 'addressed', 'dismissed', 'wontfix'], description: 'Filter by status (default:
|
|
895
|
-
limit: { type: 'number', description: 'Max number of findings to return (default 50)' },
|
|
894
|
+
status: { type: 'string', enum: ['open', 'addressed', 'dismissed', 'wontfix'], description: 'Filter by status (default: open)' },
|
|
895
|
+
limit: { type: 'number', description: 'Max number of findings to return (default 50, max 200)' },
|
|
896
|
+
offset: { type: 'number', description: 'Number of findings to skip for pagination (default 0)' },
|
|
897
|
+
search_query: { type: 'string', description: 'Search findings by title' },
|
|
898
|
+
summary_only: { type: 'boolean', description: 'When true, returns only id, title, category, severity, status (reduces tokens by ~80%). Default: false' },
|
|
899
|
+
},
|
|
900
|
+
required: ['project_id'],
|
|
901
|
+
},
|
|
902
|
+
},
|
|
903
|
+
{
|
|
904
|
+
name: 'get_findings_stats',
|
|
905
|
+
description: `Get aggregate statistics about findings for a project. Returns total count and breakdowns by status, severity, and category. Much more token-efficient than get_findings when you just need to understand the overall state.`,
|
|
906
|
+
inputSchema: {
|
|
907
|
+
type: 'object',
|
|
908
|
+
properties: {
|
|
909
|
+
project_id: { type: 'string', description: 'Project UUID' },
|
|
896
910
|
},
|
|
897
911
|
required: ['project_id'],
|
|
898
912
|
},
|
|
@@ -1103,6 +1117,10 @@ Returns subtasks with aggregate completion stats.`,
|
|
|
1103
1117
|
type: 'string',
|
|
1104
1118
|
description: 'Session ID from start_work_session (optional, uses current session if not provided)',
|
|
1105
1119
|
},
|
|
1120
|
+
current_worktree_path: {
|
|
1121
|
+
type: ['string', 'null'],
|
|
1122
|
+
description: 'Report your current git worktree path (e.g., "../project-task-abc123"). Set to null to clear.',
|
|
1123
|
+
},
|
|
1106
1124
|
},
|
|
1107
1125
|
},
|
|
1108
1126
|
},
|
|
@@ -1152,7 +1170,7 @@ Returns subtasks with aggregate completion stats.`,
|
|
|
1152
1170
|
},
|
|
1153
1171
|
{
|
|
1154
1172
|
name: 'validate_task',
|
|
1155
|
-
description: 'Validate a completed task. Include test results in validation_notes.',
|
|
1173
|
+
description: 'Validate a completed task. Include test results in validation_notes. For github-flow/git-flow projects, a PR must exist before approval (add via add_task_reference).',
|
|
1156
1174
|
inputSchema: {
|
|
1157
1175
|
type: 'object',
|
|
1158
1176
|
properties: {
|
|
@@ -1168,6 +1186,10 @@ Returns subtasks with aggregate completion stats.`,
|
|
|
1168
1186
|
type: 'boolean',
|
|
1169
1187
|
description: 'Whether the task passes validation (true = approved, false = needs more work)',
|
|
1170
1188
|
},
|
|
1189
|
+
skip_pr_check: {
|
|
1190
|
+
type: 'boolean',
|
|
1191
|
+
description: 'Skip PR existence check (use only for tasks that legitimately do not need a PR)',
|
|
1192
|
+
},
|
|
1171
1193
|
},
|
|
1172
1194
|
required: ['task_id', 'approved'],
|
|
1173
1195
|
},
|
|
@@ -1351,6 +1373,10 @@ Returns subtasks with aggregate completion stats.`,
|
|
|
1351
1373
|
type: 'boolean',
|
|
1352
1374
|
description: 'When true, converted task blocks all other work until complete',
|
|
1353
1375
|
},
|
|
1376
|
+
recurring: {
|
|
1377
|
+
type: 'boolean',
|
|
1378
|
+
description: 'When true, requirement resets to pending when a new deployment is requested',
|
|
1379
|
+
},
|
|
1354
1380
|
},
|
|
1355
1381
|
required: ['project_id', 'type', 'title'],
|
|
1356
1382
|
},
|
|
@@ -2502,5 +2528,392 @@ Only returns tasks where all dependencies are completed.`,
|
|
|
2502
2528
|
required: ['project_id'],
|
|
2503
2529
|
},
|
|
2504
2530
|
},
|
|
2531
|
+
// ============================================================================
|
|
2532
|
+
// Sprint Tools
|
|
2533
|
+
// ============================================================================
|
|
2534
|
+
{
|
|
2535
|
+
name: 'create_sprint',
|
|
2536
|
+
description: `Create a new sprint. Sprints are time-bounded bodies of work with velocity tracking.
|
|
2537
|
+
Sprints start in 'planning' status where tasks can be added with story points.`,
|
|
2538
|
+
inputSchema: {
|
|
2539
|
+
type: 'object',
|
|
2540
|
+
properties: {
|
|
2541
|
+
project_id: {
|
|
2542
|
+
type: 'string',
|
|
2543
|
+
description: 'Project UUID',
|
|
2544
|
+
},
|
|
2545
|
+
title: {
|
|
2546
|
+
type: 'string',
|
|
2547
|
+
description: 'Sprint title (e.g., "Sprint 5" or "Q1 Release")',
|
|
2548
|
+
},
|
|
2549
|
+
goal: {
|
|
2550
|
+
type: 'string',
|
|
2551
|
+
description: 'Sprint goal statement',
|
|
2552
|
+
},
|
|
2553
|
+
start_date: {
|
|
2554
|
+
type: 'string',
|
|
2555
|
+
description: 'Start date (YYYY-MM-DD)',
|
|
2556
|
+
},
|
|
2557
|
+
end_date: {
|
|
2558
|
+
type: 'string',
|
|
2559
|
+
description: 'End date (YYYY-MM-DD)',
|
|
2560
|
+
},
|
|
2561
|
+
auto_deploy_on_completion: {
|
|
2562
|
+
type: 'boolean',
|
|
2563
|
+
description: 'Automatically request deployment when sprint completes (default: false)',
|
|
2564
|
+
},
|
|
2565
|
+
deploy_environment: {
|
|
2566
|
+
type: 'string',
|
|
2567
|
+
enum: ['development', 'staging', 'production'],
|
|
2568
|
+
description: 'Target environment for auto-deploy (default: production)',
|
|
2569
|
+
},
|
|
2570
|
+
deploy_version_bump: {
|
|
2571
|
+
type: 'string',
|
|
2572
|
+
enum: ['patch', 'minor', 'major'],
|
|
2573
|
+
description: 'Version bump for auto-deploy (default: minor)',
|
|
2574
|
+
},
|
|
2575
|
+
},
|
|
2576
|
+
required: ['project_id', 'title', 'start_date', 'end_date'],
|
|
2577
|
+
},
|
|
2578
|
+
},
|
|
2579
|
+
{
|
|
2580
|
+
name: 'update_sprint',
|
|
2581
|
+
description: `Update a sprint's details. Can update title, goal, dates, and deployment settings.`,
|
|
2582
|
+
inputSchema: {
|
|
2583
|
+
type: 'object',
|
|
2584
|
+
properties: {
|
|
2585
|
+
sprint_id: {
|
|
2586
|
+
type: 'string',
|
|
2587
|
+
description: 'Sprint UUID',
|
|
2588
|
+
},
|
|
2589
|
+
title: {
|
|
2590
|
+
type: 'string',
|
|
2591
|
+
description: 'New sprint title',
|
|
2592
|
+
},
|
|
2593
|
+
goal: {
|
|
2594
|
+
type: 'string',
|
|
2595
|
+
description: 'New sprint goal',
|
|
2596
|
+
},
|
|
2597
|
+
start_date: {
|
|
2598
|
+
type: 'string',
|
|
2599
|
+
description: 'New start date (YYYY-MM-DD)',
|
|
2600
|
+
},
|
|
2601
|
+
end_date: {
|
|
2602
|
+
type: 'string',
|
|
2603
|
+
description: 'New end date (YYYY-MM-DD)',
|
|
2604
|
+
},
|
|
2605
|
+
auto_deploy_on_completion: {
|
|
2606
|
+
type: 'boolean',
|
|
2607
|
+
description: 'Auto-deploy setting',
|
|
2608
|
+
},
|
|
2609
|
+
deploy_environment: {
|
|
2610
|
+
type: 'string',
|
|
2611
|
+
enum: ['development', 'staging', 'production'],
|
|
2612
|
+
description: 'Target environment',
|
|
2613
|
+
},
|
|
2614
|
+
deploy_version_bump: {
|
|
2615
|
+
type: 'string',
|
|
2616
|
+
enum: ['patch', 'minor', 'major'],
|
|
2617
|
+
description: 'Version bump type',
|
|
2618
|
+
},
|
|
2619
|
+
},
|
|
2620
|
+
required: ['sprint_id'],
|
|
2621
|
+
},
|
|
2622
|
+
},
|
|
2623
|
+
{
|
|
2624
|
+
name: 'get_sprint',
|
|
2625
|
+
description: `Get a sprint with all its tasks organized by phase (pre/core/post).
|
|
2626
|
+
Includes progress percentage, velocity points, and committed points.
|
|
2627
|
+
Use summary_only: true to get task counts and next task instead of full task arrays (saves tokens).`,
|
|
2628
|
+
inputSchema: {
|
|
2629
|
+
type: 'object',
|
|
2630
|
+
properties: {
|
|
2631
|
+
sprint_id: {
|
|
2632
|
+
type: 'string',
|
|
2633
|
+
description: 'Sprint UUID',
|
|
2634
|
+
},
|
|
2635
|
+
summary_only: {
|
|
2636
|
+
type: 'boolean',
|
|
2637
|
+
description: 'Return task counts and next task instead of full task arrays (default: false)',
|
|
2638
|
+
},
|
|
2639
|
+
},
|
|
2640
|
+
required: ['sprint_id'],
|
|
2641
|
+
},
|
|
2642
|
+
},
|
|
2643
|
+
{
|
|
2644
|
+
name: 'get_sprints',
|
|
2645
|
+
description: `List sprints for a project with velocity metrics.
|
|
2646
|
+
Returns sprints sorted by sprint_number descending (most recent first).`,
|
|
2647
|
+
inputSchema: {
|
|
2648
|
+
type: 'object',
|
|
2649
|
+
properties: {
|
|
2650
|
+
project_id: {
|
|
2651
|
+
type: 'string',
|
|
2652
|
+
description: 'Project UUID',
|
|
2653
|
+
},
|
|
2654
|
+
status: {
|
|
2655
|
+
type: 'string',
|
|
2656
|
+
enum: ['planning', 'active', 'in_review', 'retrospective', 'completed', 'cancelled'],
|
|
2657
|
+
description: 'Filter by sprint status (optional)',
|
|
2658
|
+
},
|
|
2659
|
+
limit: {
|
|
2660
|
+
type: 'number',
|
|
2661
|
+
description: 'Max sprints to return (default: 20, max: 100)',
|
|
2662
|
+
},
|
|
2663
|
+
},
|
|
2664
|
+
required: ['project_id'],
|
|
2665
|
+
},
|
|
2666
|
+
},
|
|
2667
|
+
{
|
|
2668
|
+
name: 'delete_sprint',
|
|
2669
|
+
description: `Delete a sprint. Tasks are preserved but no longer grouped.`,
|
|
2670
|
+
inputSchema: {
|
|
2671
|
+
type: 'object',
|
|
2672
|
+
properties: {
|
|
2673
|
+
sprint_id: {
|
|
2674
|
+
type: 'string',
|
|
2675
|
+
description: 'Sprint UUID',
|
|
2676
|
+
},
|
|
2677
|
+
},
|
|
2678
|
+
required: ['sprint_id'],
|
|
2679
|
+
},
|
|
2680
|
+
},
|
|
2681
|
+
{
|
|
2682
|
+
name: 'start_sprint',
|
|
2683
|
+
description: `Start a sprint. Transitions from 'planning' to 'active' status.
|
|
2684
|
+
Locks the committed_points at the current total story points.`,
|
|
2685
|
+
inputSchema: {
|
|
2686
|
+
type: 'object',
|
|
2687
|
+
properties: {
|
|
2688
|
+
sprint_id: {
|
|
2689
|
+
type: 'string',
|
|
2690
|
+
description: 'Sprint UUID',
|
|
2691
|
+
},
|
|
2692
|
+
},
|
|
2693
|
+
required: ['sprint_id'],
|
|
2694
|
+
},
|
|
2695
|
+
},
|
|
2696
|
+
{
|
|
2697
|
+
name: 'complete_sprint',
|
|
2698
|
+
description: `Complete a sprint. Handles retrospective phase and auto-deployment if configured.
|
|
2699
|
+
Status flow: active → in_review → retrospective → completed`,
|
|
2700
|
+
inputSchema: {
|
|
2701
|
+
type: 'object',
|
|
2702
|
+
properties: {
|
|
2703
|
+
sprint_id: {
|
|
2704
|
+
type: 'string',
|
|
2705
|
+
description: 'Sprint UUID',
|
|
2706
|
+
},
|
|
2707
|
+
retrospective_notes: {
|
|
2708
|
+
type: 'string',
|
|
2709
|
+
description: 'Sprint retrospective notes',
|
|
2710
|
+
},
|
|
2711
|
+
skip_retrospective: {
|
|
2712
|
+
type: 'boolean',
|
|
2713
|
+
description: 'Skip retrospective phase and go directly to completed (default: false)',
|
|
2714
|
+
},
|
|
2715
|
+
},
|
|
2716
|
+
required: ['sprint_id'],
|
|
2717
|
+
},
|
|
2718
|
+
},
|
|
2719
|
+
{
|
|
2720
|
+
name: 'add_task_to_sprint',
|
|
2721
|
+
description: `Add a task to a sprint with optional story points.
|
|
2722
|
+
Tasks can be added during 'planning' status. Story points contribute to committed_points.`,
|
|
2723
|
+
inputSchema: {
|
|
2724
|
+
type: 'object',
|
|
2725
|
+
properties: {
|
|
2726
|
+
sprint_id: {
|
|
2727
|
+
type: 'string',
|
|
2728
|
+
description: 'Sprint UUID',
|
|
2729
|
+
},
|
|
2730
|
+
task_id: {
|
|
2731
|
+
type: 'string',
|
|
2732
|
+
description: 'Task UUID to add',
|
|
2733
|
+
},
|
|
2734
|
+
story_points: {
|
|
2735
|
+
type: 'number',
|
|
2736
|
+
description: 'Story point estimate (optional, must be non-negative integer)',
|
|
2737
|
+
},
|
|
2738
|
+
phase: {
|
|
2739
|
+
type: 'string',
|
|
2740
|
+
enum: ['pre', 'core', 'post'],
|
|
2741
|
+
description: 'Task phase (default: core)',
|
|
2742
|
+
},
|
|
2743
|
+
},
|
|
2744
|
+
required: ['sprint_id', 'task_id'],
|
|
2745
|
+
},
|
|
2746
|
+
},
|
|
2747
|
+
{
|
|
2748
|
+
name: 'remove_task_from_sprint',
|
|
2749
|
+
description: `Remove a task from a sprint. Task is preserved but returns to backlog.`,
|
|
2750
|
+
inputSchema: {
|
|
2751
|
+
type: 'object',
|
|
2752
|
+
properties: {
|
|
2753
|
+
sprint_id: {
|
|
2754
|
+
type: 'string',
|
|
2755
|
+
description: 'Sprint UUID',
|
|
2756
|
+
},
|
|
2757
|
+
task_id: {
|
|
2758
|
+
type: 'string',
|
|
2759
|
+
description: 'Task UUID to remove',
|
|
2760
|
+
},
|
|
2761
|
+
},
|
|
2762
|
+
required: ['sprint_id', 'task_id'],
|
|
2763
|
+
},
|
|
2764
|
+
},
|
|
2765
|
+
{
|
|
2766
|
+
name: 'get_sprint_backlog',
|
|
2767
|
+
description: `Get tasks from backlog/pending that can be added to a sprint.
|
|
2768
|
+
Returns tasks not already assigned to any body of work or sprint.`,
|
|
2769
|
+
inputSchema: {
|
|
2770
|
+
type: 'object',
|
|
2771
|
+
properties: {
|
|
2772
|
+
project_id: {
|
|
2773
|
+
type: 'string',
|
|
2774
|
+
description: 'Project UUID',
|
|
2775
|
+
},
|
|
2776
|
+
sprint_id: {
|
|
2777
|
+
type: 'string',
|
|
2778
|
+
description: 'Sprint UUID to exclude already-added tasks (optional)',
|
|
2779
|
+
},
|
|
2780
|
+
},
|
|
2781
|
+
required: ['project_id'],
|
|
2782
|
+
},
|
|
2783
|
+
},
|
|
2784
|
+
{
|
|
2785
|
+
name: 'get_sprint_velocity',
|
|
2786
|
+
description: `Get velocity metrics for completed sprints.
|
|
2787
|
+
Returns committed vs completed points and average velocity.`,
|
|
2788
|
+
inputSchema: {
|
|
2789
|
+
type: 'object',
|
|
2790
|
+
properties: {
|
|
2791
|
+
project_id: {
|
|
2792
|
+
type: 'string',
|
|
2793
|
+
description: 'Project UUID',
|
|
2794
|
+
},
|
|
2795
|
+
limit: {
|
|
2796
|
+
type: 'number',
|
|
2797
|
+
description: 'Number of sprints to analyze (default: 10, max: 50)',
|
|
2798
|
+
},
|
|
2799
|
+
},
|
|
2800
|
+
required: ['project_id'],
|
|
2801
|
+
},
|
|
2802
|
+
},
|
|
2803
|
+
// ============================================================================
|
|
2804
|
+
// Git Issue Tools
|
|
2805
|
+
// ============================================================================
|
|
2806
|
+
{
|
|
2807
|
+
name: 'add_git_issue',
|
|
2808
|
+
description: `Record a git-related issue (merge conflict, push failure, etc.). Auto-created by claim_validation when conflicts detected.`,
|
|
2809
|
+
inputSchema: {
|
|
2810
|
+
type: 'object',
|
|
2811
|
+
properties: {
|
|
2812
|
+
project_id: {
|
|
2813
|
+
type: 'string',
|
|
2814
|
+
description: 'Project UUID',
|
|
2815
|
+
},
|
|
2816
|
+
issue_type: {
|
|
2817
|
+
type: 'string',
|
|
2818
|
+
enum: ['merge_conflict', 'push_failed', 'rebase_needed', 'branch_diverged', 'pr_not_mergeable'],
|
|
2819
|
+
description: 'Type of git issue',
|
|
2820
|
+
},
|
|
2821
|
+
branch: {
|
|
2822
|
+
type: 'string',
|
|
2823
|
+
description: 'Branch where the issue occurred',
|
|
2824
|
+
},
|
|
2825
|
+
target_branch: {
|
|
2826
|
+
type: 'string',
|
|
2827
|
+
description: 'Target branch for merge/rebase (optional)',
|
|
2828
|
+
},
|
|
2829
|
+
pr_url: {
|
|
2830
|
+
type: 'string',
|
|
2831
|
+
description: 'Pull request URL if applicable (optional)',
|
|
2832
|
+
},
|
|
2833
|
+
conflicting_files: {
|
|
2834
|
+
type: 'array',
|
|
2835
|
+
items: { type: 'string' },
|
|
2836
|
+
description: 'List of files with conflicts (optional)',
|
|
2837
|
+
},
|
|
2838
|
+
error_message: {
|
|
2839
|
+
type: 'string',
|
|
2840
|
+
description: 'Error message from git operation (optional)',
|
|
2841
|
+
},
|
|
2842
|
+
task_id: {
|
|
2843
|
+
type: 'string',
|
|
2844
|
+
description: 'Related task UUID (optional)',
|
|
2845
|
+
},
|
|
2846
|
+
},
|
|
2847
|
+
required: ['project_id', 'issue_type', 'branch'],
|
|
2848
|
+
},
|
|
2849
|
+
},
|
|
2850
|
+
{
|
|
2851
|
+
name: 'resolve_git_issue',
|
|
2852
|
+
description: `Mark a git issue as resolved.`,
|
|
2853
|
+
inputSchema: {
|
|
2854
|
+
type: 'object',
|
|
2855
|
+
properties: {
|
|
2856
|
+
git_issue_id: {
|
|
2857
|
+
type: 'string',
|
|
2858
|
+
description: 'Git issue UUID',
|
|
2859
|
+
},
|
|
2860
|
+
resolution_note: {
|
|
2861
|
+
type: 'string',
|
|
2862
|
+
description: 'How the issue was resolved (optional)',
|
|
2863
|
+
},
|
|
2864
|
+
auto_resolved: {
|
|
2865
|
+
type: 'boolean',
|
|
2866
|
+
description: 'Whether this was auto-resolved (e.g., PR became mergeable)',
|
|
2867
|
+
},
|
|
2868
|
+
},
|
|
2869
|
+
required: ['git_issue_id'],
|
|
2870
|
+
},
|
|
2871
|
+
},
|
|
2872
|
+
{
|
|
2873
|
+
name: 'get_git_issues',
|
|
2874
|
+
description: `Get git issues for a project, optionally filtered by status, type, or branch.`,
|
|
2875
|
+
inputSchema: {
|
|
2876
|
+
type: 'object',
|
|
2877
|
+
properties: {
|
|
2878
|
+
project_id: {
|
|
2879
|
+
type: 'string',
|
|
2880
|
+
description: 'Project UUID',
|
|
2881
|
+
},
|
|
2882
|
+
status: {
|
|
2883
|
+
type: 'string',
|
|
2884
|
+
enum: ['open', 'resolved'],
|
|
2885
|
+
description: 'Filter by status (default: open)',
|
|
2886
|
+
},
|
|
2887
|
+
issue_type: {
|
|
2888
|
+
type: 'string',
|
|
2889
|
+
enum: ['merge_conflict', 'push_failed', 'rebase_needed', 'branch_diverged', 'pr_not_mergeable'],
|
|
2890
|
+
description: 'Filter by issue type (optional)',
|
|
2891
|
+
},
|
|
2892
|
+
branch: {
|
|
2893
|
+
type: 'string',
|
|
2894
|
+
description: 'Filter by branch (optional)',
|
|
2895
|
+
},
|
|
2896
|
+
limit: {
|
|
2897
|
+
type: 'number',
|
|
2898
|
+
description: 'Max issues to return (default: 50)',
|
|
2899
|
+
},
|
|
2900
|
+
},
|
|
2901
|
+
required: ['project_id'],
|
|
2902
|
+
},
|
|
2903
|
+
},
|
|
2904
|
+
{
|
|
2905
|
+
name: 'delete_git_issue',
|
|
2906
|
+
description: `Delete a git issue.`,
|
|
2907
|
+
inputSchema: {
|
|
2908
|
+
type: 'object',
|
|
2909
|
+
properties: {
|
|
2910
|
+
git_issue_id: {
|
|
2911
|
+
type: 'string',
|
|
2912
|
+
description: 'Git issue UUID',
|
|
2913
|
+
},
|
|
2914
|
+
},
|
|
2915
|
+
required: ['git_issue_id'],
|
|
2916
|
+
},
|
|
2917
|
+
},
|
|
2505
2918
|
];
|
|
2506
2919
|
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tool Categories Configuration
|
|
3
|
-
*
|
|
4
|
-
* Defines the categorization of MCP tools for discovery.
|
|
5
|
-
* Moved to separate config for lazy-loading optimization.
|
|
6
|
-
*/
|
|
7
|
-
export interface ToolEntry {
|
|
8
|
-
name: string;
|
|
9
|
-
brief: string;
|
|
10
|
-
}
|
|
11
|
-
export interface CategoryEntry {
|
|
12
|
-
description: string;
|
|
13
|
-
tools: ToolEntry[];
|
|
14
|
-
}
|
|
15
|
-
export declare const TOOL_CATEGORIES: Record<string, CategoryEntry>;
|
|
16
|
-
/**
|
|
17
|
-
* Get list of category names
|
|
18
|
-
*/
|
|
19
|
-
export declare function getCategoryNames(): string[];
|
|
20
|
-
/**
|
|
21
|
-
* Get category summary (without full tool list)
|
|
22
|
-
*/
|
|
23
|
-
export declare function getCategorySummary(): Array<{
|
|
24
|
-
name: string;
|
|
25
|
-
description: string;
|
|
26
|
-
tool_count: number;
|
|
27
|
-
}>;
|
|
28
|
-
/**
|
|
29
|
-
* Get tools in a specific category
|
|
30
|
-
*/
|
|
31
|
-
export declare function getCategoryTools(category: string): CategoryEntry | undefined;
|