scorecard-ai-mcp 1.0.0-alpha.4
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.
- package/LICENSE +201 -0
- package/README.md +228 -0
- package/compat.d.mts +53 -0
- package/compat.d.mts.map +1 -0
- package/compat.d.ts +53 -0
- package/compat.d.ts.map +1 -0
- package/compat.js +351 -0
- package/compat.js.map +1 -0
- package/compat.mjs +338 -0
- package/compat.mjs.map +1 -0
- package/compat.test.d.mts +2 -0
- package/compat.test.d.mts.map +1 -0
- package/compat.test.d.ts +2 -0
- package/compat.test.d.ts.map +1 -0
- package/compat.test.js +950 -0
- package/compat.test.js.map +1 -0
- package/compat.test.mjs +948 -0
- package/compat.test.mjs.map +1 -0
- package/index.d.mts +2 -0
- package/index.d.mts.map +1 -0
- package/index.d.ts +2 -0
- package/index.d.ts.map +1 -0
- package/index.js +89 -0
- package/index.js.map +1 -0
- package/index.mjs +86 -0
- package/index.mjs.map +1 -0
- package/options.d.mts +9 -0
- package/options.d.mts.map +1 -0
- package/options.d.ts +9 -0
- package/options.d.ts.map +1 -0
- package/options.js +321 -0
- package/options.js.map +1 -0
- package/options.mjs +314 -0
- package/options.mjs.map +1 -0
- package/options.test.d.mts +2 -0
- package/options.test.d.mts.map +1 -0
- package/options.test.d.ts +2 -0
- package/options.test.d.ts.map +1 -0
- package/options.test.js +154 -0
- package/options.test.js.map +1 -0
- package/options.test.mjs +152 -0
- package/options.test.mjs.map +1 -0
- package/package.json +129 -0
- package/server.d.mts +33 -0
- package/server.d.mts.map +1 -0
- package/server.d.ts +33 -0
- package/server.d.ts.map +1 -0
- package/server.js +85 -0
- package/server.js.map +1 -0
- package/server.mjs +74 -0
- package/server.mjs.map +1 -0
- package/src/compat.test.ts +1068 -0
- package/src/compat.ts +437 -0
- package/src/index.ts +106 -0
- package/src/options.test.ts +193 -0
- package/src/options.ts +339 -0
- package/src/server.ts +98 -0
- package/src/tools/index.ts +129 -0
- package/src/tools/projects/list-projects.ts +39 -0
- package/src/tools/records/create-records.ts +47 -0
- package/src/tools/runs/create-runs.ts +46 -0
- package/src/tools/runs/update-runs.ts +44 -0
- package/src/tools/system-configs/create-system-configs.ts +59 -0
- package/src/tools/system-configs/get-system-configs.ts +34 -0
- package/src/tools/system-configs/list-system-configs.ts +42 -0
- package/src/tools/systems/create-systems.ts +52 -0
- package/src/tools/systems/delete-systems.ts +31 -0
- package/src/tools/systems/get-systems.ts +31 -0
- package/src/tools/systems/list-systems.ts +41 -0
- package/src/tools/systems/update-systems.ts +52 -0
- package/src/tools/testcases/create-testcases.ts +47 -0
- package/src/tools/testcases/delete-testcases.ts +35 -0
- package/src/tools/testcases/get-testcases.ts +31 -0
- package/src/tools/testcases/list-testcases.ts +41 -0
- package/src/tools/testcases/update-testcases.ts +35 -0
- package/src/tools/testsets/create-testsets.ts +73 -0
- package/src/tools/testsets/delete-testsets.ts +31 -0
- package/src/tools/testsets/get-testsets.ts +31 -0
- package/src/tools/testsets/list-testsets.ts +41 -0
- package/src/tools/testsets/update-testsets.ts +73 -0
- package/src/tools.ts +1 -0
- package/src/tsconfig.json +11 -0
- package/tools/index.d.mts +21 -0
- package/tools/index.d.mts.map +1 -0
- package/tools/index.d.ts +21 -0
- package/tools/index.d.ts.map +1 -0
- package/tools/index.js +99 -0
- package/tools/index.js.map +1 -0
- package/tools/index.mjs +92 -0
- package/tools/index.mjs.map +1 -0
- package/tools/projects/list-projects.d.mts +24 -0
- package/tools/projects/list-projects.d.mts.map +1 -0
- package/tools/projects/list-projects.d.ts +24 -0
- package/tools/projects/list-projects.d.ts.map +1 -0
- package/tools/projects/list-projects.js +33 -0
- package/tools/projects/list-projects.js.map +1 -0
- package/tools/projects/list-projects.mjs +29 -0
- package/tools/projects/list-projects.mjs.map +1 -0
- package/tools/records/create-records.d.mts +24 -0
- package/tools/records/create-records.d.mts.map +1 -0
- package/tools/records/create-records.d.ts +24 -0
- package/tools/records/create-records.d.ts.map +1 -0
- package/tools/records/create-records.js +44 -0
- package/tools/records/create-records.js.map +1 -0
- package/tools/records/create-records.mjs +40 -0
- package/tools/records/create-records.mjs.map +1 -0
- package/tools/runs/create-runs.d.mts +24 -0
- package/tools/runs/create-runs.d.mts.map +1 -0
- package/tools/runs/create-runs.d.ts +24 -0
- package/tools/runs/create-runs.d.ts.map +1 -0
- package/tools/runs/create-runs.js +43 -0
- package/tools/runs/create-runs.js.map +1 -0
- package/tools/runs/create-runs.mjs +39 -0
- package/tools/runs/create-runs.mjs.map +1 -0
- package/tools/runs/update-runs.d.mts +24 -0
- package/tools/runs/update-runs.d.mts.map +1 -0
- package/tools/runs/update-runs.d.ts +24 -0
- package/tools/runs/update-runs.d.ts.map +1 -0
- package/tools/runs/update-runs.js +41 -0
- package/tools/runs/update-runs.js.map +1 -0
- package/tools/runs/update-runs.mjs +37 -0
- package/tools/runs/update-runs.mjs.map +1 -0
- package/tools/system-configs/create-system-configs.d.mts +24 -0
- package/tools/system-configs/create-system-configs.d.mts.map +1 -0
- package/tools/system-configs/create-system-configs.d.ts +24 -0
- package/tools/system-configs/create-system-configs.d.ts.map +1 -0
- package/tools/system-configs/create-system-configs.js +54 -0
- package/tools/system-configs/create-system-configs.js.map +1 -0
- package/tools/system-configs/create-system-configs.mjs +50 -0
- package/tools/system-configs/create-system-configs.mjs.map +1 -0
- package/tools/system-configs/get-system-configs.d.mts +24 -0
- package/tools/system-configs/get-system-configs.d.mts.map +1 -0
- package/tools/system-configs/get-system-configs.d.ts +24 -0
- package/tools/system-configs/get-system-configs.d.ts.map +1 -0
- package/tools/system-configs/get-system-configs.js +31 -0
- package/tools/system-configs/get-system-configs.js.map +1 -0
- package/tools/system-configs/get-system-configs.mjs +27 -0
- package/tools/system-configs/get-system-configs.mjs.map +1 -0
- package/tools/system-configs/list-system-configs.d.mts +24 -0
- package/tools/system-configs/list-system-configs.d.mts.map +1 -0
- package/tools/system-configs/list-system-configs.d.ts +24 -0
- package/tools/system-configs/list-system-configs.d.ts.map +1 -0
- package/tools/system-configs/list-system-configs.js +36 -0
- package/tools/system-configs/list-system-configs.js.map +1 -0
- package/tools/system-configs/list-system-configs.mjs +32 -0
- package/tools/system-configs/list-system-configs.mjs.map +1 -0
- package/tools/systems/create-systems.d.mts +24 -0
- package/tools/systems/create-systems.d.mts.map +1 -0
- package/tools/systems/create-systems.d.ts +24 -0
- package/tools/systems/create-systems.d.ts.map +1 -0
- package/tools/systems/create-systems.js +48 -0
- package/tools/systems/create-systems.js.map +1 -0
- package/tools/systems/create-systems.mjs +44 -0
- package/tools/systems/create-systems.mjs.map +1 -0
- package/tools/systems/delete-systems.d.mts +24 -0
- package/tools/systems/delete-systems.d.mts.map +1 -0
- package/tools/systems/delete-systems.d.ts +24 -0
- package/tools/systems/delete-systems.d.ts.map +1 -0
- package/tools/systems/delete-systems.js +28 -0
- package/tools/systems/delete-systems.js.map +1 -0
- package/tools/systems/delete-systems.mjs +24 -0
- package/tools/systems/delete-systems.mjs.map +1 -0
- package/tools/systems/get-systems.d.mts +24 -0
- package/tools/systems/get-systems.d.mts.map +1 -0
- package/tools/systems/get-systems.d.ts +24 -0
- package/tools/systems/get-systems.d.ts.map +1 -0
- package/tools/systems/get-systems.js +28 -0
- package/tools/systems/get-systems.js.map +1 -0
- package/tools/systems/get-systems.mjs +24 -0
- package/tools/systems/get-systems.mjs.map +1 -0
- package/tools/systems/list-systems.d.mts +24 -0
- package/tools/systems/list-systems.d.mts.map +1 -0
- package/tools/systems/list-systems.d.ts +24 -0
- package/tools/systems/list-systems.d.ts.map +1 -0
- package/tools/systems/list-systems.js +36 -0
- package/tools/systems/list-systems.js.map +1 -0
- package/tools/systems/list-systems.mjs +32 -0
- package/tools/systems/list-systems.mjs.map +1 -0
- package/tools/systems/update-systems.d.mts +24 -0
- package/tools/systems/update-systems.d.mts.map +1 -0
- package/tools/systems/update-systems.d.ts +24 -0
- package/tools/systems/update-systems.d.ts.map +1 -0
- package/tools/systems/update-systems.js +48 -0
- package/tools/systems/update-systems.js.map +1 -0
- package/tools/systems/update-systems.mjs +44 -0
- package/tools/systems/update-systems.mjs.map +1 -0
- package/tools/testcases/create-testcases.d.mts +24 -0
- package/tools/testcases/create-testcases.d.mts.map +1 -0
- package/tools/testcases/create-testcases.d.ts +24 -0
- package/tools/testcases/create-testcases.d.ts.map +1 -0
- package/tools/testcases/create-testcases.js +43 -0
- package/tools/testcases/create-testcases.js.map +1 -0
- package/tools/testcases/create-testcases.mjs +39 -0
- package/tools/testcases/create-testcases.mjs.map +1 -0
- package/tools/testcases/delete-testcases.d.mts +24 -0
- package/tools/testcases/delete-testcases.d.mts.map +1 -0
- package/tools/testcases/delete-testcases.d.ts +24 -0
- package/tools/testcases/delete-testcases.d.ts.map +1 -0
- package/tools/testcases/delete-testcases.js +32 -0
- package/tools/testcases/delete-testcases.js.map +1 -0
- package/tools/testcases/delete-testcases.mjs +28 -0
- package/tools/testcases/delete-testcases.mjs.map +1 -0
- package/tools/testcases/get-testcases.d.mts +24 -0
- package/tools/testcases/get-testcases.d.mts.map +1 -0
- package/tools/testcases/get-testcases.d.ts +24 -0
- package/tools/testcases/get-testcases.d.ts.map +1 -0
- package/tools/testcases/get-testcases.js +28 -0
- package/tools/testcases/get-testcases.js.map +1 -0
- package/tools/testcases/get-testcases.mjs +24 -0
- package/tools/testcases/get-testcases.mjs.map +1 -0
- package/tools/testcases/list-testcases.d.mts +24 -0
- package/tools/testcases/list-testcases.d.mts.map +1 -0
- package/tools/testcases/list-testcases.d.ts +24 -0
- package/tools/testcases/list-testcases.d.ts.map +1 -0
- package/tools/testcases/list-testcases.js +36 -0
- package/tools/testcases/list-testcases.js.map +1 -0
- package/tools/testcases/list-testcases.mjs +32 -0
- package/tools/testcases/list-testcases.mjs.map +1 -0
- package/tools/testcases/update-testcases.d.mts +24 -0
- package/tools/testcases/update-testcases.d.mts.map +1 -0
- package/tools/testcases/update-testcases.d.ts +24 -0
- package/tools/testcases/update-testcases.d.ts.map +1 -0
- package/tools/testcases/update-testcases.js +32 -0
- package/tools/testcases/update-testcases.js.map +1 -0
- package/tools/testcases/update-testcases.mjs +28 -0
- package/tools/testcases/update-testcases.mjs.map +1 -0
- package/tools/testsets/create-testsets.d.mts +24 -0
- package/tools/testsets/create-testsets.d.mts.map +1 -0
- package/tools/testsets/create-testsets.d.ts +24 -0
- package/tools/testsets/create-testsets.d.ts.map +1 -0
- package/tools/testsets/create-testsets.js +68 -0
- package/tools/testsets/create-testsets.js.map +1 -0
- package/tools/testsets/create-testsets.mjs +64 -0
- package/tools/testsets/create-testsets.mjs.map +1 -0
- package/tools/testsets/delete-testsets.d.mts +24 -0
- package/tools/testsets/delete-testsets.d.mts.map +1 -0
- package/tools/testsets/delete-testsets.d.ts +24 -0
- package/tools/testsets/delete-testsets.d.ts.map +1 -0
- package/tools/testsets/delete-testsets.js +28 -0
- package/tools/testsets/delete-testsets.js.map +1 -0
- package/tools/testsets/delete-testsets.mjs +24 -0
- package/tools/testsets/delete-testsets.mjs.map +1 -0
- package/tools/testsets/get-testsets.d.mts +24 -0
- package/tools/testsets/get-testsets.d.mts.map +1 -0
- package/tools/testsets/get-testsets.d.ts +24 -0
- package/tools/testsets/get-testsets.d.ts.map +1 -0
- package/tools/testsets/get-testsets.js +28 -0
- package/tools/testsets/get-testsets.js.map +1 -0
- package/tools/testsets/get-testsets.mjs +24 -0
- package/tools/testsets/get-testsets.mjs.map +1 -0
- package/tools/testsets/list-testsets.d.mts +24 -0
- package/tools/testsets/list-testsets.d.mts.map +1 -0
- package/tools/testsets/list-testsets.d.ts +24 -0
- package/tools/testsets/list-testsets.d.ts.map +1 -0
- package/tools/testsets/list-testsets.js +36 -0
- package/tools/testsets/list-testsets.js.map +1 -0
- package/tools/testsets/list-testsets.mjs +32 -0
- package/tools/testsets/list-testsets.mjs.map +1 -0
- package/tools/testsets/update-testsets.d.mts +24 -0
- package/tools/testsets/update-testsets.d.mts.map +1 -0
- package/tools/testsets/update-testsets.d.ts +24 -0
- package/tools/testsets/update-testsets.d.ts.map +1 -0
- package/tools/testsets/update-testsets.js +68 -0
- package/tools/testsets/update-testsets.js.map +1 -0
- package/tools/testsets/update-testsets.mjs +64 -0
- package/tools/testsets/update-testsets.mjs.map +1 -0
- package/tools.d.mts +2 -0
- package/tools.d.mts.map +1 -0
- package/tools.d.ts +2 -0
- package/tools.d.ts.map +1 -0
- package/tools.js +18 -0
- package/tools.js.map +1 -0
- package/tools.mjs +2 -0
- package/tools.mjs.map +1 -0
package/package.json
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "scorecard-ai-mcp",
|
|
3
|
+
"version": "1.0.0-alpha.4",
|
|
4
|
+
"description": "The official MCP Server for the Scorecard API",
|
|
5
|
+
"author": "Scorecard <team@scorecard.io>",
|
|
6
|
+
"types": "./index.d.ts",
|
|
7
|
+
"main": "./index.js",
|
|
8
|
+
"type": "commonjs",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/scorecard-ai/scorecard-node.git",
|
|
12
|
+
"directory": "packages/mcp-server"
|
|
13
|
+
},
|
|
14
|
+
"homepage": "https://github.com/scorecard-ai/scorecard-node/tree/main/packages/mcp-server#readme",
|
|
15
|
+
"license": "Apache-2.0",
|
|
16
|
+
"packageManager": "yarn@1.22.22",
|
|
17
|
+
"private": false,
|
|
18
|
+
"scripts": {
|
|
19
|
+
"test": "jest",
|
|
20
|
+
"build": "bash ./build",
|
|
21
|
+
"format": "prettier --write --cache --cache-strategy metadata . !dist",
|
|
22
|
+
"tsn": "ts-node -r tsconfig-paths/register",
|
|
23
|
+
"lint": "eslint --ext ts,js .",
|
|
24
|
+
"fix": "eslint --fix --ext ts,js ."
|
|
25
|
+
},
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"scorecard-ai": "^1.0.0-alpha.4",
|
|
28
|
+
"@modelcontextprotocol/sdk": "^1.6.1",
|
|
29
|
+
"yargs": "^17.7.2",
|
|
30
|
+
"ajv": "^8.17.1"
|
|
31
|
+
},
|
|
32
|
+
"bin": {
|
|
33
|
+
"mcp-server": "./index.js"
|
|
34
|
+
},
|
|
35
|
+
"imports": {
|
|
36
|
+
"scorecard-ai-mcp": ".",
|
|
37
|
+
"scorecard-ai-mcp/*": "./src/*"
|
|
38
|
+
},
|
|
39
|
+
"exports": {
|
|
40
|
+
".": {
|
|
41
|
+
"require": {
|
|
42
|
+
"types": "./index.d.ts",
|
|
43
|
+
"default": "./index.js"
|
|
44
|
+
},
|
|
45
|
+
"types": "./index.d.mts",
|
|
46
|
+
"default": "./index.mjs"
|
|
47
|
+
},
|
|
48
|
+
"./compat": {
|
|
49
|
+
"import": "./compat.mjs",
|
|
50
|
+
"require": "./compat.js"
|
|
51
|
+
},
|
|
52
|
+
"./compat.js": {
|
|
53
|
+
"default": "./compat.js"
|
|
54
|
+
},
|
|
55
|
+
"./compat.mjs": {
|
|
56
|
+
"default": "./compat.mjs"
|
|
57
|
+
},
|
|
58
|
+
"./compat.test": {
|
|
59
|
+
"import": "./compat.test.mjs",
|
|
60
|
+
"require": "./compat.test.js"
|
|
61
|
+
},
|
|
62
|
+
"./compat.test.js": {
|
|
63
|
+
"default": "./compat.test.js"
|
|
64
|
+
},
|
|
65
|
+
"./compat.test.mjs": {
|
|
66
|
+
"default": "./compat.test.mjs"
|
|
67
|
+
},
|
|
68
|
+
"./index": {
|
|
69
|
+
"import": "./index.mjs",
|
|
70
|
+
"require": "./index.js"
|
|
71
|
+
},
|
|
72
|
+
"./index.js": {
|
|
73
|
+
"default": "./index.js"
|
|
74
|
+
},
|
|
75
|
+
"./index.mjs": {
|
|
76
|
+
"default": "./index.mjs"
|
|
77
|
+
},
|
|
78
|
+
"./options": {
|
|
79
|
+
"import": "./options.mjs",
|
|
80
|
+
"require": "./options.js"
|
|
81
|
+
},
|
|
82
|
+
"./options.js": {
|
|
83
|
+
"default": "./options.js"
|
|
84
|
+
},
|
|
85
|
+
"./options.mjs": {
|
|
86
|
+
"default": "./options.mjs"
|
|
87
|
+
},
|
|
88
|
+
"./options.test": {
|
|
89
|
+
"import": "./options.test.mjs",
|
|
90
|
+
"require": "./options.test.js"
|
|
91
|
+
},
|
|
92
|
+
"./options.test.js": {
|
|
93
|
+
"default": "./options.test.js"
|
|
94
|
+
},
|
|
95
|
+
"./options.test.mjs": {
|
|
96
|
+
"default": "./options.test.mjs"
|
|
97
|
+
},
|
|
98
|
+
"./server": {
|
|
99
|
+
"import": "./server.mjs",
|
|
100
|
+
"require": "./server.js"
|
|
101
|
+
},
|
|
102
|
+
"./server.js": {
|
|
103
|
+
"default": "./server.js"
|
|
104
|
+
},
|
|
105
|
+
"./server.mjs": {
|
|
106
|
+
"default": "./server.mjs"
|
|
107
|
+
},
|
|
108
|
+
"./tools/*.mjs": {
|
|
109
|
+
"default": "./tools/*.mjs"
|
|
110
|
+
},
|
|
111
|
+
"./tools/*.js": {
|
|
112
|
+
"default": "./tools/*.js"
|
|
113
|
+
},
|
|
114
|
+
"./tools/*": {
|
|
115
|
+
"import": "./tools/*.mjs",
|
|
116
|
+
"require": "./tools/*.js"
|
|
117
|
+
},
|
|
118
|
+
"./tools": {
|
|
119
|
+
"import": "./tools.mjs",
|
|
120
|
+
"require": "./tools.js"
|
|
121
|
+
},
|
|
122
|
+
"./tools.js": {
|
|
123
|
+
"default": "./tools.js"
|
|
124
|
+
},
|
|
125
|
+
"./tools.mjs": {
|
|
126
|
+
"default": "./tools.mjs"
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
package/server.d.mts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
2
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
|
+
import { HandlerFunction } from "./tools.mjs";
|
|
4
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
import Scorecard from 'scorecard-ai';
|
|
6
|
+
import { ClientCapabilities } from "./compat.mjs";
|
|
7
|
+
export { endpoints } from "./tools.mjs";
|
|
8
|
+
export declare const server: McpServer;
|
|
9
|
+
/**
|
|
10
|
+
* Initializes the provided MCP Server with the given tools and handlers.
|
|
11
|
+
* If not provided, the default client, tools and handlers will be used.
|
|
12
|
+
*/
|
|
13
|
+
export declare function init(params: {
|
|
14
|
+
server: Server | McpServer;
|
|
15
|
+
client?: Scorecard;
|
|
16
|
+
endpoints?: {
|
|
17
|
+
tool: Tool;
|
|
18
|
+
handler: HandlerFunction;
|
|
19
|
+
}[];
|
|
20
|
+
capabilities?: Partial<ClientCapabilities>;
|
|
21
|
+
}): void;
|
|
22
|
+
/**
|
|
23
|
+
* Runs the provided handler with the given client and arguments.
|
|
24
|
+
*/
|
|
25
|
+
export declare function executeHandler(tool: Tool, handler: HandlerFunction, client: Scorecard, args: Record<string, unknown> | undefined, compatibilityOptions?: Partial<ClientCapabilities>): Promise<{
|
|
26
|
+
content: {
|
|
27
|
+
type: string;
|
|
28
|
+
text: string;
|
|
29
|
+
}[];
|
|
30
|
+
}>;
|
|
31
|
+
export declare const readEnv: (env: string) => string | undefined;
|
|
32
|
+
export declare const readEnvOrError: (env: string) => string;
|
|
33
|
+
//# sourceMappingURL=server.d.mts.map
|
package/server.d.mts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.mts","sourceRoot":"","sources":["src/server.ts"],"names":[],"mappings":"OAEO,EAAE,MAAM,EAAE,MAAM,2CAA2C;OAC3D,EAAE,SAAS,EAAE,MAAM,yCAAyC;OAC5D,EAAa,eAAe,EAAE;OAC9B,EAAiD,IAAI,EAAE,MAAM,oCAAoC;OACjG,SAAS,MAAM,cAAc;OAC7B,EAAE,kBAAkB,EAAgD;OACpE,EAAE,SAAS,EAAE;AAGpB,eAAO,MAAM,MAAM,WAUlB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,EAAE,CAAC;IACvD,YAAY,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC5C,QAuBA;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,oBAAoB,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC;;;;;GAenD;AAED,eAAO,MAAM,OAAO,QAAS,MAAM,KAAG,MAAM,GAAG,SAO9C,CAAC;AAEF,eAAO,MAAM,cAAc,QAAS,MAAM,KAAG,MAM5C,CAAC"}
|
package/server.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
2
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
|
+
import { HandlerFunction } from "./tools.js";
|
|
4
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
import Scorecard from 'scorecard-ai';
|
|
6
|
+
import { ClientCapabilities } from "./compat.js";
|
|
7
|
+
export { endpoints } from "./tools.js";
|
|
8
|
+
export declare const server: McpServer;
|
|
9
|
+
/**
|
|
10
|
+
* Initializes the provided MCP Server with the given tools and handlers.
|
|
11
|
+
* If not provided, the default client, tools and handlers will be used.
|
|
12
|
+
*/
|
|
13
|
+
export declare function init(params: {
|
|
14
|
+
server: Server | McpServer;
|
|
15
|
+
client?: Scorecard;
|
|
16
|
+
endpoints?: {
|
|
17
|
+
tool: Tool;
|
|
18
|
+
handler: HandlerFunction;
|
|
19
|
+
}[];
|
|
20
|
+
capabilities?: Partial<ClientCapabilities>;
|
|
21
|
+
}): void;
|
|
22
|
+
/**
|
|
23
|
+
* Runs the provided handler with the given client and arguments.
|
|
24
|
+
*/
|
|
25
|
+
export declare function executeHandler(tool: Tool, handler: HandlerFunction, client: Scorecard, args: Record<string, unknown> | undefined, compatibilityOptions?: Partial<ClientCapabilities>): Promise<{
|
|
26
|
+
content: {
|
|
27
|
+
type: string;
|
|
28
|
+
text: string;
|
|
29
|
+
}[];
|
|
30
|
+
}>;
|
|
31
|
+
export declare const readEnv: (env: string) => string | undefined;
|
|
32
|
+
export declare const readEnvOrError: (env: string) => string;
|
|
33
|
+
//# sourceMappingURL=server.d.ts.map
|
package/server.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["src/server.ts"],"names":[],"mappings":"OAEO,EAAE,MAAM,EAAE,MAAM,2CAA2C;OAC3D,EAAE,SAAS,EAAE,MAAM,yCAAyC;OAC5D,EAAa,eAAe,EAAE;OAC9B,EAAiD,IAAI,EAAE,MAAM,oCAAoC;OACjG,SAAS,MAAM,cAAc;OAC7B,EAAE,kBAAkB,EAAgD;OACpE,EAAE,SAAS,EAAE;AAGpB,eAAO,MAAM,MAAM,WAUlB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,EAAE,CAAC;IACvD,YAAY,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC5C,QAuBA;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,oBAAoB,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC;;;;;GAenD;AAED,eAAO,MAAM,OAAO,QAAS,MAAM,KAAG,MAAM,GAAG,SAO9C,CAAC;AAEF,eAAO,MAAM,cAAc,QAAS,MAAM,KAAG,MAM5C,CAAC"}
|
package/server.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.readEnvOrError = exports.readEnv = exports.executeHandler = exports.init = exports.server = exports.endpoints = void 0;
|
|
8
|
+
const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
|
|
9
|
+
const tools_1 = require("./tools.js");
|
|
10
|
+
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
11
|
+
const scorecard_ai_1 = __importDefault(require("scorecard-ai"));
|
|
12
|
+
const compat_1 = require("./compat.js");
|
|
13
|
+
var tools_2 = require("./tools.js");
|
|
14
|
+
Object.defineProperty(exports, "endpoints", { enumerable: true, get: function () { return tools_2.endpoints; } });
|
|
15
|
+
// Create server instance
|
|
16
|
+
exports.server = new mcp_js_1.McpServer({
|
|
17
|
+
name: 'scorecard_ai_api',
|
|
18
|
+
version: '1.0.0-alpha.4',
|
|
19
|
+
}, {
|
|
20
|
+
capabilities: {
|
|
21
|
+
tools: {},
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
/**
|
|
25
|
+
* Initializes the provided MCP Server with the given tools and handlers.
|
|
26
|
+
* If not provided, the default client, tools and handlers will be used.
|
|
27
|
+
*/
|
|
28
|
+
function init(params) {
|
|
29
|
+
const server = params.server instanceof mcp_js_1.McpServer ? params.server.server : params.server;
|
|
30
|
+
const providedEndpoints = params.endpoints || tools_1.endpoints;
|
|
31
|
+
const endpointMap = Object.fromEntries(providedEndpoints.map((endpoint) => [endpoint.tool.name, endpoint]));
|
|
32
|
+
const client = params.client || new scorecard_ai_1.default({});
|
|
33
|
+
server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
|
|
34
|
+
return {
|
|
35
|
+
tools: providedEndpoints.map((endpoint) => endpoint.tool),
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
39
|
+
const { name, arguments: args } = request.params;
|
|
40
|
+
const endpoint = endpointMap[name];
|
|
41
|
+
if (!endpoint) {
|
|
42
|
+
throw new Error(`Unknown tool: ${name}`);
|
|
43
|
+
}
|
|
44
|
+
return executeHandler(endpoint.tool, endpoint.handler, client, args, params.capabilities);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
exports.init = init;
|
|
48
|
+
/**
|
|
49
|
+
* Runs the provided handler with the given client and arguments.
|
|
50
|
+
*/
|
|
51
|
+
async function executeHandler(tool, handler, client, args, compatibilityOptions) {
|
|
52
|
+
const options = { ...compat_1.defaultClientCapabilities, ...compatibilityOptions };
|
|
53
|
+
if (options.validJson && args) {
|
|
54
|
+
args = args = (0, compat_1.parseEmbeddedJSON)(args, tool.inputSchema);
|
|
55
|
+
}
|
|
56
|
+
const result = await handler(client, args || {});
|
|
57
|
+
return {
|
|
58
|
+
content: [
|
|
59
|
+
{
|
|
60
|
+
type: 'text',
|
|
61
|
+
text: JSON.stringify(result, null, 2),
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
exports.executeHandler = executeHandler;
|
|
67
|
+
const readEnv = (env) => {
|
|
68
|
+
if (typeof globalThis.process !== 'undefined') {
|
|
69
|
+
return globalThis.process.env?.[env]?.trim();
|
|
70
|
+
}
|
|
71
|
+
else if (typeof globalThis.Deno !== 'undefined') {
|
|
72
|
+
return globalThis.Deno.env?.get?.(env)?.trim();
|
|
73
|
+
}
|
|
74
|
+
return;
|
|
75
|
+
};
|
|
76
|
+
exports.readEnv = readEnv;
|
|
77
|
+
const readEnvOrError = (env) => {
|
|
78
|
+
let envValue = (0, exports.readEnv)(env);
|
|
79
|
+
if (envValue === undefined) {
|
|
80
|
+
throw new Error(`Environment variable ${env} is not set`);
|
|
81
|
+
}
|
|
82
|
+
return envValue;
|
|
83
|
+
};
|
|
84
|
+
exports.readEnvOrError = readEnvOrError;
|
|
85
|
+
//# sourceMappingURL=server.js.map
|
package/server.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["src/server.ts"],"names":[],"mappings":"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"}
|
package/server.mjs
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
|
+
import { endpoints } from "./tools.mjs";
|
|
4
|
+
import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
import Scorecard from 'scorecard-ai';
|
|
6
|
+
import { defaultClientCapabilities, parseEmbeddedJSON } from "./compat.mjs";
|
|
7
|
+
export { endpoints } from "./tools.mjs";
|
|
8
|
+
// Create server instance
|
|
9
|
+
export const server = new McpServer({
|
|
10
|
+
name: 'scorecard_ai_api',
|
|
11
|
+
version: '1.0.0-alpha.4',
|
|
12
|
+
}, {
|
|
13
|
+
capabilities: {
|
|
14
|
+
tools: {},
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
/**
|
|
18
|
+
* Initializes the provided MCP Server with the given tools and handlers.
|
|
19
|
+
* If not provided, the default client, tools and handlers will be used.
|
|
20
|
+
*/
|
|
21
|
+
export function init(params) {
|
|
22
|
+
const server = params.server instanceof McpServer ? params.server.server : params.server;
|
|
23
|
+
const providedEndpoints = params.endpoints || endpoints;
|
|
24
|
+
const endpointMap = Object.fromEntries(providedEndpoints.map((endpoint) => [endpoint.tool.name, endpoint]));
|
|
25
|
+
const client = params.client || new Scorecard({});
|
|
26
|
+
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
27
|
+
return {
|
|
28
|
+
tools: providedEndpoints.map((endpoint) => endpoint.tool),
|
|
29
|
+
};
|
|
30
|
+
});
|
|
31
|
+
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
32
|
+
const { name, arguments: args } = request.params;
|
|
33
|
+
const endpoint = endpointMap[name];
|
|
34
|
+
if (!endpoint) {
|
|
35
|
+
throw new Error(`Unknown tool: ${name}`);
|
|
36
|
+
}
|
|
37
|
+
return executeHandler(endpoint.tool, endpoint.handler, client, args, params.capabilities);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Runs the provided handler with the given client and arguments.
|
|
42
|
+
*/
|
|
43
|
+
export async function executeHandler(tool, handler, client, args, compatibilityOptions) {
|
|
44
|
+
const options = { ...defaultClientCapabilities, ...compatibilityOptions };
|
|
45
|
+
if (options.validJson && args) {
|
|
46
|
+
args = args = parseEmbeddedJSON(args, tool.inputSchema);
|
|
47
|
+
}
|
|
48
|
+
const result = await handler(client, args || {});
|
|
49
|
+
return {
|
|
50
|
+
content: [
|
|
51
|
+
{
|
|
52
|
+
type: 'text',
|
|
53
|
+
text: JSON.stringify(result, null, 2),
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
export const readEnv = (env) => {
|
|
59
|
+
if (typeof globalThis.process !== 'undefined') {
|
|
60
|
+
return globalThis.process.env?.[env]?.trim();
|
|
61
|
+
}
|
|
62
|
+
else if (typeof globalThis.Deno !== 'undefined') {
|
|
63
|
+
return globalThis.Deno.env?.get?.(env)?.trim();
|
|
64
|
+
}
|
|
65
|
+
return;
|
|
66
|
+
};
|
|
67
|
+
export const readEnvOrError = (env) => {
|
|
68
|
+
let envValue = readEnv(env);
|
|
69
|
+
if (envValue === undefined) {
|
|
70
|
+
throw new Error(`Environment variable ${env} is not set`);
|
|
71
|
+
}
|
|
72
|
+
return envValue;
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=server.mjs.map
|
package/server.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.mjs","sourceRoot":"","sources":["src/server.ts"],"names":[],"mappings":"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"}
|