@plaud-ai/mcp 0.1.28 → 0.1.30
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.
|
@@ -35,15 +35,23 @@ var SKILLS = [
|
|
|
35
35
|
description: "Search and filter Plaud recordings by date, tag, or keyword",
|
|
36
36
|
content: `## Plaud Skill: search-recordings
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
There is no server-side search or filter API. To find a recording, fetch all pages from \`list_files\` and match client-side.
|
|
39
39
|
|
|
40
|
-
1
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
40
|
+
**Step 1 \u2014 Collect search criteria**
|
|
41
|
+
|
|
42
|
+
If the user's request is vague, ask for more specific information before fetching:
|
|
43
|
+
- Approximate date or time range?
|
|
44
|
+
- Rough title or topic to look for in the name?
|
|
45
|
+
|
|
46
|
+
The more specific the criteria, the earlier a match can be found during pagination.
|
|
47
|
+
|
|
48
|
+
**Step 2 \u2014 Fetch pages and match**
|
|
49
|
+
|
|
50
|
+
Call \`list_files\` starting from page 1. For each page, check if any recording matches the user's criteria by name, date, or duration. Continue fetching subsequent pages until a match is found or all pages are exhausted.
|
|
51
|
+
|
|
52
|
+
**Step 3 \u2014 Present results**
|
|
53
|
+
|
|
54
|
+
Show a clear list of matches: recording name, date, duration, and file ID. If no match is found, tell the user and suggest refining the criteria.
|
|
47
55
|
|
|
48
56
|
Do not fetch transcripts or notes unless the user explicitly asks to view the content of a specific recording.`
|
|
49
57
|
},
|
|
@@ -105,6 +113,7 @@ Use date filters to scope the corpus (e.g., last week, last quarter, a specific
|
|
|
105
113
|
},
|
|
106
114
|
{
|
|
107
115
|
name: "push-to-destination",
|
|
116
|
+
supported: false,
|
|
108
117
|
description: "Send recording content or a generated artifact to Notion, HubSpot, Slack, Linear, or a webhook",
|
|
109
118
|
content: `## Plaud Skill: push-to-destination
|
|
110
119
|
|
|
@@ -123,12 +132,13 @@ When the user wants to send recording content or a generated artifact to an exte
|
|
|
123
132
|
Note: Destination credentials (API tokens, webhook URLs) must be provided by the user. Do not store them in conversation history \u2014 use environment variables or the user's config.`
|
|
124
133
|
}
|
|
125
134
|
];
|
|
126
|
-
var
|
|
135
|
+
var ACTIVE_SKILLS = SKILLS.filter((s) => s.supported !== false);
|
|
136
|
+
var SKILLS_COMBINED = ACTIVE_SKILLS.map((s) => s.content).join("\n\n---\n\n");
|
|
127
137
|
|
|
128
138
|
export {
|
|
129
139
|
__commonJS,
|
|
130
140
|
__export,
|
|
131
141
|
__toESM,
|
|
132
|
-
|
|
142
|
+
ACTIVE_SKILLS,
|
|
133
143
|
SKILLS_COMBINED
|
|
134
144
|
};
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
|
-
|
|
3
|
+
ACTIVE_SKILLS,
|
|
4
4
|
__commonJS,
|
|
5
5
|
__export,
|
|
6
6
|
__toESM
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-5JTZ7NKP.js";
|
|
8
8
|
|
|
9
9
|
// ../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/codegen/code.js
|
|
10
10
|
var require_code = __commonJS({
|
|
@@ -30699,8 +30699,12 @@ var OAuth = class {
|
|
|
30699
30699
|
return null;
|
|
30700
30700
|
if (tokenSet.expires_at && Date.now() > tokenSet.expires_at - 6e4) {
|
|
30701
30701
|
if (tokenSet.refresh_token) {
|
|
30702
|
-
|
|
30703
|
-
|
|
30702
|
+
try {
|
|
30703
|
+
const refreshed = await this.refresh(tokenSet.refresh_token);
|
|
30704
|
+
return refreshed.access_token;
|
|
30705
|
+
} catch {
|
|
30706
|
+
return null;
|
|
30707
|
+
}
|
|
30704
30708
|
}
|
|
30705
30709
|
return null;
|
|
30706
30710
|
}
|
|
@@ -31020,34 +31024,34 @@ server.tool("logout", "Log out, sign out, revoke authorization, and disconnect f
|
|
|
31020
31024
|
content: [{ type: "text", text: "Logged out and revoked authorization." }]
|
|
31021
31025
|
};
|
|
31022
31026
|
});
|
|
31023
|
-
for (const skill of
|
|
31027
|
+
for (const skill of ACTIVE_SKILLS) {
|
|
31024
31028
|
server.prompt(skill.name, skill.description, () => ({
|
|
31025
31029
|
messages: [{ role: "user", content: { type: "text", text: skill.content } }]
|
|
31026
31030
|
}));
|
|
31027
31031
|
}
|
|
31028
31032
|
async function main() {
|
|
31029
31033
|
if (process.argv[2] === "clean-plugin") {
|
|
31030
|
-
const { runCleanPlugin } = await import("./setup-
|
|
31034
|
+
const { runCleanPlugin } = await import("./setup-3PYAGQRG.js");
|
|
31031
31035
|
await runCleanPlugin();
|
|
31032
31036
|
return;
|
|
31033
31037
|
}
|
|
31034
31038
|
if (process.argv[2] === "setup" && process.argv[3] === "codex") {
|
|
31035
|
-
const { runSetupCodex } = await import("./setup-
|
|
31039
|
+
const { runSetupCodex } = await import("./setup-3PYAGQRG.js");
|
|
31036
31040
|
await runSetupCodex();
|
|
31037
31041
|
return;
|
|
31038
31042
|
}
|
|
31039
31043
|
if (process.argv[2] === "unsetup" && process.argv[3] === "codex") {
|
|
31040
|
-
const { runUnsetupCodex } = await import("./setup-
|
|
31044
|
+
const { runUnsetupCodex } = await import("./setup-3PYAGQRG.js");
|
|
31041
31045
|
await runUnsetupCodex();
|
|
31042
31046
|
return;
|
|
31043
31047
|
}
|
|
31044
31048
|
if (process.argv[2] === "setup") {
|
|
31045
|
-
const { runSetup } = await import("./setup-
|
|
31049
|
+
const { runSetup } = await import("./setup-3PYAGQRG.js");
|
|
31046
31050
|
await runSetup();
|
|
31047
31051
|
return;
|
|
31048
31052
|
}
|
|
31049
31053
|
if (process.argv[2] === "unsetup") {
|
|
31050
|
-
const { runUnsetup } = await import("./setup-
|
|
31054
|
+
const { runUnsetup } = await import("./setup-3PYAGQRG.js");
|
|
31051
31055
|
await runUnsetup();
|
|
31052
31056
|
return;
|
|
31053
31057
|
}
|
package/package.json
CHANGED