contextforge-mcp 0.1.76 → 0.1.78
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/LICENSE +21 -0
- package/README.md +167 -91
- package/dist/index.js +61 -61
- package/dist/index.js.map +1 -1
- package/package.json +21 -5
package/dist/index.js
CHANGED
|
@@ -184,7 +184,7 @@ const TOOLS = [
|
|
|
184
184
|
{
|
|
185
185
|
name: "memory_ingest",
|
|
186
186
|
description: "Add content to the contextual memory. Use this to store code snippets, documentation, decisions, or any knowledge you want to remember.",
|
|
187
|
-
annotations: { title: "Save to Memory", destructiveHint:
|
|
187
|
+
annotations: { title: "Save to Memory", readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
|
|
188
188
|
inputSchema: {
|
|
189
189
|
type: "object",
|
|
190
190
|
properties: {
|
|
@@ -225,7 +225,7 @@ const TOOLS = [
|
|
|
225
225
|
{
|
|
226
226
|
name: "memory_query",
|
|
227
227
|
description: "Search the contextual memory using semantic search. Returns the most relevant stored content based on your query.",
|
|
228
|
-
annotations: { title: "Search Memory", readOnlyHint: true },
|
|
228
|
+
annotations: { title: "Search Memory", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
229
229
|
inputSchema: {
|
|
230
230
|
type: "object",
|
|
231
231
|
properties: {
|
|
@@ -280,7 +280,7 @@ const TOOLS = [
|
|
|
280
280
|
{
|
|
281
281
|
name: "memory_get_item",
|
|
282
282
|
description: "Get the full content of a knowledge item by its ID. Use this when memory_query returns truncated previews and you need the complete content.",
|
|
283
|
-
annotations: { title: "Get Memory Item", readOnlyHint: true },
|
|
283
|
+
annotations: { title: "Get Memory Item", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
284
284
|
inputSchema: {
|
|
285
285
|
type: "object",
|
|
286
286
|
properties: {
|
|
@@ -296,7 +296,7 @@ const TOOLS = [
|
|
|
296
296
|
{
|
|
297
297
|
name: "memory_list_projects",
|
|
298
298
|
description: "List all projects. Projects contain multiple spaces for organizing knowledge by project.",
|
|
299
|
-
annotations: { title: "List Projects", readOnlyHint: true },
|
|
299
|
+
annotations: { title: "List Projects", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
300
300
|
inputSchema: {
|
|
301
301
|
type: "object",
|
|
302
302
|
properties: {},
|
|
@@ -306,7 +306,7 @@ const TOOLS = [
|
|
|
306
306
|
{
|
|
307
307
|
name: "memory_create_project",
|
|
308
308
|
description: "Create a new project to organize related spaces",
|
|
309
|
-
annotations: { title: "Create Project", destructiveHint:
|
|
309
|
+
annotations: { title: "Create Project", readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
|
|
310
310
|
inputSchema: {
|
|
311
311
|
type: "object",
|
|
312
312
|
properties: {
|
|
@@ -326,7 +326,7 @@ const TOOLS = [
|
|
|
326
326
|
{
|
|
327
327
|
name: "memory_list_spaces",
|
|
328
328
|
description: 'List knowledge spaces (workspaces). By default shows only knowledge spaces. Use space_type "git" for GitHub repos, or "all" to see everything.',
|
|
329
|
-
annotations: { title: "List Spaces", readOnlyHint: true },
|
|
329
|
+
annotations: { title: "List Spaces", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
330
330
|
inputSchema: {
|
|
331
331
|
type: "object",
|
|
332
332
|
properties: {
|
|
@@ -350,7 +350,7 @@ const TOOLS = [
|
|
|
350
350
|
{
|
|
351
351
|
name: "memory_create_space",
|
|
352
352
|
description: "Create a new memory space (workspace) for organizing knowledge",
|
|
353
|
-
annotations: { title: "Create Space", destructiveHint:
|
|
353
|
+
annotations: { title: "Create Space", readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
|
|
354
354
|
inputSchema: {
|
|
355
355
|
type: "object",
|
|
356
356
|
properties: {
|
|
@@ -377,7 +377,7 @@ const TOOLS = [
|
|
|
377
377
|
{
|
|
378
378
|
name: "memory_move_space",
|
|
379
379
|
description: "Move a space to a different project",
|
|
380
|
-
annotations: { title: "Move Space", destructiveHint: true },
|
|
380
|
+
annotations: { title: "Move Space", readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
381
381
|
inputSchema: {
|
|
382
382
|
type: "object",
|
|
383
383
|
properties: {
|
|
@@ -396,7 +396,7 @@ const TOOLS = [
|
|
|
396
396
|
{
|
|
397
397
|
name: "memory_delete_space",
|
|
398
398
|
description: "Delete a space and all its items permanently. This action cannot be undone.",
|
|
399
|
-
annotations: { title: "Delete Space", destructiveHint: true },
|
|
399
|
+
annotations: { title: "Delete Space", readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false },
|
|
400
400
|
inputSchema: {
|
|
401
401
|
type: "object",
|
|
402
402
|
properties: {
|
|
@@ -411,7 +411,7 @@ const TOOLS = [
|
|
|
411
411
|
{
|
|
412
412
|
name: "memory_delete_project",
|
|
413
413
|
description: "Delete a project and all its spaces permanently. This will delete all spaces and their items within the project. This action cannot be undone.",
|
|
414
|
-
annotations: { title: "Delete Project", destructiveHint: true },
|
|
414
|
+
annotations: { title: "Delete Project", readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false },
|
|
415
415
|
inputSchema: {
|
|
416
416
|
type: "object",
|
|
417
417
|
properties: {
|
|
@@ -426,7 +426,7 @@ const TOOLS = [
|
|
|
426
426
|
{
|
|
427
427
|
name: "memory_relate",
|
|
428
428
|
description: "Create a relationship between two knowledge items",
|
|
429
|
-
annotations: { title: "Relate Memory Items", destructiveHint:
|
|
429
|
+
annotations: { title: "Relate Memory Items", readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
|
|
430
430
|
inputSchema: {
|
|
431
431
|
type: "object",
|
|
432
432
|
properties: {
|
|
@@ -469,7 +469,7 @@ const TOOLS = [
|
|
|
469
469
|
{
|
|
470
470
|
name: "memory_list_relationships",
|
|
471
471
|
description: "List all relationships for a knowledge item, showing both incoming and outgoing connections with related item details",
|
|
472
|
-
annotations: { title: "List Relationships", readOnlyHint: true },
|
|
472
|
+
annotations: { title: "List Relationships", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
473
473
|
inputSchema: {
|
|
474
474
|
type: "object",
|
|
475
475
|
properties: {
|
|
@@ -484,7 +484,7 @@ const TOOLS = [
|
|
|
484
484
|
{
|
|
485
485
|
name: "memory_delete",
|
|
486
486
|
description: "Delete a knowledge item from memory by ID or title",
|
|
487
|
-
annotations: { title: "Delete Memory Item", destructiveHint: true },
|
|
487
|
+
annotations: { title: "Delete Memory Item", readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false },
|
|
488
488
|
inputSchema: {
|
|
489
489
|
type: "object",
|
|
490
490
|
properties: {
|
|
@@ -511,7 +511,7 @@ const TOOLS = [
|
|
|
511
511
|
{
|
|
512
512
|
name: "memory_stats",
|
|
513
513
|
description: "Get statistics about memory usage",
|
|
514
|
-
annotations: { title: "Memory Stats", readOnlyHint: true },
|
|
514
|
+
annotations: { title: "Memory Stats", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
515
515
|
inputSchema: {
|
|
516
516
|
type: "object",
|
|
517
517
|
properties: {
|
|
@@ -526,7 +526,7 @@ const TOOLS = [
|
|
|
526
526
|
{
|
|
527
527
|
name: "memory_list_items",
|
|
528
528
|
description: "List all items stored in memory. Shows titles, previews, tags, and creation dates.",
|
|
529
|
-
annotations: { title: "List Memory Items", readOnlyHint: true },
|
|
529
|
+
annotations: { title: "List Memory Items", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
530
530
|
inputSchema: {
|
|
531
531
|
type: "object",
|
|
532
532
|
properties: {
|
|
@@ -549,7 +549,7 @@ const TOOLS = [
|
|
|
549
549
|
{
|
|
550
550
|
name: "memory_help",
|
|
551
551
|
description: "Show help and usage instructions for ContextForge memory commands",
|
|
552
|
-
annotations: { title: "Memory Help", readOnlyHint: true },
|
|
552
|
+
annotations: { title: "Memory Help", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
553
553
|
inputSchema: {
|
|
554
554
|
type: "object",
|
|
555
555
|
properties: {},
|
|
@@ -560,7 +560,7 @@ const TOOLS = [
|
|
|
560
560
|
{
|
|
561
561
|
name: "memory_git_connect",
|
|
562
562
|
description: "Connect a GitHub repository to automatically sync commits and PRs to memory",
|
|
563
|
-
annotations: { title: "Connect GitHub Repo", destructiveHint: true },
|
|
563
|
+
annotations: { title: "Connect GitHub Repo", readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true },
|
|
564
564
|
inputSchema: {
|
|
565
565
|
type: "object",
|
|
566
566
|
properties: {
|
|
@@ -579,7 +579,7 @@ const TOOLS = [
|
|
|
579
579
|
{
|
|
580
580
|
name: "memory_git_list",
|
|
581
581
|
description: "List all connected GitHub repositories",
|
|
582
|
-
annotations: { title: "List GitHub Repos", readOnlyHint: true },
|
|
582
|
+
annotations: { title: "List GitHub Repos", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
583
583
|
inputSchema: {
|
|
584
584
|
type: "object",
|
|
585
585
|
properties: {
|
|
@@ -594,7 +594,7 @@ const TOOLS = [
|
|
|
594
594
|
{
|
|
595
595
|
name: "memory_git_activate",
|
|
596
596
|
description: "Activate or deactivate a connected repository webhook after setup",
|
|
597
|
-
annotations: { title: "Activate GitHub Repo", destructiveHint: true },
|
|
597
|
+
annotations: { title: "Activate GitHub Repo", readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
598
598
|
inputSchema: {
|
|
599
599
|
type: "object",
|
|
600
600
|
properties: {
|
|
@@ -617,7 +617,7 @@ const TOOLS = [
|
|
|
617
617
|
{
|
|
618
618
|
name: "memory_git_disconnect",
|
|
619
619
|
description: "Disconnect a GitHub repository and stop syncing",
|
|
620
|
-
annotations: { title: "Disconnect GitHub Repo", destructiveHint: true },
|
|
620
|
+
annotations: { title: "Disconnect GitHub Repo", readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
621
621
|
inputSchema: {
|
|
622
622
|
type: "object",
|
|
623
623
|
properties: {
|
|
@@ -636,7 +636,7 @@ const TOOLS = [
|
|
|
636
636
|
{
|
|
637
637
|
name: "memory_git_sync",
|
|
638
638
|
description: "Sync existing commits and PRs from a connected GitHub repository into memory",
|
|
639
|
-
annotations: { title: "Sync GitHub Repo", destructiveHint: true },
|
|
639
|
+
annotations: { title: "Sync GitHub Repo", readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true },
|
|
640
640
|
inputSchema: {
|
|
641
641
|
type: "object",
|
|
642
642
|
properties: {
|
|
@@ -664,7 +664,7 @@ const TOOLS = [
|
|
|
664
664
|
{
|
|
665
665
|
name: "memory_git_commits",
|
|
666
666
|
description: "List commits stored in memory from connected repositories",
|
|
667
|
-
annotations: { title: "List Git Commits", readOnlyHint: true },
|
|
667
|
+
annotations: { title: "List Git Commits", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
668
668
|
inputSchema: {
|
|
669
669
|
type: "object",
|
|
670
670
|
properties: {
|
|
@@ -695,7 +695,7 @@ const TOOLS = [
|
|
|
695
695
|
{
|
|
696
696
|
name: "memory_git_prs",
|
|
697
697
|
description: "List pull requests stored in memory from connected repositories",
|
|
698
|
-
annotations: { title: "List Pull Requests", readOnlyHint: true },
|
|
698
|
+
annotations: { title: "List Pull Requests", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
699
699
|
inputSchema: {
|
|
700
700
|
type: "object",
|
|
701
701
|
properties: {
|
|
@@ -727,7 +727,7 @@ const TOOLS = [
|
|
|
727
727
|
{
|
|
728
728
|
name: "memory_snapshot_create",
|
|
729
729
|
description: "Create a snapshot (backup) of the current memory state",
|
|
730
|
-
annotations: { title: "Create Snapshot", destructiveHint:
|
|
730
|
+
annotations: { title: "Create Snapshot", readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
|
|
731
731
|
inputSchema: {
|
|
732
732
|
type: "object",
|
|
733
733
|
properties: {
|
|
@@ -750,7 +750,7 @@ const TOOLS = [
|
|
|
750
750
|
{
|
|
751
751
|
name: "memory_snapshot_list",
|
|
752
752
|
description: "List all available snapshots",
|
|
753
|
-
annotations: { title: "List Snapshots", readOnlyHint: true },
|
|
753
|
+
annotations: { title: "List Snapshots", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
754
754
|
inputSchema: {
|
|
755
755
|
type: "object",
|
|
756
756
|
properties: {
|
|
@@ -765,7 +765,7 @@ const TOOLS = [
|
|
|
765
765
|
{
|
|
766
766
|
name: "memory_snapshot_restore",
|
|
767
767
|
description: "Restore memory to a previous snapshot state",
|
|
768
|
-
annotations: { title: "Restore Snapshot", destructiveHint: true },
|
|
768
|
+
annotations: { title: "Restore Snapshot", readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: false },
|
|
769
769
|
inputSchema: {
|
|
770
770
|
type: "object",
|
|
771
771
|
properties: {
|
|
@@ -785,7 +785,7 @@ const TOOLS = [
|
|
|
785
785
|
{
|
|
786
786
|
name: "memory_snapshot_delete",
|
|
787
787
|
description: "Delete a snapshot",
|
|
788
|
-
annotations: { title: "Delete Snapshot", destructiveHint: true },
|
|
788
|
+
annotations: { title: "Delete Snapshot", readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false },
|
|
789
789
|
inputSchema: {
|
|
790
790
|
type: "object",
|
|
791
791
|
properties: {
|
|
@@ -801,7 +801,7 @@ const TOOLS = [
|
|
|
801
801
|
{
|
|
802
802
|
name: "memory_export",
|
|
803
803
|
description: "Export all items from a space to JSON, Markdown, or CSV format",
|
|
804
|
-
annotations: { title: "Export Memory", readOnlyHint: true },
|
|
804
|
+
annotations: { title: "Export Memory", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
805
805
|
inputSchema: {
|
|
806
806
|
type: "object",
|
|
807
807
|
properties: {
|
|
@@ -821,7 +821,7 @@ const TOOLS = [
|
|
|
821
821
|
{
|
|
822
822
|
name: "memory_import",
|
|
823
823
|
description: "Import items from JSON, Markdown, Notion, or Obsidian format into a space",
|
|
824
|
-
annotations: { title: "Import Memory", destructiveHint:
|
|
824
|
+
annotations: { title: "Import Memory", readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
|
|
825
825
|
inputSchema: {
|
|
826
826
|
type: "object",
|
|
827
827
|
properties: {
|
|
@@ -860,7 +860,7 @@ const TOOLS = [
|
|
|
860
860
|
{
|
|
861
861
|
name: "memory_ingest_batch",
|
|
862
862
|
description: "Add multiple items to memory in a single operation. More efficient than multiple single ingests.",
|
|
863
|
-
annotations: { title: "Batch Save to Memory", destructiveHint:
|
|
863
|
+
annotations: { title: "Batch Save to Memory", readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
|
|
864
864
|
inputSchema: {
|
|
865
865
|
type: "object",
|
|
866
866
|
properties: {
|
|
@@ -899,7 +899,7 @@ const TOOLS = [
|
|
|
899
899
|
{
|
|
900
900
|
name: "memory_delete_batch",
|
|
901
901
|
description: "Delete multiple items from memory based on filters. Use dry_run=true first to preview what will be deleted.",
|
|
902
|
-
annotations: { title: "Batch Delete Memory Items", destructiveHint: true },
|
|
902
|
+
annotations: { title: "Batch Delete Memory Items", readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false },
|
|
903
903
|
inputSchema: {
|
|
904
904
|
type: "object",
|
|
905
905
|
properties: {
|
|
@@ -955,7 +955,7 @@ const TOOLS = [
|
|
|
955
955
|
{
|
|
956
956
|
name: "memory_link_project",
|
|
957
957
|
description: "Link the current directory to a ContextForge project. When linked, all queries will be automatically filtered to only search within that project's spaces. This creates a .contextforge file in the current directory.",
|
|
958
|
-
annotations: { title: "Link Project", destructiveHint: true },
|
|
958
|
+
annotations: { title: "Link Project", readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
959
959
|
inputSchema: {
|
|
960
960
|
type: "object",
|
|
961
961
|
properties: {
|
|
@@ -974,7 +974,7 @@ const TOOLS = [
|
|
|
974
974
|
{
|
|
975
975
|
name: "memory_unlink_project",
|
|
976
976
|
description: "Remove the project link from the current directory. This deletes the .contextforge file and queries will no longer be filtered by project.",
|
|
977
|
-
annotations: { title: "Unlink Project", destructiveHint: true },
|
|
977
|
+
annotations: { title: "Unlink Project", readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
978
978
|
inputSchema: {
|
|
979
979
|
type: "object",
|
|
980
980
|
properties: {},
|
|
@@ -984,7 +984,7 @@ const TOOLS = [
|
|
|
984
984
|
{
|
|
985
985
|
name: "memory_current_project",
|
|
986
986
|
description: "Show the currently linked project for this directory, including its spaces. Use this to see which project is linked and what spaces are available.",
|
|
987
|
-
annotations: { title: "Current Linked Project", readOnlyHint: true },
|
|
987
|
+
annotations: { title: "Current Linked Project", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
988
988
|
inputSchema: {
|
|
989
989
|
type: "object",
|
|
990
990
|
properties: {},
|
|
@@ -995,7 +995,7 @@ const TOOLS = [
|
|
|
995
995
|
{
|
|
996
996
|
name: "tasks_list",
|
|
997
997
|
description: 'List tasks assigned to you. Shows pending tasks by default. Use status "all" to see everything, or "resolved" for completed tasks. IMPORTANT: Each task includes a dashboard URL (🔗). You MUST include these clickable links when presenting tasks to the user.',
|
|
998
|
-
annotations: { title: "List Tasks", readOnlyHint: true },
|
|
998
|
+
annotations: { title: "List Tasks", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
999
999
|
inputSchema: {
|
|
1000
1000
|
type: "object",
|
|
1001
1001
|
properties: {
|
|
@@ -1024,7 +1024,7 @@ const TOOLS = [
|
|
|
1024
1024
|
{
|
|
1025
1025
|
name: "tasks_start",
|
|
1026
1026
|
description: 'Mark a task as "in_progress". Use this when you start working on a task. Accepts any identifier: UUID, short_id, or task title. The response includes a dashboard URL — always show it to the user.',
|
|
1027
|
-
annotations: { title: "Start Task", destructiveHint: true },
|
|
1027
|
+
annotations: { title: "Start Task", readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
1028
1028
|
inputSchema: {
|
|
1029
1029
|
type: "object",
|
|
1030
1030
|
properties: {
|
|
@@ -1039,7 +1039,7 @@ const TOOLS = [
|
|
|
1039
1039
|
{
|
|
1040
1040
|
name: "tasks_resolve",
|
|
1041
1041
|
description: 'Mark a task as "resolved". Use this when you finish working on a task. Accepts any identifier: UUID, short_id, or task title. The response includes a dashboard URL — always show it to the user.',
|
|
1042
|
-
annotations: { title: "Resolve Task", destructiveHint: true },
|
|
1042
|
+
annotations: { title: "Resolve Task", readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
1043
1043
|
inputSchema: {
|
|
1044
1044
|
type: "object",
|
|
1045
1045
|
properties: {
|
|
@@ -1054,7 +1054,7 @@ const TOOLS = [
|
|
|
1054
1054
|
{
|
|
1055
1055
|
name: "tasks_what_next",
|
|
1056
1056
|
description: "Get a recommendation of what task to work on next, based on priority and due dates. Use this when you want to know what task to focus on. The response includes a dashboard URL — always show it to the user.",
|
|
1057
|
-
annotations: { title: "What Task is Next?", readOnlyHint: true },
|
|
1057
|
+
annotations: { title: "What Task is Next?", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
1058
1058
|
inputSchema: {
|
|
1059
1059
|
type: "object",
|
|
1060
1060
|
properties: {},
|
|
@@ -1065,7 +1065,7 @@ const TOOLS = [
|
|
|
1065
1065
|
{
|
|
1066
1066
|
name: "tasks_create",
|
|
1067
1067
|
description: "Create a new task in a project. Optionally assign it to a collaborator by their email. The response includes a dashboard URL — always show it to the user.",
|
|
1068
|
-
annotations: { title: "Create Task", destructiveHint:
|
|
1068
|
+
annotations: { title: "Create Task", readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
|
|
1069
1069
|
inputSchema: {
|
|
1070
1070
|
type: "object",
|
|
1071
1071
|
properties: {
|
|
@@ -1114,7 +1114,7 @@ const TOOLS = [
|
|
|
1114
1114
|
{
|
|
1115
1115
|
name: "tasks_update",
|
|
1116
1116
|
description: "Update a task's title, description, status, priority, tags, due date, or assignee. Accepts any identifier: UUID, short_id, or task title. The response includes a dashboard URL — always show it to the user.",
|
|
1117
|
-
annotations: { title: "Update Task", destructiveHint: true },
|
|
1117
|
+
annotations: { title: "Update Task", readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
1118
1118
|
inputSchema: {
|
|
1119
1119
|
type: "object",
|
|
1120
1120
|
properties: {
|
|
@@ -1160,7 +1160,7 @@ const TOOLS = [
|
|
|
1160
1160
|
{
|
|
1161
1161
|
name: "tasks_assign",
|
|
1162
1162
|
description: "Assign a task to a collaborator by their email address. Accepts any task identifier: UUID, short_id, or task title. The response includes a dashboard URL — always show it to the user.",
|
|
1163
|
-
annotations: { title: "Assign Task", destructiveHint: true },
|
|
1163
|
+
annotations: { title: "Assign Task", readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
1164
1164
|
inputSchema: {
|
|
1165
1165
|
type: "object",
|
|
1166
1166
|
properties: {
|
|
@@ -1179,7 +1179,7 @@ const TOOLS = [
|
|
|
1179
1179
|
{
|
|
1180
1180
|
name: "tasks_resolve_by_name",
|
|
1181
1181
|
description: "Resolve a task by searching for it by title, short_id, or UUID. Use this when you have any identifier for the task. The response includes a dashboard URL — always show it to the user.",
|
|
1182
|
-
annotations: { title: "Resolve Task by Name", destructiveHint: true },
|
|
1182
|
+
annotations: { title: "Resolve Task by Name", readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
1183
1183
|
inputSchema: {
|
|
1184
1184
|
type: "object",
|
|
1185
1185
|
properties: {
|
|
@@ -1194,7 +1194,7 @@ const TOOLS = [
|
|
|
1194
1194
|
{
|
|
1195
1195
|
name: "tasks_delete",
|
|
1196
1196
|
description: "Permanently delete a task. Accepts any identifier: UUID, short_id, or task title. Also deletes related comments, activity, and notifications.",
|
|
1197
|
-
annotations: { title: "Delete Task", destructiveHint: true },
|
|
1197
|
+
annotations: { title: "Delete Task", readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false },
|
|
1198
1198
|
inputSchema: {
|
|
1199
1199
|
type: "object",
|
|
1200
1200
|
properties: {
|
|
@@ -1210,7 +1210,7 @@ const TOOLS = [
|
|
|
1210
1210
|
{
|
|
1211
1211
|
name: "tasks_list_comments",
|
|
1212
1212
|
description: "List comments on a task. Accepts any identifier: UUID, short_id, or task title.",
|
|
1213
|
-
annotations: { title: "List Task Comments", readOnlyHint: true },
|
|
1213
|
+
annotations: { title: "List Task Comments", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
1214
1214
|
inputSchema: {
|
|
1215
1215
|
type: "object",
|
|
1216
1216
|
properties: {
|
|
@@ -1225,7 +1225,7 @@ const TOOLS = [
|
|
|
1225
1225
|
{
|
|
1226
1226
|
name: "tasks_add_comment",
|
|
1227
1227
|
description: "Add a comment to a task. Accepts any task identifier: UUID, short_id, or task title. The response includes the task dashboard URL — always show it to the user.",
|
|
1228
|
-
annotations: { title: "Add Task Comment", destructiveHint:
|
|
1228
|
+
annotations: { title: "Add Task Comment", readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
|
|
1229
1229
|
inputSchema: {
|
|
1230
1230
|
type: "object",
|
|
1231
1231
|
properties: {
|
|
@@ -1245,7 +1245,7 @@ const TOOLS = [
|
|
|
1245
1245
|
{
|
|
1246
1246
|
name: "collaborators_list",
|
|
1247
1247
|
description: "List collaborators on a shared project. Shows who has access and what tasks are assigned to them.",
|
|
1248
|
-
annotations: { title: "List Collaborators", readOnlyHint: true },
|
|
1248
|
+
annotations: { title: "List Collaborators", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
1249
1249
|
inputSchema: {
|
|
1250
1250
|
type: "object",
|
|
1251
1251
|
properties: {
|
|
@@ -1265,7 +1265,7 @@ const TOOLS = [
|
|
|
1265
1265
|
{
|
|
1266
1266
|
name: "project_share",
|
|
1267
1267
|
description: "Share a project with a collaborator by email. Creates an invitation and returns the invite URL. An email notification may also be sent.",
|
|
1268
|
-
annotations: { title: "Share Project", destructiveHint: true },
|
|
1268
|
+
annotations: { title: "Share Project", readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
1269
1269
|
inputSchema: {
|
|
1270
1270
|
type: "object",
|
|
1271
1271
|
properties: {
|
|
@@ -1292,7 +1292,7 @@ const TOOLS = [
|
|
|
1292
1292
|
{
|
|
1293
1293
|
name: "skills_list",
|
|
1294
1294
|
description: "List all Skills in a project. Returns skills with their name, description, model, and prompt body.",
|
|
1295
|
-
annotations: { title: "List Skills", readOnlyHint: true },
|
|
1295
|
+
annotations: { title: "List Skills", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
1296
1296
|
inputSchema: {
|
|
1297
1297
|
type: "object",
|
|
1298
1298
|
properties: {
|
|
@@ -1304,7 +1304,7 @@ const TOOLS = [
|
|
|
1304
1304
|
{
|
|
1305
1305
|
name: "skills_get",
|
|
1306
1306
|
description: "Get a single Skill by ID with full body.",
|
|
1307
|
-
annotations: { title: "Get Skill", readOnlyHint: true },
|
|
1307
|
+
annotations: { title: "Get Skill", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
1308
1308
|
inputSchema: {
|
|
1309
1309
|
type: "object",
|
|
1310
1310
|
properties: {
|
|
@@ -1316,7 +1316,7 @@ const TOOLS = [
|
|
|
1316
1316
|
{
|
|
1317
1317
|
name: "skills_create",
|
|
1318
1318
|
description: "Create a new Skill in a project. The 'body' is a markdown prompt template that may use {{variable}} placeholders for input_params at run time.",
|
|
1319
|
-
annotations: { title: "Create Skill", destructiveHint: false },
|
|
1319
|
+
annotations: { title: "Create Skill", readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
|
|
1320
1320
|
inputSchema: {
|
|
1321
1321
|
type: "object",
|
|
1322
1322
|
properties: {
|
|
@@ -1348,7 +1348,7 @@ const TOOLS = [
|
|
|
1348
1348
|
{
|
|
1349
1349
|
name: "skills_update",
|
|
1350
1350
|
description: "Update an existing Skill.",
|
|
1351
|
-
annotations: { title: "Update Skill", destructiveHint: true },
|
|
1351
|
+
annotations: { title: "Update Skill", readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
1352
1352
|
inputSchema: {
|
|
1353
1353
|
type: "object",
|
|
1354
1354
|
properties: {
|
|
@@ -1367,7 +1367,7 @@ const TOOLS = [
|
|
|
1367
1367
|
{
|
|
1368
1368
|
name: "skills_delete",
|
|
1369
1369
|
description: "Delete a Skill.",
|
|
1370
|
-
annotations: { title: "Delete Skill", destructiveHint: true },
|
|
1370
|
+
annotations: { title: "Delete Skill", readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false },
|
|
1371
1371
|
inputSchema: {
|
|
1372
1372
|
type: "object",
|
|
1373
1373
|
properties: {
|
|
@@ -1379,7 +1379,7 @@ const TOOLS = [
|
|
|
1379
1379
|
{
|
|
1380
1380
|
name: "skills_run",
|
|
1381
1381
|
description: "Execute a Skill on the configured LLM, optionally storing the output as a knowledge_item, and returns the result. Available to all project members.",
|
|
1382
|
-
annotations: { title: "Run Skill", destructiveHint: false },
|
|
1382
|
+
annotations: { title: "Run Skill", readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true },
|
|
1383
1383
|
inputSchema: {
|
|
1384
1384
|
type: "object",
|
|
1385
1385
|
properties: {
|
|
@@ -1395,7 +1395,7 @@ const TOOLS = [
|
|
|
1395
1395
|
{
|
|
1396
1396
|
name: "routines_list",
|
|
1397
1397
|
description: "List all Routines in a project. Returns routines with their schedule, last/next run, and enabled flag.",
|
|
1398
|
-
annotations: { title: "List Routines", readOnlyHint: true },
|
|
1398
|
+
annotations: { title: "List Routines", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
1399
1399
|
inputSchema: {
|
|
1400
1400
|
type: "object",
|
|
1401
1401
|
properties: {
|
|
@@ -1407,7 +1407,7 @@ const TOOLS = [
|
|
|
1407
1407
|
{
|
|
1408
1408
|
name: "routines_get",
|
|
1409
1409
|
description: "Get a single Routine by ID, including its cron expression, input_params, and last/next run.",
|
|
1410
|
-
annotations: { title: "Get Routine", readOnlyHint: true },
|
|
1410
|
+
annotations: { title: "Get Routine", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
1411
1411
|
inputSchema: {
|
|
1412
1412
|
type: "object",
|
|
1413
1413
|
properties: { id: { type: "string", description: "Routine UUID" } },
|
|
@@ -1417,7 +1417,7 @@ const TOOLS = [
|
|
|
1417
1417
|
{
|
|
1418
1418
|
name: "routines_create",
|
|
1419
1419
|
description: "Create a new Routine. Schedules a Skill to run on a cron expression. Pass either schedule_preset (hourly/daily/weekly/monthly) OR a custom cron_expression. timezone defaults to UTC.",
|
|
1420
|
-
annotations: { title: "Create Routine", destructiveHint: false },
|
|
1420
|
+
annotations: { title: "Create Routine", readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
|
|
1421
1421
|
inputSchema: {
|
|
1422
1422
|
type: "object",
|
|
1423
1423
|
properties: {
|
|
@@ -1447,7 +1447,7 @@ const TOOLS = [
|
|
|
1447
1447
|
{
|
|
1448
1448
|
name: "routines_update",
|
|
1449
1449
|
description: "Update an existing Routine (name, schedule, timezone, input_params).",
|
|
1450
|
-
annotations: { title: "Update Routine", destructiveHint: false },
|
|
1450
|
+
annotations: { title: "Update Routine", readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
1451
1451
|
inputSchema: {
|
|
1452
1452
|
type: "object",
|
|
1453
1453
|
properties: {
|
|
@@ -1467,7 +1467,7 @@ const TOOLS = [
|
|
|
1467
1467
|
{
|
|
1468
1468
|
name: "routines_toggle",
|
|
1469
1469
|
description: "Enable or disable a Routine without deleting it. Pass enabled=false to pause.",
|
|
1470
|
-
annotations: { title: "Toggle Routine", destructiveHint: false },
|
|
1470
|
+
annotations: { title: "Toggle Routine", readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
1471
1471
|
inputSchema: {
|
|
1472
1472
|
type: "object",
|
|
1473
1473
|
properties: {
|
|
@@ -1480,7 +1480,7 @@ const TOOLS = [
|
|
|
1480
1480
|
{
|
|
1481
1481
|
name: "routines_run_now",
|
|
1482
1482
|
description: "Fire a Routine immediately, ahead of its schedule. Creates a skill_executions row with trigger_type=scheduled and routine_id set, just like the cron tick would.",
|
|
1483
|
-
annotations: { title: "Run Routine Now", destructiveHint: false },
|
|
1483
|
+
annotations: { title: "Run Routine Now", readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
|
|
1484
1484
|
inputSchema: {
|
|
1485
1485
|
type: "object",
|
|
1486
1486
|
properties: { id: { type: "string" } },
|
|
@@ -1490,7 +1490,7 @@ const TOOLS = [
|
|
|
1490
1490
|
{
|
|
1491
1491
|
name: "routines_delete",
|
|
1492
1492
|
description: "Permanently delete a Routine. Execution history rows are retained.",
|
|
1493
|
-
annotations: { title: "Delete Routine", destructiveHint: true },
|
|
1493
|
+
annotations: { title: "Delete Routine", readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false },
|
|
1494
1494
|
inputSchema: {
|
|
1495
1495
|
type: "object",
|
|
1496
1496
|
properties: { id: { type: "string" } },
|
|
@@ -3223,7 +3223,7 @@ Remove the project link from this directory.
|
|
|
3223
3223
|
- **Link projects** to keep context separate between codebases
|
|
3224
3224
|
|
|
3225
3225
|
## More Info
|
|
3226
|
-
https://github.com/
|
|
3226
|
+
https://github.com/alfredoizdev/contextforge-mcp
|
|
3227
3227
|
`;
|
|
3228
3228
|
return {
|
|
3229
3229
|
content: [
|