@sassoftware/sas-score-mcp-serverjs 1.0.1-8 → 1.1.1

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.
Files changed (121) hide show
  1. package/.skills/.claude-plugin/plugin.json +59 -0
  2. package/.skills/agents/sas-score-mcp-serverjs-agent.md +26 -0
  3. package/.skills/copilot-instructions.md +62 -0
  4. package/.skills/skills/README.md +204 -0
  5. package/.skills/skills/detail-strategy/SKILL.md +316 -0
  6. package/.skills/skills/find-library-server/SKILL.md +62 -0
  7. package/.skills/skills/find-resources/SKILL.md +66 -0
  8. package/.skills/skills/list-library/SKILL.md +30 -0
  9. package/.skills/skills/list-mas-job-jobdef/SKILL.md +31 -0
  10. package/.skills/skills/list-tables/SKILL.md +30 -0
  11. package/.skills/skills/read-strategy/SKILL.md +87 -0
  12. package/.skills/skills/request-routing/SKILL.md +112 -0
  13. package/.skills/skills/score-cas/SKILL.md +95 -0
  14. package/.skills/skills/score-job-jobdef/SKILL.md +58 -0
  15. package/.skills/skills/score-mas-scr/SKILL.md +58 -0
  16. package/.skills/skills/score-program/SKILL.md +59 -0
  17. package/.skills/skills/score-strategy/SKILL.md +39 -0
  18. package/README.md +96 -54
  19. package/cli.js +29 -38
  20. package/openApi.yaml +121 -121
  21. package/package.json +15 -13
  22. package/scripts/docs/SCORE_SKILL_REFERENCE.md +17 -16
  23. package/scripts/docs/TOOL_DESCRIPTION_TEMPLATE.md +3 -3
  24. package/scripts/docs/TOOL_UPDATES_SUMMARY.md +65 -63
  25. package/scripts/docs/oauth-http-transport.md +2 -2
  26. package/scripts/docs/sas-mcp-tools-reference.md +43 -32
  27. package/scripts/plot_msrp_usa.py +49 -0
  28. package/scripts/refreshtoken.js +58 -0
  29. package/scripts/runListScr.mjs +16 -0
  30. package/src/createMcpServer.js +4 -1
  31. package/src/expressMcpServer.js +47 -49
  32. package/src/oauthHandlers/authorize.js +4 -1
  33. package/src/oauthHandlers/baseUrl.js +4 -0
  34. package/src/oauthHandlers/callback.js +4 -0
  35. package/src/oauthHandlers/getMetadata.js +4 -0
  36. package/src/oauthHandlers/index.js +4 -0
  37. package/src/oauthHandlers/token.js +4 -0
  38. package/src/openApi.yaml +121 -121
  39. package/src/processHeaders.js +10 -7
  40. package/src/setupSkills.js +6 -9
  41. package/src/toolHelpers/_casScore.js +32 -0
  42. package/src/toolHelpers/_desc.js +14 -0
  43. package/src/toolHelpers/_findJob.js +12 -0
  44. package/src/toolHelpers/_findJobdef.js +10 -0
  45. package/src/toolHelpers/_findLibrary.js +11 -0
  46. package/src/toolHelpers/_findMas.js +13 -0
  47. package/src/toolHelpers/_findScr.js +36 -0
  48. package/src/toolHelpers/_findTable.js +11 -0
  49. package/src/toolHelpers/_listJobdefs.js +12 -2
  50. package/src/toolHelpers/_listJobs.js +19 -8
  51. package/src/toolHelpers/{_listModels.js → _listMas.js} +4 -4
  52. package/src/toolHelpers/_listScr.js +13 -0
  53. package/src/toolHelpers/{_scrInfo.js → _scrDescribe.js} +4 -4
  54. package/src/toolHelpers/_scrScore.js +2 -2
  55. package/src/toolHelpers/_submitCasl.js +19 -17
  56. package/src/toolHelpers/{_tableInfo.js → _tableDescribe.js} +2 -2
  57. package/src/toolHelpers/getLogonPayload.js +2 -2
  58. package/src/toolSet/casModelScore.js +93 -0
  59. package/src/toolSet/casProgramScore.js +105 -0
  60. package/src/toolSet/devaScore.js +11 -6
  61. package/src/toolSet/findJob.js +74 -59
  62. package/src/toolSet/findJobdef.js +67 -64
  63. package/src/toolSet/findLibrary.js +28 -23
  64. package/src/toolSet/findMas.js +72 -0
  65. package/src/toolSet/findScr.js +69 -0
  66. package/src/toolSet/findTable.js +34 -27
  67. package/src/toolSet/getEnv.js +57 -57
  68. package/src/toolSet/jobDescribe.js +65 -0
  69. package/src/toolSet/jobScore.js +90 -0
  70. package/src/toolSet/jobdefDescribe.js +67 -0
  71. package/src/toolSet/jobdefScore.js +85 -0
  72. package/src/toolSet/listJobdefs.js +17 -8
  73. package/src/toolSet/listJobs.js +15 -8
  74. package/src/toolSet/listLibraries.js +16 -10
  75. package/src/toolSet/listMas.js +71 -0
  76. package/src/toolSet/listScr.js +62 -0
  77. package/src/toolSet/listTables.js +78 -66
  78. package/src/toolSet/{runMacro.js → macroScore.js} +86 -82
  79. package/src/toolSet/makeTools.js +39 -25
  80. package/src/toolSet/masDescribe.js +67 -0
  81. package/src/toolSet/masScore.js +95 -0
  82. package/src/toolSet/{runProgram.js → programScore.js} +96 -93
  83. package/src/toolSet/readTable.js +43 -26
  84. package/src/toolSet/sasQuery.js +24 -18
  85. package/src/toolSet/scrDescribe.js +55 -0
  86. package/src/toolSet/scrScore.js +63 -70
  87. package/src/toolSet/searchAssets.js +1 -1
  88. package/src/toolSet/setContext.js +8 -3
  89. package/src/toolSet/superstat.js +61 -61
  90. package/src/toolSet/tableDescribe.js +65 -0
  91. package/.skills/sas-find-library-smart/SKILL.md +0 -155
  92. package/.skills/sas-find-resource-strategy/SKILL.md +0 -105
  93. package/.skills/sas-list-resource-strategy/SKILL.md +0 -124
  94. package/.skills/sas-list-tables-smart/SKILL.md +0 -128
  95. package/.skills/sas-read-and-score-strategy/SKILL.md +0 -113
  96. package/.skills/sas-read-strategy/SKILL.md +0 -154
  97. package/.skills/sas-request-classifier/SKILL.md +0 -74
  98. package/.skills/sas-score-workflow-strategy/SKILL.md +0 -314
  99. package/.skills_claude/CLAUDE.md +0 -201
  100. package/.skills_claude/agents/sas-score-mcp-serverjs-agent.md +0 -58
  101. package/.skills_claude/enforce-find-resource-strategy.md +0 -35
  102. package/.skills_github/agents/sas-score-mcp-serverjs-agent.md +0 -58
  103. package/.skills_github/copilot-instructions.md +0 -201
  104. package/.skills_github/enforce-find-resource-strategy.md +0 -35
  105. package/scripts/optimize_final.py +0 -140
  106. package/scripts/optimize_tools.py +0 -99
  107. package/scripts/setup-skills.js +0 -34
  108. package/scripts/update_descriptions.py +0 -46
  109. package/src/authpkce.js +0 -219
  110. package/src/handleGetDelete.js +0 -34
  111. package/src/handleRequest.js +0 -112
  112. package/src/hapiMcpServer.js +0 -241
  113. package/src/toolSet/findModel.js +0 -60
  114. package/src/toolSet/listModels.js +0 -56
  115. package/src/toolSet/modelInfo.js +0 -55
  116. package/src/toolSet/modelScore.js +0 -89
  117. package/src/toolSet/runCasProgram.js +0 -98
  118. package/src/toolSet/runJob.js +0 -81
  119. package/src/toolSet/runJobdef.js +0 -82
  120. package/src/toolSet/scrInfo.js +0 -52
  121. package/src/toolSet/tableInfo.js +0 -58
package/openApi.yaml CHANGED
@@ -1,121 +1,121 @@
1
- swagger: "2.0"
2
- info:
3
- title: SAS Viya Sample MCP Server API
4
- version: "1.0.0"
5
- description: API for interacting with the SAS Viya Sample MCP Server.
6
- host: localhost:8080
7
- basePath: /
8
- schemes:
9
- - http
10
- - https
11
- consumes:
12
- - application/json
13
- produces:
14
- - application/json
15
- paths:
16
- /health:
17
- get:
18
- summary: Health check
19
- description: Returns health and version information.
20
- responses:
21
- 200:
22
- description: Health information
23
- schema:
24
- type: object
25
- properties:
26
- name:
27
- type: string
28
- version:
29
- type: string
30
- description:
31
- type: string
32
- endpoints:
33
- type: object
34
- usage:
35
- type: string
36
- /apiMeta:
37
- get:
38
- summary: API metadata
39
- description: Returns the OpenAPI specification for this server.
40
- responses:
41
- 200:
42
- description: OpenAPI document
43
- schema:
44
- type: object
45
- /mcp:
46
- options:
47
- summary: CORS preflight
48
- description: CORS preflight endpoint.
49
- responses:
50
- 204:
51
- description: No Content
52
- post:
53
- summary: MCP request
54
- description: Handles MCP JSON-RPC requests.
55
- parameters:
56
- - name: body
57
- in: body
58
- required: true
59
- schema:
60
- type: object
61
- - name: Authorization
62
- in: header
63
- required: false
64
- type: string
65
- description: Bearer token for authentication
66
- - name: X-VIYA-SERVER
67
- in: header
68
- required: false
69
- type: string
70
- description: Override VIYA server
71
- - name: X-REFRESH-TOKEN
72
- in: header
73
- required: false
74
- type: string
75
- description: Refresh token for authentication
76
- - name: mcp-session-id
77
- in: header
78
- required: false
79
- type: string
80
- description: Session ID
81
- responses:
82
- 200:
83
- description: MCP response
84
- schema:
85
- type: object
86
- 500:
87
- description: Server error
88
- schema:
89
- type: object
90
- get:
91
- summary: Get MCP session
92
- description: Retrieves information for an MCP session.
93
- parameters:
94
- - name: mcp-session-id
95
- in: header
96
- required: true
97
- type: string
98
- description: Session ID
99
- responses:
100
- 200:
101
- description: Session information
102
- schema:
103
- type: object
104
- 400:
105
- description: Invalid or missing session ID
106
- delete:
107
- summary: Delete MCP session
108
- description: Deletes an MCP session.
109
- parameters:
110
- - name: mcp-session-id
111
- in: header
112
- required: true
113
- type: string
114
- description: Session ID
115
- responses:
116
- 200:
117
- description: Session deleted
118
- schema:
119
- type: object
120
- 400:
121
- description: Invalid or missing session ID
1
+ swagger: "2.0"
2
+ info:
3
+ title: SAS Viya Sample MCP Server API
4
+ version: "1.0.0"
5
+ description: API for interacting with the SAS Viya Sample MCP Server.
6
+ host: localhost:8080
7
+ basePath: /
8
+ schemes:
9
+ - http
10
+ - https
11
+ consumes:
12
+ - application/json
13
+ produces:
14
+ - application/json
15
+ paths:
16
+ /health:
17
+ get:
18
+ summary: Health check
19
+ description: Returns health and version information.
20
+ responses:
21
+ 200:
22
+ description: Health information
23
+ schema:
24
+ type: object
25
+ properties:
26
+ name:
27
+ type: string
28
+ version:
29
+ type: string
30
+ description:
31
+ type: string
32
+ endpoints:
33
+ type: object
34
+ usage:
35
+ type: string
36
+ /apiMeta:
37
+ get:
38
+ summary: API metadata
39
+ description: Returns the OpenAPI specification for this server.
40
+ responses:
41
+ 200:
42
+ description: OpenAPI document
43
+ schema:
44
+ type: object
45
+ /mcp:
46
+ options:
47
+ summary: CORS preflight
48
+ description: CORS preflight endpoint.
49
+ responses:
50
+ 204:
51
+ description: No Content
52
+ post:
53
+ summary: MCP request
54
+ description: Handles MCP JSON-RPC requests.
55
+ parameters:
56
+ - name: body
57
+ in: body
58
+ required: true
59
+ schema:
60
+ type: object
61
+ - name: Authorization
62
+ in: header
63
+ required: false
64
+ type: string
65
+ description: Bearer token for authentication
66
+ - name: X-VIYA-SERVER
67
+ in: header
68
+ required: false
69
+ type: string
70
+ description: Override VIYA server
71
+ - name: X-REFRESH-TOKEN
72
+ in: header
73
+ required: false
74
+ type: string
75
+ description: Refresh token for authentication
76
+ - name: mcp-session-id
77
+ in: header
78
+ required: false
79
+ type: string
80
+ description: Session ID
81
+ responses:
82
+ 200:
83
+ description: MCP response
84
+ schema:
85
+ type: object
86
+ 500:
87
+ description: Server error
88
+ schema:
89
+ type: object
90
+ get:
91
+ summary: Get MCP session
92
+ description: Retrieves information for an MCP session.
93
+ parameters:
94
+ - name: mcp-session-id
95
+ in: header
96
+ required: true
97
+ type: string
98
+ description: Session ID
99
+ responses:
100
+ 200:
101
+ description: Session information
102
+ schema:
103
+ type: object
104
+ 400:
105
+ description: Invalid or missing session ID
106
+ delete:
107
+ summary: Delete MCP session
108
+ description: Deletes an MCP session.
109
+ parameters:
110
+ - name: mcp-session-id
111
+ in: header
112
+ required: true
113
+ type: string
114
+ description: Session ID
115
+ responses:
116
+ 200:
117
+ description: Session deleted
118
+ schema:
119
+ type: object
120
+ 400:
121
+ description: Invalid or missing session ID
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sassoftware/sas-score-mcp-serverjs",
3
- "version": "1.0.1-8",
3
+ "version": "1.1.1",
4
4
  "description": "A mcp server for SAS Viya",
5
5
  "author": "Deva Kumar <deva.kumar@sas.com>",
6
6
  "license": "Apache-2.0",
@@ -15,22 +15,27 @@
15
15
  "test": "cd test && node",
16
16
  "debug": "cross-env NODE_TLS_REJECT_UNAUTHORIZED=0 node --inspect-brk cli.js",
17
17
  "getViyatls": "bash ./scripts/getViyaca.sh",
18
- "deploy": "bash ./deploy.sh",
19
- "push2acr": "cd docker && bash ./push2acr.sh",
18
+ "push2acr": "bash ./push2acr.sh",
19
+ "push2ghcr": "bash ./push2ghcr.sh",
20
20
  "bump": "npm version prerelease",
21
- "pub": "npm publish --tag dev --access public",
22
- "setup-skills": "node scripts/setup-skills.js"
21
+ "pub": "npm publish --tag dev --access public"
23
22
  },
24
23
  "repository": "https://github.com/sassoftware/sas-score-mcp-serverjs",
24
+ "bugs": {
25
+ "url": "https://github.com/sassoftware/sas-score-mcp-serverjs/issues"
26
+ },
25
27
  "keywords": [
26
28
  "SAS Viya",
27
29
  "mcp-serverjs",
28
- "Agentic AI",
30
+ "SAS Viya scoring",
29
31
  "Viya actions",
30
32
  "restaf",
31
33
  "restafedit",
32
34
  "restaflib",
33
- "model context protocol"
35
+ "model context protocol",
36
+ "skills",
37
+ "agent",
38
+ "Agentic AI"
34
39
  ],
35
40
  "main": "./cli.js",
36
41
  "bin": {
@@ -42,8 +47,6 @@
42
47
  "openApi.json",
43
48
  "openApi.yaml",
44
49
  "scripts",
45
- ".skills_github",
46
- ".skills_claude",
47
50
  ".skills"
48
51
  ],
49
52
  "dependencies": {
@@ -51,8 +54,7 @@
51
54
  "@sassoftware/restaf": "^5.7.2",
52
55
  "@sassoftware/restafedit": "^3.10.5",
53
56
  "@sassoftware/restaflib": "^5.7.2",
54
- "@sassoftware/viya-serverjs": "^0.6.3-0",
55
- "axios": "^1.13.2",
57
+ "axios": "^1.13.5",
56
58
  "body-parser": "^2.2.1",
57
59
  "cors": "^2.8.5",
58
60
  "cross-env": "^10.1.0",
@@ -64,8 +66,8 @@
64
66
  "node-cache": "^5.1.2",
65
67
  "open": "^11.0.0",
66
68
  "selfsigned": "^5.2.0",
67
- "undici": "^7.16.0",
68
- "uuid": "^13.0.0",
69
+ "undici": "^7.24.0",
70
+ "uuid": "^14.0.0",
69
71
  "zod": "^4.2.1"
70
72
  },
71
73
  "devDependencies": {
@@ -1,4 +1,4 @@
1
- # Score Skill Documentation
1
+ # Score Skill Documentation
2
2
 
3
3
  ## Overview
4
4
  The `score` skill is a generic scoring interface that automatically routes scoring requests to the appropriate tool based on the model type specified in the request.
@@ -10,11 +10,11 @@ score <name>.<type> [scenario =<key=value pairs>]
10
10
  ```
11
11
 
12
12
  ## Supported Types
13
- - **job** Route to `run-job` for job-based scoring
14
- - **jobdef** Route to `run-jobdef` for job definition-based scoring
15
- - **mas** Route to `model-score` (Model Aggregation Service)
16
- - **scr** Route to `scr-score` (Score Code Runtime container)
17
- - **sas** Route to `run-sas-program` (arbitrary SAS/SQL scoring)
13
+ - **job** — Route to `job-score` for job-based scoring
14
+ - **jobdef** — Route to `jobdef-score` for job definition-based scoring
15
+ - **mas** — Route to `mas-score` (Model Aggregation Service)
16
+ - **scr** — Route to `scr-score` (Score Code Runtime container)
17
+ - **sas** — Route to `program-score` (arbitrary SAS/SQL scoring)
18
18
 
19
19
  ## Usage Examples
20
20
 
@@ -23,21 +23,21 @@ score <name>.<type> [scenario =<key=value pairs>]
23
23
  score with model churn.mas where scenario =age=45,income=60000
24
24
  score mymodel.mas using age=45, income=60000
25
25
  ```
26
- Routes to: `model-score` with model name and scenario parameters
26
+ Routes to: `mas-score` with model name and scenario parameters
27
27
 
28
28
  ### Job-Based Scoring
29
29
  ```
30
30
  score with model monthly_scorer.job scenario =month=10,year=2025
31
31
  score mymodel.job with month=10, year=2025
32
32
  ```
33
- Routes to: `run-job` with job name and parameters
33
+ Routes to: `job-score` with job name and parameters
34
34
 
35
35
  ### Job Definition Scoring
36
36
  ```
37
37
  score fraud_detector.jobdef using amount=500,merchant=online
38
38
  score predictions.jobdef where scenario =x=1,y=2
39
39
  ```
40
- Routes to: `run-jobdef` with jobdef name and parameters
40
+ Routes to: `jobdef-score` with jobdef name and parameters
41
41
 
42
42
  ### SCR (Score Code Runtime) Scoring
43
43
  ```
@@ -51,7 +51,7 @@ Routes to: `scr-score` with SCR URL and scenario
51
51
  score predictions.sas where scenario =x=1,y=2
52
52
  score my_scoring_code.sas using month=10,year=2025
53
53
  ```
54
- Routes to: `run-sas-program` with scenario parameters
54
+ Routes to: `program-score` with scenario parameters
55
55
 
56
56
  ## Parameter Details
57
57
 
@@ -89,11 +89,11 @@ age=45,income=60000,credit=700
89
89
  The skill automatically infers the type from the model name:
90
90
 
91
91
  ```
92
- mymodel.mas type = "mas"
93
- scorer.job type = "job"
94
- detector.jobdef type = "jobdef"
95
- risk.scr type = "scr"
96
- predict.sas type = "sas"
92
+ mymodel.mas → type = "mas"
93
+ scorer.job → type = "job"
94
+ detector.jobdef → type = "jobdef"
95
+ risk.scr → type = "scr"
96
+ predict.sas → type = "sas"
97
97
  ```
98
98
 
99
99
  If the type is not specified in the model name or as a parameter, the skill will ask for clarification:
@@ -134,9 +134,10 @@ All responses include metadata indicating which tool was invoked.
134
134
 
135
135
  The skill is defined in `src/toolSet/scoreSkill.js` and:
136
136
  - Parses model name to extract type
137
- - Normalizes type names (e.g., `jobs` `job`)
137
+ - Normalizes type names (e.g., `jobs` → `job`)
138
138
  - Routes to appropriate tool handler
139
139
  - Attaches scoring metadata to response
140
140
  - Handles errors from backend tools
141
141
 
142
142
  The skill is automatically registered in `makeTools.js` and available alongside other MCP tools.
143
+
@@ -147,11 +147,11 @@ Before marking a tool as conforming to the template:
147
147
 
148
148
  ## Tools Updated to Template
149
149
 
150
- - [x] listModels.js - ✅ Already conforms
151
- - [x] findModel.js - 🔧 Needs cleanup (remove redundancy)
150
+ - [x] listMas.js - ✅ Already conforms
151
+ - [x] findMas.js - 🔧 Needs cleanup (remove redundancy)
152
152
  - [ ] deval.js - 🔧 Needs major expansion
153
153
  - [ ] devaScore.js - 🔧 Needs expansion
154
154
  - [ ] setContext.js - 🔧 Needs expansion
155
- - [ ] modelInfo.js - 🔧 Needs expansion
155
+ - [ ] masDescribe.js - 🔧 Needs expansion
156
156
  - [ ] readTable.js - ✅ Mostly conforms (minor tweaks)
157
157
  - [ ] ... (other tools)
@@ -1,4 +1,4 @@
1
- # Tool Description Standardization - Update Summary
1
+ # Tool Description Standardization - Update Summary
2
2
 
3
3
  ## Overview
4
4
  All tool descriptions have been standardized to follow a consistent template format. This ensures:
@@ -14,72 +14,72 @@ See `TOOL_DESCRIPTION_TEMPLATE.md` for the complete template specification and v
14
14
 
15
15
  ## Tools Updated
16
16
 
17
- ### Tools Fully Conforming to Template
17
+ ### ✅ Tools Fully Conforming to Template
18
18
 
19
19
  #### Major Updates (5 tools)
20
20
 
21
- 1. **findModel.js** - Cleaned up and standardized
22
- - ✂️ Removed redundant JSON metadata object
23
- - ✂️ Removed confusing/error lines (41-47) that listed find lib/table/job incorrectly
24
- - Now has all required template sections
25
- - Clear LLM invocation guidance
21
+ 1. **findMas.js** - Cleaned up and standardized
22
+ - ✂️ Removed redundant JSON metadata object
23
+ - ✂️ Removed confusing/error lines (41-47) that listed find lib/table/job incorrectly
24
+ - ✅ Now has all required template sections
25
+ - ✅ Clear LLM invocation guidance
26
26
 
27
27
  2. **deval.js** - Expanded from 2 lines to comprehensive format
28
- - Added "LLM Invocation Guidance" section with 4 use cases
29
- - Added "Do NOT use this tool for" section (4 items)
30
- - Added clear "Purpose" statement
31
- - Added "Parameters" documentation
32
- - Added "Response Contract" describing return format
33
- - Added "Disambiguation & Clarification" section
34
- - Added 3 real-world "Examples" with parameter mappings
35
- - Added "Negative Examples" section
36
- - Added "Related Tools" section
28
+ - âž• Added "LLM Invocation Guidance" section with 4 use cases
29
+ - âž• Added "Do NOT use this tool for" section (4 items)
30
+ - âž• Added clear "Purpose" statement
31
+ - âž• Added "Parameters" documentation
32
+ - âž• Added "Response Contract" describing return format
33
+ - âž• Added "Disambiguation & Clarification" section
34
+ - âž• Added 3 real-world "Examples" with parameter mappings
35
+ - âž• Added "Negative Examples" section
36
+ - âž• Added "Related Tools" section
37
37
 
38
38
  3. **setContext.js** - Expanded with comprehensive guidance
39
- - Added "LLM Invocation Guidance" section with 4 use cases
40
- - Added "Do NOT use" section
41
- - Added detailed "Purpose" explaining session context switching
42
- - Enhanced "Parameters" with real server examples
43
- - Added "Response Contract" with detailed structure
44
- - Added "Disambiguation & Clarification" for edge cases
45
- - Added 4 real-world "Examples" with parameter mappings
46
- - Added "Negative Examples" section
47
- - Added "Related Tools" section
39
+ - âž• Added "LLM Invocation Guidance" section with 4 use cases
40
+ - âž• Added "Do NOT use" section
41
+ - âž• Added detailed "Purpose" explaining session context switching
42
+ - âž• Enhanced "Parameters" with real server examples
43
+ - âž• Added "Response Contract" with detailed structure
44
+ - âž• Added "Disambiguation & Clarification" for edge cases
45
+ - âž• Added 4 real-world "Examples" with parameter mappings
46
+ - âž• Added "Negative Examples" section
47
+ - âž• Added "Related Tools" section
48
48
 
49
49
  4. **devaScore.js** - Reformatted with template structure
50
- - 🔄 Restructured from instruction-heavy to template format
51
- - Added "LLM Invocation Guidance" section
52
- - Added "Do NOT use" section
53
- - Added clear parameter documentation
54
- - Added "Response Contract" section
55
- - Added "Examples" and "Negative Examples" sections
56
- - Added "Notes" section explaining left-to-right fold
57
-
58
- 5. **modelInfo.js** - Expanded with comprehensive structure
59
- - Added "LLM Invocation Guidance" with 4 use cases
60
- - Added "Do NOT use" section
61
- - Enhanced "Purpose" statement
62
- - Added detailed "Response Contract" describing metadata fields
63
- - Added "Disambiguation & Clarification" section
64
- - Added 4 real-world "Examples" with parameter mappings
65
- - Added "Negative Examples" section
66
- - Added "Related Tools" showing workflow chain
50
+ - 🔄 Restructured from instruction-heavy to template format
51
+ - âž• Added "LLM Invocation Guidance" section
52
+ - âž• Added "Do NOT use" section
53
+ - âž• Added clear parameter documentation
54
+ - âž• Added "Response Contract" section
55
+ - âž• Added "Examples" and "Negative Examples" sections
56
+ - âž• Added "Notes" section explaining left-to-right fold
57
+
58
+ 5. **masDescribe.js** - Expanded with comprehensive structure
59
+ - âž• Added "LLM Invocation Guidance" with 4 use cases
60
+ - âž• Added "Do NOT use" section
61
+ - âž• Enhanced "Purpose" statement
62
+ - âž• Added detailed "Response Contract" describing metadata fields
63
+ - âž• Added "Disambiguation & Clarification" section
64
+ - âž• Added 4 real-world "Examples" with parameter mappings
65
+ - âž• Added "Negative Examples" section
66
+ - âž• Added "Related Tools" showing workflow chain
67
67
 
68
68
  #### Moderate Updates (1 tool)
69
69
 
70
70
  6. **readTable.js** - Enhanced to fully conform to template
71
- - 🔄 Restructured sections for template consistency
72
- - Enhanced "LLM Invocation Guidance" with 5 specific use cases
73
- - Improved "Do NOT use" section with explanation
74
- - Clarified "Parameters" format and added constraints
75
- - 🔄 Renamed "Output" to "Response Contract" per template
76
- - Added "Pagination & Filtering" section with examples
77
- - Enhanced "Examples" with 5 detailed parameter mappings
78
- - Added comprehensive "Related Tools" section
71
+ - 🔄 Restructured sections for template consistency
72
+ - âž• Enhanced "LLM Invocation Guidance" with 5 specific use cases
73
+ - âž• Improved "Do NOT use" section with explanation
74
+ - âž• Clarified "Parameters" format and added constraints
75
+ - 🔄 Renamed "Output" to "Response Contract" per template
76
+ - âž• Added "Pagination & Filtering" section with examples
77
+ - âž• Enhanced "Examples" with 5 detailed parameter mappings
78
+ - âž• Added comprehensive "Related Tools" section
79
79
 
80
80
  #### Already Conforming (1 tool)
81
81
 
82
- 7. **listModels.js** - Already fully compliant
82
+ 7. **listMas.js** - ✅ Already fully compliant
83
83
  - Already had comprehensive template format
84
84
  - No changes needed
85
85
 
@@ -110,11 +110,11 @@ Clear list of what NOT to do and which tools to use instead. Prevents misuse.
110
110
  - How to clarify ambiguous requests
111
111
  - Exact clarification questions to ask
112
112
 
113
- ### 7. Examples ( mapped params)
113
+ ### 7. Examples (→ mapped params)
114
114
  - Real-world user phrases
115
115
  - Parameter mappings shown
116
116
  - Includes various parameter combinations
117
- - Format: `"user input" { param: value }`
117
+ - Format: `"user input" → { param: value }`
118
118
 
119
119
  ### 8. Negative Examples (should NOT call toolName)
120
120
  - Common mistakes showing what NOT to do
@@ -160,12 +160,12 @@ Clear list of what NOT to do and which tools to use instead. Prevents misuse.
160
160
 
161
161
  ## Files Modified
162
162
 
163
- 1. `src/toolSet/findModel.js` - Cleaned up redundancy
164
- 2. `src/toolSet/deval.js` - Expanded description (2 47 lines)
165
- 3. `src/toolSet/setContext.js` - Expanded description (9 60 lines)
166
- 4. `src/toolSet/devaScore.js` - Reformatted (12 54 lines)
167
- 5. `src/toolSet/modelInfo.js` - Expanded description (12 69 lines)
168
- 6. `src/toolSet/readTable.js` - Enhanced description (56 80 lines)
163
+ 1. `src/toolSet/findMas.js` - Cleaned up redundancy
164
+ 2. `src/toolSet/deval.js` - Expanded description (2 → 47 lines)
165
+ 3. `src/toolSet/setContext.js` - Expanded description (9 → 60 lines)
166
+ 4. `src/toolSet/devaScore.js` - Reformatted (12 → 54 lines)
167
+ 5. `src/toolSet/masDescribe.js` - Expanded description (12 → 69 lines)
168
+ 6. `src/toolSet/readTable.js` - Enhanced description (56 → 80 lines)
169
169
 
170
170
  ## Files Created
171
171
 
@@ -183,11 +183,11 @@ Consider updating remaining tools in the toolSet directory to match this templat
183
183
  - `findTable.js`
184
184
  - `job.js`
185
185
  - `jobdef.js`
186
- - `tableInfo.js`
186
+ - `tableDescribe.js`
187
187
  - `program.js`
188
188
  - `sasQuery.js`
189
- - `modelScore.js`
190
- - `scrInfo.js`
189
+ - `masScore.js`
190
+ - `scrDescribe.js`
191
191
  - `scrScore.js`
192
192
  - And any others...
193
193
 
@@ -201,8 +201,10 @@ To verify a tool conforms to the template, check:
201
201
  - [ ] Has "Parameters" section with type, default, and description for each param
202
202
  - [ ] Has "Response Contract" describing the return format
203
203
  - [ ] Has "Disambiguation & Clarification" section for edge cases
204
- - [ ] Has "Examples ( mapped params)" section with 3+ real-world examples
204
+ - [ ] Has "Examples (→ mapped params)" section with 3+ real-world examples
205
205
  - [ ] Has "Negative Examples (should NOT call...)" section with what NOT to do
206
206
  - [ ] Has "Related Tools" section showing workflow context
207
207
  - [ ] Uses proper markdown formatting (## headers, - bullets, `code`)
208
208
  - [ ] Consistent formatting and tone throughout
209
+
210
+
@@ -5,7 +5,7 @@
5
5
 
6
6
  TBD
7
7
 
8
- ## VSCODE Githu Copilot
8
+ ## VSCODE Github Copilot
9
9
 
10
10
  ### Scenario:
11
11
 
@@ -35,7 +35,7 @@ It appears that the / at the end of the redirect URI is important]
35
35
  }
36
36
  ```
37
37
 
38
- ### pkce clientid when mcp server does teh oauth flow
38
+ ### pkce clientid when mcp server does the oauth flow
39
39
 
40
40
  ```js
41
41