Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Build, version and render resumes as PDFs from Claude or any MCP client.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
Authorizationค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ที่อยู่นี้ต้องใส่ key ใน header ของคำขอ ซึ่งเมนูเพิ่ม connector ใส่ให้ไม่ได้ ใช้ Claude Code, Cursor หรือ VS Code แทน
พิมพ์คำสั่งนี้ใน Terminal
claude mcp add --transport http resustack https://resustackapp.com/mcp --header 'Authorization: ใส่ค่าของคุณ'เติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"resustack": {
"url": "https://resustackapp.com/mcp",
"headers": {
"Authorization": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"resustack": {
"type": "http",
"url": "https://resustackapp.com/mcp",
"headers": {
"Authorization": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ที่อยู่นี้ต้องใส่ key ใน header ของคำขอ ซึ่งเมนูเพิ่ม connector ใส่ให้ไม่ได้ ใช้ Claude Code, Cursor หรือ VS Code แทน
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
Authorization ความลับ จำเป็น HTTP headerค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
ยังไม่ได้อ่านรายการเครื่องมือของตัวนี้ เราตรวจ endpoint ทีละชุดวนไป
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ผู้ลงทะเบียน (resustackapp.com) ไม่ใช่เจ้าของ repo (koksalkapucuoglu) อาจเป็นคนอื่นที่นำมาลงต่อ
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป
ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป
ยังไม่ได้ตรวจ เราอ่านรายการเครื่องมือตอนตรวจ endpoint
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 0 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: Authorization
รันบนคลาวด์ของผู้ทำ ต่อผ่านอินเทอร์เน็ตได้เลย ไม่ต้องลงโปรแกรม แต่ข้อมูลที่ส่งให้จะผ่านเซิร์ฟเวอร์ของผู้ทำ
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.0.0) เข้า registry 2 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, BankBridge
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.
Works in any MCP agent, including local models. Read-only bank accounts, spending, investments.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
ResuStack is an AI resume builder. Import a PDF or your LinkedIn profile, pick one of 14 designs, and edit by form or by chat — in the browser, or straight from Claude through its MCP server. Every change is reversible, and the PDF you download is rendered from the same template as the live preview.
🔗 Live: resustackapp.com
ResuStack is a Model Context Protocol server. Claude — or any MCP client with Streamable HTTP and custom headers — writes the resume; ResuStack stores it, versions it and renders it.
1. Create a token. Sign in, open Profile → API token, and create one. It is shown once; replacing it revokes the old one. The Profile page also shows the endpoint address to use.
2. Add the server. With Claude Code:
claude mcp add --transport http resustack https://resustackapp.com/mcp --header "Authorization: Bearer YOUR_TOKEN"
Authentication is a bearer token only; session cookies are not accepted on this endpoint.
3. Ask. *"List my resumes"*, *"Switch my CV to the Label Gutter design and give me the PDF"*, *"Fill What I'm working on from what we did this month."*
| Tool | What it does |
|---|---|
list_resumes | Resumes on the account: id, title, language, template |
get_resume | The full stored content of one resume |
create_resume | Create a resume from structured content |
update_resume | Replace a resume's content (read it first — this is a replace, not a merge) |
set_focus_areas | Set only the "What I'm working on" section; the rest of the resume is untouched |
list_templates | The designs, with a description and whether each is ATS-safe |
set_template | Change a resume's design |
render_pdf | A download link for the PDF — single use, expires in 10 minutes |
check_quota | What the account has left this month |
| Prompt | What it does |
|---|---|
focus_areas_from_my_work | Has the client's model summarise the work you have actually done — from the conversations it can see — into a few lines, show them to you, and save them with set_focus_areas only after you approve |
server.json at the repository root describes the server for the official MCP Registry as com.resustackapp/resustack. Publishing under that name requires proving ownership of resustackapp.com with a file served at /.well-known/mcp-registry-auth:
key.pem (it is in .gitignore): openssl genpkey -algorithm Ed25519 -out key.pem
MCP_REGISTRY_AUTH environment variable in Dokploy, then redeploy: echo "v=MCPv1; k=ed25519; p=$(openssl pkey -in key.pem -pubout -outform DER | tail -c 32 | base64)"
curl https://resustackapp.com/.well-known/mcp-registry-auth
mcp-publisher login http --domain resustackapp.com --private-key "$(openssl pkey -in key.pem -noout -text | grep -A3 'priv:' | tail -n +2 | tr -d ' :\n')"
mcp-publisher publish
Bump version in server.json (and SERVER_INFO in mcp_server/protocol.py) for each new listing.
Free to start. Pro is a one-time purchase for a period — no subscription.
| Free plan | Limit |
|---|---|
| AI credits (import, AI rewrite, improvement draft, chat message) | 30 / month |
| PDF downloads | 5 / month |
| Resumes (language versions are free) | 3 |
| Job copies | 3 |
Pro ($9 for 3 months, $24 for 12 months, one-time) removes these limits. Payments are handled by Paddle, the merchant of record. Limits live in FREE_TIER_LIMITS in core/settings.py; see the pricing page.
git clone https://github.com/koksalkapucuoglu/resume-enhance.git
cd resume-enhance && cp .env.example .env
| Variable | Description | Example |
|---|---|---|
OPENAI_API_KEY | OpenAI API key | sk-proj-... |
SECRET_KEY | Django secret key | any long random string |
DEBUG | Debug mode | True |
ALLOWED_HOSTS | Allowed hosts | localhost,127.0.0.1 |
POSTGRES_DB / POSTGRES_USER / POSTGRES_PASSWORD | Database credentials | postgres |
POSTGRES_HOST / POSTGRES_PORT | Database address | db / 5432 |
EMAIL_HOST_USER / EMAIL_HOST_PASSWORD | SMTP credentials for password resets and email verification; for Gmail, an app password | you@gmail.com / app password |
EMAIL_HOST / EMAIL_PORT / EMAIL_USE_TLS / EMAIL_USE_SSL | SMTP server; defaults to Gmail (smtp.gmail.com, 587, TLS). For implicit TLS on 465, set EMAIL_USE_SSL=True | smtp.gmail.com / 587 / True / False |
DOWNLOAD_LINK_MAX_AGE | Seconds a signed PDF link stays valid (optional) | 600 |
GOOGLE_OAUTH_CLIENT_ID / GOOGLE_OAUTH_CLIENT_SECRET | Google sign-in; the button stays hidden until both are set (optional) | from Google Cloud Console |
DEFAULT_FROM_EMAIL | Sender for account emails; defaults to EMAIL_HOST_USER (optional) | ResuStack |
MCP_REGISTRY_AUTH | MCP Registry domain proof served at /.well-known/mcp-registry-auth (optional, public key only) | v=MCPv1; k=ed25519; p=... |
PAYMENT_STATUS | coming_soon shows plans without taking payment; live enables checkout | coming_soon |
PAYMENT_PROVIDER, PAYMENT_WEBHOOK_SECRET, CHECKOUT_URL_*, PRODUCT_ID_* | Payment provider settings (optional) |
docker compose up --build
The app runs at http://localhost:8000.
docker compose exec web python manage.py test resume mcp_server
WeasyPrint and OpenAI are mocked in the unit tests; no API calls are made.
Production runs on [Dokploy](https://dokploy.com). Every push to main triggers a deploy through a GitHub webhook: Dokploy builds the Dockerfile, and entrypoint.sh runs migrate and collectstatic before starting Gunicorn. Traefik handles HTTPS.
Setting it up on a new server:
curl -sSL https://dokploy.com/install.sh | shhttp://YOUR_SERVER_IP:3000 and create an admin account.env.example and .claude/integrations/) and the domain, then deployNotes:
ENTRYPOINT does everythingSign-in with Google uses django-allauth. ResuStack's own login, sign-up and password pages stay in charge; allauth adds only the Google flow.
https://resustackapp.com/privacy/ and only the openid, email and profile scopes.https://resustackapp.comhttps://resustackapp.com/accounts/google/login/callback/http://localhost:8000/accounts/google/login/callback/GOOGLE_OAUTH_CLIENT_ID and GOOGLE_OAUTH_CLIENT_SECRET and redeploy.How it behaves:
What ResuStack collects, who processes it (including OpenAI for AI features) and how to delete it: resustackapp.com/privacy. The Turkish version, written as the KVKK information notice, is at resustackapp.com/gizlilik. Users can delete their account and all its data from the Profile page.
Monolithic Django: views, an MCP endpoint, WeasyPrint for PDFs, OpenAI for writing, TypeSafe Jev for scores and checks, Paddle for payments, Sentry and PostHog (both optional) for errors and the product funnel. Resume content is a single JSONField; every design comes from one catalogue in resume/resume_templates.py. The full guide — conventions, patterns and pitfalls — is in .claude/CLAUDE.md; every in
ตัดมาแค่ช่วงต้น อ่านต่อใน repo