@plaud-ai/mcp 0.3.6 → 0.3.7
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.
|
@@ -174,9 +174,14 @@ function registerTools(server, client, hooks) {
|
|
|
174
174
|
const requestId = emitToolClick("get_file", { file_id });
|
|
175
175
|
try {
|
|
176
176
|
const file = await client.getFile(file_id);
|
|
177
|
+
let text = JSON.stringify(file, null, 2);
|
|
178
|
+
if (!file.presigned_url) {
|
|
179
|
+
const synced = !!(file.duration || file.source_list && file.source_list.length);
|
|
180
|
+
text += synced ? "\n\nNote: `presigned_url` (audio download URL) is null for this otherwise-synced recording. This is usually a transient backend signing issue \u2014 retry get_file in a few minutes to obtain the URL." : "\n\nNote: `presigned_url` (audio download URL) is null \u2014 audio may not yet be available for this recording.";
|
|
181
|
+
}
|
|
177
182
|
recordToolMetric("get_file", "success", Date.now() - start, requestId, { file_id });
|
|
178
|
-
logger.info({ event: "tool_call_end", tool: "get_file", duration_ms: Date.now() - start });
|
|
179
|
-
return { content: [{ type: "text", text
|
|
183
|
+
logger.info({ event: "tool_call_end", tool: "get_file", duration_ms: Date.now() - start, presigned_url_present: !!file.presigned_url });
|
|
184
|
+
return { content: [{ type: "text", text }] };
|
|
180
185
|
} catch (err) {
|
|
181
186
|
recordToolMetric("get_file", "error", Date.now() - start, requestId, { file_id }, err);
|
|
182
187
|
logger.error({ event: "tool_call_error", tool: "get_file", duration_ms: Date.now() - start, error: String(err) });
|
package/dist/index.js
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
import {
|
|
9
9
|
normalizeMcpHost,
|
|
10
10
|
registerTools
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-VLZPO2CO.js";
|
|
12
12
|
import {
|
|
13
13
|
capture,
|
|
14
14
|
classifyError,
|
|
@@ -31,7 +31,7 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
|
|
|
31
31
|
import open from "open";
|
|
32
32
|
var server = new McpServer({
|
|
33
33
|
name: "plaud",
|
|
34
|
-
version: "0.3.
|
|
34
|
+
version: "0.3.7"
|
|
35
35
|
});
|
|
36
36
|
var CALLBACK_PORT = 8199;
|
|
37
37
|
var LOGIN_TIMEOUT_MS = 12e4;
|
|
@@ -191,7 +191,7 @@ async function main() {
|
|
|
191
191
|
return;
|
|
192
192
|
}
|
|
193
193
|
if (sub === "http") {
|
|
194
|
-
const { startHttpServer } = await import("./server-
|
|
194
|
+
const { startHttpServer } = await import("./server-2HG4R4LT.js");
|
|
195
195
|
const { startMetricsServer } = await import("./server-NKCNUA6P.js");
|
|
196
196
|
startMetricsServer();
|
|
197
197
|
startHttpServer();
|
|
@@ -217,7 +217,7 @@ Usage:
|
|
|
217
217
|
try {
|
|
218
218
|
await initTelemetry({
|
|
219
219
|
surface: "mcp",
|
|
220
|
-
appVersion: "0.3.
|
|
220
|
+
appVersion: "0.3.7",
|
|
221
221
|
transport: "stdio"
|
|
222
222
|
});
|
|
223
223
|
} catch {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
normalizeMcpHost,
|
|
3
3
|
registerTools
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-VLZPO2CO.js";
|
|
5
5
|
import {
|
|
6
6
|
PlaudClient
|
|
7
7
|
} from "./chunk-OYI4PXYP.js";
|
|
@@ -1205,8 +1205,8 @@ function startHttpServer() {
|
|
|
1205
1205
|
common: {
|
|
1206
1206
|
serviceName: process.env.PLAUD_WAREHOUSE_SERVICE_NAME ?? "plaudmcp",
|
|
1207
1207
|
// matches §1.3 key label `plaudmcp:TRACKING_KEY_PLAUDMCP`; confirm exact string with David
|
|
1208
|
-
serviceVersion: "0.3.
|
|
1209
|
-
buildId: "
|
|
1208
|
+
serviceVersion: "0.3.7",
|
|
1209
|
+
buildId: "43da41f",
|
|
1210
1210
|
// mcp tsup TODO: inject git short SHA (like CLI)
|
|
1211
1211
|
region: process.env.PLAUD_REGION ?? "US",
|
|
1212
1212
|
env: process.env.PLAUD_ENV ?? process.env.NODE_ENV ?? "development"
|
|
@@ -1428,7 +1428,15 @@ function startHttpServer() {
|
|
|
1428
1428
|
issuerUrl,
|
|
1429
1429
|
baseUrl: issuerUrl,
|
|
1430
1430
|
resourceServerUrl: new URL(mcpResourceUrl),
|
|
1431
|
-
resourceName: "Plaud MCP Server"
|
|
1431
|
+
resourceName: "Plaud MCP Server",
|
|
1432
|
+
// Disable the SDK's default DCR rate limit (20/hour, keyed per client IP).
|
|
1433
|
+
// Directory clients like Claude perform Dynamic Client Registration from a
|
|
1434
|
+
// small pool of *shared server-side egress IPs*, so a per-IP cap acts as a
|
|
1435
|
+
// near-global limit and rejects legitimate new users with "Couldn't
|
|
1436
|
+
// register…" once new-registration rate exceeds ~20/hour. Real auth still
|
|
1437
|
+
// happens upstream at Plaud; abuse/unbounded-growth should be bounded on
|
|
1438
|
+
// the in-memory client store (size/TTL cap) rather than via this per-IP limiter.
|
|
1439
|
+
clientRegistrationOptions: { rateLimit: false }
|
|
1432
1440
|
})
|
|
1433
1441
|
);
|
|
1434
1442
|
app.post(
|
|
@@ -1447,7 +1455,7 @@ function startHttpServer() {
|
|
|
1447
1455
|
apiBase,
|
|
1448
1456
|
staticToken: token
|
|
1449
1457
|
});
|
|
1450
|
-
const mcpServer = new McpServer({ name: "plaud", version: "0.3.
|
|
1458
|
+
const mcpServer = new McpServer({ name: "plaud", version: "0.3.7" });
|
|
1451
1459
|
registerTools(mcpServer, client, warehouseToolHooks);
|
|
1452
1460
|
const transport = new StreamableHTTPServerTransport({
|
|
1453
1461
|
sessionIdGenerator: void 0,
|
package/package.json
CHANGED