Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Give your AI agents the ability to ask real users why.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
USERCALL_API_KEY, USERCALL_BASE_URLค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ใช้ได้ทั้ง Claude บนเว็บ แอปคอมพิวเตอร์ และมือถือ:
https://mcp.usercall.coเปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"usercall": {
"command": "npx",
"args": [
"-y",
"@usercall/mcp"
],
"env": {
"USERCALL_API_KEY": "ใส่ค่าของคุณ",
"USERCALL_BASE_URL": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add --transport http usercall https://mcp.usercall.coclaude mcp add usercall --env USERCALL_API_KEY='ใส่ค่าของคุณ' --env USERCALL_BASE_URL='ใส่ค่าของคุณ' -- npx -y @usercall/mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"usercall": {
"url": "https://mcp.usercall.co"
}
}
}วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"usercall": {
"command": "npx",
"args": [
"-y",
"@usercall/mcp"
],
"env": {
"USERCALL_API_KEY": "ใส่ค่าของคุณ",
"USERCALL_BASE_URL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"usercall": {
"type": "http",
"url": "https://mcp.usercall.co"
}
}
}วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"usercall": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@usercall/mcp"
],
"env": {
"USERCALL_API_KEY": "ใส่ค่าของคุณ",
"USERCALL_BASE_URL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ChatGPT ต่อได้เฉพาะ server ที่อยู่บนอินเทอร์เน็ต:
https://mcp.usercall.coชื่อเมนูอาจต่างกันเล็กน้อยตามแพ็กเกจและรุ่นของแอป
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
USERCALL_BASE_URL envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
ยังไม่ได้อ่านรายการเครื่องมือของตัวนี้ เราตรวจ endpoint ทีละชุดวนไป
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันโดเมน usercall.co แล้ว (registry ตรวจความเป็นเจ้าของโดเมน)
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป
ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป
ยังไม่ได้ตรวจ เราอ่านรายการเครื่องมือตอนตรวจ endpoint
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: USERCALL_API_KEY
ได้ทั้งสองแบบ จะลงในเครื่องหรือต่อผ่านคลาวด์ก็ได้
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.4.0) เข้า registry 37 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, zanadir
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Find what a repository's CI is missing, and which security checks cannot fail the build.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
AI can build products. But it still doesn't talk to users.
Give your AI agents the ability to ask real users why.
Usercall MCP runs AI-moderated voice or text interviews with real users. Use it to learn why users churn, where onboarding drops off, or why an action failed, and get themes, insights, and verbatim quotes.
AI agents can now build and ship products extremely quickly.
But most agents still rely on synthetic feedback or assumptions about users.
Usercall MCP lets agents gather real qualitative feedback directly from users.
Add `https://mcp.usercall.co` as a remote MCP connector / custom connector.
npx).mcp.json so cursor.directory can install the hosted connector. Grok Bot cannot run the local npx package.Root plugin.json, mcp.json, and skills/ are the ChatGPT submission package (version in plugin.json, not package.json). Validate it and write the ZIP with:
pnpm plugin:check
The ZIP is dist/usercall-chatgpt-plugin- .zip. Do not upload it unless someone asks to submit.
Community. Already listed at cursor.directory/plugins/usercall.
Official Marketplace. Once the listing is live, install from the Cursor Marketplace. Submit the repo at cursor.com/marketplace/publish.
Manual. Add the hosted MCP. OAuth sign-in, no API key.
{
"mcpServers": { "usercall": { "url": "https://mcp.usercall.co" } } }
Use @usercall/mcp over stdio when you want a Bearer API key (scripts, local clients, M2M).
npx -y @usercall/mcp with USERCALL_API_KEYAgent: "Why are users confused about onboarding?"
→ create_study → share interview_link with users → get_study_results
The returned interview_link is an https://app.usercall.co/interview/ URL. Share it with participants through email, Slack, Discord, or in-product prompts.
Example result:
{
"themes": [ { "name": "Onboarding confusion", "summary": "Users struggled to understand the second step.", "quotes": [ "I wasn't sure what the app was asking me to do.", "I didn't know I had to verify my email before continuing." ] }, { "name": "Pricing confusion", "summary": "Free plan limits were not clearly communicated.", "quotes": ["I wasn't sure if the free plan included analytics."] } ] }
AI Agent
↓
Usercall MCP (hosted OAuth or this stdio package)
↓
Usercall Agent API
↓
Real user interviews
↓
Themes and verbatim quotes returned to the agent
With Research Triggers, the agent can also target users in your product:
Analytics MCP (PostHog, Mixpanel, …) finds a behavior
↓
Usercall MCP creates a study and a paused Research Trigger
↓
You activate it in Usercall
↓
The Usercall SDK invites matching users to an interview right after the behavior
Analytics tells an agent *what* users do. Research Triggers let it ask them *why*.
User: "Look at our PostHog data and find something worth investigating."
Agent (PostHog MCP): users who test a study rarely launch one.
Agent (Usercall MCP): list_trigger_events() → study_tested, study_launched, … get_trigger_event_schema("study_tested") → properties: source, interview_type traits: plan ("free", "pro"), account_type create_study(...) or list_studies() create_research_trigger({ study_id, event_name: "study_tested", traits: { plan: "free" }, sampling_percent: 25, max_invites_per_day: 10 }) → status: "paused", summary, activation_url
Agent: "I've prepared a Research Trigger. When: study_tested · Audience: plan = free · 25% sampled · max 10 invites/day. It's paused. A human activates it here: "
list_trigger_events returns nothing, call get_trigger_sdk_setup (with your analytics provider and event names) to get the snippet. Coding agents can install it for you.get_trigger_event_schema shows which field is which.get_trigger_capabilities returns the full list.Sign in at app.usercall.co → Home → Developer → Create API key
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": { "usercall": { "command": "npx", "args": ["-y", "@usercall/mcp"], "env": { "USERCALL_API_KEY": "your_key_here" } } } }
Cursor (.cursor/mcp.json):
{
"mcpServers": { "usercall": { "command": "npx", "args": ["-y", "@usercall/mcp"], "env": { "USERCALL_API_KEY": "your_key_here" } } } }
For Claude, ChatGPT, or Cursor remote connectors, prefer https://mcp.usercall.co instead of this JSON config.
Restart your MCP client.
Run user interviews to understand why users drop off during onboarding.
Context:
Goal: Identify confusion points and friction.
Target interviews: 5 Language: ko Interview mode: voice
Show participants this prototype during the interview: https://www.figma.com/proto/abcd1234/onboarding-flow
The agent will:
Equivalent create_study tool call:
create_study
key_research_goal: "Understand why users drop off during onboarding" business_context: "B2B SaaS signup flow" target_interviews: 5 languages: ["en"] interview_mode: "voice"
study_media: type: "prototype" url: "https://www.figma.com/proto/abcd1234/onboarding-flow" description: "New onboarding flow concept"
create_studyCreate an AI-moderated interview study to learn why users churn, drop off in onboarding, fail an action, or where a product assumption is wrong. Returns HTTP 201 with study_id and interview_link for a voice, text, or voice-and-text interview. interview_link is an https://app.usercall.co/interview/ URL. key_research_goal is required and cannot be changed later. business_context is optional. Defaults: target_interviews 1, duration_minutes 12, interview_mode voice. One active agent study per account. Does not run the interview or invite a participant. HTTP 402 includes checkout_url.
| Field | Type | Required | Default | ||
|---|---|---|---|---|---|
key_research_goal | string (5–2000) | yes | |||
business_context | string (5–2000) | no | |||
additional_context_prompt | string | no | |||
target_interviews | number (1–200) | no | 1 | ||
languages | string[] | no | |||
duration_minutes | number (5–65) | no | 12 | ||
interview_mode | `voice \ | text \ | voice_and_text` | no | voice |
voice_gender | `female \ | male` | no | ||
enable_link_context | boolean | no | |||
custom_link_variables | { key, label?, default_value? }[] | no | |||
metadata | object | no | |||
study_media | object | no |
One locale turns the language picker off; two or more turn it on. Research goal cannot be changed after create.
study_media (optional). Visual stimulus shown during all interview questions:
| Field | Type | Required | |
|---|---|---|---|
type | `image \ | prototype` | yes |
url | string (URL) | yes | |
description | string (max 500 chars) | no |
image: Direct image URL (.png, .jpg, .gif, .webp)prototype: Figma prototype URL (converted to interactive embed)update_studyUpdate an interview study: slots, guide questions, intro, languages, voice, or an image or Figma prototype shown to participants. Returns the updated study. key_research_goal cannot be changed. is_link_disabled true stops new interviews and keeps recordings. One locale hides the language picker; two or more show it. Query parameters on interview_link are ignored until enable_link_context is true. study_media null clears media. API errors include http_status. Does not dry-run the guide or invite a participant.
| Field | Type | Required | ||
|---|---|---|---|---|
study_id | uuid string | yes | ||
target_interviews | number (1–200) | no | ||
is_link_disabled | boolean | no | ||
ai_agent_intro_message | string | no | ||
key_learning_goals | string | no | ||
workflow_end_message | string | no | ||
workflow_questions | { text, ... }[] | no | ||
interview_mode | `voice \ | text \ | voice_and_text` | no |
languages | string[] | no | ||
voice_gender | `female \ | male` | no | |
enable_link_context | boolean | no | ||
custom_link_variables | { key, label?, default_value? }[] | no | ||
study_media | object or null | no |
Pass study_media: null to clear media. The study_media object follows the same schema as in create_study.
get_study_statusCheck whether interviews about churn, onboarding, or a failed action have started. Returns completed_interviews, target_interviews, interview_link, and next_step. interview_link is an `
ตัดมาแค่ช่วงต้น อ่านต่อใน repo