@evercam/mcp 0.0.3 → 0.0.5
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/dist/src/cli/tools.d.ts.map +1 -1
- package/dist/src/cli/tools.js +23 -1
- package/dist/src/cli/tools.js.map +1 -1
- package/dist/src/config/env.js +1 -1
- package/dist/src/tools/anpr.d.ts.map +1 -1
- package/dist/src/tools/anpr.js +25 -0
- package/dist/src/tools/anpr.js.map +1 -1
- package/dist/src/tools/cameras.d.ts.map +1 -1
- package/dist/src/tools/cameras.js +56 -0
- package/dist/src/tools/cameras.js.map +1 -1
- package/dist/src/tools/projects.d.ts.map +1 -1
- package/dist/src/tools/projects.js +40 -0
- package/dist/src/tools/projects.js.map +1 -1
- package/dist/src/tools/siteAnalytics.d.ts.map +1 -1
- package/dist/src/tools/siteAnalytics.js +36 -0
- package/dist/src/tools/siteAnalytics.js.map +1 -1
- package/dist/src/tools/snapshots.d.ts.map +1 -1
- package/dist/src/tools/snapshots.js +38 -0
- package/dist/src/tools/snapshots.js.map +1 -1
- package/dist/src/utils/callTool.d.ts +4 -5
- package/dist/src/utils/callTool.d.ts.map +1 -1
- package/dist/src/utils/callTool.js +16 -17
- package/dist/src/utils/callTool.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/cli/tools.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/cli/tools.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAoFpD,CAAA;AAgFD,wBAAgB,SAAS,IAAI,IAAI,CAahC"}
|
package/dist/src/cli/tools.js
CHANGED
|
@@ -2,11 +2,16 @@ import chalk from "chalk";
|
|
|
2
2
|
export const TOOL_DESCRIPTIONS = {
|
|
3
3
|
// Cameras
|
|
4
4
|
"list-cameras": "List all accessible cameras",
|
|
5
|
+
"get-camera-status": "Get camera details, latest snapshot, and live URL in one call",
|
|
6
|
+
"list-cameras-with-latest-snapshot": "List all cameras in a project with their latest snapshot",
|
|
7
|
+
"list-cameras-with-presence": "List all cameras in a project with presence intervals for a date range",
|
|
5
8
|
"get-camera": "Get camera details by exid",
|
|
6
9
|
"update-camera": "Update camera properties",
|
|
7
10
|
// Snapshots
|
|
8
11
|
"get-live-snapshot-url": "Get live snapshot URL for a camera",
|
|
9
12
|
"get-snapshot-image": "Get snapshot image content (base64) or URL",
|
|
13
|
+
"get-camera-day-summary": "Get available hours and presence intervals for a camera on a specific day",
|
|
14
|
+
"get-camera-recording-range": "Get the oldest and latest snapshot timestamps for a camera",
|
|
10
15
|
"get-snapshot-at": "Get recorded snapshot nearest to a timestamp",
|
|
11
16
|
"get-latest-snapshot": "Get most recent snapshot for a camera",
|
|
12
17
|
"get-oldest-snapshot": "Get oldest snapshot for a camera",
|
|
@@ -16,6 +21,9 @@ export const TOOL_DESCRIPTIONS = {
|
|
|
16
21
|
"list-projects": "List all accessible projects",
|
|
17
22
|
"create-project": "Create a new project",
|
|
18
23
|
"list-project-cameras": "List cameras in a project",
|
|
24
|
+
"list-projects-with-camera-count": "List all projects with their camera count",
|
|
25
|
+
"get-project-overview": "Get a project summary: camera count, member count, and weather",
|
|
26
|
+
"get-project-security-summary": "Get gate report counts, ANPR events, and ROIs for a project in one call",
|
|
19
27
|
"list-project-users": "List users in a project",
|
|
20
28
|
"list-project-members": "List members with roles in a project",
|
|
21
29
|
"invite-project-members": "Invite members to a project",
|
|
@@ -51,6 +59,7 @@ export const TOOL_DESCRIPTIONS = {
|
|
|
51
59
|
"delete-roi": "Delete a ROI configuration",
|
|
52
60
|
// Site Analytics
|
|
53
61
|
"smart-search": "Semantic/visual search over footage",
|
|
62
|
+
"search-with-snapshots": "Smart search returning results with snapshot URLs",
|
|
54
63
|
"list-smart-search-queries": "List saved smart search queries",
|
|
55
64
|
"get-detections-heatmap": "Get detection heatmap data for a camera",
|
|
56
65
|
"get-gate-report-counts": "Get event count statistics for gate report",
|
|
@@ -73,10 +82,19 @@ export const TOOL_DESCRIPTIONS = {
|
|
|
73
82
|
"delete-share-request": "Delete a share request",
|
|
74
83
|
};
|
|
75
84
|
const GROUPS = {
|
|
76
|
-
Cameras: [
|
|
85
|
+
Cameras: [
|
|
86
|
+
"list-cameras",
|
|
87
|
+
"get-camera-status",
|
|
88
|
+
"list-cameras-with-latest-snapshot",
|
|
89
|
+
"list-cameras-with-presence",
|
|
90
|
+
"get-camera",
|
|
91
|
+
"update-camera",
|
|
92
|
+
],
|
|
77
93
|
Snapshots: [
|
|
78
94
|
"get-live-snapshot-url",
|
|
79
95
|
"get-snapshot-image",
|
|
96
|
+
"get-camera-day-summary",
|
|
97
|
+
"get-camera-recording-range",
|
|
80
98
|
"get-snapshot-at",
|
|
81
99
|
"get-latest-snapshot",
|
|
82
100
|
"get-oldest-snapshot",
|
|
@@ -85,6 +103,9 @@ const GROUPS = {
|
|
|
85
103
|
],
|
|
86
104
|
Projects: [
|
|
87
105
|
"list-projects",
|
|
106
|
+
"list-projects-with-camera-count",
|
|
107
|
+
"get-project-overview",
|
|
108
|
+
"get-project-security-summary",
|
|
88
109
|
"create-project",
|
|
89
110
|
"list-project-cameras",
|
|
90
111
|
"list-project-users",
|
|
@@ -120,6 +141,7 @@ const GROUPS = {
|
|
|
120
141
|
],
|
|
121
142
|
"Site Analytics": [
|
|
122
143
|
"smart-search",
|
|
144
|
+
"search-with-snapshots",
|
|
123
145
|
"list-smart-search-queries",
|
|
124
146
|
"get-detections-heatmap",
|
|
125
147
|
"get-gate-report-counts",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/cli/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,UAAU;IACV,cAAc,EAAE,6BAA6B;IAC7C,YAAY,EAAE,4BAA4B;IAC1C,eAAe,EAAE,0BAA0B;IAC3C,YAAY;IACZ,uBAAuB,EAAE,oCAAoC;IAC7D,oBAAoB,EAAE,4CAA4C;IAClE,iBAAiB,EAAE,8CAA8C;IACjE,qBAAqB,EAAE,uCAAuC;IAC9D,qBAAqB,EAAE,kCAAkC;IACzD,qBAAqB,EAAE,sCAAsC;IAC7D,sBAAsB,EAAE,8CAA8C;IACtE,WAAW;IACX,eAAe,EAAE,8BAA8B;IAC/C,gBAAgB,EAAE,sBAAsB;IACxC,sBAAsB,EAAE,2BAA2B;IACnD,oBAAoB,EAAE,yBAAyB;IAC/C,sBAAsB,EAAE,sCAAsC;IAC9D,wBAAwB,EAAE,6BAA6B;IACvD,wBAAwB,EAAE,+BAA+B;IACzD,6BAA6B,EAAE,kCAAkC;IACjE,QAAQ;IACR,iBAAiB,EAAE,8BAA8B;IACjD,kBAAkB,EAAE,kCAAkC;IACtD,gBAAgB,EAAE,6BAA6B;IAC/C,MAAM;IACN,iBAAiB,EAAE,8BAA8B;IACjD,kBAAkB,EAAE,iCAAiC;IACrD,eAAe,EAAE,iCAAiC;IAClD,UAAU;IACV,4BAA4B,EAAE,+BAA+B;IAC7D,6BAA6B,EAAE,+BAA+B;IAC9D,0BAA0B,EAAE,kCAAkC;IAC9D,uBAAuB,EAAE,iCAAiC;IAC1D,sBAAsB,EAAE,kCAAkC;IAC1D,yBAAyB,EAAE,sCAAsC;IACjE,aAAa;IACb,wBAAwB,EAAE,+CAA+C;IACzE,wBAAwB,EAAE,uCAAuC;IACjE,sCAAsC,EAAE,sCAAsC;IAC9E,2BAA2B,EAAE,4CAA4C;IACzE,qBAAqB;IACrB,kBAAkB,EAAE,gCAAgC;IACpD,wBAAwB,EAAE,sCAAsC;IAChE,oBAAoB,EAAE,gCAAgC;IACtD,WAAW,EAAE,uCAAuC;IACpD,YAAY,EAAE,4BAA4B;IAC1C,YAAY,EAAE,4BAA4B;IAC1C,YAAY,EAAE,4BAA4B;IAC1C,iBAAiB;IACjB,cAAc,EAAE,qCAAqC;IACrD,2BAA2B,EAAE,iCAAiC;IAC9D,wBAAwB,EAAE,yCAAyC;IACnE,wBAAwB,EAAE,4CAA4C;IACtE,MAAM;IACN,kBAAkB,EAAE,+BAA+B;IACnD,kBAAkB,EAAE,qCAAqC;IACzD,iBAAiB,EAAE,2BAA2B;IAC9C,gBAAgB;IAChB,oBAAoB,EAAE,uCAAuC;IAC7D,yBAAyB,EAAE,uCAAuC;IAClE,UAAU;IACV,qBAAqB,EAAE,uCAAuC;IAC9D,kBAAkB;IAClB,sBAAsB,EAAE,oCAAoC;IAC5D,oBAAoB,EAAE,qCAAqC;IAC3D,uBAAuB,EAAE,+BAA+B;IACxD,uBAAuB,EAAE,+BAA+B;IACxD,uBAAuB,EAAE,+BAA+B;IACxD,SAAS;IACT,sBAAsB,EAAE,wBAAwB;CACjD,CAAA;AAED,MAAM,MAAM,GAA6B;IACvC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/cli/tools.ts"],"names":[],"mappings":"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"}
|
package/dist/src/config/env.js
CHANGED
|
@@ -3,7 +3,7 @@ import { getProfileConfig } from "./profiles.js";
|
|
|
3
3
|
import { getToken } from "../auth/tokenStore.js";
|
|
4
4
|
export function resolveConfig(profileName) {
|
|
5
5
|
const profile = getProfileConfig(profileName);
|
|
6
|
-
const token = process.env.EVERCAM_TOKEN
|
|
6
|
+
const token = process.env.EVERCAM_TOKEN || getToken(profileName);
|
|
7
7
|
return {
|
|
8
8
|
credentials: token ? { token } : undefined,
|
|
9
9
|
baseUrls: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anpr.d.ts","sourceRoot":"","sources":["../../../src/tools/anpr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAItC,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"anpr.d.ts","sourceRoot":"","sources":["../../../src/tools/anpr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAItC,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAgJ3E"}
|
package/dist/src/tools/anpr.js
CHANGED
|
@@ -1,6 +1,31 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { safeText } from "../utils/toolOutput.js";
|
|
3
3
|
export function registerAnprTools(server, evercam) {
|
|
4
|
+
server.tool("get-project-security-summary", "Get a security summary for a project over a date range: gate report counts, recent ANPR events, and configured ROIs — all in one call. Use when the user asks for a security overview or activity digest.", {
|
|
5
|
+
projectExid: z.string().describe("Project exid"),
|
|
6
|
+
fromDate: z.string().describe("Start date ISO 8601"),
|
|
7
|
+
toDate: z.string().describe("End date ISO 8601"),
|
|
8
|
+
cameraExid: z.string().optional().describe("Filter by camera"),
|
|
9
|
+
}, async ({ projectExid, fromDate, toDate, cameraExid }) => {
|
|
10
|
+
const [counts, anprEvents, rois] = await Promise.allSettled([
|
|
11
|
+
evercam.ai.gateReport.getCounts(projectExid, { fromDate, toDate, cameraExid }),
|
|
12
|
+
evercam.ai.anpr.getAnprEvents(projectExid, {
|
|
13
|
+
fromDate,
|
|
14
|
+
toDate,
|
|
15
|
+
cameraExid,
|
|
16
|
+
limit: 50,
|
|
17
|
+
}),
|
|
18
|
+
evercam.ai.roi.getROIs(projectExid, { cameraExid }),
|
|
19
|
+
]);
|
|
20
|
+
return safeText({
|
|
21
|
+
projectExid,
|
|
22
|
+
fromDate,
|
|
23
|
+
toDate,
|
|
24
|
+
gateReportCounts: counts.status === "fulfilled" ? counts.value : null,
|
|
25
|
+
anprEvents: anprEvents.status === "fulfilled" ? anprEvents.value : null,
|
|
26
|
+
rois: rois.status === "fulfilled" ? rois.value : null,
|
|
27
|
+
});
|
|
28
|
+
});
|
|
4
29
|
server.tool("list-anpr-events", "List ANPR (license plate recognition) events for a project", {
|
|
5
30
|
projectExid: z.string().describe("Project exid"),
|
|
6
31
|
fromDate: z.string().optional().describe("Start date ISO 8601"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anpr.js","sourceRoot":"","sources":["../../../src/tools/anpr.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"anpr.js","sourceRoot":"","sources":["../../../src/tools/anpr.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cameras.d.ts","sourceRoot":"","sources":["../../../src/tools/cameras.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAItC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"cameras.d.ts","sourceRoot":"","sources":["../../../src/tools/cameras.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAItC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAgI7E"}
|
|
@@ -18,6 +18,62 @@ export function registerCameraTools(server, evercam) {
|
|
|
18
18
|
const data = await evercam.api.cameras.getCameraById(cameraExid);
|
|
19
19
|
return safeText(data);
|
|
20
20
|
});
|
|
21
|
+
server.tool("get-camera-status", "Get full status for a camera: details, latest recorded snapshot, and live snapshot URL — all in one call. Use when the user asks what a specific camera is showing or its current status.", {
|
|
22
|
+
cameraExid: z.string().describe("Camera exid"),
|
|
23
|
+
}, async ({ cameraExid }) => {
|
|
24
|
+
const [details, latest] = await Promise.allSettled([
|
|
25
|
+
evercam.api.cameras.getCameraById(cameraExid),
|
|
26
|
+
evercam.api.recordings.latest(cameraExid),
|
|
27
|
+
]);
|
|
28
|
+
let liveUrl = null;
|
|
29
|
+
try {
|
|
30
|
+
const camera = await evercam.getCamera(cameraExid);
|
|
31
|
+
liveUrl = camera.getSnapshotUrl({ timestamp: new Date() });
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
liveUrl = null;
|
|
35
|
+
}
|
|
36
|
+
return safeText({
|
|
37
|
+
details: details.status === "fulfilled" ? details.value : null,
|
|
38
|
+
latestSnapshot: latest.status === "fulfilled" ? latest.value : null,
|
|
39
|
+
liveUrl,
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
server.tool("list-cameras-with-latest-snapshot", "List all cameras in a project, each with its most recent snapshot URL. Use when the user wants to see what all cameras are currently showing.", {
|
|
43
|
+
projectExid: z.string().describe("Project exid"),
|
|
44
|
+
}, async ({ projectExid }) => {
|
|
45
|
+
const cameras = await evercam.api.projects.getCameras(projectExid);
|
|
46
|
+
const cameraList = Array.isArray(cameras) ? cameras : (cameras.cameras ?? []);
|
|
47
|
+
const withSnapshots = await Promise.all(cameraList.map(async (camera) => {
|
|
48
|
+
try {
|
|
49
|
+
const snapshot = await evercam.api.recordings.latest(camera.exid);
|
|
50
|
+
return { ...camera, latestSnapshot: snapshot };
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return { ...camera, latestSnapshot: null };
|
|
54
|
+
}
|
|
55
|
+
}));
|
|
56
|
+
return safeText(withSnapshots);
|
|
57
|
+
});
|
|
58
|
+
server.tool("list-cameras-with-presence", "List all cameras in a project with presence detection intervals for a date range. Use when the user asks which cameras detected activity or people over a period.", {
|
|
59
|
+
projectExid: z.string().describe("Project exid"),
|
|
60
|
+
fromDate: z.string().describe("Start date ISO 8601"),
|
|
61
|
+
toDate: z.string().describe("End date ISO 8601"),
|
|
62
|
+
}, async ({ projectExid, fromDate, toDate }) => {
|
|
63
|
+
const cameras = await evercam.api.projects.getCameras(projectExid);
|
|
64
|
+
const cameraList = Array.isArray(cameras) ? cameras : (cameras.cameras ?? []);
|
|
65
|
+
const labsUrl = evercam.axios.env.evercamLabsUrl;
|
|
66
|
+
const withPresence = await Promise.all(cameraList.map(async (camera) => {
|
|
67
|
+
try {
|
|
68
|
+
const { data } = await evercam.axios.get(`${labsUrl}/cameras/${camera.exid}/segments/presence-intervals`, { params: { fromDate, toDate }, preserveCasing: true });
|
|
69
|
+
return { ...camera, presenceIntervals: data };
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
return { ...camera, presenceIntervals: null };
|
|
73
|
+
}
|
|
74
|
+
}));
|
|
75
|
+
return safeText(withPresence);
|
|
76
|
+
});
|
|
21
77
|
server.tool("update-camera", "Update camera properties", {
|
|
22
78
|
cameraExid: z.string().describe("Camera exid"),
|
|
23
79
|
name: z.string().optional().describe("Camera display name"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cameras.js","sourceRoot":"","sources":["../../../src/tools/cameras.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjD,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,OAAgB;IACrE,MAAM,CAAC,IAAI,CACT,cAAc,EACd,uFAAuF,EACvF;QACE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QAC7E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QACnD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;KACpE,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,EAAE,GAAG,CAAC,CAAA;QAC7C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC;YAChD,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAS;SACvD,CAAC,CAAA;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC,CACF,CAAA;IAED,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,+CAA+C,EAC/C;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;KAC/C,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QACvB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAChE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC,CACF,CAAA;IAED,MAAM,CAAC,IAAI,CACT,eAAe,EACf,0BAA0B,EAC1B;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAC3D,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACxE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;KAC5D,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE;QAClC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,MAAa,CAAC,CAAA;QAC9E,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC,CACF,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"cameras.js","sourceRoot":"","sources":["../../../src/tools/cameras.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../../src/tools/projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAItC,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../../src/tools/projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAItC,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CA+J9E"}
|
|
@@ -17,6 +17,46 @@ export function registerProjectTools(server, evercam) {
|
|
|
17
17
|
const data = await evercam.api.projects.getCameras(projectExid);
|
|
18
18
|
return safeText(data);
|
|
19
19
|
});
|
|
20
|
+
server.tool("list-projects-with-camera-count", "List all projects accessible to the authenticated user, each with its camera count. Use this when the user asks for projects and their number of cameras.", {}, async () => {
|
|
21
|
+
const projects = await evercam.api.projects.index();
|
|
22
|
+
const projectList = Array.isArray(projects) ? projects : (projects.projects ?? []);
|
|
23
|
+
const withCounts = await Promise.all(projectList.map(async (project) => {
|
|
24
|
+
try {
|
|
25
|
+
const cameras = await evercam.api.projects.getCameras(project.exid);
|
|
26
|
+
const cameraList = Array.isArray(cameras) ? cameras : (cameras.cameras ?? []);
|
|
27
|
+
return { ...project, cameraCount: cameraList.length };
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return { ...project, cameraCount: null };
|
|
31
|
+
}
|
|
32
|
+
}));
|
|
33
|
+
return safeText(withCounts);
|
|
34
|
+
});
|
|
35
|
+
server.tool("get-project-overview", "Get a full overview of a project: camera count, member count, and current weather. Use when the user asks for a project summary or dashboard.", {
|
|
36
|
+
projectExid: z.string().describe("Project exid"),
|
|
37
|
+
}, async ({ projectExid }) => {
|
|
38
|
+
const [cameras, members, weather] = await Promise.allSettled([
|
|
39
|
+
evercam.api.projects.getCameras(projectExid),
|
|
40
|
+
evercam.api.projects.getMembers(projectExid),
|
|
41
|
+
evercam.weather.current(projectExid, {}),
|
|
42
|
+
]);
|
|
43
|
+
const cameraList = cameras.status === "fulfilled"
|
|
44
|
+
? Array.isArray(cameras.value)
|
|
45
|
+
? cameras.value
|
|
46
|
+
: (cameras.value.cameras ?? [])
|
|
47
|
+
: [];
|
|
48
|
+
const memberList = members.status === "fulfilled"
|
|
49
|
+
? Array.isArray(members.value)
|
|
50
|
+
? members.value
|
|
51
|
+
: (members.value.members ?? [])
|
|
52
|
+
: [];
|
|
53
|
+
return safeText({
|
|
54
|
+
projectExid,
|
|
55
|
+
cameraCount: cameraList.length,
|
|
56
|
+
memberCount: memberList.length,
|
|
57
|
+
weather: weather.status === "fulfilled" ? weather.value : null,
|
|
58
|
+
});
|
|
59
|
+
});
|
|
20
60
|
server.tool("list-project-users", "List all users/members in a project", {
|
|
21
61
|
projectExid: z.string().describe("Project exid"),
|
|
22
62
|
}, async ({ projectExid }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../../src/tools/projects.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../../src/tools/projects.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siteAnalytics.d.ts","sourceRoot":"","sources":["../../../src/tools/siteAnalytics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAItC,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"siteAnalytics.d.ts","sourceRoot":"","sources":["../../../src/tools/siteAnalytics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAItC,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAuHpF"}
|
|
@@ -22,6 +22,42 @@ export function registerSiteAnalyticsTools(server, evercam) {
|
|
|
22
22
|
});
|
|
23
23
|
return safeText(data);
|
|
24
24
|
});
|
|
25
|
+
server.tool("search-with-snapshots", "Run a smart search and return each result with its snapshot URL. Use when the user wants to visually browse search results or asks to find frames matching a description.", {
|
|
26
|
+
projectExid: z.string().describe("Project exid"),
|
|
27
|
+
cameraExid: z.string().optional().describe("Filter by camera"),
|
|
28
|
+
query: z.string().optional().describe("Text search query"),
|
|
29
|
+
labels: z
|
|
30
|
+
.array(z.string())
|
|
31
|
+
.optional()
|
|
32
|
+
.describe("Object labels to search for (e.g. ['person', 'car'])"),
|
|
33
|
+
fromDate: z.string().optional().describe("Start date ISO 8601"),
|
|
34
|
+
toDate: z.string().optional().describe("End date ISO 8601"),
|
|
35
|
+
pageSize: z.number().optional().describe("Results per page (max 10 for this tool)"),
|
|
36
|
+
}, async ({ projectExid, pageSize, ...filters }) => {
|
|
37
|
+
const safePageSize = Math.min(pageSize ?? 5, 10);
|
|
38
|
+
const searchData = await evercam.ai.siteAnalytics.smartSearchAll(projectExid, {
|
|
39
|
+
pageSize: safePageSize,
|
|
40
|
+
...filters,
|
|
41
|
+
});
|
|
42
|
+
const results = Array.isArray(searchData)
|
|
43
|
+
? searchData
|
|
44
|
+
: (searchData.results ?? searchData.data ?? []);
|
|
45
|
+
const withSnapshots = await Promise.all(results.map(async (result) => {
|
|
46
|
+
const cameraId = result.cameraExid ?? result.camera_exid ?? result.cameraId;
|
|
47
|
+
const timestamp = result.timestamp ?? result.createdAt ?? result.created_at;
|
|
48
|
+
if (!cameraId || !timestamp)
|
|
49
|
+
return { ...result, snapshotUrl: null };
|
|
50
|
+
try {
|
|
51
|
+
const camera = await evercam.getCamera(cameraId);
|
|
52
|
+
const snapshotUrl = camera.getSnapshotUrl({ timestamp: new Date(timestamp) });
|
|
53
|
+
return { ...result, snapshotUrl };
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return { ...result, snapshotUrl: null };
|
|
57
|
+
}
|
|
58
|
+
}));
|
|
59
|
+
return safeText({ ...(searchData ?? {}), results: withSnapshots });
|
|
60
|
+
});
|
|
25
61
|
server.tool("list-smart-search-queries", "List saved smart search queries for a project", {
|
|
26
62
|
projectExid: z.string().describe("Project exid"),
|
|
27
63
|
}, async ({ projectExid }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siteAnalytics.js","sourceRoot":"","sources":["../../../src/tools/siteAnalytics.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjD,MAAM,UAAU,0BAA0B,CAAC,MAAiB,EAAE,OAAgB;IAC5E,MAAM,CAAC,IAAI,CACT,cAAc,EACd,yDAAyD,EACzD;QACE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAChD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAC9D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC1D,MAAM,EAAE,CAAC;aACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,EAAE;aACV,QAAQ,CAAC,sDAAsD,CAAC;QACnE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAC/D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC3D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QACnD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;KAC7D,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE;QACpD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,EAAE,GAAG,CAAC,CAAA;QAClD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,cAAc,CAAC,WAAW,EAAE;YACtE,IAAI;YACJ,QAAQ,EAAE,YAAY;YACtB,GAAG,OAAO;SACJ,CAAC,CAAA;QACT,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC,CACF,CAAA;IAED,MAAM,CAAC,IAAI,CACT,2BAA2B,EAC3B,+CAA+C,EAC/C;QACE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;KACjD,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;QACxB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,EAAE,EAAS,CAAC,CAAA;QAC9E,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC,CACF,CAAA;IAED,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,yCAAyC,EACzC;QACE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAChD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC9C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACpD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAChD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,wCAAwC,CAAC;KAC/E,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE;QACnC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAClE,WAAW,EACX,MAAa,CACd,CAAA;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC,CACF,CAAA;IAED,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,sDAAsD,EACtD;QACE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAChD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACpD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAChD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;KAC/D,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE;QACnC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,EAAE,MAAa,CAAC,CAAA;QAC9E,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC,CACF,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"siteAnalytics.js","sourceRoot":"","sources":["../../../src/tools/siteAnalytics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshots.d.ts","sourceRoot":"","sources":["../../../src/tools/snapshots.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAItC,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"snapshots.d.ts","sourceRoot":"","sources":["../../../src/tools/snapshots.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAItC,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAkL/E"}
|
|
@@ -34,6 +34,44 @@ export function registerSnapshotTools(server, evercam) {
|
|
|
34
34
|
const mimeType = response.headers["content-type"] ?? "image/jpeg";
|
|
35
35
|
return imageContent(bytes.toString("base64"), mimeType);
|
|
36
36
|
});
|
|
37
|
+
server.tool("get-camera-day-summary", "Get a summary for a specific day on a camera: which hours have recordings and presence detection intervals. Use when the user asks what happened on a camera on a given day.", {
|
|
38
|
+
cameraExid: z.string().describe("Camera exid"),
|
|
39
|
+
year: z.number().describe("Year (e.g. 2024)"),
|
|
40
|
+
month: z.number().describe("Month 1-12"),
|
|
41
|
+
day: z.number().describe("Day 1-31"),
|
|
42
|
+
}, async ({ cameraExid, year, month, day }) => {
|
|
43
|
+
const pad = (n) => String(n).padStart(2, "0");
|
|
44
|
+
const fromDate = `${year}-${pad(month)}-${pad(day)}T00:00:00Z`;
|
|
45
|
+
const toDate = `${year}-${pad(month)}-${pad(day)}T23:59:59Z`;
|
|
46
|
+
const labsUrl = evercam.axios.env.evercamLabsUrl;
|
|
47
|
+
const [availableHours, presence] = await Promise.allSettled([
|
|
48
|
+
evercam.api.recordings.availableHours({
|
|
49
|
+
cameraId: cameraExid,
|
|
50
|
+
year: String(year),
|
|
51
|
+
month: String(month),
|
|
52
|
+
day: String(day),
|
|
53
|
+
}),
|
|
54
|
+
evercam.axios.get(`${labsUrl}/cameras/${cameraExid}/segments/presence-intervals`, {
|
|
55
|
+
params: { fromDate, toDate },
|
|
56
|
+
preserveCasing: true,
|
|
57
|
+
}),
|
|
58
|
+
]);
|
|
59
|
+
return safeText({
|
|
60
|
+
cameraExid,
|
|
61
|
+
date: `${year}-${pad(month)}-${pad(day)}`,
|
|
62
|
+
availableHours: availableHours.status === "fulfilled" ? availableHours.value : null,
|
|
63
|
+
presenceIntervals: presence.status === "fulfilled" ? presence.value.data : null,
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
server.tool("get-camera-recording-range", "Get the full recording date range for a camera — returns both the oldest and latest snapshot timestamps in one call. Use when the user asks how long a camera has been recording or what its footage spans.", {
|
|
67
|
+
cameraExid: z.string().describe("Camera exid"),
|
|
68
|
+
}, async ({ cameraExid }) => {
|
|
69
|
+
const [oldest, latest] = await Promise.all([
|
|
70
|
+
evercam.api.recordings.oldest(cameraExid),
|
|
71
|
+
evercam.api.recordings.latest(cameraExid),
|
|
72
|
+
]);
|
|
73
|
+
return safeText({ cameraExid, oldest, latest });
|
|
74
|
+
});
|
|
37
75
|
server.tool("get-snapshot-at", "Get the recorded snapshot nearest to a given timestamp", {
|
|
38
76
|
cameraExid: z.string().describe("Camera exid"),
|
|
39
77
|
timestamp: z.string().describe("ISO 8601 timestamp"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshots.js","sourceRoot":"","sources":["../../../src/tools/snapshots.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"snapshots.js","sourceRoot":"","sources":["../../../src/tools/snapshots.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
/**
|
|
3
3
|
* Call an MCP tool handler directly without going through a transport.
|
|
4
|
-
* Used by the HTTP REST endpoint (POST /tools/:toolName).
|
|
4
|
+
* Used by the HTTP REST endpoint (POST /tools/:toolName) and the CLI `run` command.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* Call validateCallToolInternals() at server startup to catch SDK version
|
|
9
|
-
* breakage early rather than at runtime.
|
|
6
|
+
* Accesses _registeredTools on McpServer (undocumented but stable across v1.x).
|
|
7
|
+
* Each registered tool exposes `inputSchema` (Zod) and `callback`.
|
|
8
|
+
* Call validateCallToolInternals() at server startup to catch SDK version breakage early.
|
|
10
9
|
*/
|
|
11
10
|
export declare function callToolDirect(server: McpServer, toolName: string, args: unknown): Promise<unknown>;
|
|
12
11
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callTool.d.ts","sourceRoot":"","sources":["../../../src/utils/callTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAIxE
|
|
1
|
+
{"version":3,"file":"callTool.d.ts","sourceRoot":"","sources":["../../../src/utils/callTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAIxE;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,OAAO,CAAC,CA6BlB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CASjE"}
|
|
@@ -2,12 +2,11 @@ import { withRetry } from "./retry.js";
|
|
|
2
2
|
import { normalizeError } from "./errors.js";
|
|
3
3
|
/**
|
|
4
4
|
* Call an MCP tool handler directly without going through a transport.
|
|
5
|
-
* Used by the HTTP REST endpoint (POST /tools/:toolName).
|
|
5
|
+
* Used by the HTTP REST endpoint (POST /tools/:toolName) and the CLI `run` command.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* Call validateCallToolInternals() at server startup to catch SDK version
|
|
10
|
-
* breakage early rather than at runtime.
|
|
7
|
+
* Accesses _registeredTools on McpServer (undocumented but stable across v1.x).
|
|
8
|
+
* Each registered tool exposes `inputSchema` (Zod) and `callback`.
|
|
9
|
+
* Call validateCallToolInternals() at server startup to catch SDK version breakage early.
|
|
11
10
|
*/
|
|
12
11
|
export async function callToolDirect(server, toolName, args) {
|
|
13
12
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -17,10 +16,17 @@ export async function callToolDirect(server, toolName, args) {
|
|
|
17
16
|
throw new Error(`Tool ${toolName} not found`);
|
|
18
17
|
if (!tool.enabled)
|
|
19
18
|
throw new Error(`Tool ${toolName} disabled`);
|
|
20
|
-
|
|
19
|
+
let parsed = args;
|
|
20
|
+
if (tool.inputSchema) {
|
|
21
|
+
const parseResult = await tool.inputSchema.safeParseAsync(args);
|
|
22
|
+
if (!parseResult.success) {
|
|
23
|
+
throw new Error(`Invalid arguments for tool ${toolName}: ${parseResult.error.message}`);
|
|
24
|
+
}
|
|
25
|
+
parsed = parseResult.data;
|
|
26
|
+
}
|
|
21
27
|
let result;
|
|
22
28
|
try {
|
|
23
|
-
result = await withRetry(() =>
|
|
29
|
+
result = await withRetry(() => tool.callback(parsed, {}));
|
|
24
30
|
}
|
|
25
31
|
catch (err) {
|
|
26
32
|
const message = normalizeError(err).message;
|
|
@@ -39,16 +45,9 @@ export async function callToolDirect(server, toolName, args) {
|
|
|
39
45
|
export function validateCallToolInternals(server) {
|
|
40
46
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
41
47
|
const internal = server;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
if (typeof internal.validateToolInput !== "function")
|
|
46
|
-
missing.push("validateToolInput");
|
|
47
|
-
if (typeof internal.executeToolHandler !== "function")
|
|
48
|
-
missing.push("executeToolHandler");
|
|
49
|
-
if (missing.length > 0) {
|
|
50
|
-
throw new Error(`MCP SDK private API changed — callTool.ts needs updating. Missing: ${missing.join(", ")}. ` +
|
|
51
|
-
`Check @modelcontextprotocol/sdk release notes.`);
|
|
48
|
+
if (typeof internal._registeredTools !== "object") {
|
|
49
|
+
throw new Error(`MCP SDK private API changed — callTool.ts needs updating. ` +
|
|
50
|
+
`_registeredTools is missing. Check @modelcontextprotocol/sdk release notes.`);
|
|
52
51
|
}
|
|
53
52
|
}
|
|
54
53
|
//# sourceMappingURL=callTool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callTool.js","sourceRoot":"","sources":["../../../src/utils/callTool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C
|
|
1
|
+
{"version":3,"file":"callTool.js","sourceRoot":"","sources":["../../../src/utils/callTool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAiB,EACjB,QAAgB,EAChB,IAAa;IAEb,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,MAAa,CAAA;IAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;IAElD,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,YAAY,CAAC,CAAA;IACxD,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,WAAW,CAAC,CAAA;IAE/D,IAAI,MAAM,GAAG,IAAI,CAAA;IACjB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QAC/D,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,KAAK,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QACzF,CAAC;QACD,MAAM,GAAG,WAAW,CAAC,IAAI,CAAA;IAC3B,CAAC;IAED,IAAI,MAAe,CAAA;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAA;IAC3D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,CAAA;QAC3C,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YAC9E,OAAO,EAAE,IAAI;SACd,CAAA;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,MAAa,CAAA;IAC9B,IAAI,OAAO,QAAQ,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CACb,4DAA4D;YAC1D,6EAA6E,CAChF,CAAA;IACH,CAAC;AACH,CAAC"}
|