@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
|
-
###
|
|
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
|
-
|
|
70
|
-
-
|
|
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
|
|
74
|
-
1.
|
|
75
|
-
2.
|
|
76
|
-
|
|
77
|
-
|
|
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
|
-
|
|
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: "<
|
|
87
|
-
- 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
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
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
|
@@ -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 (
|
|
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()
|
|
48
|
+
uflag: z.boolean()
|
|
49
49
|
}),
|
|
50
50
|
|
|
51
51
|
handler: async (iparams) => {
|