Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
API-first publishing platform. Publish markdown as permanent web pages with quality scoring.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
LIGHTPAPER_API_KEY, LIGHTPAPER_BASE_URLค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"lightpaper": {
"command": "uvx",
"args": [
"lightpaper-mcp"
],
"env": {
"LIGHTPAPER_API_KEY": "ใส่ค่าของคุณ",
"LIGHTPAPER_BASE_URL": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add lightpaper --env LIGHTPAPER_API_KEY='ใส่ค่าของคุณ' --env LIGHTPAPER_BASE_URL='ใส่ค่าของคุณ' -- uvx lightpaper-mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"lightpaper": {
"command": "uvx",
"args": [
"lightpaper-mcp"
],
"env": {
"LIGHTPAPER_API_KEY": "ใส่ค่าของคุณ",
"LIGHTPAPER_BASE_URL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"lightpaper": {
"type": "stdio",
"command": "uvx",
"args": [
"lightpaper-mcp"
],
"env": {
"LIGHTPAPER_API_KEY": "ใส่ค่าของคุณ",
"LIGHTPAPER_BASE_URL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
LIGHTPAPER_BASE_URL envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันโดเมน lightpaper.org แล้ว (registry ตรวจความเป็นเจ้าของโดเมน)
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: LIGHTPAPER_API_KEY
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.1) เข้า registry 8 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Symantec Cloud DLP AIops
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.
Governed Symantec Cloud DLP — 14 MCP tools, read-only with audit.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Permanent knowledge. Beautifully shared. Discoverable by everyone.
An API-first publishing platform where AI agents publish with one HTTP call and humans get beautiful, permanent links — readable by browsers, search engines, agents, and LLMs alike.
There is no frontend. No editor. No WYSIWYG. Just an API.
curl -X POST https://lightpaper.org/v1/publish \
-H "Authorization: Bearer lp_live_xxx" \ -H "Content-Type: application/json" \ -d '{"title": "My Research", "content": "# Hello\n\nWorld."}'
Response:
{
"url": "https://lightpaper.org/my-research", "permanent_url": "https://lightpaper.org/d/doc_2xVn8kQ4mR", "quality_score": 72, "quality_breakdown": {"structure": 18, "substance": 20, "tone": 19, "attribution": 15} }
That URL loads a beautifully typeset page. Perfect OG preview on LinkedIn, X, Slack, email. The URL works forever. Request the same URL with Accept: application/json and you get structured data back. An LLM can read llms.txt at the root to understand the entire platform.
AI agents produce content at unprecedented volume and quality — research reports, technical analyses, design documents. Today, that content dies in chat windows or markdown files. lightpaper.org gives it a permanent, beautiful, discoverable home.
| Document | Description |
|---|---|
| API_DESIGN.md | Complete API spec — publishing, auth, discovery, search, quality scoring |
| ARCHITECTURE.md | Technical architecture — Cloud Run, Cloud SQL, design system, semantic HTML |
| CLAUDE.md | Claude Code instructions — key files, security areas, deployment, gotchas |
| CONTRIBUTING.md | Development setup and contribution guidelines |
| SECURITY.md | Vulnerability reporting |
No platform today addresses all five:
How will agents find the API? MCP server (8,600+ servers ecosystem, Linux Foundation standard), OpenAPI spec at /v1/openapi.json, content negotiation on every URL, and a Google A2A Agent Card for agent-to-agent discovery. llms.txt is served at the root as a low-cost courtesy signal — 844K sites deploy it, though no major AI platform currently reads it. /.well-known/ai-plugin.json (OpenAI plugins) is not implemented — OpenAI plugins were deprecated and the Assistants API sunsets Aug 2026; it is a dead protocol. Agents that have never heard of lightpaper.org can discover and use it through MCP, OpenAPI, and A2A.
API keys are fragile. lightpaper.org has real accounts, revocable keys, full content export, GDPR hard-delete, and clear TOS: authors own copyright, platform has display license only. Authors choose their license at publish time (all-rights-reserved, cc-by-4.0, cc-by-sa-4.0, cc-by-nc-4.0, cc-by-nc-sa-4.0, cc0). Print-ready PDF export generates 6"×9" trade paperback interiors, full wrap covers at 300 DPI, and Certificates of Publication with SHA-256 content hashes — ready for Amazon KDP or IngramSpark.
Not just publishing — finding. Search API from day one (GET /v1/search?q=&tags=), auto-generated sitemap.xml, JSON-LD on every page, tag browsing, author pages, RSS feeds. robots.txt welcomes all crawlers.
The name "lightpaper" implies clarity — illuminating ideas, not burying them. Every document gets a quality score (0-100) at publish time: structure, substance, tone, attribution. Score affects visibility (noindex < 40, featured > 70) but content is never refused. Transparent feedback helps authors improve.
Every document requires a human account. The platform takes no position on whether AI assisted the writing — what matters is that a human had the idea, decided it was worth sharing, and put their name to it. That accountability is the strongest spam filter that exists.
Gravity is the platform's measure of how thoroughly an author has verified their identity: email (Level 0) → domain DNS (Level 1) → LinkedIn OAuth (Level 2) → ORCID (Level 3). Gravity affects search ranking (1.0×–1.4× multiplier) and featured eligibility threshold. Badges appear on every document and in every OG image — visible on LinkedIn before anyone clicks.
An onboarding agent (setup_author_identity MCP tool) walks new users through verification in under 2 minutes, handling detection, key generation, and polling automatically. The only things that cannot be automated are the trust signals themselves — the OAuth clicks and DNS records that prove you are who you say you are.
# Clone and start
git clone https://github.com/lightpaperorg/lightpaper.git cd lightpaper docker compose up -d
curl http://localhost:8001/health
curl -X POST http://localhost:8001/v1/auth/email \ -H "Content-Type: application/json" \ -d '{"email":"you@example.com","display_name":"Your Name","handle":"yourhandle"}'
curl -X POST http://localhost:8001/v1/auth/verify \ -H "Content-Type: application/json" \ -d '{"session_id":"SESSION_ID_FROM_ABOVE","code":"123456"}'
curl -X POST http://localhost:8001/v1/publish \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"title":"Hello World","content":"# Hello\n\nThis is a test document."}'
# Virtual environment setup
python -m venv .venv source .venv/bin/activate pip install -r requirements-dev.txt
cp .env.example .env docker compose up -d db
uvicorn app.main:app --host 0.0.0.0 --port 8001 --reload
python -m pytest tests/ -v # All tests
python -m pytest tests/test_quality.py -v # Quality scoring python -m pytest tests/test_renderer.py -v # XSS sanitization python -m pytest tests/test_security.py -v # Security regression
lightpaper/
├── app/ # FastAPI application │ ├── main.py # App init, middleware, route mounting │ ├── config.py # Environment-based settings │ ├── auth.py # Firebase + API key authentication │ ├── models.py # SQLAlchemy ORM models │ ├── schemas.py # Pydantic request/response schemas │ ├── rate_limit.py # slowapi limiter singleton │ ├── utils.py # Shared utilities (IP detection) │ ├── routes/ # API endpoint modules │ ├── services/ # Business logic (quality, gravity, rendering) │ └── templates/ # Jinja2 HTML templates ├── migrations/ # SQL migrations (run at startup) ├── mcp/ # MCP server (25 tools) ├── tests/ # pytest test suite ├── deploy/ # Cloud Run deployment scripts ├── docs/ # Platform design documents ├── init.sql # Database schema ├── docker-compose.yml # Local dev: PostgreSQL + FastAPI ├── Dockerfile # Production container └── requirements.txt # Python dependencies
| Variable | Description | Default |
|---|---|---|
DATABASE_URL | PostgreSQL async connection string | postgresql+asyncpg://lightpaper:lightpaper_dev@localhost:5433/lightpaper |
FIREBASE_PROJECT_ID | Firebase project for legacy auth | (none) |
RESEND_API_KEY | Resend API key for OTP emails | (none) |
LINKEDIN_CLIENT_ID | LinkedIn OAuth app client ID | (none) |
LINKEDIN_CLIENT_SECRET | LinkedIn OAuth app client secret | (none) |
BASE_URL | Public-facing base URL | http://localhost:8001 |
CORS_ORIGINS | Comma-separated allowed origins | http://localhost:3000,https://lightpaper.org |
Deployed on Google Cloud Run with Cloud SQL PostgreSQL:
bash deploy/deploy-cloud-run.sh
See CONTRIBUTING.md for development setup and SECURITY.md for vulnerability reporting.
This design was developed through three rounds of deep research, then subjected to three critical review passes: