ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

Media Gen MCP

โดย strato-spaceรุ่น 1.0.4i★ –iรันบนเครื่อง
ชื่อใน registryio.github.strato-space/media-gen-mcp

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

MCP server for OpenAI Images/Videos and Google GenAI (Veo) media generation.

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: ออกแบบ ภาพ และเสียง
  • ต้องใส่ค่าเหล่านี้: OPENAI_API_KEY, GEMINI_API_KEY, GOOGLE_API_KEY, AZURE_OPENAI_API_KEY

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

  • ผลตรวจเบื้องต้น: ผ่าน 1 จาก 1 ข้อ
  • รันในเครื่องคุณด้วยสิทธิ์ของผู้ใช้คุณ (ไฟล์ อินเทอร์เน็ต แอปต่าง ๆ)
  • ค่าที่คุณต้องใส่เอง: OPENAI_API_KEY, GEMINI_API_KEY, GOOGLE_API_KEY, GOOGLE_GENAI_USE_VERTEXAI, GOOGLE_CLOUD_PROJECT, GOOGLE_CLOUD_LOCATION, AZURE_OPENAI_API_KEY, AZURE_OPENAI_ENDPOINT, OPENAI_API_VERSION, AZURE_OPENAI_DEPLOYMENT, MEDIA_GEN_DIRS, MEDIA_GEN_URLS, MEDIA_GEN_MCP_URL_PREFIXES, MEDIA_GEN_MCP_TEST_SAMPLE_DIR

ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต

ต้องเตรียมก่อน

  • npmติดตั้ง Node.js (มีคำสั่ง npx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "media-gen": {
      "command": "npx",
      "args": [
        "-y",
        "@strato-space/media-gen-mcp"
      ],
      "env": {
        "OPENAI_API_KEY": "ใส่ค่าของคุณ",
        "GEMINI_API_KEY": "ใส่ค่าของคุณ",
        "GOOGLE_API_KEY": "ใส่ค่าของคุณ",
        "GOOGLE_GENAI_USE_VERTEXAI": "ใส่ค่าของคุณ",
        "GOOGLE_CLOUD_PROJECT": "ใส่ค่าของคุณ",
        "GOOGLE_CLOUD_LOCATION": "ใส่ค่าของคุณ",
        "AZURE_OPENAI_API_KEY": "ใส่ค่าของคุณ",
        "AZURE_OPENAI_ENDPOINT": "ใส่ค่าของคุณ",
        "OPENAI_API_VERSION": "ใส่ค่าของคุณ",
        "AZURE_OPENAI_DEPLOYMENT": "ใส่ค่าของคุณ",
        "MEDIA_GEN_DIRS": "ใส่ค่าของคุณ",
        "MEDIA_GEN_URLS": "ใส่ค่าของคุณ",
        "MEDIA_GEN_MCP_URL_PREFIXES": "ใส่ค่าของคุณ",
        "MEDIA_GEN_MCP_TEST_SAMPLE_DIR": "ใส่ค่าของคุณ"
      }
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add media-gen --env OPENAI_API_KEY='ใส่ค่าของคุณ' --env GEMINI_API_KEY='ใส่ค่าของคุณ' --env GOOGLE_API_KEY='ใส่ค่าของคุณ' --env GOOGLE_GENAI_USE_VERTEXAI='ใส่ค่าของคุณ' --env GOOGLE_CLOUD_PROJECT='ใส่ค่าของคุณ' --env GOOGLE_CLOUD_LOCATION='ใส่ค่าของคุณ' --env AZURE_OPENAI_API_KEY='ใส่ค่าของคุณ' --env AZURE_OPENAI_ENDPOINT='ใส่ค่าของคุณ' --env OPENAI_API_VERSION='ใส่ค่าของคุณ' --env AZURE_OPENAI_DEPLOYMENT='ใส่ค่าของคุณ' --env MEDIA_GEN_DIRS='ใส่ค่าของคุณ' --env MEDIA_GEN_URLS='ใส่ค่าของคุณ' --env MEDIA_GEN_MCP_URL_PREFIXES='ใส่ค่าของคุณ' --env MEDIA_GEN_MCP_TEST_SAMPLE_DIR='ใส่ค่าของคุณ' -- npx -y @strato-space/media-gen-mcp

เติมค่าที่เว้นว่างไว้ก่อนรัน

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "media-gen": {
      "command": "npx",
      "args": [
        "-y",
        "@strato-space/media-gen-mcp"
      ],
      "env": {
        "OPENAI_API_KEY": "ใส่ค่าของคุณ",
        "GEMINI_API_KEY": "ใส่ค่าของคุณ",
        "GOOGLE_API_KEY": "ใส่ค่าของคุณ",
        "GOOGLE_GENAI_USE_VERTEXAI": "ใส่ค่าของคุณ",
        "GOOGLE_CLOUD_PROJECT": "ใส่ค่าของคุณ",
        "GOOGLE_CLOUD_LOCATION": "ใส่ค่าของคุณ",
        "AZURE_OPENAI_API_KEY": "ใส่ค่าของคุณ",
        "AZURE_OPENAI_ENDPOINT": "ใส่ค่าของคุณ",
        "OPENAI_API_VERSION": "ใส่ค่าของคุณ",
        "AZURE_OPENAI_DEPLOYMENT": "ใส่ค่าของคุณ",
        "MEDIA_GEN_DIRS": "ใส่ค่าของคุณ",
        "MEDIA_GEN_URLS": "ใส่ค่าของคุณ",
        "MEDIA_GEN_MCP_URL_PREFIXES": "ใส่ค่าของคุณ",
        "MEDIA_GEN_MCP_TEST_SAMPLE_DIR": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "media-gen": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@strato-space/media-gen-mcp"
      ],
      "env": {
        "OPENAI_API_KEY": "ใส่ค่าของคุณ",
        "GEMINI_API_KEY": "ใส่ค่าของคุณ",
        "GOOGLE_API_KEY": "ใส่ค่าของคุณ",
        "GOOGLE_GENAI_USE_VERTEXAI": "ใส่ค่าของคุณ",
        "GOOGLE_CLOUD_PROJECT": "ใส่ค่าของคุณ",
        "GOOGLE_CLOUD_LOCATION": "ใส่ค่าของคุณ",
        "AZURE_OPENAI_API_KEY": "ใส่ค่าของคุณ",
        "AZURE_OPENAI_ENDPOINT": "ใส่ค่าของคุณ",
        "OPENAI_API_VERSION": "ใส่ค่าของคุณ",
        "AZURE_OPENAI_DEPLOYMENT": "ใส่ค่าของคุณ",
        "MEDIA_GEN_DIRS": "ใส่ค่าของคุณ",
        "MEDIA_GEN_URLS": "ใส่ค่าของคุณ",
        "MEDIA_GEN_MCP_URL_PREFIXES": "ใส่ค่าของคุณ",
        "MEDIA_GEN_MCP_TEST_SAMPLE_DIR": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าที่ต้องใส่เอง

  • OPENAI_API_KEY ความลับ env
    OpenAI API key (required for OpenAI image/video tools).
  • GEMINI_API_KEY ความลับ env
    Gemini API key (alternative to GOOGLE_API_KEY).
  • GOOGLE_API_KEY ความลับ env
    Google GenAI API key for Veo video tools.
  • GOOGLE_GENAI_USE_VERTEXAI env
    Set to true to use Vertex AI for Google GenAI.
  • GOOGLE_CLOUD_PROJECT env
    GCP project id for Vertex AI.
  • GOOGLE_CLOUD_LOCATION env
    GCP region for Vertex AI (e.g. us-central1).
  • AZURE_OPENAI_API_KEY ความลับ env
    Azure OpenAI API key (optional).
  • AZURE_OPENAI_ENDPOINT env
    Azure OpenAI endpoint hostname.
  • OPENAI_API_VERSION env
    Azure OpenAI API version.
  • AZURE_OPENAI_DEPLOYMENT env
    Azure OpenAI deployment name.
  • MEDIA_GEN_DIRS env
    Comma-separated output directories for media files.
  • MEDIA_GEN_URLS env
    Comma-separated URL prefixes allowed for fetch tools.
  • MEDIA_GEN_MCP_URL_PREFIXES env
    Public URL prefixes for mapping local output files.
  • MEDIA_GEN_MCP_TEST_SAMPLE_DIR env
    Path to sample images for the test-images tool.

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub strato-space ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

เทียบกับตัวอื่นในหมวด ออกแบบ ภาพ และเสียงi

  • ดาวมากกว่า 0% ของอีก 2788 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 1% ของอีก 2788 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 2788 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

Media Gen MCP ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

ต้องใส่ค่าเหล่านี้: OPENAI_API_KEY, GEMINI_API_KEY, GOOGLE_API_KEY, AZURE_OPENAI_API_KEY

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.0.4) เข้า registry 11 เดือนที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Figma Context MCP, Claude Real Video, Figma MCP Server

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Figma Context MCP

Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.

โดย GLipsใช้กันมาก↓ 161.2K/สัปดาห์★ 16.2Kอัปเดต 5 เดือนที่ผ่านมา

รันบนเครื่อง

Claude Real Video

Let any LLM watch a video locally — and search everything it has ever watched.

โดย HUANGCHIHHUNGLeoใช้กันมาก↓ 1.1K/สัปดาห์★ 2.3Kอัปเดต 2 เดือนที่ผ่านมา

รันบนเครื่อง

Figma MCP Server

server ทางการของ Figma ส่งข้อมูลงานออกแบบให้ AI อ่าน เพื่อเปลี่ยนแบบเป็นโค้ดหรืออธิบายแบบได้ตรงขึ้น ต่อผ่านคลาวด์ของ Figma

โดย figmaกำลังโต★ 2.2Kอัปเดต 13 เดือนที่ผ่านมา

รันบนคลาวด์✓ mcp.figma.com

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

media-gen-mcp


Media Gen MCP is a strict TypeScript Model Context Protocol (MCP) server for OpenAI Images (gpt-image-1.5, gpt-image-1), OpenAI Videos (Sora), and Google GenAI Videos (Veo): generate/edit images, create/remix video jobs, and fetch media from URLs or disk with smart resource_link vs inline image outputs and optional sharp processing. Production-focused (full strict typecheck, ESLint + Vitest CI). Works with fast-agent, Claude Desktop, ChatGPT, Cursor, VS Code, Windsurf, and any MCP-compatible client.

Design principle: spec-first, type-safe image tooling – strict OpenAI Images API + MCP compliance with fully static TypeScript types and flexible result placements/response formats for different clients.

  • Generate images from text prompts using OpenAI's gpt-image-1.5 model (with gpt-image-1 compatibility and DALL·E support planned in future versions).
  • Edit images (inpainting, outpainting, compositing) from 1 up to 16 images at once, with advanced prompt control.
  • Generate videos via OpenAI Videos (sora-2, sora-2-pro) with job create/remix/list/retrieve/delete and asset downloads.
  • Generate videos via Google GenAI (Veo) with operation polling and file-first downloads.
  • Fetch & compress images from HTTP(S) URLs or local file paths with smart size/quality optimization.
  • Fetch documents from HTTP(S) URLs or local file paths and return resource_link/resource outputs.
  • Debug MCP output shapes with a test-images tool that mirrors production result placement (content, structuredContent, toplevel).
  • Integrates with: fast-agent, Windsurf, Claude Desktop, Cursor, VS Code, and any MCP-compatible client.

✨ Features

  • Strict MCP spec support Tool outputs are first-class CallToolResult objects from the latest MCP schema, including: content items (text, image, resource_link, resource), optional structuredContent, optional top-level files, and the isError flag for failures.
  • Full gpt-image-1.5 and sora-2/sora-2-pro parameters coverage (generate & edit)
  • openai-images-generate mirrors the OpenAI Images create API for gpt-image-1.5 (and gpt-image-1) (background, moderation, size, quality, output_format, output_compression, n, user, etc.).
  • openai-images-edit mirrors the OpenAI Images createEdit API for gpt-image-1.5 (and gpt-image-1) (image, mask, n, quality, size, user).
  • OpenAI Videos (Sora) job tooling (create / remix / list / retrieve / delete / content)
  • openai-videos-create mirrors videos/create and can optionally wait for completion.
  • openai-videos-remix mirrors videos/remix.
  • openai-videos-list mirrors videos/list.
  • openai-videos-retrieve mirrors videos/retrieve.
  • openai-videos-delete mirrors videos/delete.
  • openai-videos-retrieve-content mirrors videos/content and downloads video / thumbnail / spritesheet assets to disk, returning MCP resource_link (default) or embedded resource blocks (via tool_result).
  • Google GenAI (Veo) operations + downloads (generate / retrieve operation / retrieve content)
  • google-videos-generate starts a long-running operation (ai.models.generateVideos) and can optionally wait for completion and download .mp4 outputs. Veo model reference
  • google-videos-retrieve-operation polls an existing operation.
  • google-videos-retrieve-content downloads an .mp4 from a completed operation, returning MCP resource_link (default) or embedded resource blocks (via tool_result).
  • Fetch and process images from URLs or files fetch-images tool loads images from HTTP(S) URLs or local file paths with optional, user-controlled compression (disabled by default). Supports parallel processing of up to 20 images.
  • Fetch videos from URLs or files fetch-videos tool lists local videos or downloads remote video URLs to disk and returns MCP resource_link (default) or embedded resource blocks (via tool_result).
  • Fetch documents from URLs or files fetch-document tool downloads remote files or reuses local paths and returns MCP resource_link (default) or embedded resource blocks (via tool_result).
  • Mix and edit up to 16 images openai-images-edit accepts image as a single string or an array of 1–16 file paths/base64 strings, matching the OpenAI spec for GPT Image models (gpt-image-1.5, gpt-image-1) image edits.
  • Smart image compression Built-in compression using sharp — iteratively reduces quality and dimensions to fit MCP payload limits while maintaining visual quality.
  • Resource-aware file output with `resource_link`
  • Automatic switch from inline base64 to file when the total response size exceeds a safe threshold.
  • Outputs are written to disk using output_ _media-gen__ _ . filenames (images/documents use a generated UUID; videos use the OpenAI video_id) and exposed to MCP clients via content[] depending on tool_result (resource_link/image for images, resource_link/resource for video/document downloads).
  • Built-in test-images tool for MCP client debugging test-images reads sample images from a configured directory and returns them using the same result-building logic as production tools. Use tool_result and response_format parameters to test how different MCP clients handle content[] and structuredContent.
  • Structured MCP error handling All tool errors (validation, OpenAI API failures, I/O) are returned as MCP errors with isError: true and content: [{ type: "text", text: }], making failures easy to parse and surface in MCP clients.

🚀 Installation

git clone https://github.com/strato-space/media-gen-mcp.git

cd media-gen-mcp

npm install npm run build

Build modes:

  • npm run build – strict TypeScript build with all strict flags enabled, including skipLibCheck: false. Incremental builds via .tsbuildinfo (~2-3s on warm cache).
  • npm run esbuild – fast bundling via esbuild (no type checking, useful for rapid iteration).
Development mode (no build required)

For development or when TypeScript compilation fails due to memory constraints:

npm run dev  # Uses tsx to run TypeScript directly
Quality checks
npm run lint        # ESLint with typescript-eslint

npm run typecheck # Strict tsc --noEmit npm run test # Unit tests (vitest) npm run test:watch # Watch mode for TDD npm run ci # lint + typecheck + test

Unit tests

The project uses vitest for unit testing. Tests are located in test/.

Covered modules:

ModuleTestsDescription
compression12Image format detection, buffer processing, file I/O
helpers31URL/path validation, output resolution, result placement, resource links
env19Configuration parsing, env validation, defaults
logger10Structured logging + truncation safety
pricing5Sora pricing estimate helpers
schemas69Zod schema validation for all tools, type inference
fetch-images (integration)3End-to-end MCP tool call behavior
fetch-videos (integration)3End-to-end MCP tool call behavior

Test categories:

  • compression — isCompressionAvailable, detectImageFormat, processBufferWithCompression, readAndProcessImage
  • helpers — isHttpUrl, isAbsolutePath, isBase64Image, ensureDirectoryWritable, resolveOutputPath, getResultPlacement, buildResourceLinks
  • env — config loading and validation for MEDIA_GEN_* / MEDIA_GEN_MCP_* settings
  • logger — truncation and error formatting behavior
  • schemas — validation for openai-images-*, openai-videos-*, fetch-images, fetch-videos, test-images inputs, boundary testing (prompt length, image count limits, path validation)
npm run test

✓ test/compression.test.ts (12 tests)

✓ test/helpers.test.ts (31 tests)

✓ test/env.test.ts (19 tests)

✓ test/logger.test.ts (10 tests)

✓ test/pricing.test.ts (5 tests)

✓ test/schemas.test.ts (69 tests)

✓ test/fetch-images.integration.test.ts (3 tests)

✓ test/fetch-videos.integration.test.ts (3 tests)

Tests: 152 passed

Run directly via npx (no local clone)

You can also run the server straight from a remote repo using npx:

npx -y github:strato-space/media-gen-mcp --env-file /path/to/media-gen.env

The --env-file argument tells the server which env file to load (e.g. when you keep secrets outside the cloned directory). The file should contain OPENAI_API_KEY, optional Azure variables, and any MEDIA_GEN_MCP_* settings.

secrets.yaml (optional)

You can keep API keys (and optional Google Vertex AI settings) in a secrets.yaml file (compatible with the fast-agent secrets template):

openai:

api_key: anthropic: api_key: google: api_key: vertex_ai: enabled: true project_id: your-gcp-project-id location: europe-west4

media-gen-mcp loads `secr

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx