uniqueness-mcp 0.8.0 → 0.8.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 +2 -2
- package/dist/server.js +14 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@ Connect remote-capable clients to:
|
|
|
8
8
|
|
|
9
9
|
`https://uniquenessengine.com/mcp`
|
|
10
10
|
|
|
11
|
-
Send `Authorization: Bearer uq_live_...` on every request. Hosted tool-catalog fixes arrive without reinstalling this package.
|
|
11
|
+
Send `Authorization: Bearer uq_live_...` on every request. Hosted tool-catalog fixes arrive without reinstalling this package. `uniqueness update` updates the CLI only, not this package. There is no rotate-key tool.
|
|
12
12
|
|
|
13
13
|
Do not pin an old version. `uniqueness-mcp@0.1.1` and `@0.6.0` expose a stale catalog. Use `@latest` or the hosted endpoint.
|
|
14
14
|
|
|
@@ -36,7 +36,7 @@ Requires Node 18+. After changing the pin, start a new client session so the too
|
|
|
36
36
|
|
|
37
37
|
Hosted and stdio both expose:
|
|
38
38
|
|
|
39
|
-
- `get_personal_context` (`get_connection_brief`)
|
|
39
|
+
- `get_personal_context` (`get_connection_brief`) — optional `refresh:true` to force a fresh collection. Omit for ordinary repeat reads. Batch tools do not accept refresh.
|
|
40
40
|
- `resume_personal_context` (`resume_connection_brief`)
|
|
41
41
|
- `get_billing_status`
|
|
42
42
|
- `request_higher_limits`
|
package/dist/server.js
CHANGED
|
@@ -2,7 +2,7 @@ import { randomUUID } from "node:crypto";
|
|
|
2
2
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
export const MCP_SERVER_NAME = "uniqueness";
|
|
5
|
-
export const MCP_SERVER_VERSION = "0.8.
|
|
5
|
+
export const MCP_SERVER_VERSION = "0.8.2";
|
|
6
6
|
export const MCP_TOOL_ALIASES = {
|
|
7
7
|
get_personal_context: ["get_connection_brief"],
|
|
8
8
|
resume_personal_context: ["resume_connection_brief"],
|
|
@@ -108,12 +108,18 @@ const briefShape = {
|
|
|
108
108
|
company: z.string().optional().describe("Company name (use with name)"),
|
|
109
109
|
email: z.string().optional().describe("Work email (optional disambiguator)"),
|
|
110
110
|
detail: detailSchema.describe('Response shape. Defaults to "compact"; use "full" for provenance sub-scores.'),
|
|
111
|
+
refresh: z
|
|
112
|
+
.boolean()
|
|
113
|
+
.optional()
|
|
114
|
+
.describe("Set true only when the user asks to rerun, refresh, run again, look again, re-enrich, or check whether new UE changes are working. Ordinary repeat reads must omit this. Do not resubmit while polling an existing job."),
|
|
111
115
|
};
|
|
112
116
|
function cleanBriefArgs(args) {
|
|
113
117
|
const body = {};
|
|
114
118
|
for (const key of ["linkedin_url", "name", "company", "email", "detail"])
|
|
115
119
|
if (args[key])
|
|
116
120
|
body[key] = args[key];
|
|
121
|
+
if (typeof args.refresh === "boolean")
|
|
122
|
+
body.refresh = args.refresh;
|
|
117
123
|
if (!body.detail)
|
|
118
124
|
body.detail = "compact";
|
|
119
125
|
return body;
|
|
@@ -285,7 +291,12 @@ export function createMcpServer(context) {
|
|
|
285
291
|
});
|
|
286
292
|
};
|
|
287
293
|
const registerBrief = (name, description) => server.registerTool(name, { description, inputSchema: briefShape }, async (args) => submitBrief(args));
|
|
288
|
-
registerBrief("get_personal_context", "Submit one full-quality written enrichment. Returns an inline result or a job_id for get_connection_brief_job."
|
|
294
|
+
registerBrief("get_personal_context", "Submit one full-quality written enrichment. Returns an inline result or a job_id for get_connection_brief_job. " +
|
|
295
|
+
"Use refresh=true only when the user says rerun, refresh, run again, look again, re-enrich, or asks whether new UE changes are working. " +
|
|
296
|
+
"Do not use refresh for ordinary repeat reads. Do not resubmit while polling an existing job. " +
|
|
297
|
+
"A normal repeat lookup is not proof that a fresh enrichment occurred. " +
|
|
298
|
+
"Only claim a rerun happened when there is a new job, usage.refresh_executed=true, or a new generated timestamp/source inventory. " +
|
|
299
|
+
"cache_status=hit means this request served an existing result; cache_status=miss means this request ran collection.");
|
|
289
300
|
registerBrief(MCP_TOOL_ALIASES.get_personal_context[0], "Deprecated alias for get_personal_context.");
|
|
290
301
|
const resumeShape = {
|
|
291
302
|
...briefShape,
|
|
@@ -311,7 +322,7 @@ export function createMcpServer(context) {
|
|
|
311
322
|
});
|
|
312
323
|
return submitBrief(args, args.idempotency_key);
|
|
313
324
|
});
|
|
314
|
-
registerResume("resume_personal_context", "Verify increased spendable credit, then replay the original request with its idempotency key.");
|
|
325
|
+
registerResume("resume_personal_context", "Verify increased spendable credit, then replay the original request with its idempotency key. Pass the same refresh value as the 402 request — a refresh 402 resumed without refresh:true is a 409.");
|
|
315
326
|
registerResume(MCP_TOOL_ALIASES.resume_personal_context[0], "Deprecated alias for resume_personal_context.");
|
|
316
327
|
server.registerTool("get_billing_status", {
|
|
317
328
|
description: "Read spendable balance, usage limits (tier, daily limit, used in window, max batch) and auto-recharge state.",
|