@nooticr/mcp 1.26.68 → 1.26.70
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 +1 -1
- package/dist/shared/brand-watch.js +1 -1
- package/dist/shared/sheets.js +4 -2
- package/dist/shared/tools-def.js +2 -2
- package/dist/shared/tools.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -102,7 +102,7 @@ them caps that fan-out with an argument.
|
|
|
102
102
|
| `list_watchlist` | free | Who you are watching: handle, platform, note, and when you last caught up on each. |
|
|
103
103
|
| `catch_up_watchlist` | 2 per creator | What everyone you watch has posted since your last catch-up. Compares against the snapshot taken last time and moves it forward, so it answers "what is new" rather than "what exists". |
|
|
104
104
|
| `create_brand_watch` | free to call | Schedule a recurring sweep and get emailed only what is new. `kind: "mentions"` (default) is a recurring `search_mentions` sweep for `term`/`platforms`; `kind: "competitor"` is a recurring `get_user_posts` check on one creator (`handle`/`platform`), mailing only what beats their own recent median; `kind: "report"` runs `job: {tool, args}` — `niche_report` (mailed as written every run) or `discover_social_posts` (only unseen posts) — on the schedule; `kind: "portfolio"` sweeps up to 25 `terms` (your brand, products, competitors) across the same networks under one budget and mails one digest with each term's share of voice. Two calls by design: the first returns the quote (cost per run, cadence, cost per day) and a `confirmationToken`; nothing is created or charged until you call it again with `confirm: true` and that token. Each run then bills the same as calling the matching tool yourself — 2 credits per network (5 for Xiaohongshu) for mentions, a flat 2 credits for competitor, the job tool's own price for a report (3 for `niche_report`), and a mentions sweep per term for a portfolio — whose budget is split evenly and trims networks, never terms, and which refunds any term whose sweep fails. |
|
|
105
|
-
| `list_brand_watches` | free | Every watch
|
|
105
|
+
| `list_brand_watches` | free | Every brand-monitoring watch in your workspace (your teammates' included): term, networks, cadence, cost per run, credits spent so far, runs made, and when the next one is due. |
|
|
106
106
|
| `creative_assets_list` | free | The creative assets (voice-overs, sound effects, music, images, videos, composites) generated in your workspace, newest first, with url, kind, dimensions or duration, and provenance. Filter by `appId`, `kind`, `briefId` or `since`; page with `nextCursor`. |
|
|
107
107
|
| `creative_voices_search` | free | Search ElevenLabs' voice library by `query`, `language`, `accent`, `gender`, `age` or `useCase`. Returns a `voiceRef`, name, labels, language, accent and preview URL for each. Library voices only, never a cloned voice. |
|
|
108
108
|
| `creative_voiceover` | quoted first | A voice-over of up to 2500 characters with word timings for burned-in captions, in a voice from `creative_voices_search`. The first call returns a quote in credits and charges nothing; call again with `confirm: true` and the `confirmationToken` to generate. Settled to actual usage, never above the quote. |
|
|
@@ -537,7 +537,7 @@ export function registerBrandWatch(server, makeClient) {
|
|
|
537
537
|
});
|
|
538
538
|
server.registerTool("list_brand_watches", {
|
|
539
539
|
title: "List Brand Watches",
|
|
540
|
-
description: "Every scheduled brand-monitoring watch this
|
|
540
|
+
description: "Every scheduled brand-monitoring watch in this workspace (every member's watches, not only yours): term, networks, cadence, cost per " +
|
|
541
541
|
"run, credits spent so far, how many runs it has made, when the next one is due, and " +
|
|
542
542
|
"whether it is stopped and why. Read this before creating a watch — a second watch on the " +
|
|
543
543
|
"same term is a second recurring charge for the same answer. No cost to call.",
|
package/dist/shared/sheets.js
CHANGED
|
@@ -69,8 +69,10 @@ export function registerSheetsTools(server, makeClient) {
|
|
|
69
69
|
title: "Read Spreadsheet Range",
|
|
70
70
|
description: 'Read a range (A1 notation, e.g. "Ledger!A1:F200") of a spreadsheet. ' +
|
|
71
71
|
"Numbers come back as numbers and dates as formatted text; at most 10000 cells, " +
|
|
72
|
-
'and a range open at the bottom ("A:F") or longer than the cap is cut to the rows that fit, ' +
|
|
73
|
-
"with truncated=true when more may remain: read further down with a range that starts after the last row.
|
|
72
|
+
'and a range open at the bottom ("A:F", "Ledger!$A:$F") or longer than the cap is cut to the rows that fit, ' +
|
|
73
|
+
"with truncated=true when more may remain: read further down with a range that starts after the last row. " +
|
|
74
|
+
'A bare name without quotes ("Expenses") is passed to Google as written, since it may be a named range, ' +
|
|
75
|
+
'so name a tab as "Ledger!A:F" or "\'My Tab\'" to have it bounded. Free.',
|
|
74
76
|
annotations: READ,
|
|
75
77
|
inputSchema: z.object({ appId, id: spreadsheetId, range: z.string() }).strict(),
|
|
76
78
|
outputSchema: OUTPUT_SCHEMAS.sheets_read,
|
package/dist/shared/tools-def.js
CHANGED
|
@@ -327,7 +327,7 @@ export const TOOL_DEFINITIONS = [
|
|
|
327
327
|
{
|
|
328
328
|
name: "sheets_read",
|
|
329
329
|
title: "Read Spreadsheet Range",
|
|
330
|
-
description: "Read a range (A1 notation, e.g. \"Ledger!A1:F200\") of a spreadsheet. Numbers come back as numbers and dates as formatted text; at most 10000 cells, and a range open at the bottom (\"A:F\") or longer than the cap is cut to the rows that fit, with truncated=true when more may remain: read further down with a range that starts after the last row. Free.",
|
|
330
|
+
description: "Read a range (A1 notation, e.g. \"Ledger!A1:F200\") of a spreadsheet. Numbers come back as numbers and dates as formatted text; at most 10000 cells, and a range open at the bottom (\"A:F\", \"Ledger!$A:$F\") or longer than the cap is cut to the rows that fit, with truncated=true when more may remain: read further down with a range that starts after the last row. A bare name without quotes (\"Expenses\") is passed to Google as written, since it may be a named range, so name a tab as \"Ledger!A:F\" or \"'My Tab'\" to have it bounded. Free.",
|
|
331
331
|
inputSchema: z.object({ appId: z.number().int().optional().describe("Product id; optional when the workspace has one product."), id: z.string().describe("Spreadsheet id from sheets_create or sheets_list."), range: z.string() }).strict(),
|
|
332
332
|
},
|
|
333
333
|
{
|
|
@@ -351,7 +351,7 @@ export const TOOL_DEFINITIONS = [
|
|
|
351
351
|
{
|
|
352
352
|
name: "list_brand_watches",
|
|
353
353
|
title: "List Brand Watches",
|
|
354
|
-
description: "Every scheduled brand-monitoring watch this
|
|
354
|
+
description: "Every scheduled brand-monitoring watch in this workspace (every member's watches, not only yours): term, networks, cadence, cost per run, credits spent so far, runs made, next run due, and whether it is stopped and why. Read before creating a watch — a second watch on the same term is a second recurring charge for the same answer. No cost to call.",
|
|
355
355
|
inputSchema: z.object({}).strict(),
|
|
356
356
|
},
|
|
357
357
|
{
|
package/dist/shared/tools.js
CHANGED
|
@@ -36,7 +36,7 @@ import { registerAmazonTools } from "./amazon.js";
|
|
|
36
36
|
import { registerMarketplaceTools } from "./marketplace.js";
|
|
37
37
|
import { DEFAULT_NOOTICR_SETTINGS, DEFAULT_SOCIAL_PLATFORMS, MemorySettingsStore, SETTINGS_READ_TOOL, SETTINGS_UPDATE_TOOL, settingsOwnerFromAuth, } from "./settings.js";
|
|
38
38
|
/** Current MCP server version — bumped on every deploy for traceability. */
|
|
39
|
-
export const MCP_SERVER_VERSION = "1.26.
|
|
39
|
+
export const MCP_SERVER_VERSION = "1.26.70";
|
|
40
40
|
/** MCP Apps extension identifier */
|
|
41
41
|
const UI_EXTENSION = "io.modelcontextprotocol/ui";
|
|
42
42
|
/** MIME type for MCP Apps HTML resources */
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nooticr/mcp",
|
|
3
3
|
"mcpName": "com.nooticr/mcp",
|
|
4
|
-
"version": "1.26.
|
|
4
|
+
"version": "1.26.70",
|
|
5
5
|
"description": "MCP server for nooticr - fetch, discover and understand TikTok/Instagram/YouTube/X/Reddit/LinkedIn/Weibo posts with AI (media metadata, niche discovery, brand monitoring, hook & viral analysis)",
|
|
6
6
|
"homepage": "https://mcp.nooticr.com",
|
|
7
7
|
"repository": {
|