plures-mcp 1.1.0 → 1.3.0
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 +3 -1
- package/dist/index.js +6 -2
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -22,7 +22,7 @@ Get a free test key at [plures.si](https://plures.si/?for=developers#join), then
|
|
|
22
22
|
|
|
23
23
|
Claude Code: `claude mcp add plures --env PLURES_API_KEY=pk_test_... -- npx -y plures-mcp`
|
|
24
24
|
|
|
25
|
-
A `pk_test_` key answers instantly with a simulated result (always the first option, clearly marked as a test), so you can try the flow for free. A `pk_live_` key sends tasks to real verified people and is
|
|
25
|
+
A `pk_test_` key answers instantly with a simulated result (always the first option, clearly marked as a test), so you can try the flow for free. A `pk_live_` key sends tasks to real verified people and is paid from prepaid credit at $0.20 per answer, more for recordings and videos by length. If credit runs out, the tool says so; add credit or turn on auto top up at plures.si/dashboard/billing.
|
|
26
26
|
|
|
27
27
|
## Tools
|
|
28
28
|
|
|
@@ -31,6 +31,8 @@ A `pk_test_` key answers instantly with a simulated result (always the first opt
|
|
|
31
31
|
- `options` (required): 2 to 8 possible answers
|
|
32
32
|
- `context`: the material to judge, as plain text
|
|
33
33
|
- `image_url`, `instructions`
|
|
34
|
+
- `audio_url` or `video_url` with `media_seconds`: a clip up to 3 minutes that people play through before answering
|
|
35
|
+
- `sensitive`: disturbing content, shown only to people who opted in
|
|
34
36
|
- `verifiers`: 1, 3, 5, 7 or 9 (default 3)
|
|
35
37
|
- `wait_seconds`: how long to wait for the answer, 0 to 240 (default 45). If people haven't answered by then, the tool returns a `task_id` to check later.
|
|
36
38
|
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
5
5
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
6
6
|
import { z } from "zod";
|
|
7
7
|
import { Plures, PluresError } from "plures";
|
|
8
|
-
var VERSION = "1.
|
|
8
|
+
var VERSION = "1.3.0";
|
|
9
9
|
var KEY = process.env.PLURES_API_KEY;
|
|
10
10
|
var plures = KEY ? new Plures(KEY, { baseUrl: process.env.PLURES_BASE_URL }) : null;
|
|
11
11
|
var MAX_WAIT = 240;
|
|
@@ -65,12 +65,16 @@ var progressFor = (extra, total) => {
|
|
|
65
65
|
var result = { task_id: z.string(), status: z.string(), mode: z.string(), decided_by: z.string().nullable(), with_team: z.boolean(), answer: z.string().nullable(), label: z.string().nullable(), agreement: z.number().nullable(), answers: z.number(), votes: z.record(z.number()) };
|
|
66
66
|
server.registerTool("ask_humans", {
|
|
67
67
|
title: "Ask verified humans",
|
|
68
|
-
description: "Send a decision to ID verified people before you act on it. Several people answer independently, each confirmed with Face ID, and you get back the consensus answer and how strongly they agreed. Use it for judgment calls where being wrong is costly: tone and intent, refunds and payments, whether two things match, moderation edge cases. Write the question so a stranger can answer it from the context alone, and never include secrets or more personal data than the decision needs. Live keys
|
|
68
|
+
description: "Send a decision to ID verified people before you act on it. Several people answer independently, each confirmed with Face ID, and you get back the consensus answer and how strongly they agreed. Use it for judgment calls where being wrong is costly: tone and intent, refunds and payments, whether two things match, moderation edge cases. Write the question so a stranger can answer it from the context alone, and never include secrets or more personal data than the decision needs. Live keys use prepaid credit at $0.20 per answer (clips cost more by length); test keys are free and simulated.",
|
|
69
69
|
inputSchema: {
|
|
70
70
|
question: z.string().min(3).max(1e3).describe('What people should decide, e.g. "Is this customer upset?"'),
|
|
71
71
|
options: z.array(z.string().min(1).max(200)).min(2).max(8).describe('2 to 8 possible answers, e.g. ["Yes", "No"]'),
|
|
72
72
|
context: z.string().max(2e4).optional().describe("The material to judge, as plain text: the message, the invoice lines, the listing"),
|
|
73
73
|
image_url: z.string().url().optional().describe("An https image shown with the question"),
|
|
74
|
+
audio_url: z.string().url().optional().describe("An https recording people listen to in full before answering, such as a call your voice agent handled. Up to 3 minutes; needs media_seconds"),
|
|
75
|
+
video_url: z.string().url().optional().describe("An https video (MP4) people watch in full before answering. Up to 3 minutes; needs media_seconds. Not with audio_url"),
|
|
76
|
+
media_seconds: z.number().int().min(1).max(180).optional().describe("Length of the audio or video in seconds. Required with a clip"),
|
|
77
|
+
sensitive: z.boolean().optional().describe("Set true for violent, graphic or disturbing content, so only people who opted in see it, behind a warning"),
|
|
74
78
|
instructions: z.string().max(2e3).optional().describe("Short guidance shown under the question"),
|
|
75
79
|
verifiers: z.union([z.literal(1), z.literal(3), z.literal(5), z.literal(7), z.literal(9)]).optional().describe("How many people answer. Default 3; use 5 for higher stakes"),
|
|
76
80
|
wait_seconds: z.number().int().min(0).max(MAX_WAIT).optional().describe(`How long to wait for the answer before returning a task_id to check later. Default 45, up to ${MAX_WAIT}`)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "plures-mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"mcpName": "io.github.plureslabs/plures",
|
|
5
5
|
"description": "MCP server for Plures: lets any AI agent ask ID verified people to check a decision before it acts.",
|
|
6
6
|
"keywords": [
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@modelcontextprotocol/sdk": "^1.32.0",
|
|
42
|
-
"plures": "^1.
|
|
42
|
+
"plures": "^1.3.0",
|
|
43
43
|
"zod": "^3.25.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|