Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Consensus rankings for 75,000+ products across 2,600+ niches.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ใช้ได้ทั้ง Claude บนเว็บ แอปคอมพิวเตอร์ และมือถือ:
https://lunoo.com/mcpพิมพ์คำสั่งนี้ใน Terminal
claude mcp add --transport http rankings https://lunoo.com/mcpวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"rankings": {
"url": "https://lunoo.com/mcp"
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"rankings": {
"type": "http",
"url": "https://lunoo.com/mcp"
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ChatGPT ต่อได้เฉพาะ server ที่อยู่บนอินเทอร์เน็ต:
https://lunoo.com/mcpชื่อเมนูอาจต่างกันเล็กน้อยตามแพ็กเกจและรุ่นของแอป
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
ยังไม่ได้อ่านรายการเครื่องมือของตัวนี้ เราตรวจ endpoint ทีละชุดวนไป
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันโดเมน lunoo.com แล้ว (registry ตรวจความเป็นเจ้าของโดเมน)
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป
ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป
ยังไม่ได้ตรวจ เราอ่านรายการเครื่องมือตอนตรวจ endpoint
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนคลาวด์ของผู้ทำ ต่อผ่านอินเทอร์เน็ตได้เลย ไม่ต้องลงโปรแกรม แต่ข้อมูลที่ส่งให้จะผ่านเซิร์ฟเวอร์ของผู้ทำ
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.0.0) เข้า registry 4 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Signoff
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.
Five gates that make an agent's 'done' provable: run them, read the verdict, audit the record.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Public Model Context Protocol (MCP) server for Lunoo, a rankings platform covering more than 231,000 items across more than 2,600 categories on a 0-10 scale.
Ask for rankings in normal language, from anime and laptops to software, travel, books, and thousands of other categories. The server resolves the closest live category, returns scored items with Lunoo links, and refuses unsupported queries instead of inventing a result.
This is a read-only public proxy over Lunoo's public web API. No authentication required, no database access, no API keys, no cost.
127.0.0.1 by default so a reverse proxy can expose only the intended HTTPS route.Self-hosted deployments should keep the Node port private and expose /mcp through an HTTPS reverse proxy. Do not publish port 8972 directly.
Open Claude's connector settings, choose Add custom connector, and enter:
Name: Lunoo Rankings
URL: https://lunoo.com/mcp
No authentication is required. Test with a request such as Find the best laptop for video editing using Lunoo.
In your project's .claude/settings.json:
{
"mcpServers": { "lunoo": { "url": "https://lunoo.com/mcp" } } }
Or run from any Claude Code session:
claude mcp add --transport http lunoo https://lunoo.com/mcp
Post JSON-RPC 2.0 requests to https://lunoo.com/mcp. Example:
curl -X POST https://lunoo.com/mcp \
-H 'Content-Type: application/json' \ -d '{ "jsonrpc": "2.0", "method": "tools/list", "id": 1 }'
npm install
npm start
Health check:
curl http://localhost:8972/healthz
Resolve a normal-language request to live ranking categories. Returns up to 10 matches with confidence, matched terms, item counts, and tracked Lunoo links.
Input:
{
"query": "string - normal-language request, e.g. 'best laptop for video editing'" }
Output: Array of niches with slug, display name, Lunoo URL, and JSON endpoint URL.
Example Request:
{
"jsonrpc": "2.0", "method": "tools/call", "params": { "name": "find_niche", "arguments": { "query": "anime" } }, "id": 1 }
Example Response:
{
"jsonrpc": "2.0", "result": { "isError": false, "content": [ { "type": "text", "text": "[\n {\n \"slug\": \"anime\",\n \"name\": \"anime\",\n \"url\": \"https://lunoo.com/best/anime\",\n \"rankings_json\": \"https://lunoo.com/best/anime.json\"\n },\n ...\n]" } ] }, "id": 1 }
Fetch ranked items for a category slug or a normal-language request. Returns the resolved category, match explanation, score metadata, and top items.
Input:
{
"niche": "string - niche slug, e.g. 'anime'", "limit": "number? - items to return, 1-50, default 10" }
Output: Niche metadata plus ranked items with rank, name, score (0-10), description, URL, and confidence label.
Example Request:
{
"jsonrpc": "2.0", "method": "tools/call", "params": { "name": "get_rankings", "arguments": { "niche": "anime", "limit": 3 } }, "id": 2 }
Example Response:
{
"jsonrpc": "2.0", "result": { "isError": false, "content": [ { "type": "text", "text": "{\n \"name\": \"anime\",\n \"url\": \"https://lunoo.com/best/anime\",\n \"item_count\": 1847,\n \"updated_at\": \"2026-07-02T08:15:00Z\",\n \"score_scale\": \"0-10\",\n \"ranking_method\": \"Consensus-based scoring\",\n \"top_items\": [\n {\n \"rank\": 1,\n \"name\": \"Frieren: Beyond Journey's End\",\n \"score\": 9.15,\n \"url\": \"https://lunoo.com/item/frieren-beyond-journeys-end\",\n \"description\": \"A fantasy adventure about a thousand-year journey...\"\n },\n ...\n ]\n}" } ] }, "id": 2 }
Extract structured metadata (JSON-LD) for an item by slug. Parses all schema.org blocks embedded on the item page.
Input:
{
"slug": "string - item slug, e.g. 'frieren-beyond-journeys-end'" }
Output: Item URL and array of parsed JSON-LD objects (BreadcrumbList, AggregateRating, etc.).
Example Request:
{
"jsonrpc": "2.0", "method": "tools/call", "params": { "name": "get_item", "arguments": { "slug": "frieren-beyond-journeys-end" } }, "id": 3 }
Example Response:
{
"jsonrpc": "2.0", "result": { "isError": false, "content": [ { "type": "text", "text": "{\n \"url\": \"https://lunoo.com/item/frieren-beyond-journeys-end\",\n \"structured_data\": [\n {\n \"@context\": \"https://schema.org\",\n \"@type\": \"AggregateRating\",\n \"ratingValue\": 9.15,\n \"ratingCount\": 847\n },\n ...\n ]\n}" } ] }, "id": 3 }
The server implements Model Context Protocol v2025-03-26. Initialize with:
{
"jsonrpc": "2.0", "method": "initialize", "params": { "protocolVersion": "2025-03-26", "capabilities": {}, "clientInfo": { "name": "my-client", "version": "1.0.0" } }, "id": 0 }
Response includes server capabilities, protocol version, and instructions.
Results are cached locally in the live service at https://lunoo.com/mcp:
When self-hosting, cache is in-memory per server instance and cleared on restart.
On failure (404, timeout, network error), tools return:
{
"isError": true, "content": [ { "type": "text", "text": "Niche \"invalid-slug\" not found (404). Try find_niche to discover available niches." } ] }
Never throws unhandled exceptions; all errors are JSON-RPC compliant.
Link to full rankings pages on Lunoo as:
https://lunoo.com/best/{slug}
Example: https://lunoo.com/best/anime
See https://lunoo.com/llms.txt for how to cite Lunoo rankings in LLM outputs.
Node 18+, npm
git clone https://github.com/PeakProductivity/lunoo-mcp.git
cd lunoo-mcp npm install
npm start
PORT=9000 npm start
pm2 start server.mjs --name lunoo-mcp
location /mcp {
proxy_pass http://localhost:8972; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }
The live service accepts browser requests only from the configured Claude origins. Requests from arbitrary browser origins are rejected. Server-side MCP clients without an Origin header are accepted.
Self-hosted instances use the same safe defaults. Override the browser allowlist with the comma-separated MCP_ALLOWED_ORIGINS environment variable when necessary.
| Method | Path | Description |
|---|---|---|
| POST | /mcp | JSON-RPC 2.0 endpoint |
| GET | /healthz | Health check |
Found an issue with a ranking? Report it on Lunoo: https://lunoo.com
MIT. See LICENSE file.