@unified-product-graph/mcp-server 0.8.7 → 0.8.8
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/CHANGELOG.md +9 -0
- package/TOOLS.md +23 -16
- package/dist/index.js +218 -14
- package/dist/index.js.map +1 -1
- package/dist/tools-manifest.json +79 -66
- package/package.json +1 -1
package/dist/tools-manifest.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": "2",
|
|
3
3
|
"package": "@unified-product-graph/mcp-server",
|
|
4
|
-
"package_version": "0.8.
|
|
4
|
+
"package_version": "0.8.8",
|
|
5
5
|
"tool_count": 96,
|
|
6
6
|
"domains": [
|
|
7
7
|
"context",
|
|
@@ -308,7 +308,7 @@
|
|
|
308
308
|
"create_node",
|
|
309
309
|
"batch_create_edges"
|
|
310
310
|
],
|
|
311
|
-
"source": "src/tools/nodes.ts:
|
|
311
|
+
"source": "src/tools/nodes.ts:1019",
|
|
312
312
|
"symbol": "batchCreateNodes",
|
|
313
313
|
"returns": "JSON: `{ created, edges_created, count, edges_count, warnings? }`.",
|
|
314
314
|
"return_shape": "{ created, edges_created, count, edges_count, warnings? }",
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"see": [
|
|
348
348
|
"delete_node"
|
|
349
349
|
],
|
|
350
|
-
"source": "src/tools/nodes.ts:
|
|
350
|
+
"source": "src/tools/nodes.ts:1123",
|
|
351
351
|
"symbol": "batchDeleteNodes",
|
|
352
352
|
"returns": "JSON: `{ deleted, edges_removed, count }`.",
|
|
353
353
|
"return_shape": "{ deleted, edges_removed, count }",
|
|
@@ -408,7 +408,7 @@
|
|
|
408
408
|
"see": [
|
|
409
409
|
"update_node"
|
|
410
410
|
],
|
|
411
|
-
"source": "src/tools/nodes.ts:
|
|
411
|
+
"source": "src/tools/nodes.ts:1047",
|
|
412
412
|
"symbol": "batchUpdateNodes",
|
|
413
413
|
"returns": "JSON: `{ updated, count, warnings? }`. `warnings` carries\nlifecycle-phase hints aggregated across the batch.",
|
|
414
414
|
"return_shape": "{ updated, count, warnings? }",
|
|
@@ -480,7 +480,7 @@
|
|
|
480
480
|
"batch_create_nodes",
|
|
481
481
|
"update_node"
|
|
482
482
|
],
|
|
483
|
-
"source": "src/tools/nodes.ts:
|
|
483
|
+
"source": "src/tools/nodes.ts:733",
|
|
484
484
|
"symbol": "createNode",
|
|
485
485
|
"returns": "JSON: `{ node, edge?, unknown_properties?, warning? }`. The `edge`\nfield is present only when `parent_id` was supplied and a canonical\nhierarchy edge could be inferred. `unknown_properties` and `warning` are\npresent when the caller passed properties not in the entity's schema.\nPass `strict: true` to reject unknown properties instead of\nwarning. For portfolio-scoped types the response shape is\n`{ node, portfolio_file, written_to, warning? }` where `node` is the\npersisted typed record.",
|
|
486
486
|
"return_shape": "{ node, edge?, unknown_properties?, warning? }",
|
|
@@ -532,7 +532,7 @@
|
|
|
532
532
|
"batch_delete_nodes",
|
|
533
533
|
"validate_graph"
|
|
534
534
|
],
|
|
535
|
-
"source": "src/tools/nodes.ts:
|
|
535
|
+
"source": "src/tools/nodes.ts:1368",
|
|
536
536
|
"symbol": "deduplicateNodes",
|
|
537
537
|
"returns": "JSON: with `dry_run: true`, `{ duplicates, total_groups,\ntotal_duplicate_nodes, dry_run, message }`. With `dry_run: false`,\n`{ merged: true, groups_merged, nodes_removed, edges_redirected,\nstrategy }`.",
|
|
538
538
|
"return_notes": [
|
|
@@ -571,7 +571,7 @@
|
|
|
571
571
|
"see": [
|
|
572
572
|
"batch_delete_nodes"
|
|
573
573
|
],
|
|
574
|
-
"source": "src/tools/nodes.ts:
|
|
574
|
+
"source": "src/tools/nodes.ts:993",
|
|
575
575
|
"symbol": "deleteNode",
|
|
576
576
|
"returns": "JSON: `{ node, removed_edge_ids }`.",
|
|
577
577
|
"return_shape": "{ node, removed_edge_ids }",
|
|
@@ -586,7 +586,11 @@
|
|
|
586
586
|
"properties": {
|
|
587
587
|
"node_id": {
|
|
588
588
|
"type": "string",
|
|
589
|
-
"description": "The node ID"
|
|
589
|
+
"description": "The node ID. Alias: `id`."
|
|
590
|
+
},
|
|
591
|
+
"id": {
|
|
592
|
+
"type": "string",
|
|
593
|
+
"description": "Alias for `node_id`."
|
|
590
594
|
},
|
|
591
595
|
"compact_edges": {
|
|
592
596
|
"type": "boolean",
|
|
@@ -598,7 +602,7 @@
|
|
|
598
602
|
]
|
|
599
603
|
},
|
|
600
604
|
"throws": [
|
|
601
|
-
"Returns a textError when `node_id` is
|
|
605
|
+
"Returns a textError when neither `node_id` nor `id` is provided, or\nthe node does not exist."
|
|
602
606
|
],
|
|
603
607
|
"examples": [
|
|
604
608
|
{
|
|
@@ -611,7 +615,7 @@
|
|
|
611
615
|
"see": [
|
|
612
616
|
"get_nodes"
|
|
613
617
|
],
|
|
614
|
-
"source": "src/tools/nodes.ts:
|
|
618
|
+
"source": "src/tools/nodes.ts:209",
|
|
615
619
|
"symbol": "getNode",
|
|
616
620
|
"returns": "JSON: the node object plus an `edges` array. `compact_edges: true`\nomits `source_title` and `target_title` (saves ~30% on edge-heavy nodes).",
|
|
617
621
|
"return_notes": [
|
|
@@ -660,7 +664,7 @@
|
|
|
660
664
|
"see": [
|
|
661
665
|
"get_node"
|
|
662
666
|
],
|
|
663
|
-
"source": "src/tools/nodes.ts:
|
|
667
|
+
"source": "src/tools/nodes.ts:257",
|
|
664
668
|
"symbol": "getNodes",
|
|
665
669
|
"returns": "JSON array of node objects with edges. Missing IDs are silently\nskipped. May include a `degraded` block when the response was\nauto-trimmed to fit.",
|
|
666
670
|
"return_notes": [
|
|
@@ -773,7 +777,7 @@
|
|
|
773
777
|
"validate_graph",
|
|
774
778
|
"list_type_migrations"
|
|
775
779
|
],
|
|
776
|
-
"source": "src/tools/nodes.ts:
|
|
780
|
+
"source": "src/tools/nodes.ts:1314",
|
|
777
781
|
"symbol": "migrateProperties",
|
|
778
782
|
"returns": "JSON: `{ top_level_renames, lifted_properties, dropped_props,\ndropped_self_referential, dry_run }`.",
|
|
779
783
|
"return_shape": "{ top_level_renames, lifted_properties, dropped_props, dropped_self_referential, dry_run }",
|
|
@@ -872,7 +876,7 @@
|
|
|
872
876
|
"export_edges",
|
|
873
877
|
"update_node"
|
|
874
878
|
],
|
|
875
|
-
"source": "src/tools/nodes.ts:
|
|
879
|
+
"source": "src/tools/nodes.ts:1177",
|
|
876
880
|
"symbol": "migrateType",
|
|
877
881
|
"returns": "JSON: `{ migrated_nodes, migrated_edges, edge_renames,\ndropped_edges, unmapped_legacy_edges, defaults_applied, dry_run }`.\n`edge_renames` is `[{ id, from, to, flipped }]`; `dropped_edges` is\n`[{ id, from }]`; `unmapped_legacy_edges` is `[{ type, count }]`.\n`migrated_edges` is the total mutated count (renames + drops).",
|
|
878
882
|
"return_shape": "{ migrated_nodes, migrated_edges, edge_renames, dropped_edges, unmapped_legacy_edges, defaults_applied, dry_run }",
|
|
@@ -956,7 +960,7 @@
|
|
|
956
960
|
"list_nodes",
|
|
957
961
|
"get_area_graph"
|
|
958
962
|
],
|
|
959
|
-
"source": "src/tools/nodes.ts:
|
|
963
|
+
"source": "src/tools/nodes.ts:412",
|
|
960
964
|
"symbol": "query",
|
|
961
965
|
"returns": "JSON: `{ nodes, edges, total_nodes, total_edges, _result_id,\ntruncated?, truncated_at_depth?, diff? }`. The `_result_id` is a cache\nhandle for `diff_from`; cache holds the last 20 results.",
|
|
962
966
|
"return_shape": "{ nodes, edges, total_nodes, total_edges, _result_id, truncated?, truncated_at_depth?, diff? }",
|
|
@@ -1011,7 +1015,7 @@
|
|
|
1011
1015
|
"list_nodes",
|
|
1012
1016
|
"query"
|
|
1013
1017
|
],
|
|
1014
|
-
"source": "src/tools/nodes.ts:
|
|
1018
|
+
"source": "src/tools/nodes.ts:361",
|
|
1015
1019
|
"symbol": "searchNodes",
|
|
1016
1020
|
"returns": "JSON: `{ results: Array<{ id, type, title, status, tags,\nmatch_field, score }>, total, searched_fields }`.",
|
|
1017
1021
|
"return_shape": "{ results: Array<{ id, type, title, status, tags, match_field, score }>, total, searched_fields }",
|
|
@@ -1078,7 +1082,7 @@
|
|
|
1078
1082
|
"migrate_type",
|
|
1079
1083
|
"batch_update_nodes"
|
|
1080
1084
|
],
|
|
1081
|
-
"source": "src/tools/nodes.ts:
|
|
1085
|
+
"source": "src/tools/nodes.ts:886",
|
|
1082
1086
|
"symbol": "updateNode",
|
|
1083
1087
|
"returns": "JSON: `{ node, warning?, unknown_properties?, unset? }`. `warning`\naggregates migration warnings and any unknown-property notice.\n`unknown_properties` lists property keys not in the entity's schema.\n`unset` lists the keys actually removed. Pass `strict: true` to reject\nunknown properties instead of warning.",
|
|
1084
1088
|
"return_shape": "{ node, warning?, unknown_properties?, unset? }",
|
|
@@ -1758,7 +1762,7 @@
|
|
|
1758
1762
|
"list_portfolio_cross_edges",
|
|
1759
1763
|
"migrate_cross_edges"
|
|
1760
1764
|
],
|
|
1761
|
-
"source": "src/tools/workspace.ts:
|
|
1765
|
+
"source": "src/tools/workspace.ts:413",
|
|
1762
1766
|
"symbol": "createCrossProductEdge",
|
|
1763
1767
|
"returns": "JSON: `{ edge, portfolio_file }`.",
|
|
1764
1768
|
"return_shape": "{ edge, portfolio_file }",
|
|
@@ -1810,7 +1814,7 @@
|
|
|
1810
1814
|
"see": [
|
|
1811
1815
|
"init_workspace"
|
|
1812
1816
|
],
|
|
1813
|
-
"source": "src/tools/workspace.ts:
|
|
1817
|
+
"source": "src/tools/workspace.ts:293",
|
|
1814
1818
|
"symbol": "createProductTool",
|
|
1815
1819
|
"returns": "JSON: `{ message, ...result }`. `result` carries `id`, `title`,\n`slug`, `file_path`, and the optional portfolio edge.",
|
|
1816
1820
|
"return_shape": "{ message,...result }",
|
|
@@ -1839,7 +1843,7 @@
|
|
|
1839
1843
|
"see": [
|
|
1840
1844
|
"list_portfolios"
|
|
1841
1845
|
],
|
|
1842
|
-
"source": "src/tools/workspace.ts:
|
|
1846
|
+
"source": "src/tools/workspace.ts:362",
|
|
1843
1847
|
"symbol": "getOrganization",
|
|
1844
1848
|
"returns": "JSON: `{ organization: UPGOrganization | null, portfolio_file? }`.\nReturns `{ organization: null }` when no portfolio document exists yet.",
|
|
1845
1849
|
"return_shape": "{ organization: UPGOrganization | null, portfolio_file? }",
|
|
@@ -1868,7 +1872,7 @@
|
|
|
1868
1872
|
"see": [
|
|
1869
1873
|
"init_workspace"
|
|
1870
1874
|
],
|
|
1871
|
-
"source": "src/tools/workspace.ts:
|
|
1875
|
+
"source": "src/tools/workspace.ts:181",
|
|
1872
1876
|
"symbol": "getWorkspaceInfo",
|
|
1873
1877
|
"returns": "JSON: `{ mode, workspace_path?, current_product?, current_file?,\nproducts }`. The shape depends on whether `.upg/workspace.json` exists.",
|
|
1874
1878
|
"return_shape": "{ mode, workspace_path?, current_product?, current_file?, products }",
|
|
@@ -1908,7 +1912,7 @@
|
|
|
1908
1912
|
"switch_product",
|
|
1909
1913
|
"get_workspace_info"
|
|
1910
1914
|
],
|
|
1911
|
-
"source": "src/tools/workspace.ts:
|
|
1915
|
+
"source": "src/tools/workspace.ts:257",
|
|
1912
1916
|
"symbol": "initWorkspaceTool",
|
|
1913
1917
|
"returns": "JSON: `{ message, ...result }`. `result` carries the workspace\npath and the moved file's new location.",
|
|
1914
1918
|
"return_shape": "{ message,...result }",
|
|
@@ -1961,7 +1965,7 @@
|
|
|
1961
1965
|
"see": [
|
|
1962
1966
|
"create_cross_product_edge"
|
|
1963
1967
|
],
|
|
1964
|
-
"source": "src/tools/workspace.ts:
|
|
1968
|
+
"source": "src/tools/workspace.ts:552",
|
|
1965
1969
|
"symbol": "listPortfolioCrossEdges",
|
|
1966
1970
|
"returns": "JSON: `{ cross_edges: UPGCrossEdge[], total, portfolio_file? }`.",
|
|
1967
1971
|
"return_shape": "{ cross_edges: UPGCrossEdge[], total, portfolio_file? }",
|
|
@@ -1988,7 +1992,7 @@
|
|
|
1988
1992
|
"create_cross_product_edge",
|
|
1989
1993
|
"get_organization"
|
|
1990
1994
|
],
|
|
1991
|
-
"source": "src/tools/workspace.ts:
|
|
1995
|
+
"source": "src/tools/workspace.ts:335",
|
|
1992
1996
|
"symbol": "listPortfolios",
|
|
1993
1997
|
"returns": "JSON: `{ portfolios: Array<{ id, title, description?,\nparent_portfolio_id?, hierarchy_model?, products? }>, total }`.",
|
|
1994
1998
|
"return_shape": "{ portfolios: Array<{ id, title, description?, parent_portfolio_id?, hierarchy_model?, products? }>, total }",
|
|
@@ -2031,7 +2035,7 @@
|
|
|
2031
2035
|
"list_cross_edge_types",
|
|
2032
2036
|
"init_workspace"
|
|
2033
2037
|
],
|
|
2034
|
-
"source": "src/tools/workspace.ts:
|
|
2038
|
+
"source": "src/tools/workspace.ts:621",
|
|
2035
2039
|
"symbol": "migrateCrossEdges",
|
|
2036
2040
|
"returns": "JSON: `{ migrated, skipped, dry_run, portfolio_file? }`.",
|
|
2037
2041
|
"return_shape": "{ migrated, skipped, dry_run, portfolio_file? }",
|
|
@@ -2046,7 +2050,11 @@
|
|
|
2046
2050
|
"properties": {
|
|
2047
2051
|
"file": {
|
|
2048
2052
|
"type": "string",
|
|
2049
|
-
"description": "Path to the .upg file (relative, absolute, or a bare product name in workspace mode)."
|
|
2053
|
+
"description": "Path to the .upg file (relative, absolute, or a bare product name in workspace mode). Alias: `product`."
|
|
2054
|
+
},
|
|
2055
|
+
"product": {
|
|
2056
|
+
"type": "string",
|
|
2057
|
+
"description": "Alias for `file`."
|
|
2050
2058
|
}
|
|
2051
2059
|
},
|
|
2052
2060
|
"required": [
|
|
@@ -2054,7 +2062,7 @@
|
|
|
2054
2062
|
]
|
|
2055
2063
|
},
|
|
2056
2064
|
"throws": [
|
|
2057
|
-
"Returns a textError when
|
|
2065
|
+
"Returns a textError when neither `file` nor `product` is provided, or\nthe file cannot be resolved, or the load fails (file watcher / parse error)."
|
|
2058
2066
|
],
|
|
2059
2067
|
"examples": [],
|
|
2060
2068
|
"warnings": [
|
|
@@ -2065,7 +2073,7 @@
|
|
|
2065
2073
|
"list_local_products",
|
|
2066
2074
|
"init_workspace"
|
|
2067
2075
|
],
|
|
2068
|
-
"source": "src/tools/workspace.ts:
|
|
2076
|
+
"source": "src/tools/workspace.ts:118",
|
|
2069
2077
|
"symbol": "switchProduct",
|
|
2070
2078
|
"returns": "JSON: `{ message, file, product: { title, stage }, entities }`.",
|
|
2071
2079
|
"return_shape": "{ message, file, product: { title, stage }, entities }",
|
|
@@ -2194,7 +2202,7 @@
|
|
|
2194
2202
|
"inspect",
|
|
2195
2203
|
"validate_graph"
|
|
2196
2204
|
],
|
|
2197
|
-
"source": "src/tools/spec.ts:
|
|
2205
|
+
"source": "src/tools/spec.ts:1471",
|
|
2198
2206
|
"symbol": "getAntiPattern",
|
|
2199
2207
|
"returns": "JSON: `UPGCuratedAntiPattern`",
|
|
2200
2208
|
"return_notes": [
|
|
@@ -2323,7 +2331,7 @@
|
|
|
2323
2331
|
"list_domains",
|
|
2324
2332
|
"get_domain_guide"
|
|
2325
2333
|
],
|
|
2326
|
-
"source": "src/tools/spec.ts:
|
|
2334
|
+
"source": "src/tools/spec.ts:1927",
|
|
2327
2335
|
"symbol": "getDomainRing",
|
|
2328
2336
|
"returns": "JSON: the full `UPGDomainRing` record.",
|
|
2329
2337
|
"return_notes": [
|
|
@@ -2364,7 +2372,7 @@
|
|
|
2364
2372
|
"list_edge_migrations",
|
|
2365
2373
|
"rename_edge_type"
|
|
2366
2374
|
],
|
|
2367
|
-
"source": "src/tools/spec.ts:
|
|
2375
|
+
"source": "src/tools/spec.ts:923",
|
|
2368
2376
|
"symbol": "getEdgeType",
|
|
2369
2377
|
"returns": "JSON: `{ type, forward_verb, reverse_verb, classification, source_type, target_type }`",
|
|
2370
2378
|
"return_shape": "{ type, forward_verb, reverse_verb, classification, source_type, target_type }",
|
|
@@ -2403,7 +2411,7 @@
|
|
|
2403
2411
|
"get_entity_schema",
|
|
2404
2412
|
"list_type_migrations"
|
|
2405
2413
|
],
|
|
2406
|
-
"source": "src/tools/spec.ts:
|
|
2414
|
+
"source": "src/tools/spec.ts:1386",
|
|
2407
2415
|
"symbol": "getEntityMeta",
|
|
2408
2416
|
"returns": "JSON: `EntityTypeMeta & { domain_id: string | null }`",
|
|
2409
2417
|
"return_notes": [
|
|
@@ -2420,7 +2428,11 @@
|
|
|
2420
2428
|
"properties": {
|
|
2421
2429
|
"id": {
|
|
2422
2430
|
"type": "string",
|
|
2423
|
-
"description": "Framework id (kebab-case)."
|
|
2431
|
+
"description": "Framework id (kebab-case). Alias: `framework_id`."
|
|
2432
|
+
},
|
|
2433
|
+
"framework_id": {
|
|
2434
|
+
"type": "string",
|
|
2435
|
+
"description": "Alias for `id` (matches the key used by apply_framework / prioritise)."
|
|
2424
2436
|
}
|
|
2425
2437
|
},
|
|
2426
2438
|
"required": [
|
|
@@ -2428,7 +2440,7 @@
|
|
|
2428
2440
|
]
|
|
2429
2441
|
},
|
|
2430
2442
|
"throws": [
|
|
2431
|
-
"textError when `id` is
|
|
2443
|
+
"textError when neither `id` nor `framework_id` is provided, or the\nid is unknown."
|
|
2432
2444
|
],
|
|
2433
2445
|
"examples": [
|
|
2434
2446
|
{
|
|
@@ -2444,7 +2456,7 @@
|
|
|
2444
2456
|
"get_playbook",
|
|
2445
2457
|
"get_approach"
|
|
2446
2458
|
],
|
|
2447
|
-
"source": "src/tools/spec.ts:
|
|
2459
|
+
"source": "src/tools/spec.ts:852",
|
|
2448
2460
|
"symbol": "getFramework",
|
|
2449
2461
|
"returns": "JSON: the full `UPGFramework` record.",
|
|
2450
2462
|
"return_notes": [
|
|
@@ -2485,7 +2497,7 @@
|
|
|
2485
2497
|
"get_framework",
|
|
2486
2498
|
"list_entity_types"
|
|
2487
2499
|
],
|
|
2488
|
-
"source": "src/tools/spec.ts:
|
|
2500
|
+
"source": "src/tools/spec.ts:1180",
|
|
2489
2501
|
"symbol": "getLensTool",
|
|
2490
2502
|
"returns": "JSON: `{ ...UPGLens, visible_types: string[] }`",
|
|
2491
2503
|
"return_shape": "{...UPGLens, visible_types: string[] }",
|
|
@@ -2521,7 +2533,7 @@
|
|
|
2521
2533
|
"get_entity_meta",
|
|
2522
2534
|
"get_entity_schema"
|
|
2523
2535
|
],
|
|
2524
|
-
"source": "src/tools/spec.ts:
|
|
2536
|
+
"source": "src/tools/spec.ts:1797",
|
|
2525
2537
|
"symbol": "getLifecycle",
|
|
2526
2538
|
"returns": "JSON: the full `UPGLifecycle` record, or a descriptive message.",
|
|
2527
2539
|
"return_notes": [
|
|
@@ -2603,7 +2615,7 @@
|
|
|
2603
2615
|
"get_playbook",
|
|
2604
2616
|
"list_lenses"
|
|
2605
2617
|
],
|
|
2606
|
-
"source": "src/tools/spec.ts:
|
|
2618
|
+
"source": "src/tools/spec.ts:982",
|
|
2607
2619
|
"symbol": "getRegion",
|
|
2608
2620
|
"returns": "JSON: the full `UPGRegion` record.",
|
|
2609
2621
|
"return_notes": [
|
|
@@ -2644,7 +2656,7 @@
|
|
|
2644
2656
|
"get_entity_meta",
|
|
2645
2657
|
"list_entity_types"
|
|
2646
2658
|
],
|
|
2647
|
-
"source": "src/tools/spec.ts:
|
|
2659
|
+
"source": "src/tools/spec.ts:1004",
|
|
2648
2660
|
"symbol": "getRegionForEntity",
|
|
2649
2661
|
"returns": "JSON: the full `UPGRegion` record.",
|
|
2650
2662
|
"return_notes": [
|
|
@@ -2675,7 +2687,7 @@
|
|
|
2675
2687
|
"list_scales",
|
|
2676
2688
|
"get_entity_schema"
|
|
2677
2689
|
],
|
|
2678
|
-
"source": "src/tools/spec.ts:
|
|
2690
|
+
"source": "src/tools/spec.ts:1843",
|
|
2679
2691
|
"symbol": "getScale",
|
|
2680
2692
|
"returns": "JSON: the full `UPGScaleDefinition` record including all points.",
|
|
2681
2693
|
"return_notes": [
|
|
@@ -2706,7 +2718,7 @@
|
|
|
2706
2718
|
"list_edge_types",
|
|
2707
2719
|
"list_regions"
|
|
2708
2720
|
],
|
|
2709
|
-
"source": "src/tools/spec.ts:
|
|
2721
|
+
"source": "src/tools/spec.ts:1032",
|
|
2710
2722
|
"symbol": "getSpecVersion",
|
|
2711
2723
|
"returns": "JSON: `{ upg_version, markdown_format_version, entity_count, edge_count, domain_count, region_count }`",
|
|
2712
2724
|
"return_shape": "{ upg_version, markdown_format_version, entity_count, edge_count, domain_count, region_count }",
|
|
@@ -2752,7 +2764,7 @@
|
|
|
2752
2764
|
"get_entity_meta",
|
|
2753
2765
|
"list_frameworks"
|
|
2754
2766
|
],
|
|
2755
|
-
"source": "src/tools/spec.ts:
|
|
2767
|
+
"source": "src/tools/spec.ts:1248",
|
|
2756
2768
|
"symbol": "getTypeLabel",
|
|
2757
2769
|
"returns": "JSON: `{ ...UPGTypeLabel, resolved_label: string }`",
|
|
2758
2770
|
"return_shape": "{...UPGTypeLabel, resolved_label: string }",
|
|
@@ -2791,7 +2803,7 @@
|
|
|
2791
2803
|
"get_entity_meta",
|
|
2792
2804
|
"create_node"
|
|
2793
2805
|
],
|
|
2794
|
-
"source": "src/tools/spec.ts:
|
|
2806
|
+
"source": "src/tools/spec.ts:1278",
|
|
2795
2807
|
"symbol": "getValidChildrenTool",
|
|
2796
2808
|
"returns": "JSON: `{ parent_type, valid_children: string[] }`",
|
|
2797
2809
|
"return_shape": "{ parent_type, valid_children: string[] }",
|
|
@@ -2894,7 +2906,7 @@
|
|
|
2894
2906
|
"inspect",
|
|
2895
2907
|
"get_domain_guide"
|
|
2896
2908
|
],
|
|
2897
|
-
"source": "src/tools/spec.ts:
|
|
2909
|
+
"source": "src/tools/spec.ts:1429",
|
|
2898
2910
|
"symbol": "listAntiPatterns",
|
|
2899
2911
|
"returns": "JSON: `{ total, count, next_cursor?, anti_patterns: UPGCuratedAntiPattern[] }`",
|
|
2900
2912
|
"return_shape": "{ total, count, next_cursor?, anti_patterns: UPGCuratedAntiPattern[] }",
|
|
@@ -2995,7 +3007,7 @@
|
|
|
2995
3007
|
"list_domains",
|
|
2996
3008
|
"list_anti_patterns"
|
|
2997
3009
|
],
|
|
2998
|
-
"source": "src/tools/spec.ts:
|
|
3010
|
+
"source": "src/tools/spec.ts:1518",
|
|
2999
3011
|
"symbol": "listBenchmarks",
|
|
3000
3012
|
"returns": "JSON: `{ kind, total, count, benchmarks: ... }`",
|
|
3001
3013
|
"return_shape": "{ kind, total, count, benchmarks:... }",
|
|
@@ -3023,7 +3035,7 @@
|
|
|
3023
3035
|
"list_portfolio_cross_edges",
|
|
3024
3036
|
"migrate_cross_edges"
|
|
3025
3037
|
],
|
|
3026
|
-
"source": "src/tools/spec.ts:
|
|
3038
|
+
"source": "src/tools/spec.ts:1118",
|
|
3027
3039
|
"symbol": "listCrossEdgeTypes",
|
|
3028
3040
|
"returns": "JSON: `{ count, types: readonly UPGCrossEdgeType[] }`",
|
|
3029
3041
|
"return_shape": "{ count, types: readonly UPGCrossEdgeType[] }",
|
|
@@ -3051,7 +3063,7 @@
|
|
|
3051
3063
|
"list_domains",
|
|
3052
3064
|
"get_domain_guide"
|
|
3053
3065
|
],
|
|
3054
|
-
"source": "src/tools/spec.ts:
|
|
3066
|
+
"source": "src/tools/spec.ts:1906",
|
|
3055
3067
|
"symbol": "listDomainRings",
|
|
3056
3068
|
"returns": "JSON: `{ rings: UPGDomainRing[], total: number }`",
|
|
3057
3069
|
"return_shape": "{ rings: UPGDomainRing[], total: number }",
|
|
@@ -3121,7 +3133,7 @@
|
|
|
3121
3133
|
"list_edge_types",
|
|
3122
3134
|
"validate_graph"
|
|
3123
3135
|
],
|
|
3124
|
-
"source": "src/tools/spec.ts:
|
|
3136
|
+
"source": "src/tools/spec.ts:1690",
|
|
3125
3137
|
"symbol": "listEdgeMigrations",
|
|
3126
3138
|
"returns": "JSON: `{ migrations: [{ kind, from, to?, since }], total: number }`",
|
|
3127
3139
|
"return_shape": "{ migrations: [{ kind, from, to?, since }], total: number }",
|
|
@@ -3160,7 +3172,7 @@
|
|
|
3160
3172
|
"list_edge_migrations",
|
|
3161
3173
|
"create_edge"
|
|
3162
3174
|
],
|
|
3163
|
-
"source": "src/tools/spec.ts:
|
|
3175
|
+
"source": "src/tools/spec.ts:904",
|
|
3164
3176
|
"symbol": "listEdgeTypes",
|
|
3165
3177
|
"returns": "JSON: `{ count, edges: Array<{ type, forward_verb, reverse_verb, classification, source_type, target_type }> }`",
|
|
3166
3178
|
"return_shape": "{ count, edges: Array<{ type, forward_verb, reverse_verb, classification, source_type, target_type }> }",
|
|
@@ -3218,7 +3230,7 @@
|
|
|
3218
3230
|
"list_type_migrations",
|
|
3219
3231
|
"list_domains"
|
|
3220
3232
|
],
|
|
3221
|
-
"source": "src/tools/spec.ts:
|
|
3233
|
+
"source": "src/tools/spec.ts:1330",
|
|
3222
3234
|
"symbol": "listEntityTypes",
|
|
3223
3235
|
"returns": "JSON: `{ total, count, next_cursor?, types: Array<EntityTypeMeta & { domain_id: string | null }> }`",
|
|
3224
3236
|
"return_shape": "{ total, count, next_cursor?, types: Array<EntityTypeMeta & { domain_id: string | null }> }",
|
|
@@ -3245,7 +3257,7 @@
|
|
|
3245
3257
|
"list_frameworks",
|
|
3246
3258
|
"list_framework_structure_patterns"
|
|
3247
3259
|
],
|
|
3248
|
-
"source": "src/tools/spec.ts:
|
|
3260
|
+
"source": "src/tools/spec.ts:1862",
|
|
3249
3261
|
"symbol": "listFrameworkCategories",
|
|
3250
3262
|
"returns": "JSON: `{ categories: string[], total: number }`",
|
|
3251
3263
|
"return_shape": "{ categories: string[], total: number }",
|
|
@@ -3273,7 +3285,7 @@
|
|
|
3273
3285
|
"list_framework_categories",
|
|
3274
3286
|
"get_framework"
|
|
3275
3287
|
],
|
|
3276
|
-
"source": "src/tools/spec.ts:
|
|
3288
|
+
"source": "src/tools/spec.ts:1883",
|
|
3277
3289
|
"symbol": "listFrameworkStructurePatterns",
|
|
3278
3290
|
"returns": "JSON: `{ patterns: string[], total: number }`",
|
|
3279
3291
|
"return_shape": "{ patterns: string[], total: number }",
|
|
@@ -3345,7 +3357,7 @@
|
|
|
3345
3357
|
"list_playbooks",
|
|
3346
3358
|
"list_frameworks"
|
|
3347
3359
|
],
|
|
3348
|
-
"source": "src/tools/spec.ts:
|
|
3360
|
+
"source": "src/tools/spec.ts:1147",
|
|
3349
3361
|
"symbol": "listLenses",
|
|
3350
3362
|
"returns": "JSON: `{ count, lenses: Array<{ id, name, description, icon, audience, perspective, framework_id?, playbook_id?, visible_domain_count, intelligence_prompt_count }> }`",
|
|
3351
3363
|
"return_shape": "{ count, lenses: Array<{ id, name, description, icon, audience, perspective, framework_id?, playbook_id?, visible_domain_count, intelligence_prompt_count }> }",
|
|
@@ -3382,7 +3394,7 @@
|
|
|
3382
3394
|
"list_entity_types",
|
|
3383
3395
|
"get_entity_meta"
|
|
3384
3396
|
],
|
|
3385
|
-
"source": "src/tools/spec.ts:
|
|
3397
|
+
"source": "src/tools/spec.ts:1755",
|
|
3386
3398
|
"symbol": "listLifecycles",
|
|
3387
3399
|
"returns": "JSON: `{ lifecycles, total, free_types: string[], planned_types: string[] }`",
|
|
3388
3400
|
"return_shape": "{ lifecycles, total, free_types: string[], planned_types: string[] }",
|
|
@@ -3453,7 +3465,7 @@
|
|
|
3453
3465
|
"list_domain_rings",
|
|
3454
3466
|
"create_product"
|
|
3455
3467
|
],
|
|
3456
|
-
"source": "src/tools/spec.ts:
|
|
3468
|
+
"source": "src/tools/spec.ts:1626",
|
|
3457
3469
|
"symbol": "listProductStages",
|
|
3458
3470
|
"returns": "JSON: `{ count, stages: readonly UPGProductStage[] }`",
|
|
3459
3471
|
"return_shape": "{ count, stages: readonly UPGProductStage[] }",
|
|
@@ -3482,7 +3494,7 @@
|
|
|
3482
3494
|
"list_domains",
|
|
3483
3495
|
"list_playbooks"
|
|
3484
3496
|
],
|
|
3485
|
-
"source": "src/tools/spec.ts:
|
|
3497
|
+
"source": "src/tools/spec.ts:950",
|
|
3486
3498
|
"symbol": "listRegions",
|
|
3487
3499
|
"returns": "JSON: `{ count, regions: Array<{ id, label, order, shape, mental_model, anchor_type, composes_atomic_domains, entity_count, intra_edge_count, boundary_edge_count }> }`",
|
|
3488
3500
|
"return_shape": "{ count, regions: Array<{ id, label, order, shape, mental_model, anchor_type, composes_atomic_domains, entity_count, intra_edge_count, boundary_edge_count }> }",
|
|
@@ -3509,7 +3521,7 @@
|
|
|
3509
3521
|
"get_scale",
|
|
3510
3522
|
"get_entity_schema"
|
|
3511
3523
|
],
|
|
3512
|
-
"source": "src/tools/spec.ts:
|
|
3524
|
+
"source": "src/tools/spec.ts:1828",
|
|
3513
3525
|
"symbol": "listScales",
|
|
3514
3526
|
"returns": "JSON: `{ scales: UPGScaleDefinition[], total: number }`",
|
|
3515
3527
|
"return_shape": "{ scales: UPGScaleDefinition[], total: number }",
|
|
@@ -3538,7 +3550,7 @@
|
|
|
3538
3550
|
"migrate_type",
|
|
3539
3551
|
"validate_graph"
|
|
3540
3552
|
],
|
|
3541
|
-
"source": "src/tools/spec.ts:
|
|
3553
|
+
"source": "src/tools/spec.ts:1727",
|
|
3542
3554
|
"symbol": "listSplitMigrations",
|
|
3543
3555
|
"returns": "JSON: `{ splits: [...], total: number }`",
|
|
3544
3556
|
"return_shape": "{ splits: [...], total: number }",
|
|
@@ -3575,7 +3587,7 @@
|
|
|
3575
3587
|
"list_entity_types",
|
|
3576
3588
|
"get_entity_meta"
|
|
3577
3589
|
],
|
|
3578
|
-
"source": "src/tools/spec.ts:
|
|
3590
|
+
"source": "src/tools/spec.ts:1213",
|
|
3579
3591
|
"symbol": "listTypeLabels",
|
|
3580
3592
|
"returns": "JSON: `{ total, count, next_cursor?, labels: UPGTypeLabel[] }`",
|
|
3581
3593
|
"return_shape": "{ total, count, next_cursor?, labels: UPGTypeLabel[] }",
|
|
@@ -3611,7 +3623,7 @@
|
|
|
3611
3623
|
"validate_graph",
|
|
3612
3624
|
"list_entity_types"
|
|
3613
3625
|
],
|
|
3614
|
-
"source": "src/tools/spec.ts:
|
|
3626
|
+
"source": "src/tools/spec.ts:1659",
|
|
3615
3627
|
"symbol": "listTypeMigrations",
|
|
3616
3628
|
"returns": "JSON: `{ migrations: [{ from, to, since }], total: number }`",
|
|
3617
3629
|
"return_shape": "{ migrations: [{ from, to, since }], total: number }",
|
|
@@ -3797,7 +3809,7 @@
|
|
|
3797
3809
|
"create_edge",
|
|
3798
3810
|
"trace"
|
|
3799
3811
|
],
|
|
3800
|
-
"source": "src/tools/spec.ts:
|
|
3812
|
+
"source": "src/tools/spec.ts:1086",
|
|
3801
3813
|
"symbol": "resolveEdgeForPair",
|
|
3802
3814
|
"returns": "JSON: `{ source_type, target_type, edge_type: string | null,\nanchor_hint?, alternate_anchors?, adjacent_edges? }`",
|
|
3803
3815
|
"return_shape": "{ source_type, target_type, edge_type: string | null, anchor_hint?, alternate_anchors?, adjacent_edges? }",
|
|
@@ -4088,7 +4100,7 @@
|
|
|
4088
4100
|
"get_anti_pattern",
|
|
4089
4101
|
"inspect"
|
|
4090
4102
|
],
|
|
4091
|
-
"source": "src/tools/validation.ts:
|
|
4103
|
+
"source": "src/tools/validation.ts:938",
|
|
4092
4104
|
"symbol": "getAntiPatternViolationsFor",
|
|
4093
4105
|
"returns": "JSON: `{ entity_id, type, violations: [...] }`.",
|
|
4094
4106
|
"return_shape": "{ entity_id, type, violations: [...] }",
|
|
@@ -4192,7 +4204,7 @@
|
|
|
4192
4204
|
}
|
|
4193
4205
|
],
|
|
4194
4206
|
"warnings": [
|
|
4195
|
-
"
|
|
4207
|
+
"`valid` is true ONLY when both drift is empty AND no anti-pattern\nviolations fired — it conflates structure and product-health. For a pure\nspec-conformance check read `structurally_valid` (or set\n`skip_anti_patterns: true`, which makes `valid` track structure alone).\n`skip_drift: true` gives a catalog-only run and omits `structurally_valid`."
|
|
4196
4208
|
],
|
|
4197
4209
|
"see": [
|
|
4198
4210
|
"migrate_type",
|
|
@@ -4204,13 +4216,14 @@
|
|
|
4204
4216
|
"list_edge_migrations",
|
|
4205
4217
|
"inspect"
|
|
4206
4218
|
],
|
|
4207
|
-
"source": "src/tools/validation.ts:
|
|
4219
|
+
"source": "src/tools/validation.ts:267",
|
|
4208
4220
|
"symbol": "validateGraph",
|
|
4209
|
-
"returns": "JSON: `{ valid, summary, entity_drift?,
|
|
4210
|
-
"return_shape": "{ valid, summary, entity_drift?, edge_drift?, property_drift?, top_level_drift?, lifecycle_drift?, self_referential?, anti_pattern_violations?, notes?, _hash }",
|
|
4221
|
+
"returns": "JSON: `{ valid, structurally_valid?, summary, entity_drift?,\nedge_drift?, property_drift?, top_level_drift?, lifecycle_drift?,\nself_referential?, anti_pattern_violations?, notes?, _hash }`. Per-class\ndrift arrays appear only when the requested `scope` includes that class.\nEach array is capped at `limit` (default 100). `structurally_valid` is\nomitted when `skip_drift: true`.",
|
|
4222
|
+
"return_shape": "{ valid, structurally_valid?, summary, entity_drift?, edge_drift?, property_drift?, top_level_drift?, lifecycle_drift?, self_referential?, anti_pattern_violations?, notes?, _hash }",
|
|
4211
4223
|
"return_notes": [
|
|
4212
4224
|
"Per-class drift arrays appear only when the requested `scope` includes that class.",
|
|
4213
|
-
"Each array is capped at `limit` (default 100)."
|
|
4225
|
+
"Each array is capped at `limit` (default 100).",
|
|
4226
|
+
"`structurally_valid` is omitted when `skip_drift: true`."
|
|
4214
4227
|
],
|
|
4215
4228
|
"atomicity": "atomic (read-only)"
|
|
4216
4229
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unified-product-graph/mcp-server",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.8",
|
|
4
4
|
"description": "Local MCP server for .upg files. Read and write product knowledge graphs offline.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "The Product Creator <hello@theproductcreator.com>",
|