@unified-product-graph/mcp-server 0.8.7 → 0.8.9
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 +17 -0
- package/TOOLS.md +27 -18
- package/dist/index.js +228 -20
- package/dist/index.js.map +1 -1
- package/dist/tools-manifest.json +92 -71
- 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.9",
|
|
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 }",
|
|
@@ -2135,6 +2143,10 @@
|
|
|
2135
2143
|
},
|
|
2136
2144
|
"description": "Entities to pull into the exercise (any type)."
|
|
2137
2145
|
},
|
|
2146
|
+
"slot_roles": {
|
|
2147
|
+
"type": "object",
|
|
2148
|
+
"description": "Optional map of entity id → framework slot role (e.g. { \"feat_x\": \"pain_reliever\" }), stamped onto each entity's includes edge. Validated against the framework's declared slot roles (warn-only)."
|
|
2149
|
+
},
|
|
2138
2150
|
"status": {
|
|
2139
2151
|
"type": "string",
|
|
2140
2152
|
"description": "Lifecycle phase: draft | active | archived (default draft)."
|
|
@@ -2152,10 +2164,10 @@
|
|
|
2152
2164
|
"see": [
|
|
2153
2165
|
"score_entity"
|
|
2154
2166
|
],
|
|
2155
|
-
"source": "src/tools/frameworks.ts:
|
|
2167
|
+
"source": "src/tools/frameworks.ts:30",
|
|
2156
2168
|
"symbol": "applyFramework",
|
|
2157
|
-
"returns": "JSON: `{ exercise_id, exercise, included: [{ edge_id, entity_id, edge_type }], warnings }`\n(the shared cross-surface envelope; identical to CLI `apply --json`).",
|
|
2158
|
-
"return_shape": "{ exercise_id, exercise, included: [{ edge_id, entity_id, edge_type }], warnings }",
|
|
2169
|
+
"returns": "JSON: `{ exercise_id, exercise, included: [{ edge_id, entity_id, edge_type, slot_role? }], warnings }`\n(the shared cross-surface envelope; identical to CLI `apply --json`).",
|
|
2170
|
+
"return_shape": "{ exercise_id, exercise, included: [{ edge_id, entity_id, edge_type, slot_role? }], warnings }",
|
|
2159
2171
|
"return_notes": [
|
|
2160
2172
|
"(the shared cross-surface envelope; identical to CLI `apply --json`)."
|
|
2161
2173
|
],
|
|
@@ -2194,7 +2206,7 @@
|
|
|
2194
2206
|
"inspect",
|
|
2195
2207
|
"validate_graph"
|
|
2196
2208
|
],
|
|
2197
|
-
"source": "src/tools/spec.ts:
|
|
2209
|
+
"source": "src/tools/spec.ts:1471",
|
|
2198
2210
|
"symbol": "getAntiPattern",
|
|
2199
2211
|
"returns": "JSON: `UPGCuratedAntiPattern`",
|
|
2200
2212
|
"return_notes": [
|
|
@@ -2323,7 +2335,7 @@
|
|
|
2323
2335
|
"list_domains",
|
|
2324
2336
|
"get_domain_guide"
|
|
2325
2337
|
],
|
|
2326
|
-
"source": "src/tools/spec.ts:
|
|
2338
|
+
"source": "src/tools/spec.ts:1927",
|
|
2327
2339
|
"symbol": "getDomainRing",
|
|
2328
2340
|
"returns": "JSON: the full `UPGDomainRing` record.",
|
|
2329
2341
|
"return_notes": [
|
|
@@ -2364,7 +2376,7 @@
|
|
|
2364
2376
|
"list_edge_migrations",
|
|
2365
2377
|
"rename_edge_type"
|
|
2366
2378
|
],
|
|
2367
|
-
"source": "src/tools/spec.ts:
|
|
2379
|
+
"source": "src/tools/spec.ts:923",
|
|
2368
2380
|
"symbol": "getEdgeType",
|
|
2369
2381
|
"returns": "JSON: `{ type, forward_verb, reverse_verb, classification, source_type, target_type }`",
|
|
2370
2382
|
"return_shape": "{ type, forward_verb, reverse_verb, classification, source_type, target_type }",
|
|
@@ -2403,7 +2415,7 @@
|
|
|
2403
2415
|
"get_entity_schema",
|
|
2404
2416
|
"list_type_migrations"
|
|
2405
2417
|
],
|
|
2406
|
-
"source": "src/tools/spec.ts:
|
|
2418
|
+
"source": "src/tools/spec.ts:1386",
|
|
2407
2419
|
"symbol": "getEntityMeta",
|
|
2408
2420
|
"returns": "JSON: `EntityTypeMeta & { domain_id: string | null }`",
|
|
2409
2421
|
"return_notes": [
|
|
@@ -2420,7 +2432,11 @@
|
|
|
2420
2432
|
"properties": {
|
|
2421
2433
|
"id": {
|
|
2422
2434
|
"type": "string",
|
|
2423
|
-
"description": "Framework id (kebab-case)."
|
|
2435
|
+
"description": "Framework id (kebab-case). Alias: `framework_id`."
|
|
2436
|
+
},
|
|
2437
|
+
"framework_id": {
|
|
2438
|
+
"type": "string",
|
|
2439
|
+
"description": "Alias for `id` (matches the key used by apply_framework / prioritise)."
|
|
2424
2440
|
}
|
|
2425
2441
|
},
|
|
2426
2442
|
"required": [
|
|
@@ -2428,7 +2444,7 @@
|
|
|
2428
2444
|
]
|
|
2429
2445
|
},
|
|
2430
2446
|
"throws": [
|
|
2431
|
-
"textError when `id` is
|
|
2447
|
+
"textError when neither `id` nor `framework_id` is provided, or the\nid is unknown."
|
|
2432
2448
|
],
|
|
2433
2449
|
"examples": [
|
|
2434
2450
|
{
|
|
@@ -2444,7 +2460,7 @@
|
|
|
2444
2460
|
"get_playbook",
|
|
2445
2461
|
"get_approach"
|
|
2446
2462
|
],
|
|
2447
|
-
"source": "src/tools/spec.ts:
|
|
2463
|
+
"source": "src/tools/spec.ts:852",
|
|
2448
2464
|
"symbol": "getFramework",
|
|
2449
2465
|
"returns": "JSON: the full `UPGFramework` record.",
|
|
2450
2466
|
"return_notes": [
|
|
@@ -2485,7 +2501,7 @@
|
|
|
2485
2501
|
"get_framework",
|
|
2486
2502
|
"list_entity_types"
|
|
2487
2503
|
],
|
|
2488
|
-
"source": "src/tools/spec.ts:
|
|
2504
|
+
"source": "src/tools/spec.ts:1180",
|
|
2489
2505
|
"symbol": "getLensTool",
|
|
2490
2506
|
"returns": "JSON: `{ ...UPGLens, visible_types: string[] }`",
|
|
2491
2507
|
"return_shape": "{...UPGLens, visible_types: string[] }",
|
|
@@ -2521,7 +2537,7 @@
|
|
|
2521
2537
|
"get_entity_meta",
|
|
2522
2538
|
"get_entity_schema"
|
|
2523
2539
|
],
|
|
2524
|
-
"source": "src/tools/spec.ts:
|
|
2540
|
+
"source": "src/tools/spec.ts:1797",
|
|
2525
2541
|
"symbol": "getLifecycle",
|
|
2526
2542
|
"returns": "JSON: the full `UPGLifecycle` record, or a descriptive message.",
|
|
2527
2543
|
"return_notes": [
|
|
@@ -2603,7 +2619,7 @@
|
|
|
2603
2619
|
"get_playbook",
|
|
2604
2620
|
"list_lenses"
|
|
2605
2621
|
],
|
|
2606
|
-
"source": "src/tools/spec.ts:
|
|
2622
|
+
"source": "src/tools/spec.ts:982",
|
|
2607
2623
|
"symbol": "getRegion",
|
|
2608
2624
|
"returns": "JSON: the full `UPGRegion` record.",
|
|
2609
2625
|
"return_notes": [
|
|
@@ -2644,7 +2660,7 @@
|
|
|
2644
2660
|
"get_entity_meta",
|
|
2645
2661
|
"list_entity_types"
|
|
2646
2662
|
],
|
|
2647
|
-
"source": "src/tools/spec.ts:
|
|
2663
|
+
"source": "src/tools/spec.ts:1004",
|
|
2648
2664
|
"symbol": "getRegionForEntity",
|
|
2649
2665
|
"returns": "JSON: the full `UPGRegion` record.",
|
|
2650
2666
|
"return_notes": [
|
|
@@ -2675,7 +2691,7 @@
|
|
|
2675
2691
|
"list_scales",
|
|
2676
2692
|
"get_entity_schema"
|
|
2677
2693
|
],
|
|
2678
|
-
"source": "src/tools/spec.ts:
|
|
2694
|
+
"source": "src/tools/spec.ts:1843",
|
|
2679
2695
|
"symbol": "getScale",
|
|
2680
2696
|
"returns": "JSON: the full `UPGScaleDefinition` record including all points.",
|
|
2681
2697
|
"return_notes": [
|
|
@@ -2706,7 +2722,7 @@
|
|
|
2706
2722
|
"list_edge_types",
|
|
2707
2723
|
"list_regions"
|
|
2708
2724
|
],
|
|
2709
|
-
"source": "src/tools/spec.ts:
|
|
2725
|
+
"source": "src/tools/spec.ts:1032",
|
|
2710
2726
|
"symbol": "getSpecVersion",
|
|
2711
2727
|
"returns": "JSON: `{ upg_version, markdown_format_version, entity_count, edge_count, domain_count, region_count }`",
|
|
2712
2728
|
"return_shape": "{ upg_version, markdown_format_version, entity_count, edge_count, domain_count, region_count }",
|
|
@@ -2752,7 +2768,7 @@
|
|
|
2752
2768
|
"get_entity_meta",
|
|
2753
2769
|
"list_frameworks"
|
|
2754
2770
|
],
|
|
2755
|
-
"source": "src/tools/spec.ts:
|
|
2771
|
+
"source": "src/tools/spec.ts:1248",
|
|
2756
2772
|
"symbol": "getTypeLabel",
|
|
2757
2773
|
"returns": "JSON: `{ ...UPGTypeLabel, resolved_label: string }`",
|
|
2758
2774
|
"return_shape": "{...UPGTypeLabel, resolved_label: string }",
|
|
@@ -2791,7 +2807,7 @@
|
|
|
2791
2807
|
"get_entity_meta",
|
|
2792
2808
|
"create_node"
|
|
2793
2809
|
],
|
|
2794
|
-
"source": "src/tools/spec.ts:
|
|
2810
|
+
"source": "src/tools/spec.ts:1278",
|
|
2795
2811
|
"symbol": "getValidChildrenTool",
|
|
2796
2812
|
"returns": "JSON: `{ parent_type, valid_children: string[] }`",
|
|
2797
2813
|
"return_shape": "{ parent_type, valid_children: string[] }",
|
|
@@ -2894,7 +2910,7 @@
|
|
|
2894
2910
|
"inspect",
|
|
2895
2911
|
"get_domain_guide"
|
|
2896
2912
|
],
|
|
2897
|
-
"source": "src/tools/spec.ts:
|
|
2913
|
+
"source": "src/tools/spec.ts:1429",
|
|
2898
2914
|
"symbol": "listAntiPatterns",
|
|
2899
2915
|
"returns": "JSON: `{ total, count, next_cursor?, anti_patterns: UPGCuratedAntiPattern[] }`",
|
|
2900
2916
|
"return_shape": "{ total, count, next_cursor?, anti_patterns: UPGCuratedAntiPattern[] }",
|
|
@@ -2995,7 +3011,7 @@
|
|
|
2995
3011
|
"list_domains",
|
|
2996
3012
|
"list_anti_patterns"
|
|
2997
3013
|
],
|
|
2998
|
-
"source": "src/tools/spec.ts:
|
|
3014
|
+
"source": "src/tools/spec.ts:1518",
|
|
2999
3015
|
"symbol": "listBenchmarks",
|
|
3000
3016
|
"returns": "JSON: `{ kind, total, count, benchmarks: ... }`",
|
|
3001
3017
|
"return_shape": "{ kind, total, count, benchmarks:... }",
|
|
@@ -3023,7 +3039,7 @@
|
|
|
3023
3039
|
"list_portfolio_cross_edges",
|
|
3024
3040
|
"migrate_cross_edges"
|
|
3025
3041
|
],
|
|
3026
|
-
"source": "src/tools/spec.ts:
|
|
3042
|
+
"source": "src/tools/spec.ts:1118",
|
|
3027
3043
|
"symbol": "listCrossEdgeTypes",
|
|
3028
3044
|
"returns": "JSON: `{ count, types: readonly UPGCrossEdgeType[] }`",
|
|
3029
3045
|
"return_shape": "{ count, types: readonly UPGCrossEdgeType[] }",
|
|
@@ -3051,7 +3067,7 @@
|
|
|
3051
3067
|
"list_domains",
|
|
3052
3068
|
"get_domain_guide"
|
|
3053
3069
|
],
|
|
3054
|
-
"source": "src/tools/spec.ts:
|
|
3070
|
+
"source": "src/tools/spec.ts:1906",
|
|
3055
3071
|
"symbol": "listDomainRings",
|
|
3056
3072
|
"returns": "JSON: `{ rings: UPGDomainRing[], total: number }`",
|
|
3057
3073
|
"return_shape": "{ rings: UPGDomainRing[], total: number }",
|
|
@@ -3121,7 +3137,7 @@
|
|
|
3121
3137
|
"list_edge_types",
|
|
3122
3138
|
"validate_graph"
|
|
3123
3139
|
],
|
|
3124
|
-
"source": "src/tools/spec.ts:
|
|
3140
|
+
"source": "src/tools/spec.ts:1690",
|
|
3125
3141
|
"symbol": "listEdgeMigrations",
|
|
3126
3142
|
"returns": "JSON: `{ migrations: [{ kind, from, to?, since }], total: number }`",
|
|
3127
3143
|
"return_shape": "{ migrations: [{ kind, from, to?, since }], total: number }",
|
|
@@ -3160,7 +3176,7 @@
|
|
|
3160
3176
|
"list_edge_migrations",
|
|
3161
3177
|
"create_edge"
|
|
3162
3178
|
],
|
|
3163
|
-
"source": "src/tools/spec.ts:
|
|
3179
|
+
"source": "src/tools/spec.ts:904",
|
|
3164
3180
|
"symbol": "listEdgeTypes",
|
|
3165
3181
|
"returns": "JSON: `{ count, edges: Array<{ type, forward_verb, reverse_verb, classification, source_type, target_type }> }`",
|
|
3166
3182
|
"return_shape": "{ count, edges: Array<{ type, forward_verb, reverse_verb, classification, source_type, target_type }> }",
|
|
@@ -3218,7 +3234,7 @@
|
|
|
3218
3234
|
"list_type_migrations",
|
|
3219
3235
|
"list_domains"
|
|
3220
3236
|
],
|
|
3221
|
-
"source": "src/tools/spec.ts:
|
|
3237
|
+
"source": "src/tools/spec.ts:1330",
|
|
3222
3238
|
"symbol": "listEntityTypes",
|
|
3223
3239
|
"returns": "JSON: `{ total, count, next_cursor?, types: Array<EntityTypeMeta & { domain_id: string | null }> }`",
|
|
3224
3240
|
"return_shape": "{ total, count, next_cursor?, types: Array<EntityTypeMeta & { domain_id: string | null }> }",
|
|
@@ -3245,7 +3261,7 @@
|
|
|
3245
3261
|
"list_frameworks",
|
|
3246
3262
|
"list_framework_structure_patterns"
|
|
3247
3263
|
],
|
|
3248
|
-
"source": "src/tools/spec.ts:
|
|
3264
|
+
"source": "src/tools/spec.ts:1862",
|
|
3249
3265
|
"symbol": "listFrameworkCategories",
|
|
3250
3266
|
"returns": "JSON: `{ categories: string[], total: number }`",
|
|
3251
3267
|
"return_shape": "{ categories: string[], total: number }",
|
|
@@ -3273,7 +3289,7 @@
|
|
|
3273
3289
|
"list_framework_categories",
|
|
3274
3290
|
"get_framework"
|
|
3275
3291
|
],
|
|
3276
|
-
"source": "src/tools/spec.ts:
|
|
3292
|
+
"source": "src/tools/spec.ts:1883",
|
|
3277
3293
|
"symbol": "listFrameworkStructurePatterns",
|
|
3278
3294
|
"returns": "JSON: `{ patterns: string[], total: number }`",
|
|
3279
3295
|
"return_shape": "{ patterns: string[], total: number }",
|
|
@@ -3345,7 +3361,7 @@
|
|
|
3345
3361
|
"list_playbooks",
|
|
3346
3362
|
"list_frameworks"
|
|
3347
3363
|
],
|
|
3348
|
-
"source": "src/tools/spec.ts:
|
|
3364
|
+
"source": "src/tools/spec.ts:1147",
|
|
3349
3365
|
"symbol": "listLenses",
|
|
3350
3366
|
"returns": "JSON: `{ count, lenses: Array<{ id, name, description, icon, audience, perspective, framework_id?, playbook_id?, visible_domain_count, intelligence_prompt_count }> }`",
|
|
3351
3367
|
"return_shape": "{ count, lenses: Array<{ id, name, description, icon, audience, perspective, framework_id?, playbook_id?, visible_domain_count, intelligence_prompt_count }> }",
|
|
@@ -3382,7 +3398,7 @@
|
|
|
3382
3398
|
"list_entity_types",
|
|
3383
3399
|
"get_entity_meta"
|
|
3384
3400
|
],
|
|
3385
|
-
"source": "src/tools/spec.ts:
|
|
3401
|
+
"source": "src/tools/spec.ts:1755",
|
|
3386
3402
|
"symbol": "listLifecycles",
|
|
3387
3403
|
"returns": "JSON: `{ lifecycles, total, free_types: string[], planned_types: string[] }`",
|
|
3388
3404
|
"return_shape": "{ lifecycles, total, free_types: string[], planned_types: string[] }",
|
|
@@ -3453,7 +3469,7 @@
|
|
|
3453
3469
|
"list_domain_rings",
|
|
3454
3470
|
"create_product"
|
|
3455
3471
|
],
|
|
3456
|
-
"source": "src/tools/spec.ts:
|
|
3472
|
+
"source": "src/tools/spec.ts:1626",
|
|
3457
3473
|
"symbol": "listProductStages",
|
|
3458
3474
|
"returns": "JSON: `{ count, stages: readonly UPGProductStage[] }`",
|
|
3459
3475
|
"return_shape": "{ count, stages: readonly UPGProductStage[] }",
|
|
@@ -3482,7 +3498,7 @@
|
|
|
3482
3498
|
"list_domains",
|
|
3483
3499
|
"list_playbooks"
|
|
3484
3500
|
],
|
|
3485
|
-
"source": "src/tools/spec.ts:
|
|
3501
|
+
"source": "src/tools/spec.ts:950",
|
|
3486
3502
|
"symbol": "listRegions",
|
|
3487
3503
|
"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
3504
|
"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 +3525,7 @@
|
|
|
3509
3525
|
"get_scale",
|
|
3510
3526
|
"get_entity_schema"
|
|
3511
3527
|
],
|
|
3512
|
-
"source": "src/tools/spec.ts:
|
|
3528
|
+
"source": "src/tools/spec.ts:1828",
|
|
3513
3529
|
"symbol": "listScales",
|
|
3514
3530
|
"returns": "JSON: `{ scales: UPGScaleDefinition[], total: number }`",
|
|
3515
3531
|
"return_shape": "{ scales: UPGScaleDefinition[], total: number }",
|
|
@@ -3538,7 +3554,7 @@
|
|
|
3538
3554
|
"migrate_type",
|
|
3539
3555
|
"validate_graph"
|
|
3540
3556
|
],
|
|
3541
|
-
"source": "src/tools/spec.ts:
|
|
3557
|
+
"source": "src/tools/spec.ts:1727",
|
|
3542
3558
|
"symbol": "listSplitMigrations",
|
|
3543
3559
|
"returns": "JSON: `{ splits: [...], total: number }`",
|
|
3544
3560
|
"return_shape": "{ splits: [...], total: number }",
|
|
@@ -3575,7 +3591,7 @@
|
|
|
3575
3591
|
"list_entity_types",
|
|
3576
3592
|
"get_entity_meta"
|
|
3577
3593
|
],
|
|
3578
|
-
"source": "src/tools/spec.ts:
|
|
3594
|
+
"source": "src/tools/spec.ts:1213",
|
|
3579
3595
|
"symbol": "listTypeLabels",
|
|
3580
3596
|
"returns": "JSON: `{ total, count, next_cursor?, labels: UPGTypeLabel[] }`",
|
|
3581
3597
|
"return_shape": "{ total, count, next_cursor?, labels: UPGTypeLabel[] }",
|
|
@@ -3611,7 +3627,7 @@
|
|
|
3611
3627
|
"validate_graph",
|
|
3612
3628
|
"list_entity_types"
|
|
3613
3629
|
],
|
|
3614
|
-
"source": "src/tools/spec.ts:
|
|
3630
|
+
"source": "src/tools/spec.ts:1659",
|
|
3615
3631
|
"symbol": "listTypeMigrations",
|
|
3616
3632
|
"returns": "JSON: `{ migrations: [{ from, to, since }], total: number }`",
|
|
3617
3633
|
"return_shape": "{ migrations: [{ from, to, since }], total: number }",
|
|
@@ -3797,7 +3813,7 @@
|
|
|
3797
3813
|
"create_edge",
|
|
3798
3814
|
"trace"
|
|
3799
3815
|
],
|
|
3800
|
-
"source": "src/tools/spec.ts:
|
|
3816
|
+
"source": "src/tools/spec.ts:1086",
|
|
3801
3817
|
"symbol": "resolveEdgeForPair",
|
|
3802
3818
|
"returns": "JSON: `{ source_type, target_type, edge_type: string | null,\nanchor_hint?, alternate_anchors?, adjacent_edges? }`",
|
|
3803
3819
|
"return_shape": "{ source_type, target_type, edge_type: string | null, anchor_hint?, alternate_anchors?, adjacent_edges? }",
|
|
@@ -3820,7 +3836,11 @@
|
|
|
3820
3836
|
},
|
|
3821
3837
|
"values": {
|
|
3822
3838
|
"type": "object",
|
|
3823
|
-
"description": "Required. The result as { input: value }, e.g. { \"moscow\": \"must\" } or { \"reach\":
|
|
3839
|
+
"description": "Required. The result as { input: value }, e.g. { \"moscow\": \"must\" } or { \"reach\": 4, \"impact\": 3 }."
|
|
3840
|
+
},
|
|
3841
|
+
"slot_role": {
|
|
3842
|
+
"type": "string",
|
|
3843
|
+
"description": "Optional framework slot role this entity plays (e.g. \"pain_reliever\"). Rides the same edge as the scores; validated against the framework's declared slot roles (warn-only)."
|
|
3824
3844
|
},
|
|
3825
3845
|
"replace": {
|
|
3826
3846
|
"type": "boolean",
|
|
@@ -3841,7 +3861,7 @@
|
|
|
3841
3861
|
"see": [
|
|
3842
3862
|
"apply_framework"
|
|
3843
3863
|
],
|
|
3844
|
-
"source": "src/tools/frameworks.ts:
|
|
3864
|
+
"source": "src/tools/frameworks.ts:63",
|
|
3845
3865
|
"symbol": "scoreEntity",
|
|
3846
3866
|
"returns": "JSON: `{ edge, warnings }`.",
|
|
3847
3867
|
"return_shape": "{ edge, warnings }",
|
|
@@ -4088,7 +4108,7 @@
|
|
|
4088
4108
|
"get_anti_pattern",
|
|
4089
4109
|
"inspect"
|
|
4090
4110
|
],
|
|
4091
|
-
"source": "src/tools/validation.ts:
|
|
4111
|
+
"source": "src/tools/validation.ts:938",
|
|
4092
4112
|
"symbol": "getAntiPatternViolationsFor",
|
|
4093
4113
|
"returns": "JSON: `{ entity_id, type, violations: [...] }`.",
|
|
4094
4114
|
"return_shape": "{ entity_id, type, violations: [...] }",
|
|
@@ -4192,7 +4212,7 @@
|
|
|
4192
4212
|
}
|
|
4193
4213
|
],
|
|
4194
4214
|
"warnings": [
|
|
4195
|
-
"
|
|
4215
|
+
"`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
4216
|
],
|
|
4197
4217
|
"see": [
|
|
4198
4218
|
"migrate_type",
|
|
@@ -4204,13 +4224,14 @@
|
|
|
4204
4224
|
"list_edge_migrations",
|
|
4205
4225
|
"inspect"
|
|
4206
4226
|
],
|
|
4207
|
-
"source": "src/tools/validation.ts:
|
|
4227
|
+
"source": "src/tools/validation.ts:267",
|
|
4208
4228
|
"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 }",
|
|
4229
|
+
"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`.",
|
|
4230
|
+
"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
4231
|
"return_notes": [
|
|
4212
4232
|
"Per-class drift arrays appear only when the requested `scope` includes that class.",
|
|
4213
|
-
"Each array is capped at `limit` (default 100)."
|
|
4233
|
+
"Each array is capped at `limit` (default 100).",
|
|
4234
|
+
"`structurally_valid` is omitted when `skip_drift: true`."
|
|
4214
4235
|
],
|
|
4215
4236
|
"atomicity": "atomic (read-only)"
|
|
4216
4237
|
}
|
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.9",
|
|
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>",
|