@sassoftware/sas-score-mcp-serverjs 1.0.1-18 → 1.0.1-19

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.
@@ -55,17 +55,16 @@ score results of query... → Query results
55
55
  - SCR: `sas-score-scr-score`
56
56
 
57
57
  **Flow**:
58
- 1. Find model/job (FIND-RESOURCE)
58
+ 1. Find model/job (find-resources)
59
59
  2. Score with inline data
60
60
  3. Return prediction + input data merged
61
61
 
62
62
  **Parameters** (MAS):
63
+
63
64
  ```
64
65
  sas-score-mas-score({
65
66
  model: "<model name>",
66
- scenario: { a: 1, b: 2 },
67
- uflag: false # prefix with underscore if needed
68
- })
67
+ scenario: { a: 1, b: 2 }
69
68
  ```
70
69
 
71
70
  **Parameters** (Job/JobDef):
@@ -91,9 +90,9 @@ sas-score-scr-score({
91
90
  **Trigger phrases**: "score records from", "run model on table", "predict for customers in", "score rows from"
92
91
 
93
92
  **Flow**:
94
- 1. Find model (FIND-RESOURCE)
95
- 2. Find table (FIND-RESOURCE) → get server
96
- 3. Read rows from table (READ-STRATEGY)
93
+ 1. Find model (find-resources)
94
+ 2. Find table (find-resources) → get server
95
+ 3. Read rows from table (read-strategy)
97
96
  4. Score each row (or batch score)
98
97
  5. Merge predictions with original rows
99
98
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sassoftware/sas-score-mcp-serverjs",
3
- "version": "1.0.1-18",
3
+ "version": "1.0.1-19",
4
4
  "description": "A mcp server for SAS Viya",
5
5
  "author": "Deva Kumar <deva.kumar@sas.com>",
6
6
  "license": "Apache-2.0",
@@ -42,7 +42,7 @@
42
42
  "openApi.json",
43
43
  "openApi.yaml",
44
44
  "scripts",
45
- ".skills"
45
+ ".skills"
46
46
  ],
47
47
  "dependencies": {
48
48
  "@modelcontextprotocol/sdk": "^1.29.0",
@@ -18,15 +18,15 @@ 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 (optional, defaults to false) — prefix model fields with underscore when true
21
+
22
22
 
23
23
  ROUTING RULES
24
- - "score with model X using a=1, b=2" → { model: "X", scenario: {a:1, b:2}, uflag: false }
25
- - "predict using model Y with age=45, income=60000" → { model: "Y", scenario: {age:45, income:60000}, uflag: false }
24
+ - "score with model X using a=1, b=2" → { model: "X", scenario: {a:1, b:2} }
25
+ - "predict using model Y with age=45, income=60000" → { model: "Y", scenario: {age:45, income:60000} }
26
26
 
27
27
  EXAMPLES
28
- - "score with model churn using age=45, income=60000" → { model: "churn", scenario: {age:45, income:60000}, uflag: false }
29
- - "predict creditScore for credit=700, debt=20000" → { model: "creditScore", scenario: {credit:700, debt:20000}, uflag: false }
28
+ - "score with model churn using age=45, income=60000" → { model: "churn", scenario: {age:45, income:60000} }
29
+ - "predict creditScore for credit=700, debt=20000" → { model: "creditScore", scenario: {credit:700, debt:20000} }
30
30
 
31
31
  NEGATIVE EXAMPLES (do not route here)
32
32
  - "find model X" (use find-model)
@@ -44,8 +44,7 @@ Returns predictions, probabilities, scores merged with input data. Returns error
44
44
  description: description,
45
45
  inputSchema: z.object({
46
46
  model: z.string(),
47
- scenario: z.union([z.record(z.any()), z.string()]).optional(),
48
- uflag: z.boolean().nullable().optional()
47
+ scenario: z.union([z.record(z.any()), z.string()]).optional()
49
48
  }),
50
49
 
51
50
  handler: async (iparams) => {
@@ -59,7 +58,7 @@ Returns predictions, probabilities, scores merged with input data. Returns error
59
58
  if (params.model && params.model.includes('.')) {
60
59
  params.model = params.model.substring(0, params.model.lastIndexOf('.'));
61
60
  }
62
- if (params.uflag == null) { params.uflag = false; }
61
+
63
62
  log('modelScore params', params);
64
63
  // Check if the params.scenario is a string and parse it
65
64
  let r = await _masScoring(params)