@lightsage/mcp 0.4.15 → 0.4.17
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/README.md +2 -2
- package/api/mcp.js +30 -0
- package/bin/mcp-server.js +1766 -510
- package/bin/mcp-server.js.map +56 -25
- package/esm/funcs/agentAnalyticsCountriesList.d.ts +16 -0
- package/esm/funcs/agentAnalyticsCountriesList.d.ts.map +1 -0
- package/esm/funcs/agentAnalyticsCountriesList.js +94 -0
- package/esm/funcs/agentAnalyticsCountriesList.js.map +1 -0
- package/esm/funcs/agentAnalyticsErrorPagesList.d.ts +16 -0
- package/esm/funcs/agentAnalyticsErrorPagesList.d.ts.map +1 -0
- package/esm/funcs/agentAnalyticsErrorPagesList.js +96 -0
- package/esm/funcs/agentAnalyticsErrorPagesList.js.map +1 -0
- package/esm/funcs/agentAnalyticsPagesList.d.ts +16 -0
- package/esm/funcs/agentAnalyticsPagesList.d.ts.map +1 -0
- package/esm/funcs/agentAnalyticsPagesList.js +98 -0
- package/esm/funcs/agentAnalyticsPagesList.js.map +1 -0
- package/esm/funcs/agentAnalyticsSitesList.d.ts +15 -0
- package/esm/funcs/agentAnalyticsSitesList.d.ts.map +1 -0
- package/esm/funcs/agentAnalyticsSitesList.js +72 -0
- package/esm/funcs/agentAnalyticsSitesList.js.map +1 -0
- package/esm/funcs/agentAnalyticsSourcesList.d.ts +16 -0
- package/esm/funcs/agentAnalyticsSourcesList.d.ts.map +1 -0
- package/esm/funcs/agentAnalyticsSourcesList.js +93 -0
- package/esm/funcs/agentAnalyticsSourcesList.js.map +1 -0
- package/esm/funcs/agentAnalyticsSummaryRetrieve.d.ts +16 -0
- package/esm/funcs/agentAnalyticsSummaryRetrieve.d.ts.map +1 -0
- package/esm/funcs/agentAnalyticsSummaryRetrieve.js +93 -0
- package/esm/funcs/agentAnalyticsSummaryRetrieve.js.map +1 -0
- package/esm/funcs/tasksCreate.d.ts +16 -0
- package/esm/funcs/tasksCreate.d.ts.map +1 -0
- package/esm/funcs/tasksCreate.js +83 -0
- package/esm/funcs/tasksCreate.js.map +1 -0
- package/esm/landing-page.js +1 -1
- package/esm/lib/config.d.ts +2 -2
- package/esm/lib/config.js +2 -2
- package/esm/mcp-server/mcp-server.js +1 -1
- package/esm/mcp-server/server.d.ts.map +1 -1
- package/esm/mcp-server/server.js +15 -1
- package/esm/mcp-server/server.js.map +1 -1
- package/esm/mcp-server/tools/agentAnalyticsCountriesList.d.ts +7 -0
- package/esm/mcp-server/tools/agentAnalyticsCountriesList.d.ts.map +1 -0
- package/esm/mcp-server/tools/agentAnalyticsCountriesList.js +35 -0
- package/esm/mcp-server/tools/agentAnalyticsCountriesList.js.map +1 -0
- package/esm/mcp-server/tools/agentAnalyticsErrorPagesList.d.ts +7 -0
- package/esm/mcp-server/tools/agentAnalyticsErrorPagesList.d.ts.map +1 -0
- package/esm/mcp-server/tools/agentAnalyticsErrorPagesList.js +35 -0
- package/esm/mcp-server/tools/agentAnalyticsErrorPagesList.js.map +1 -0
- package/esm/mcp-server/tools/agentAnalyticsPagesList.d.ts +7 -0
- package/esm/mcp-server/tools/agentAnalyticsPagesList.d.ts.map +1 -0
- package/esm/mcp-server/tools/agentAnalyticsPagesList.js +35 -0
- package/esm/mcp-server/tools/agentAnalyticsPagesList.js.map +1 -0
- package/esm/mcp-server/tools/agentAnalyticsSitesList.d.ts +3 -0
- package/esm/mcp-server/tools/agentAnalyticsSitesList.d.ts.map +1 -0
- package/esm/mcp-server/tools/agentAnalyticsSitesList.js +30 -0
- package/esm/mcp-server/tools/agentAnalyticsSitesList.js.map +1 -0
- package/esm/mcp-server/tools/agentAnalyticsSourcesList.d.ts +7 -0
- package/esm/mcp-server/tools/agentAnalyticsSourcesList.d.ts.map +1 -0
- package/esm/mcp-server/tools/agentAnalyticsSourcesList.js +35 -0
- package/esm/mcp-server/tools/agentAnalyticsSourcesList.js.map +1 -0
- package/esm/mcp-server/tools/agentAnalyticsSummaryRetrieve.d.ts +7 -0
- package/esm/mcp-server/tools/agentAnalyticsSummaryRetrieve.d.ts.map +1 -0
- package/esm/mcp-server/tools/agentAnalyticsSummaryRetrieve.js +35 -0
- package/esm/mcp-server/tools/agentAnalyticsSummaryRetrieve.js.map +1 -0
- package/esm/mcp-server/tools/tasksCreate.d.ts +7 -0
- package/esm/mcp-server/tools/tasksCreate.d.ts.map +1 -0
- package/esm/mcp-server/tools/tasksCreate.js +35 -0
- package/esm/mcp-server/tools/tasksCreate.js.map +1 -0
- package/esm/models/createtaskrequest.d.ts +65 -0
- package/esm/models/createtaskrequest.d.ts.map +1 -0
- package/esm/models/createtaskrequest.js +64 -0
- package/esm/models/createtaskrequest.js.map +1 -0
- package/esm/models/graderdefinition.d.ts +15 -0
- package/esm/models/graderdefinition.d.ts.map +1 -1
- package/esm/models/graderdefinition.js +13 -0
- package/esm/models/graderdefinition.js.map +1 -1
- package/esm/models/publicagentanalyticscountrylistresponse.d.ts +10 -0
- package/esm/models/publicagentanalyticscountrylistresponse.d.ts.map +1 -0
- package/esm/models/publicagentanalyticscountrylistresponse.js +13 -0
- package/esm/models/publicagentanalyticscountrylistresponse.js.map +1 -0
- package/esm/models/publicagentanalyticserrorpagelistresponse.d.ts +11 -0
- package/esm/models/publicagentanalyticserrorpagelistresponse.d.ts.map +1 -0
- package/esm/models/publicagentanalyticserrorpagelistresponse.js +14 -0
- package/esm/models/publicagentanalyticserrorpagelistresponse.js.map +1 -0
- package/esm/models/publicagentanalyticspagelistresponse.d.ts +11 -0
- package/esm/models/publicagentanalyticspagelistresponse.d.ts.map +1 -0
- package/esm/models/publicagentanalyticspagelistresponse.js +14 -0
- package/esm/models/publicagentanalyticspagelistresponse.js.map +1 -0
- package/esm/models/publicagentanalyticssite.d.ts +9 -0
- package/esm/models/publicagentanalyticssite.d.ts.map +1 -0
- package/esm/models/publicagentanalyticssite.js +12 -0
- package/esm/models/publicagentanalyticssite.js.map +1 -0
- package/esm/models/publicagentanalyticssitelistresponse.d.ts +7 -0
- package/esm/models/publicagentanalyticssitelistresponse.d.ts.map +1 -0
- package/esm/models/publicagentanalyticssitelistresponse.js +10 -0
- package/esm/models/publicagentanalyticssitelistresponse.js.map +1 -0
- package/esm/models/publicagentanalyticssourcelistresponse.d.ts +10 -0
- package/esm/models/publicagentanalyticssourcelistresponse.d.ts.map +1 -0
- package/esm/models/publicagentanalyticssourcelistresponse.js +13 -0
- package/esm/models/publicagentanalyticssourcelistresponse.js.map +1 -0
- package/esm/models/publicagentanalyticssummary.d.ts +11 -0
- package/esm/models/publicagentanalyticssummary.d.ts.map +1 -0
- package/esm/models/publicagentanalyticssummary.js +14 -0
- package/esm/models/publicagentanalyticssummary.js.map +1 -0
- package/esm/models/publicagentcountry.d.ts +7 -0
- package/esm/models/publicagentcountry.d.ts.map +1 -0
- package/esm/models/publicagentcountry.js +11 -0
- package/esm/models/publicagentcountry.js.map +1 -0
- package/esm/models/publicagenterrorpage.d.ts +12 -0
- package/esm/models/publicagenterrorpage.d.ts.map +1 -0
- package/esm/models/publicagenterrorpage.js +16 -0
- package/esm/models/publicagenterrorpage.js.map +1 -0
- package/esm/models/publicagenterrorsource.d.ts +40 -0
- package/esm/models/publicagenterrorsource.d.ts.map +1 -0
- package/esm/models/publicagenterrorsource.js +40 -0
- package/esm/models/publicagenterrorsource.js.map +1 -0
- package/esm/models/publicagenttrafficpage.d.ts +14 -0
- package/esm/models/publicagenttrafficpage.d.ts.map +1 -0
- package/esm/models/publicagenttrafficpage.js +17 -0
- package/esm/models/publicagenttrafficpage.js.map +1 -0
- package/esm/models/publicagenttrafficsource.d.ts +47 -0
- package/esm/models/publicagenttrafficsource.d.ts.map +1 -0
- package/esm/models/publicagenttrafficsource.js +44 -0
- package/esm/models/publicagenttrafficsource.js.map +1 -0
- package/esm/models/publicagenttraffictotals.d.ts +13 -0
- package/esm/models/publicagenttraffictotals.d.ts.map +1 -0
- package/esm/models/publicagenttraffictotals.js +16 -0
- package/esm/models/publicagenttraffictotals.js.map +1 -0
- package/esm/models/updatetaskrequest.d.ts +8 -8
- package/esm/models/updatetaskrequest.d.ts.map +1 -1
- package/esm/models/updatetaskrequest.js +6 -6
- package/esm/models/updatetaskrequest.js.map +1 -1
- package/esm/models/v2agentanalyticscountrieslistop.d.ts +13 -0
- package/esm/models/v2agentanalyticscountrieslistop.d.ts.map +1 -0
- package/esm/models/v2agentanalyticscountrieslistop.js +18 -0
- package/esm/models/v2agentanalyticscountrieslistop.js.map +1 -0
- package/esm/models/v2agentanalyticserrorpageslistop.d.ts +39 -0
- package/esm/models/v2agentanalyticserrorpageslistop.d.ts.map +1 -0
- package/esm/models/v2agentanalyticserrorpageslistop.js +39 -0
- package/esm/models/v2agentanalyticserrorpageslistop.js.map +1 -0
- package/esm/models/v2agentanalyticspageslistop.d.ts +68 -0
- package/esm/models/v2agentanalyticspageslistop.d.ts.map +1 -0
- package/esm/models/v2agentanalyticspageslistop.js +65 -0
- package/esm/models/v2agentanalyticspageslistop.js.map +1 -0
- package/esm/models/v2agentanalyticssourceslistop.d.ts +12 -0
- package/esm/models/v2agentanalyticssourceslistop.d.ts.map +1 -0
- package/esm/models/v2agentanalyticssourceslistop.js +17 -0
- package/esm/models/v2agentanalyticssourceslistop.js.map +1 -0
- package/esm/models/v2agentanalyticssummaryretrieveop.d.ts +12 -0
- package/esm/models/v2agentanalyticssummaryretrieveop.d.ts.map +1 -0
- package/esm/models/v2agentanalyticssummaryretrieveop.js +17 -0
- package/esm/models/v2agentanalyticssummaryretrieveop.js.map +1 -0
- package/esm/models/v2inlinemcpdefinition.js +1 -1
- package/esm/models/v2inlinemcpdefinition.js.map +1 -1
- package/esm/models/v2publictask.js +1 -1
- package/esm/models/v2publictask.js.map +1 -1
- package/esm/models/v2repository.d.ts +4 -4
- package/esm/models/v2repository.d.ts.map +1 -1
- package/esm/models/v2repository.js +3 -3
- package/esm/models/v2repository.js.map +1 -1
- package/esm/models/v2taskscreateop.d.ts +13 -0
- package/esm/models/v2taskscreateop.d.ts.map +1 -0
- package/esm/models/v2taskscreateop.js +16 -0
- package/esm/models/v2taskscreateop.js.map +1 -0
- package/esm/tool-names.d.ts.map +1 -1
- package/esm/tool-names.js +28 -0
- package/esm/tool-names.js.map +1 -1
- package/lib/tracker.js +219 -0
- package/package.json +3 -1
- package/src/funcs/agentAnalyticsCountriesList.ts +159 -0
- package/src/funcs/agentAnalyticsErrorPagesList.ts +161 -0
- package/src/funcs/agentAnalyticsPagesList.ts +163 -0
- package/src/funcs/agentAnalyticsSitesList.ts +124 -0
- package/src/funcs/agentAnalyticsSourcesList.ts +158 -0
- package/src/funcs/agentAnalyticsSummaryRetrieve.ts +158 -0
- package/src/funcs/tasksCreate.ts +145 -0
- package/src/landing-page.ts +1 -1
- package/src/lib/config.ts +2 -2
- package/src/mcp-server/mcp-server.ts +1 -1
- package/src/mcp-server/server.ts +15 -1
- package/src/mcp-server/tools/agentAnalyticsCountriesList.ts +43 -0
- package/src/mcp-server/tools/agentAnalyticsErrorPagesList.ts +43 -0
- package/src/mcp-server/tools/agentAnalyticsPagesList.ts +43 -0
- package/src/mcp-server/tools/agentAnalyticsSitesList.ts +36 -0
- package/src/mcp-server/tools/agentAnalyticsSourcesList.ts +43 -0
- package/src/mcp-server/tools/agentAnalyticsSummaryRetrieve.ts +43 -0
- package/src/mcp-server/tools/tasksCreate.ts +43 -0
- package/src/models/createtaskrequest.ts +98 -0
- package/src/models/graderdefinition.ts +20 -0
- package/src/models/publicagentanalyticscountrylistresponse.ts +28 -0
- package/src/models/publicagentanalyticserrorpagelistresponse.ts +32 -0
- package/src/models/publicagentanalyticspagelistresponse.ts +30 -0
- package/src/models/publicagentanalyticssite.ts +26 -0
- package/src/models/publicagentanalyticssitelistresponse.ts +20 -0
- package/src/models/publicagentanalyticssourcelistresponse.ts +28 -0
- package/src/models/publicagentanalyticssummary.ts +28 -0
- package/src/models/publicagentcountry.ts +16 -0
- package/src/models/publicagenterrorpage.ts +35 -0
- package/src/models/publicagenterrorsource.ts +63 -0
- package/src/models/publicagenttrafficpage.ts +46 -0
- package/src/models/publicagenttrafficsource.ts +77 -0
- package/src/models/publicagenttraffictotals.ts +42 -0
- package/src/models/updatetaskrequest.ts +14 -10
- package/src/models/v2agentanalyticscountrieslistop.ts +45 -0
- package/src/models/v2agentanalyticserrorpageslistop.ts +79 -0
- package/src/models/v2agentanalyticspageslistop.ts +119 -0
- package/src/models/v2agentanalyticssourceslistop.ts +43 -0
- package/src/models/v2agentanalyticssummaryretrieveop.ts +43 -0
- package/src/models/v2inlinemcpdefinition.ts +1 -1
- package/src/models/v2publictask.ts +1 -1
- package/src/models/v2repository.ts +5 -5
- package/src/models/v2taskscreateop.ts +34 -0
- package/src/tool-names.ts +28 -0
- package/test/tracker.test.js +323 -0
package/README.md
CHANGED
|
@@ -33,9 +33,9 @@ Lightsage Public API: Public API for Lightsage CLI and external integrations.
|
|
|
33
33
|
<details>
|
|
34
34
|
<summary>Claude Desktop</summary>
|
|
35
35
|
|
|
36
|
-
Install the MCP server as a Desktop Extension using the pre-built [`mcp-server.mcpb`](https://github.com/lightsagehq/mcp/releases/download/v0.4.
|
|
36
|
+
Install the MCP server as a Desktop Extension using the pre-built [`mcp-server.mcpb`](https://github.com/lightsagehq/mcp/releases/download/v0.4.17/mcp-server.mcpb) file:
|
|
37
37
|
|
|
38
|
-
Simply drag and drop the [`mcp-server.mcpb`](https://github.com/lightsagehq/mcp/releases/download/v0.4.
|
|
38
|
+
Simply drag and drop the [`mcp-server.mcpb`](https://github.com/lightsagehq/mcp/releases/download/v0.4.17/mcp-server.mcpb) file onto Claude Desktop to install the extension.
|
|
39
39
|
|
|
40
40
|
The MCP bundle package includes the MCP server and all necessary configuration. Once installed, the server will be available without additional setup.
|
|
41
41
|
|
package/api/mcp.js
CHANGED
|
@@ -10,6 +10,15 @@ import {
|
|
|
10
10
|
exchangeFailureResponse,
|
|
11
11
|
} from "../lib/oauth.js";
|
|
12
12
|
import { registerProfileTool } from "../lib/profile.js";
|
|
13
|
+
import {
|
|
14
|
+
apiKeyCaller,
|
|
15
|
+
clearVerifiedCaller,
|
|
16
|
+
flushTracking,
|
|
17
|
+
instrumentServer,
|
|
18
|
+
isTrackedApiKey,
|
|
19
|
+
setVerifiedCaller,
|
|
20
|
+
trackingEnabled,
|
|
21
|
+
} from "../lib/tracker.js";
|
|
13
22
|
|
|
14
23
|
const logLevel = process.env.MCP_LOG_LEVEL || "info";
|
|
15
24
|
const logger = createConsoleLogger(logLevel);
|
|
@@ -79,6 +88,9 @@ export default async function handler(req, res) {
|
|
|
79
88
|
return;
|
|
80
89
|
}
|
|
81
90
|
|
|
91
|
+
// Only this handler may say who the caller is (see lib/tracker.js)
|
|
92
|
+
clearVerifiedCaller(req);
|
|
93
|
+
|
|
82
94
|
const headers = new Headers();
|
|
83
95
|
for (const [key, value] of Object.entries(req.headers)) {
|
|
84
96
|
if (Array.isArray(value)) {
|
|
@@ -118,6 +130,8 @@ export default async function handler(req, res) {
|
|
|
118
130
|
res.status(401).json({ error: "unauthorized" });
|
|
119
131
|
return;
|
|
120
132
|
}
|
|
133
|
+
// The user, not the token: tokens rotate, so sessions would split
|
|
134
|
+
setVerifiedCaller(req, `oauth:${auth.userId}`);
|
|
121
135
|
|
|
122
136
|
try {
|
|
123
137
|
const identity = await exchangeForLightsageIdentity(
|
|
@@ -140,6 +154,17 @@ export default async function handler(req, res) {
|
|
|
140
154
|
}
|
|
141
155
|
|
|
142
156
|
const flags = getFlags();
|
|
157
|
+
|
|
158
|
+
// Record analytics only for callers who proved who they are. A request key
|
|
159
|
+
// is checked against the API, because tools that never call it accept any
|
|
160
|
+
// value. A static server key is the deployment's own.
|
|
161
|
+
if (trackingEnabled && requestApiKey) {
|
|
162
|
+
if (await isTrackedApiKey(requestApiKey, flags["server-url"])) {
|
|
163
|
+
setVerifiedCaller(req, apiKeyCaller(requestApiKey));
|
|
164
|
+
}
|
|
165
|
+
} else if (trackingEnabled && !useOAuth && !requestApiKey) {
|
|
166
|
+
setVerifiedCaller(req, "static:server");
|
|
167
|
+
}
|
|
143
168
|
// OAuth-enabled deployments may use either a caller-supplied request key or
|
|
144
169
|
// an OAuth-exchanged key, but must never fall back to a static server key.
|
|
145
170
|
const disableStaticAuth = useOAuth
|
|
@@ -162,6 +187,10 @@ export default async function handler(req, res) {
|
|
|
162
187
|
registerProfileTool(mcpServer, profile);
|
|
163
188
|
}
|
|
164
189
|
|
|
190
|
+
if (req.headers["x-lightsage-verified-caller"]) {
|
|
191
|
+
instrumentServer(mcpServer);
|
|
192
|
+
}
|
|
193
|
+
|
|
165
194
|
mcpServer.server.onerror = (error) => {
|
|
166
195
|
logger.error("MCP protocol error", {
|
|
167
196
|
error: error instanceof Error ? error.message : String(error),
|
|
@@ -171,4 +200,5 @@ export default async function handler(req, res) {
|
|
|
171
200
|
|
|
172
201
|
await mcpServer.connect(transport);
|
|
173
202
|
await transport.handleRequest(req, res, req.body);
|
|
203
|
+
await flushTracking(res);
|
|
174
204
|
}
|