@50heads/mcp 2026.1006.1 → 2026.1013.1
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/CHANGELOG.md +73 -11
- package/README.md +137 -27
- package/dist/cli.js +7763 -2538
- package/dist/index.js +7775 -2543
- package/dist/snippets.js +1 -1
- package/dist/types/account.d.ts +1 -1
- package/dist/types/actions.d.ts +1 -1
- package/dist/types/approvals.d.ts +14 -0
- package/dist/types/apps.d.ts +9 -4
- package/dist/types/cli/stdio.d.ts +1850 -125
- package/dist/types/constants.d.ts +93 -23
- package/dist/types/draft.d.ts +10 -1
- package/dist/types/errors.d.ts +1 -1
- package/dist/types/generated/skill.d.ts +2 -2
- package/dist/types/language.d.ts +14 -1
- package/dist/types/manifest.d.ts +26 -6
- package/dist/types/organization.d.ts +47 -0
- package/dist/types/pricing.d.ts +3 -5
- package/dist/types/public.d.ts +1 -1
- package/dist/types/results.d.ts +8 -1
- package/dist/types/schemas.d.ts +2080 -68
- package/dist/types/server.d.ts +7 -4
- package/dist/types/tasks.d.ts +2 -2
- package/dist/types/tool-schema.d.ts +64 -0
- package/dist/types/webhooks.d.ts +35 -0
- package/dist/types/workspace-apps.d.ts +13 -0
- package/package.json +6 -5
- package/server.json +19 -5
- package/skills/50heads/SKILL.md +21 -16
- package/skills/50heads/references/pricing.md +5 -3
- package/skills/50heads/references/question-types.md +29 -8
- package/skills/50heads/references/tools.md +76 -14
- package/skills/50heads/scripts/estimate.py +1 -1
- package/skills/50heads.zip +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,31 +1,93 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
Changes to `@50heads/mcp` (the `npx @50heads/mcp`
|
|
3
|
+
Changes to `@50heads/mcp` (the `npx @50heads/mcp` server and command), the hosted server at `https://mcp.50heads.com/mcp`, and the 50heads Agent Skill. They share one version.
|
|
4
4
|
|
|
5
|
-
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Versions are calendar versions, `YYYY.MDD.N`: the year, the month and two-digit day, then the release number for that day (`2026.924.1` is the first release on 24 September 2026).
|
|
5
|
+
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Versions are calendar versions, `YYYY.MDD.N`: the year, the month and two-digit day, then the release number for that UTC day (`2026.924.1` is the first release on 24 September 2026).
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Pending changes are captured as changesets and written here when the package is released. The GitHub Release uses the same notes.
|
|
8
8
|
|
|
9
9
|
## [Unreleased]
|
|
10
10
|
|
|
11
|
+
## [2026.1013.1] - 2026-10-13
|
|
12
|
+
|
|
13
|
+
**@50heads/mcp 2026.1013.1 changes the MCP server to nine action-based tools, with per-action scopes and updated help, status and whoami access.** It also adds filing, organisation, audit, webhook and approval flows, plus JSONL export and clearer privacy wording.
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- **ask and estimate now support go_rule on yes_no and yes_mostly_no questions, and results returns a verdict of go, no go or unclear.** Ranking and pairwise results now include head_to_head, who beats whom, pairwise rows and a 95% range on each win share.
|
|
18
|
+
- **New filing tools let you manage projects and labels, move a question into a project, replace its labels, archive or bookmark it, and set an external_ref once.** Deleting a project keeps its questions outside any project.
|
|
19
|
+
- **Read-only organisation and audit tools are now available for admins and service accounts, including organisation details, domains, audit events, SCIM status, member sessions and service accounts.** Signing in now asks for the extra organisation scopes needed for these tools.
|
|
20
|
+
- **Webhook tools now cover listing, creating, updating, rotating secrets, testing, deliveries, replay and deletion, with new read and write scopes.** The webhook events resource lists event types, payloads and JSON Schema locations, and approval events are included.
|
|
21
|
+
- **ask can now return a task in input_required when a person must approve it, with approval details and held credits until approval.** Denials and expiry are reported as refused_by_policy or approval_expired, and no name is shown for the person deciding.
|
|
22
|
+
- **export now supports JSONL, with one JSON object per answer including the question, options, choice and cohortHash.** get_results and get_answers now include each answer's choice, and get_results adds cohort_hash.
|
|
23
|
+
|
|
24
|
+
### Changed
|
|
25
|
+
|
|
26
|
+
- **The server now exposes nine tools with actions instead of 44 single-purpose tools, and old tool names no longer work.** Scope checks are per action, and the README maps the old names to the new ones.
|
|
27
|
+
- **help now covers whoami and status, and the API also exposes /v1/status, /v1/whoami and /v1/limits with rate limit headers.** The server instructions, guide resource and Agent Skill now say questions, bought answers and reasons heads write are not used to train AI models.
|
|
28
|
+
|
|
29
|
+
## [2026.1009.1] - 2026-10-09
|
|
30
|
+
|
|
31
|
+
**This release adds ask_set for ordered question sets behind one shared link, plus public results for ask and ask_set.** It also updates answer options, language support, shared-link closing, and answer flagging rules.
|
|
32
|
+
|
|
33
|
+
### Added
|
|
34
|
+
|
|
35
|
+
- **ask_set now publishes 2 to 10 questions for your own audience behind one shared link, answered in order, with each question keeping its own results.**
|
|
36
|
+
- **Questions can now set answered_by to private, and results show whether heads answered in the app or people answered through the shared link; for heads, that line names the tier and how they were verified.**
|
|
37
|
+
- **ask and ask_set now take public_results, off by default; when on, a question asked of heads has a shareable results page, and people who answer through a shared link see the bars after their own answer.**
|
|
38
|
+
- **Questions can now use Japanese, Korean, Swedish, Danish, Norwegian, Czech, Romanian, Finnish or Turkish, as well as English, French, Spanish, Portuguese, Italian, German, Dutch and Polish.**
|
|
39
|
+
- **list_questions now takes set_id and lists only that set, in order, with each question's place in the set.**
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
|
|
43
|
+
- **yes_no is now Yes or No, and yes_mostly_no is the opt-in that adds Mostly.**
|
|
44
|
+
- **Descriptions now say verified people.**
|
|
45
|
+
- **When a shared link closes, the question status is closed and the unused reserve is refunded.**
|
|
46
|
+
- **flag_answer cannot flag an answer that came through a shared link, because that answer has no attestation reference.**
|
|
47
|
+
|
|
11
48
|
## [2026.1006.1] - 2026-10-06
|
|
12
49
|
|
|
50
|
+
**Interest audiences can be listed and asked, in place of targeting.**
|
|
51
|
+
|
|
13
52
|
### Added
|
|
14
53
|
|
|
15
|
-
- `
|
|
16
|
-
-
|
|
54
|
+
- **`list_audiences` lists interest audiences, panels of heads who proved they fit (UK commuter cyclists, for example), with their countries, a size band and the price per answer by grade.**
|
|
55
|
+
- **`audience` on a question (`id` and `min_grade`) works on `estimate`, `ask` and the other tools that take a question.** It replaces `targeting`. The price per answer is the audience's at the minimum grade, with no trait credits.
|
|
56
|
+
|
|
57
|
+
### Changed
|
|
58
|
+
|
|
59
|
+
- **The skill's estimate script sends a user agent of `50heads-skill/<version>`.**
|
|
60
|
+
- **The skill's tool notes state that `export` serves CSV, PDF and PNG.**
|
|
17
61
|
|
|
18
62
|
## [2026.925.2] - 2026-09-25
|
|
19
63
|
|
|
20
|
-
|
|
64
|
+
**The estimate card and the daily spend cap are clearer.** No new tools.
|
|
65
|
+
|
|
66
|
+
### Changed
|
|
67
|
+
|
|
68
|
+
- **The estimate card keeps its height while the price is worked out.** The Ask button stays on the card, disabled, until the quote arrives. The card shows credits per head and how many heads could answer.
|
|
69
|
+
- **A connection's daily spend cap is given in credits, so the figure does not move with the exchange rate.**
|
|
70
|
+
|
|
71
|
+
### Fixed
|
|
72
|
+
|
|
73
|
+
- **The estimate and results views declare a content security policy with no outside hosts, and a border, so ChatGPT does not treat the policy as missing.**
|
|
21
74
|
|
|
22
75
|
## [2026.925.1] - 2026-09-25
|
|
23
76
|
|
|
77
|
+
**First public release of the 50heads MCP server, the command and the Agent Skill.**
|
|
78
|
+
|
|
24
79
|
### Added
|
|
25
80
|
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
- The
|
|
29
|
-
- Requests from the
|
|
30
|
-
- Nine
|
|
81
|
+
- **Tools `estimate`, `ask`, `get_results`, `wait_for_results`, `list_questions`, `cancel`, `templates` and `balance`, plus `login`, `status`, `logout` and `config` on the command line.**
|
|
82
|
+
- **The registry manifest `server.json` names `com.50heads/mcp` for the hosted server and the npm package.** Listing that name in the official registry is a separate step from this package.
|
|
83
|
+
- **The Agent Skill is in the package, attached to the GitHub Release, and served at https://50heads.com/skills/50heads.zip.**
|
|
84
|
+
- **Requests from the command send a user agent of `50heads-mcp/<version>`.**
|
|
85
|
+
- **Nine further tools: `upload_image` (base64 or an https link), `get_answers` (paged and filtered), `add_heads`, `flag_answer`, `export` (CSV, PDF and PNG), `build_ask_link`, `list_targeting`, `search_help` and `send_feedback`.**
|
|
86
|
+
|
|
87
|
+
[2026.1006.1]: https://github.com/50heads/mcp/releases/tag/v2026.1006.1
|
|
88
|
+
[2026.925.2]: https://github.com/50heads/mcp/releases/tag/v2026.925.2
|
|
89
|
+
[2026.925.1]: https://github.com/50heads/mcp/releases/tag/v2026.925.1
|
|
90
|
+
|
|
91
|
+
[2026.1009.1]: https://github.com/50heads/mcp/releases/tag/v2026.1009.1
|
|
31
92
|
|
|
93
|
+
[2026.1013.1]: https://github.com/50heads/mcp/releases/tag/v2026.1013.1
|
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# 50heads MCP
|
|
2
2
|
|
|
3
3
|
<!-- lead:start (generated from src/pricing.ts by scripts/generate.ts; do not edit by hand) -->
|
|
4
|
-
Ask fifty verified
|
|
4
|
+
Ask fifty verified people a five-second question from Claude, ChatGPT, Cursor or your own agent, and see what they think. 50 answers at Tier 1: 1000 credits, priced in your account's currency.
|
|
5
5
|
<!-- lead:end -->
|
|
6
6
|
|
|
7
7
|
There are two ways in, with the same tools:
|
|
@@ -21,7 +21,7 @@ Make an API key, if you need one, on the Developers page of the dashboard: https
|
|
|
21
21
|
|
|
22
22
|
### Claude (claude.ai and Claude Desktop)
|
|
23
23
|
|
|
24
|
-
Hosted, sign in with OAuth. Settings, Connectors, Add custom connector. Paste the URL and sign in when asked. On Team and Enterprise plans an owner adds it for the
|
|
24
|
+
Hosted, sign in with OAuth. Settings, Connectors, Add custom connector. Paste the URL and sign in when asked. On Team and Enterprise plans an owner adds it for the organization first.
|
|
25
25
|
|
|
26
26
|
```text
|
|
27
27
|
https://mcp.50heads.com/mcp
|
|
@@ -181,7 +181,7 @@ Hosts that speak Streamable HTTP: https://mcp.50heads.com/mcp with the header "A
|
|
|
181
181
|
|
|
182
182
|
### Check it works
|
|
183
183
|
|
|
184
|
-
Ask your host to "use 50heads to estimate asking fifty people which of two names they prefer". `estimate` is free and never spends credits. In Claude Code, `/mcp` lists the server and its tools; elsewhere, look for 50heads in the host's tools or connectors list.
|
|
184
|
+
Ask your host to "use 50heads to estimate asking fifty people which of two names they prefer". `estimate` (action `quote`) is free and never spends credits. In Claude Code, `/mcp` lists the server and its tools; elsewhere, look for 50heads in the host's tools or connectors list.
|
|
185
185
|
|
|
186
186
|
## Signing in on the command line
|
|
187
187
|
|
|
@@ -204,35 +204,141 @@ npx -y @50heads/mcp logout
|
|
|
204
204
|
| `FIFTYHEADS_CREDENTIALS_STORE=file` | Keep the sign-in in a file, not the keychain |
|
|
205
205
|
| `FIFTYHEADS_DEBUG=1` | Log each call to stderr (never question text) |
|
|
206
206
|
|
|
207
|
-
## Tools
|
|
208
|
-
|
|
209
|
-
|
|
207
|
+
## Tools (9, each takes an `action`)
|
|
208
|
+
|
|
209
|
+
There are nine tools, never more than ten. Each tool takes an `action` and that action's own arguments, validated per action (the input is a discriminated union on `action`), and `tools/list` documents every action in the tool's description. Scopes belong to actions, not tools: a connection that lacks the scope for an action is refused with `insufficient_scope` for that action alone, and a read-only grant never reaches an action that changes something. Tool annotations are true of every action in the tool: `estimate`, `results`, `organization` and `audit` are read-only (`readOnlyHint: true`); `questions`, `projects` and `webhooks` each hold a cancel or delete, so they carry `destructiveHint: true`; `ask` and `help` change something but destroy nothing. Each tool's `_meta["com.50heads/scopes"]` lists the scope of each action.
|
|
210
|
+
|
|
211
|
+
| Tool | Hints | Actions | Does |
|
|
212
|
+
| --- | --- | --- | --- |
|
|
213
|
+
| `estimate` | read-only | `quote`, `balance`, `templates`, `audiences`, `targeting` | Price a question, check credits, and look up what you can ask for. |
|
|
214
|
+
| `ask` | writes | `ask`, `set`, `upload_image`, `build_link` | Ask heads or your own audience, upload an image, build a link for a person to press Ask. |
|
|
215
|
+
| `results` | read-only | `get`, `wait`, `answers`, `export`, `list` | Read results, wait for them, read single answers, export files, list your questions. |
|
|
216
|
+
| `questions` | destructive | `cancel`, `add_heads`, `flag_answer`, `file` | Change one question: cancel it, add heads, flag an answer, file it. |
|
|
217
|
+
| `projects` | destructive | `list`, `create`, `update`, `delete`, `labels` | Projects and labels that keep questions findable. |
|
|
218
|
+
| `webhooks` | destructive | `list`, `create`, `update`, `rotate_secret`, `test`, `deliveries`, `events`, `replay`, `delete` | Webhook endpoints, deliveries and recent events. |
|
|
219
|
+
| `organization` | read-only | `get`, `domains`, `scim`, `member_sessions`, `service_accounts`, `apps` | The organization, its domains, SCIM, member sessions, service accounts and workspace apps. |
|
|
220
|
+
| `audit` | read-only | `list`, `export` | The organization audit log. |
|
|
221
|
+
| `help` | writes | `search`, `feedback`, `status`, `whoami` | Search the help center, send feedback, check whether 50heads is working, see who the connection acts as. |
|
|
222
|
+
|
|
223
|
+
### Actions and scopes
|
|
224
|
+
|
|
225
|
+
| Tool | Action | Scope | Does |
|
|
226
|
+
| --- | --- | --- | --- |
|
|
227
|
+
| `estimate` | `quote` | `questions:write` | Price and fixes for a question. Never spends. Call it first. |
|
|
228
|
+
| `estimate` | `balance` | `account:read` | Credits, reserved credits and what is left under the connection's daily cap. |
|
|
229
|
+
| `estimate` | `templates` | none | Fixed-price templates. Works without signing in. |
|
|
230
|
+
| `estimate` | `audiences` | none | Interest audiences you can ask instead of targeting, with prices by grade. |
|
|
231
|
+
| `estimate` | `targeting` | none | Countries, languages, pool bands and the tags you can target. |
|
|
232
|
+
| `ask` | `ask` | `questions:write` | Asks verified heads. Needs a fresh UUID as `idempotency_key`. Returns a task (or a `question_id` on older hosts). |
|
|
233
|
+
| `ask` | `set` | `questions:write` | Two to ten questions for your own audience behind one shared link, answered in order. Needs an `idempotency_key`. |
|
|
234
|
+
| `ask` | `upload_image` | `questions:write` | Puts an image into 50heads from base64 or an https link; returns an `image_url` for a question. |
|
|
235
|
+
| `ask` | `build_link` | none | A portal link with the question filled in, for a person to check and ask. Spends nothing. |
|
|
236
|
+
| `results` | `get` | `questions:read` | Results so far, without waiting: the share per option, a go or no go verdict against your own line on yes/no questions, and who beats whom on rankings and pairwise questions, with ranges. |
|
|
237
|
+
| `results` | `wait` | `questions:read` | Waits up to 600 s on the server for the answers (`min_answers`, `timeout_seconds`). For hosts without tasks. |
|
|
238
|
+
| `results` | `answers` | `questions:read` | Individual answers a page at a time, filtered by option, tier, country, age band or keyword. |
|
|
239
|
+
| `results` | `export` | `questions:read` | The results as a file: CSV, JSON lines (one answer per line, with option indexes and the cohort hash), a one-page PDF report, or a PNG chart. |
|
|
240
|
+
| `results` | `list` | `questions:read` | Your recent questions, filtered by status, project, label, reference, bookmark or set. Check before asking again. |
|
|
241
|
+
| `questions` | `cancel` | `questions:write` | Stops a live question and refunds unanswered heads. Destructive. |
|
|
242
|
+
| `questions` | `add_heads` | `questions:write` | More heads on the same question, merged into the same result. Needs an `idempotency_key`. |
|
|
243
|
+
| `questions` | `flag_answer` | `questions:write` | Reports one answer by its `attestation_ref` for review; upheld flags are refunded. |
|
|
244
|
+
| `questions` | `file` | `questions:write` | Files a question: project, labels, bookmark, archive, and an external reference set once. |
|
|
245
|
+
| `projects` | `list` | `questions:read` | Projects in the account, with `include_archived` for archived ones too. |
|
|
246
|
+
| `projects` | `create` | `questions:write` | A new project to file questions in. |
|
|
247
|
+
| `projects` | `update` | `questions:write` | Renames, redescribes, archives or restores a project. |
|
|
248
|
+
| `projects` | `delete` | `questions:write` | Deletes a project. Its questions stay, with their answers, outside any project. Destructive. |
|
|
249
|
+
| `projects` | `labels` | `questions:read` | Labels in use, most used first. |
|
|
250
|
+
| `webhooks` | `list` | `webhooks:read` | Webhook endpoints: address, events, filter, on or off, last delivery. Secrets masked. |
|
|
251
|
+
| `webhooks` | `create` | `webhooks:write` | Sends the chosen events, signed, to an https address you own; filter by project or label. Returns the secret once. |
|
|
252
|
+
| `webhooks` | `update` | `webhooks:write` | Changes address, events, description or filter (`null` clears it); pauses or resumes. |
|
|
253
|
+
| `webhooks` | `rotate_secret` | `webhooks:write` | A new secret, returned once; the old one keeps signing for `overlap_hours` (default 24, up to 168). |
|
|
254
|
+
| `webhooks` | `test` | `webhooks:write` | Sends a signed `webhook.test` event now and says how the receiver answered. |
|
|
255
|
+
| `webhooks` | `deliveries` | `webhooks:read` | The latest 100 deliveries, by endpoint or state (`failed` is out of retries). |
|
|
256
|
+
| `webhooks` | `events` | `webhooks:read` | The latest events of one type (up to 25), each exactly as a delivery carries it: sample payloads, or catching up by event id. |
|
|
257
|
+
| `webhooks` | `replay` | `webhooks:write` | Sends a delivery's event again, with the same event id. |
|
|
258
|
+
| `webhooks` | `delete` | `webhooks:write` | Deletes an endpoint for good. Destructive. |
|
|
259
|
+
| `organization` | `get` | `organization:read` | The organization of the workspace the key or app acts in: workspaces, verified domains, single sign-on, SCIM and sign-in rules. |
|
|
260
|
+
| `organization` | `domains` | `organization:read` | The organization's domains, each with its state and the DNS TXT record that proves it. Admins only. |
|
|
261
|
+
| `organization` | `scim` | `organization:read` | SCIM provisioning: base URL, people and groups sent, default role, tokens by label and prefix. Admins only. |
|
|
262
|
+
| `organization` | `member_sessions` | `members:read` | One member's live sessions and how each started. Admins only. |
|
|
263
|
+
| `organization` | `service_accounts` | `organization:read` | The organization's service accounts: workspace, scopes, caps, today's spend and last token. Never their secrets. |
|
|
264
|
+
| `organization` | `apps` | `apps:read` | Slack workspaces and Microsoft Teams tenants 50heads is added to (`provider` says which) and Zapier connections: daily cap, today's spend, who added each, and each Zapier connection's hooks. |
|
|
265
|
+
| `audit` | `list` | `audit:read` | Who did what in the organization and its workspaces, newest first, filtered by time, actor, `event_action` and workspace. Admins only. |
|
|
266
|
+
| `audit` | `export` | `audit:read` | The same events as JSON lines, oldest first, with a cursor to resume. Each export is recorded. Admins only. |
|
|
267
|
+
| `help` | `search` | none | Searches the help center and returns articles with links. |
|
|
268
|
+
| `help` | `feedback` | none | Sends feedback or a problem to support as a ticket (signed out: add `email`). |
|
|
269
|
+
| `help` | `status` | none | Whether 50heads is working, and whether asking, answering, MCP asking or buying credits is paused. Works without signing in. Read-only. |
|
|
270
|
+
| `help` | `whoami` | `account:read` | Who the connection acts as (email masked), its scopes, caps and spend today, the account and organization it acts in, and its rate limits with what is used. Read-only. |
|
|
271
|
+
|
|
272
|
+
### Before and after
|
|
273
|
+
|
|
274
|
+
This release replaces the 44 single-purpose tools with the nine above (decision G12: at most ten tools, so a model can choose well). Every old tool is one action of one new tool, with the same arguments; two details changed: `build_ask_link` now takes its question fields inside `draft`, and the audit filter `action` is `event_action` (so it cannot clash with `action`). `wait_for_results` is now `results` with `action: "wait"` on every host.
|
|
275
|
+
|
|
276
|
+
| Old tool | New tool | Action |
|
|
210
277
|
| --- | --- | --- |
|
|
211
|
-
| `estimate` |
|
|
212
|
-
| `ask` |
|
|
213
|
-
| `
|
|
214
|
-
| `
|
|
215
|
-
| `
|
|
216
|
-
| `
|
|
217
|
-
| `
|
|
218
|
-
| `
|
|
219
|
-
| `
|
|
220
|
-
| `
|
|
221
|
-
| `
|
|
222
|
-
| `
|
|
223
|
-
| `
|
|
224
|
-
| `
|
|
225
|
-
| `
|
|
226
|
-
| `
|
|
227
|
-
| `
|
|
228
|
-
| `
|
|
229
|
-
|
|
278
|
+
| `estimate` | `estimate` | `quote` |
|
|
279
|
+
| `ask` | `ask` | `ask` |
|
|
280
|
+
| `ask_set` | `ask` | `set` |
|
|
281
|
+
| `get_results` | `results` | `get` |
|
|
282
|
+
| `wait_for_results` | `results` | `wait` |
|
|
283
|
+
| `list_questions` | `results` | `list` |
|
|
284
|
+
| `cancel` | `questions` | `cancel` |
|
|
285
|
+
| `templates` | `estimate` | `templates` |
|
|
286
|
+
| `balance` | `estimate` | `balance` |
|
|
287
|
+
| `upload_image` | `ask` | `upload_image` |
|
|
288
|
+
| `get_answers` | `results` | `answers` |
|
|
289
|
+
| `add_heads` | `questions` | `add_heads` |
|
|
290
|
+
| `flag_answer` | `questions` | `flag_answer` |
|
|
291
|
+
| `export` | `results` | `export` |
|
|
292
|
+
| `build_ask_link` | `ask` | `build_link` |
|
|
293
|
+
| `list_audiences` | `estimate` | `audiences` |
|
|
294
|
+
| `list_targeting` | `estimate` | `targeting` |
|
|
295
|
+
| `search_help` | `help` | `search` |
|
|
296
|
+
| `send_feedback` | `help` | `feedback` |
|
|
297
|
+
| `whoami` | `help` | `whoami` |
|
|
298
|
+
| `service_status` | `help` | `status` |
|
|
299
|
+
| `list_webhooks` | `webhooks` | `list` |
|
|
300
|
+
| `create_webhook` | `webhooks` | `create` |
|
|
301
|
+
| `update_webhook` | `webhooks` | `update` |
|
|
302
|
+
| `rotate_webhook_secret` | `webhooks` | `rotate_secret` |
|
|
303
|
+
| `test_webhook` | `webhooks` | `test` |
|
|
304
|
+
| `list_webhook_deliveries` | `webhooks` | `deliveries` |
|
|
305
|
+
| `list_webhook_events` | `webhooks` | `events` |
|
|
306
|
+
| `replay_webhook_delivery` | `webhooks` | `replay` |
|
|
307
|
+
| `delete_webhook` | `webhooks` | `delete` |
|
|
308
|
+
| `list_projects` | `projects` | `list` |
|
|
309
|
+
| `create_project` | `projects` | `create` |
|
|
310
|
+
| `update_project` | `projects` | `update` |
|
|
311
|
+
| `delete_project` | `projects` | `delete` |
|
|
312
|
+
| `list_labels` | `projects` | `labels` |
|
|
313
|
+
| `file_question` | `questions` | `file` |
|
|
314
|
+
| `list_apps` | `organization` | `apps` |
|
|
315
|
+
| `get_organization` | `organization` | `get` |
|
|
316
|
+
| `list_domains` | `organization` | `domains` |
|
|
317
|
+
| `list_audit_events` | `audit` | `list` |
|
|
318
|
+
| `export_audit_events` | `audit` | `export` |
|
|
319
|
+
| `get_scim_status` | `organization` | `scim` |
|
|
320
|
+
| `list_member_sessions` | `organization` | `member_sessions` |
|
|
321
|
+
| `list_service_accounts` | `organization` | `service_accounts` |
|
|
322
|
+
|
|
323
|
+
The webhook and app scopes are not granted unless asked for: a connection made before them, or one that did not ask, gets `insufficient_scope` and can reconnect to add them.
|
|
230
324
|
|
|
231
325
|
Every connection has a daily spend cap (default 5,000 credits). Asking past it returns `spend_cap_exceeded` with what is left and when it resets.
|
|
232
326
|
|
|
233
327
|
Errors are JSON-RPC errors with `error.data.code` (`validation`, `not_found`, `insufficient_credits`, `spend_cap_exceeded`, `idempotency_conflict`, `content_refused`, `rate_limited`, `unavailable`) and a `retryable` hint.
|
|
234
328
|
|
|
235
|
-
Resources: `50heads://guide` (the skill), `50heads://templates`, `50heads://question-types`, `50heads://pricing`, `50heads://countries`, `50heads://results/{question_id}`. Prompts: `ask_the_heads`, `read_results`. Hosts that show MCP Apps get the estimate and the results as cards.
|
|
329
|
+
Resources: `50heads://guide` (the skill), `50heads://templates`, `50heads://question-types`, `50heads://pricing`, `50heads://countries`, `50heads://webhook-events` (event types, what each carries, links to their JSON Schemas and how deliveries are signed), `50heads://results/{question_id}`. Prompts: `ask_the_heads`, `read_results`. Hosts that show MCP Apps get the estimate and the results as cards.
|
|
330
|
+
|
|
331
|
+
Tool annotations: read-only tools carry `readOnlyHint: true`; `questions` (cancel), `projects` (delete) and `webhooks` (delete) are the only tools marked `destructiveHint: true`; every tool has `openWorldHint: true` and an output schema (a union of its actions' outputs). Hosts that show MCP Apps get the quote and the results as cards: they appear for `estimate` and `results`, and only for the replies they were made for.
|
|
332
|
+
|
|
333
|
+
## Privacy
|
|
334
|
+
|
|
335
|
+
Privacy policy: https://50heads.com/en-gb/legal/privacy. We don't use your questions, the answers you buy or the reasons heads write to train AI models, and we don't sell them: https://50heads.com/en-gb/help/privacy/ai-and-your-data. Answers never identify a head.
|
|
336
|
+
|
|
337
|
+
## Where to find it
|
|
338
|
+
|
|
339
|
+
- Hosted: `https://mcp.50heads.com/mcp`.
|
|
340
|
+
- npm: `@50heads/mcp`.
|
|
341
|
+
- Official MCP Registry, as `com.50heads/mcp`, and MCP directories: coming soon.
|
|
236
342
|
|
|
237
343
|
## The Agent Skill
|
|
238
344
|
|
|
@@ -267,4 +373,8 @@ pnpm --filter @50heads/mcp build # dist/cli.js, dist/index.js, types, skill
|
|
|
267
373
|
|
|
268
374
|
Releasing (npm with provenance from the public mirror, the MCP Registry and a GitHub Release) is described in [docs/publishing.md](../../docs/publishing.md).
|
|
269
375
|
|
|
270
|
-
MIT
|
|
376
|
+
MIT license.
|
|
377
|
+
|
|
378
|
+
## Spelling
|
|
379
|
+
|
|
380
|
+
Everything the server says, accepts and returns is US English: tool names, actions, descriptions, arguments, outputs and error codes (`organization`, `authorized`, `canceled`). One word is not ours to spell: the status of an MCP task that was stopped is `cancelled`, because the MCP tasks protocol defines it that way and clients validate it. A question stopped through `questions` with `action: "cancel"` has status `canceled`.
|