@sassoftware/sas-score-mcp-serverjs 1.0.1-15 → 1.0.1-17

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.
@@ -50,8 +50,6 @@ Generic model aliases:
50
50
  - `model jobdef` or `jobdef model` -> `jobdef`
51
51
 
52
52
  ## Mandatory rule
53
-
54
- - Use the sas-find-resource strategy to check for the existence of a resource before attempting to read or use it. This ensures that follow-up actions are based on accurate information about resource availability.
55
53
  - Do not use list tools to find a resource.
56
54
 
57
55
  ## Tool mapping
@@ -64,34 +62,47 @@ Generic model aliases:
64
62
 
65
63
  ## Strategy by resource type
66
64
 
67
- ### Find library
65
+ ### Strategy for library lookup
66
+ #### Mandatory inputs:
67
+ - Never pass a empty server name to sas-score-find-table. It must be either "cas" or "sas"
68
68
 
69
- If server is provided:
70
- - CAS: `sas-score-find-library({ name: "<lib>", server: "cas" })`
71
- - SAS: uppercase first, then `sas-score-find-library({ name: "<LIB>", server: "sas" })`
69
+ #### Follow this sequence to find the library:
70
+ - Check if the library is one of the default libraries in CAS or SAS Server. If found, report that as found with the associated server.
72
71
 
73
- If server is not provided:
74
- 1. If library location is already known from earlier conversation or if the library is one of the default libraries, reuse that known server and do not re-check.
75
- 2. Check CAS first - `sas-score-find-library({ name: "<lib>", server: "cas" })`
76
- 3. If not found, check SAS with uppercase library name - `sas-score-find-library({ name: "<LIB>", server: "sas" })`
77
- 4. Report where found, or report not found in either.
72
+ - If server is provided:
73
+ 1. CAS: `sas-score-find-library({ name: "<lib>", server: "cas" })`
74
+ 2. SAS: uppercase lib, then `sas-score-find-library({ name: "<LIB>", server: "sas" })`
75
+
76
+ If server is not provided:
77
+ 1. Check CAS first - `sas-score-find-library({ name: "<lib>", server: "cas" })`
78
+ 2. If not found, uppercase lib and then check SAS server - `sas-score-find-library({ name: "<LIB>", server: "sas" })`
79
+ 3. Report where found, or report not found in either.
80
+
81
+ ### Strategy to find a table
78
82
 
79
- ### Find table
83
+ #### Mandatory inputs:
84
+ - Never pass a empty server name to sas-score-find-table. It must be either "cas" or "sas"
80
85
 
81
86
  Required inputs:
82
87
  - library name
83
88
  - table name
84
89
 
85
90
  If server is provided:
86
- - CAS: `sas-score-find-table({ lib: "<lib>", name: "<table>", server: "cas" })`
87
- - SAS: uppercase library first, then `sas-score-find-table({ lib: "<LIB>", name: "<table>", server: "sas" })`
91
+ - CAS: `sas-score-find-table({ lib: "<library>", name: "<table>", server: "cas" })`
92
+ - SAS:
93
+ - uppercase library
94
+ - use `sas-score-find-table({ lib: "<LIBRARY>", name: "<table>", server: "sas" })`
88
95
 
89
96
  If server is not provided:
90
97
  1. If table location is already known from earlier conversation context, reuse that known server and do not re-check.
91
- 2. If `lib.table` uses a known default CAS library, check CAS first.
92
- 3. If `lib.table` uses a known default SAS library, check SAS first (uppercase library).
93
- 4. If library is unknown (not in known defaults), check CAS first, then SAS (uppercase library).
94
- 5. If found in both, report both and ask user which server to use for follow-up reads.
98
+ 2. If the library is one of known defaults, use the associated server (CAS or SAS). Make sure to uppercase the library name for SAS server lookup.
99
+
100
+ 3. If library is not one of the known defaults, find the table using the following sequence
101
+ 1. check in CAS server - `sas-score-find-table({ lib: "<library>", name: "<table>", server: "cas" })`
102
+ 2. if not found,
103
+ - uppercase library
104
+ - check in SAS server - `sas-score-find-table({ lib: "<LIBRARY>", name: "<table>", server: "sas" })`
105
+ 3. If not found, report that the table was not found in either server.
95
106
 
96
107
  ### Find models by type
97
108
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sassoftware/sas-score-mcp-serverjs",
3
- "version": "1.0.1-15",
3
+ "version": "1.0.1-17",
4
4
  "description": "A mcp server for SAS Viya",
5
5
  "author": "Deva Kumar <deva.kumar@sas.com>",
6
6
  "license": "Apache-2.0",
@@ -18,7 +18,7 @@ DO NOT USE for: find model, model metadata, list models, run programs/jobs, quer
18
18
  PARAMETERS
19
19
  - model: string — model name (required, exact match)
20
20
  - scenario: object — input data as JSON (optional, defaults to {}). Example: {age:45, income:60000}
21
- - uflag: boolean (default: false) — prefix model fields with underscore when true
21
+ - uflag: boolean (optional, defaults to false) — prefix model fields with underscore when true
22
22
 
23
23
  ROUTING RULES
24
24
  - "score with model X using a=1, b=2" → { model: "X", scenario: {a:1, b:2}, uflag: false }
@@ -45,7 +45,7 @@ Returns predictions, probabilities, scores merged with input data. Returns error
45
45
  inputSchema: z.object({
46
46
  model: z.string(),
47
47
  scenario: z.union([z.record(z.any()), z.string()]).optional(),
48
- uflag: z.boolean().optional()
48
+ uflag: z.boolean()
49
49
  }),
50
50
 
51
51
  handler: async (iparams) => {