@speakai/mcp-server 1.5.0 → 1.5.2
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 +5 -11
- package/dist/index.js +11 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -38,16 +38,14 @@ The AI does the searching, summarizing, and citing. Your recordings stay in your
|
|
|
38
38
|
|
|
39
39
|
## Install (pick your tool)
|
|
40
40
|
|
|
41
|
-
> **Two paths to install** — pick whichever feels easier.
|
|
41
|
+
> **Two paths to install** — pick whichever feels easier. The one-click connect path approves access via a permission popup; the manual path pastes an API key into a header.
|
|
42
42
|
|
|
43
|
-
> **Don't know which one to pick?** If you already use Claude or ChatGPT, install for whichever one you have.
|
|
43
|
+
> **Don't know which one to pick?** If you already use Claude or ChatGPT, install for whichever one you have.
|
|
44
44
|
|
|
45
45
|
> Speak AI's connector address (paste this into your AI tool's connector settings — it's the same idea as pasting a Zoom link into your calendar): `https://api.speakai.co/v1/mcp`
|
|
46
46
|
|
|
47
47
|
### Claude.ai (web)
|
|
48
48
|
|
|
49
|
-
Pro · Max · Team · Enterprise.
|
|
50
|
-
|
|
51
49
|
1. Open [claude.ai/settings/connectors](https://claude.ai/settings/connectors)
|
|
52
50
|
2. Click **Add custom connector**
|
|
53
51
|
3. Paste `https://api.speakai.co/v1/mcp`
|
|
@@ -61,7 +59,7 @@ Get a key at [app.speakai.co/developers/apikeys](https://app.speakai.co/develope
|
|
|
61
59
|
|
|
62
60
|
</details>
|
|
63
61
|
|
|
64
|
-
### Claude Desktop
|
|
62
|
+
### Claude Desktop
|
|
65
63
|
|
|
66
64
|
1. Open Claude Desktop → **Settings → Connectors → Add custom connector**
|
|
67
65
|
2. Paste `https://api.speakai.co/v1/mcp`
|
|
@@ -81,16 +79,12 @@ Then click Add.
|
|
|
81
79
|
|
|
82
80
|
### ChatGPT
|
|
83
81
|
|
|
84
|
-
Plus · Pro · Business · Enterprise · Edu (non-EEA).
|
|
85
|
-
|
|
86
82
|
1. Open ChatGPT → **Settings → Connectors → Advanced**
|
|
87
83
|
2. Enable **"Allow custom apps"** (OpenAI calls this toggle "Developer Mode" — but you don't need to be a developer to flip it; it just tells ChatGPT you'd like to add a third-party app like Speak AI)
|
|
88
84
|
3. Click **Create**, paste `https://api.speakai.co/v1/mcp`
|
|
89
85
|
4. Choose the sign-in option when prompted, then sign in to Speak AI and click **Allow** on the permission popup
|
|
90
86
|
5. Per-chat: open a chat, click the connector menu, and enable **Speak AI** for that chat.
|
|
91
87
|
|
|
92
|
-
> **Note:** ChatGPT custom connectors are not available in the EU, UK, or Switzerland (OpenAI restriction). Use Claude.ai or Claude Desktop instead — both support one-click connect today.
|
|
93
|
-
|
|
94
88
|
### Claude Code (terminal)
|
|
95
89
|
|
|
96
90
|
The sign-in flow (loopback) is supported, but the fastest path on the CLI is pasting an API key as a header:
|
|
@@ -191,8 +185,8 @@ Full tool catalog is in the developer reference below.
|
|
|
191
185
|
|
|
192
186
|
The MCP server lives at `https://api.speakai.co/v1/mcp` and supports two auth methods:
|
|
193
187
|
|
|
194
|
-
1. **OAuth 2.1 + Dynamic Client Registration**
|
|
195
|
-
2. **Bearer token** (your Speak AI API key — `Authorization: Bearer <key>` header).
|
|
188
|
+
1. **OAuth 2.1 + Dynamic Client Registration** — install by pasting the URL above into any MCP client and approving the consent popup. Discovery, DCR, `/authorize` + consent, `/token`, and revocation endpoints are all available.
|
|
189
|
+
2. **Bearer token** (your Speak AI API key — `Authorization: Bearer <key>` header). For clients that don't speak OAuth, plus the npm CLI and stdio mode.
|
|
196
190
|
|
|
197
191
|
Get a Speak AI API key at [app.speakai.co/developers/apikeys](https://app.speakai.co/developers/apikeys).
|
|
198
192
|
|
package/dist/index.js
CHANGED
|
@@ -3604,6 +3604,14 @@ var analytics_exports = {};
|
|
|
3604
3604
|
__export(analytics_exports, {
|
|
3605
3605
|
register: () => register12
|
|
3606
3606
|
});
|
|
3607
|
+
function withDefaultSearchDateRange(params) {
|
|
3608
|
+
const now = /* @__PURE__ */ new Date();
|
|
3609
|
+
return {
|
|
3610
|
+
...params,
|
|
3611
|
+
startDate: params.startDate ?? `${now.getUTCFullYear()}-01-01T00:00:00.000Z`,
|
|
3612
|
+
endDate: params.endDate ?? now.toISOString()
|
|
3613
|
+
};
|
|
3614
|
+
}
|
|
3607
3615
|
function register12(server, client) {
|
|
3608
3616
|
const api = client ?? speakClient;
|
|
3609
3617
|
server.tool(
|
|
@@ -3613,11 +3621,11 @@ function register12(server, client) {
|
|
|
3613
3621
|
"Returns matching media with sentiment data, tags, and content excerpts.",
|
|
3614
3622
|
"Use this to find specific topics, keywords, or themes across your entire library.",
|
|
3615
3623
|
"For filtering by media type, folder, tags, or speakers, use the filterList parameter.",
|
|
3616
|
-
"Results are scoped by date range \u2014 defaults to current
|
|
3624
|
+
"Results are scoped by date range \u2014 defaults to current year if not specified."
|
|
3617
3625
|
].join(" "),
|
|
3618
3626
|
{
|
|
3619
3627
|
query: import_zod12.z.string().min(1).describe("Search query \u2014 searches across transcripts, insights, and metadata"),
|
|
3620
|
-
startDate: import_zod12.z.string().optional().describe("Start date for search range (ISO 8601). Defaults to start of current
|
|
3628
|
+
startDate: import_zod12.z.string().optional().describe("Start date for search range (ISO 8601). Defaults to start of current year."),
|
|
3621
3629
|
endDate: import_zod12.z.string().optional().describe("End date for search range (ISO 8601). Defaults to now."),
|
|
3622
3630
|
filterList: import_zod12.z.array(
|
|
3623
3631
|
import_zod12.z.object({
|
|
@@ -3637,7 +3645,7 @@ function register12(server, client) {
|
|
|
3637
3645
|
},
|
|
3638
3646
|
async (params) => {
|
|
3639
3647
|
try {
|
|
3640
|
-
const result = await api.post("/v1/analytics/search", params);
|
|
3648
|
+
const result = await api.post("/v1/analytics/search", withDefaultSearchDateRange(params));
|
|
3641
3649
|
return {
|
|
3642
3650
|
content: [{ type: "text", text: JSON.stringify(result.data, null, 2) }]
|
|
3643
3651
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@speakai/mcp-server",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.2",
|
|
4
4
|
"mcpName": "io.github.speakai/mcp-server",
|
|
5
5
|
"description": "Official Speak AI MCP Server — connect Claude and other AI assistants to Speak AI's transcription, insights, and media management API",
|
|
6
6
|
"main": "dist/index.js",
|