voc-claude-skills
Noted as a location to avoid pointing the output directory at, as it may cause issues with data privacy.
Pulls customer quotes that team members have pasted into Slack.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@voc-claude-skillswhat are the top corroborated customer issues?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Voice of Customer skills for Claude Code
A VoC pipeline that refuses to report a pattern until several independent channels agree. Pulls from call recordings, review sites, internal chat, meeting notes and anything else you wire up. Weights each signal by who said it. Reports only what corroborates. Routes the result to the person who can act on it, with the customer's exact words attached.
Most "AI for customer feedback" workflows stop at summarize this. A summary of a hundred conversations is a paragraph nobody acts on, and the human is still the bottleneck. This is the system version: signal in continuously, confirmation applied mechanically, human attention spent only on judgment calls.
What it produces
Here is the shape of the output. Company names are fictional and the numbers are illustrative — this is a format example, not a real run.
SYNTHESIS — rule: 3+ independent channels, or 2+ with a tier-A account. Minimum 3 mentions.
──────────────────────────────────────────────────────────────────────────────
34 clusters in → 6 confirmed · 9 watchlist · 19 dropped
CONFIRMED
[HIGH ] Export is slow on large datasets
pain · 11 mentions · 3 channels (call, review, chat) · 7 accounts · A:2 B:8 C:1
3 independent channels
+4 unattributed signal(s) excluded from the count
[HIGH ] Cannot buy without SSO
request · 6 mentions · 2 channels (call, ticket) · 4 accounts · A:2 B:4
2 channels including a tier-A account
[MEDIUM] Onboarding felt long
pain · 5 mentions · 2 channels · 1 account · B:5
2 channels, no tier-A contributor — downgraded: all mentions from one
account (Northwind Trading)
WATCHLIST (single channel — not reported, kept for corroboration)
· Reporting filters are confusing (review, 3 mentions)
DROPPED (19) — kept in 2026-04-26-dropped.json for traceabilityThat last downgrade is the point of the whole thing. Five mentions of a pain looks like a trend right up until you notice they are all the same customer. This pipeline checks the account spread in code, every time, so nobody has to remember to.
What this gets wrong
Read this before you trust anything it outputs.
The confirmation rule is a heuristic, not a truth test. Three channels can all reflect one loud market segment. It filters noise; it does not establish fact.
Every source is a biased sample. Sales calls only contain people who took a meeting. Reviews only contain the delighted, the furious, and the incentivized. Chat only contains what a colleague found notable enough to paste. None of these is your market.
Adding connectors makes confirmation easier, not truer. Wire up six channels and things start confirming that should not. Raise
min_independent_sourceswhen you add sources.Cross-source duplicates manufacture confidence. The same complaint relayed in chat, captured on a call, and filed as a ticket is one event, not three. Deduplication happens before profiling, and if you skip it the rule cannot save you.
It cannot tell you what nobody said. The biggest reason people do not buy is usually invisible to every source here.
Verify it in thirty seconds
git clone <this-repo> && cd voc-claude-skills
npm install
npm run checknpm run check validates every skill's frontmatter, catches lowercase skill.md files that
break on Linux, scans for absolute paths and leaked credentials, syntax-checks every script, and
confirms the threshold config parses. No credentials needed. It exits non-zero on failure, so it
works in CI.
Then, with nothing configured yet:
node scripts/synthesize.js examples/clusters.sample.json --out /tmp/voc-demoThat runs the actual confirmation rule against sample clusters and shows you exactly what confirms, what goes to the watchlist, and what gets dropped. It is the core of the system and it runs without an API key.
Architecture
calls · reviews · chat · notes · custom
│
▼
/voc-source-* normalize to one signal shape
│
▼
/voc-profiler CRM context, ICP fit, weight tier
│ (tier U = unattributed = quarantined)
▼
/voc-synthesize cluster by meaning (subagents)
│ apply the rule (code)
▼
/voc-route testimonial · case study · objection map
│ product feedback · exec memo
▼
/voc-dispatch outreach emails · copy briefs
PM one-pagers · exec memoClustering is judgment, so a model does it. Counting is not, so code does it. The
confirmation rule lives in scripts/synthesize.js reading config/thresholds.json, and nowhere
else — it is a threshold you tune, not a paragraph a model interprets differently each run.
Skills
Skill | What it does |
| The weekly run. All six phases, with preflight. |
| Pull transcripts from your call recorder |
| Transcripts → prospect intelligence report |
| G2, Capterra and friends → messaging brief. Costs money. |
| Customer quotes your team pasted into Slack |
| AI meeting notes, for the conversations the recorder missed |
| Surveys, tickets, CRM email, anything else |
| Attach CRM context and weight to one signal |
| Cross-source confirmation |
| Send each theme where it gets acted on |
| Generate the actual deliverables |
Setup
Full walkthrough in docs/SETUP.md. The short version:
cp .env.example .env # call recorder + tokens
cp .mcp.json.example .mcp.json # MCP servers
cp context/product-context.example.md context/product-context.mdThen fill in product-context.md. It takes about twenty minutes and it is the difference between
useful output and generic themes.
You do not need everything. The pipeline runs with one source and tells you honestly that nothing can reach high confidence. Start with calls, add chat, then reviews.
After connecting any MCP server, run /mcp and copy the exact tool names into the relevant
skill's allowed-tools. Tool namespaces differ between servers for the same product, and a
skill that declares a name your server does not expose fails at its first call while looking like
it ran. This is the most common setup failure by a wide margin.
Cost
Everything is free except review mining, which runs paid scrapers. A four-domain run typically lands between $2 and $8. Apify's free tier is $5 of credit total, not monthly — one wide run can consume it. See docs/COST.md before your first review run.
Privacy
This pipeline writes customer conversation transcripts to disk. They are personal data under GDPR and CCPA.
Point
VOC_OUTPUT_DIRat a local, gitignored path. Not Dropbox, not iCloud. The orchestrator's preflight warns you, but check it yourself.Recording laws vary by jurisdiction. This tool assumes you already have lawful recordings.
Tell your team the chat harvesting is running.
A public review is not permission to put someone's words in an ad with their logo. Nothing in this repo ever marks a quote as approved.
Requirements
Node 18+. Claude Code. A call recorder with a transcript API is the only near-essential dependency; everything else is optional.
Contributing
Adding a call-recorder adapter is the most useful contribution — see
scripts/providers/README.md, it is four functions. Run
npm run check before opening a PR.
License
MIT. See LICENSE.
Frameworks referenced in the skills are credited in CREDITS.md.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Decision intelligence for product teams. Turn scattered feedback into signal you can act on.
Cross-model evidence pipeline for financial filings & contracts. x402 pay-per-call.
Trending topics, cross-platform sentiment, viral content, community pulse & brand mentions.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/aatirar/voc-claude-skills'
If you have feedback or need assistance with the MCP directory API, please join our Discord server