@sassoftware/sas-score-mcp-serverjs 1.0.1-3 → 1.0.1-31

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 (96) hide show
  1. package/.skills/agents/sas-score-mcp-serverjs-agent.md +190 -0
  2. package/.skills/copilot-instructions.md +241 -0
  3. package/.skills/skills/README.md +125 -0
  4. package/.skills/skills/detail-strategy/SKILL.md +272 -0
  5. package/.skills/skills/find-resources/SKILL.md +155 -0
  6. package/.skills/skills/list-resource/SKILL.md +258 -0
  7. package/.skills/skills/read-strategy/SKILL.md +137 -0
  8. package/.skills/skills/request-routing/SKILL.md +107 -0
  9. package/.skills/skills/score-strategy/SKILL.md +231 -0
  10. package/README.md +96 -54
  11. package/cli.js +37 -27
  12. package/openApi.yaml +121 -121
  13. package/package.json +14 -14
  14. package/scripts/docs/oauth-http-transport.md +2 -2
  15. package/scripts/refreshtoken.js +58 -0
  16. package/src/createMcpServer.js +0 -1
  17. package/src/expressMcpServer.js +47 -49
  18. package/src/oauthHandlers/authorize.js +4 -1
  19. package/src/oauthHandlers/baseUrl.js +4 -0
  20. package/src/oauthHandlers/callback.js +5 -1
  21. package/src/oauthHandlers/getMetadata.js +4 -0
  22. package/src/oauthHandlers/index.js +4 -0
  23. package/src/oauthHandlers/token.js +4 -0
  24. package/src/openApi.yaml +121 -121
  25. package/src/processHeaders.js +10 -7
  26. package/src/setupSkills.js +12 -7
  27. package/src/toolHelpers/_findJob.js +12 -0
  28. package/src/toolHelpers/_findJobdef.js +10 -0
  29. package/src/toolHelpers/_findLibrary.js +10 -0
  30. package/src/toolHelpers/_findModel.js +12 -0
  31. package/src/toolHelpers/_findTable.js +10 -0
  32. package/src/toolHelpers/_listJobs.js +2 -1
  33. package/src/toolHelpers/_listLibrary.js +1 -1
  34. package/src/toolHelpers/_listTables.js +1 -1
  35. package/src/toolHelpers/getLogonPayload.js +2 -2
  36. package/src/toolSet/devaScore.js +61 -61
  37. package/src/toolSet/findJob.js +2 -1
  38. package/src/toolSet/findJobdef.js +7 -7
  39. package/src/toolSet/findLibrary.js +68 -68
  40. package/src/toolSet/findModel.js +2 -2
  41. package/src/toolSet/findTable.js +2 -2
  42. package/src/toolSet/jobInfo.js +59 -0
  43. package/src/toolSet/jobdefInfo.js +59 -0
  44. package/src/toolSet/listJobdefs.js +61 -61
  45. package/src/toolSet/listJobs.js +61 -61
  46. package/src/toolSet/listLibraries.js +78 -78
  47. package/src/toolSet/listModels.js +56 -56
  48. package/src/toolSet/listTables.js +66 -66
  49. package/src/toolSet/makeTools.js +3 -0
  50. package/src/toolSet/modelInfo.js +1 -1
  51. package/src/toolSet/modelScore.js +23 -25
  52. package/src/toolSet/readTable.js +63 -63
  53. package/src/toolSet/runCasProgram.js +21 -10
  54. package/src/toolSet/runJob.js +15 -19
  55. package/src/toolSet/runJobdef.js +15 -19
  56. package/src/toolSet/runMacro.js +82 -82
  57. package/src/toolSet/sasQuery.js +77 -77
  58. package/src/toolSet/scrScore.js +60 -69
  59. package/src/toolSet/setContext.js +65 -65
  60. package/src/toolSet/superstat.js +61 -61
  61. package/src/toolSet/tableInfo.js +58 -58
  62. package/.skills_claude/README.md +0 -303
  63. package/.skills_claude/TESTING_GUIDE.md +0 -252
  64. package/.skills_claude/agents/sas-viya-scoring-expert.md +0 -58
  65. package/.skills_claude/claude-desktop-config.json +0 -16
  66. package/.skills_claude/claude-desktop-system-prompt.md +0 -127
  67. package/.skills_claude/copilot-instructions.md +0 -155
  68. package/.skills_claude/instructions.md +0 -184
  69. package/.skills_claude/skills/sas-find-library-smart/SKILL.md +0 -157
  70. package/.skills_claude/skills/sas-find-resource-strategy/SKILL.md +0 -105
  71. package/.skills_claude/skills/sas-list-resource-strategy/SKILL.md +0 -124
  72. package/.skills_claude/skills/sas-list-tables-smart/SKILL.md +0 -126
  73. package/.skills_claude/skills/sas-read-and-score/SKILL.md +0 -112
  74. package/.skills_claude/skills/sas-read-strategy/SKILL.md +0 -154
  75. package/.skills_claude/skills/sas-request-classifier/SKILL.md +0 -69
  76. package/.skills_claude/skills/sas-score-workflow/SKILL.md +0 -200
  77. package/.skills_claude/skills-index.md +0 -345
  78. package/.skills_github/agents/sas-viya-scoring-expert.md +0 -58
  79. package/.skills_github/copilot-instructions.md +0 -177
  80. package/.skills_github/skills/sas-find-library-smart/SKILL.md +0 -155
  81. package/.skills_github/skills/sas-find-resource-strategy/SKILL.md +0 -105
  82. package/.skills_github/skills/sas-list-resource-strategy/SKILL.md +0 -124
  83. package/.skills_github/skills/sas-list-tables-smart/SKILL.md +0 -128
  84. package/.skills_github/skills/sas-read-and-score/SKILL.md +0 -113
  85. package/.skills_github/skills/sas-read-strategy/SKILL.md +0 -154
  86. package/.skills_github/skills/sas-request-classifier/SKILL.md +0 -74
  87. package/.skills_github/skills/sas-score-workflow/SKILL.md +0 -314
  88. package/scripts/optimize_final.py +0 -140
  89. package/scripts/optimize_tools.py +0 -99
  90. package/scripts/setup-skills.js +0 -34
  91. package/scripts/update_descriptions.py +0 -46
  92. package/src/authpkce.js +0 -219
  93. package/src/handleGetDelete.js +0 -34
  94. package/src/handleRequest.js +0 -112
  95. package/src/hapiMcpServer.js +0 -241
  96. package/src/toolSet/.claude/settings.local.json +0 -13
@@ -1,241 +0,0 @@
1
- /*
2
- * Copyright © 2025, SAS Institute Inc., Cary, NC, USA. All Rights Reserved.
3
- * SPDX-License-Identifier: Apache-2.0
4
- */
5
- import appServer from "@sassoftware/viya-serverjs";
6
- import handleRequest from "./handleRequest.js";
7
- import handleGetDelete from "./handleGetDelete.js";
8
- import urlOpen from "./urlOpen.js";
9
- import fs from "fs";
10
-
11
- async function hapiMcpServer(mcpServer, cache, baseAppEnvContext) {
12
-
13
- console.error('Starting Hapi MCP server...');
14
- console.error("[Note]: Hapi MCP server started...", baseAppEnvContext.AUTHFLOW);
15
- process.env.REDIRECT = `/status`;
16
- process.env.APPHOST = '0.0.0.0';
17
- let r = await appServer.asyncCore(mcpHandlers, true, 'app', null);
18
- console.error('Hapi server running result:', r);
19
- if (baseAppEnvContext.AUTHFLOW === 'code' && baseAppEnvContext.AUTOLOGON === 'TRUE') {
20
- await urlOpen(r);
21
- }
22
- return r;
23
-
24
- // add MCP handlers to the app server
25
-
26
- function mcpHandlers() {
27
- function getHtml() {
28
- return `
29
- <!DOCTYPE html>
30
- <html lang="en">
31
- <head>
32
- <meta charset="UTF-8">
33
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
34
- <title>sas-score-mcp-server</title>
35
- <style>
36
- * {
37
- margin: 0;
38
- padding: 0;
39
- box-sizing: border-box;
40
- }
41
-
42
- body {
43
- font-family: Arial, sans-serif;
44
- height: 100vh;
45
- overflow: hidden;
46
- }
47
-
48
- dialog {
49
- position: fixed;
50
- left: 50%;
51
- right: auto;
52
- top: 0;
53
- transform: translateX(-50%);
54
- width: fit-content;
55
- height: fit-content;
56
- border: none;
57
- border-radius: 4px;
58
- padding: 16px;
59
- box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
60
- }
61
-
62
- dialog::backdrop {
63
- background-color: rgba(0, 0, 0, 0.1);
64
- }
65
-
66
- dialog h2 {
67
- font-size: 18px;
68
- margin-bottom: 12px;
69
- color: #000;
70
- }
71
-
72
- dialog p {
73
- font-family: 'Courier New', monospace;
74
- font-size: 12px;
75
- width: fit-content;
76
- line-height: 1.6;
77
- color: #333;
78
- word-wrap: break-word;
79
- white-space: pre-wrap;
80
- }
81
-
82
- /* Window styling to show it's 10px larger than dialog */
83
- body::before {
84
- display: none;
85
- }
86
- </style>
87
- </head>
88
- <body>
89
- <dialog open>
90
- <h2>sas-score-mcp-server</h2>
91
- <p>The mcp server is now ready for use. </p>
92
- <p>You can close this window</p>
93
- <p>For information on the tools see this documentation link:</p>
94
- <a href="https://github.com/sassoftware/sas-score-mcp-serverjs/wiki " target="_blank">Summary of tools </a>
95
- </p>
96
- </dialog>
97
- </body>
98
- </html>
99
- `;
100
-
101
- }
102
- let routes = [
103
- {
104
- method: ["GET"],
105
- path: "/health",
106
- options: {
107
- handler: async (req, h) => {
108
- let health = {
109
- name: "@sassoftware/mcp-server",
110
- version: baseAppEnvContext.version,
111
- description: "SAS Viya Sample MCP Server",
112
- endpoints: {
113
- mcp: "/mcp",
114
- health: "/health",
115
- apiMeta: "/apiMeta"
116
- },
117
- usage:
118
- "Use with MCP Inspector or compatible MCP clients like vscode or your own MCP client",
119
- };
120
- console.error("Health check requested, returning:", health);
121
- return h.response(health).code(200).type('application/json');
122
- },
123
- auth: false,
124
- description: "Help",
125
- notes: "Help",
126
- tags: ["mcp"],
127
- }
128
- },
129
- {
130
- method: ["GET"],
131
- path: "/ready",
132
- options: {
133
- handler: async (req, h) => {
134
- let status = {status: 1};
135
- console.error("Ready check requested, returning:", status);
136
- return h.response(status).code(200).type('application/json');
137
- },
138
- auth: false,
139
- description: "probe readiness of the server",
140
- notes: "Help",
141
- tags: ["mcp"],
142
- }
143
- },
144
- {
145
- method: ["GET"],
146
- path: "/StartUp",
147
- options: {
148
- handler: async (req, h) => {
149
- let status = { status: 1 };
150
- console.error("Startup check requested, returning:", status);
151
- return h.response(status).code(200).type('application/json');
152
- },
153
- auth: false,
154
- description: "probe startup of the server",
155
- notes: "Help",
156
- tags: ["mcp"],
157
- }
158
- },
159
- {
160
- method: ["GET"],
161
- path: "/apiMeta",
162
- options: {
163
- handler: async (req, h) => {
164
- let spec = openAPIJson();
165
- return h.response(spec).code(200).type('application/json');
166
- },
167
- auth: false,
168
- description: "API Metadata"
169
- }
170
- },
171
- {
172
- method: ["GET"],
173
- path: "/openapi.json",
174
- options: {
175
- handler: async (req, h) => {
176
- let spec = openAPIJson();
177
- return h.response(spec).code(200).type('application/json');
178
- },
179
- auth: false,
180
- description: "API Metadata"
181
- }
182
- },
183
- {
184
- method: ["GET"],
185
- path: `/${baseAppEnvContext.contexts.APPNAME}/status`,
186
- options: {
187
- handler: async (req, h) => {
188
- let ht = getHtml();
189
- return h.response(ht).code(200).type('text/html');
190
- // return h.abandon;
191
- },
192
- auth: false,
193
- description: "Help",
194
- notes: "Help",
195
- tags: ["mcp"],
196
- }
197
- },
198
- {
199
- method: ["POST"],
200
- path: `/mcp`,
201
- options: {
202
- handler: async (req, h) => {
203
- let precontext = req.pre.context;
204
- let oauthInfo = (precontext != null) ? precontext.credentials : null;
205
- await handleRequest(mcpServer, cache, req, h, oauthInfo);
206
- return h.abandon;
207
- },
208
-
209
- auth: {
210
- strategy: "sas",
211
- mode: 'required'
212
- },
213
- description: "The main route for MCP requests",
214
- notes: "Requires a valid session",
215
- tags: ["mcp"],
216
- },
217
- },
218
- {
219
- method: ["GET", "DELETE"],
220
- path: `/mcp`,
221
-
222
- options: {
223
- handler: async (req, h) => {
224
- await handleGetDelete(mcpServer, cache, req, h);
225
- return h.abandon;
226
- },
227
- auth: {
228
- strategy: "session",
229
- mode: 'try'
230
- },
231
- description: "Handle GET and DELETE requests",
232
- notes: "Will fail if no valid session",
233
- tags: ["mcp"],
234
- },
235
- }
236
-
237
- ];
238
- return routes;
239
- }
240
- }
241
- export default hapiMcpServer;
@@ -1,13 +0,0 @@
1
- {
2
- "permissions": {
3
- "allow": [
4
- "mcp__sasmcp__sas-score-deva-score",
5
- "mcp__sasmcp__sas-score-find-model",
6
- "mcp__sasmcp__sas-score-model-info",
7
- "Bash(cp \"C:/dev/github/7-skill-integration/.claude/skills/sas-read-and-score/SKILL.md\" \"C:/dev/github/7-skill-integration/skills/sas-read-and-score/SKILL.md\")",
8
- "Bash(cp \"C:/dev/github/7-skill-integration/.claude/skills/sas-read-strategy/SKILL.md\" \"C:/dev/github/7-skill-integration/skills/sas-read-strategy/SKILL.md\")",
9
- "Bash(cp \"C:/dev/github/7-skill-integration/.claude/skills/sas-score-workflow/SKILL.md\" \"C:/dev/github/7-skill-integration/skills/sas-score-workflow/SKILL.md\")",
10
- "WebSearch"
11
- ]
12
- }
13
- }