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

Typecast

โดย nilayp-codesรุ่น 0.1.0i★ –iรันบนเครื่อง
ชื่อใน registryio.github.nilayp-codes/typecast

ติดตั้ง

ภาพรวม

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

Validates job-posting JSON against a strict schema; returns one fixable error line per problem.

สามเสาของ PopNx MCP

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

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

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

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: เครื่องมือนักพัฒนา

ติดตั้ง

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

ก่อนติดตั้ง

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

  • PyPIติดตั้ง uv ของ Python (มีคำสั่ง uvx) ในเครื่อง

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

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

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

{
  "mcpServers": {
    "typecast": {
      "command": "uvx",
      "args": [
        "typecast-mcp"
      ]
    }
  }
}

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

claude mcp add typecast -- uvx typecast-mcp

เปิดใน Cursor

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

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

{
  "mcpServers": {
    "typecast": {
      "command": "uvx",
      "args": [
        "typecast-mcp"
      ]
    }
  }
}

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

เปิดใน VS Code

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

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

{
  "servers": {
    "typecast": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "typecast-mcp"
      ]
    }
  }
}

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

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

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

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

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

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

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

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

  • ✓ ผ่าน

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

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

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

    ยังมีคนดูแล

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

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

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

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

  • – ไม่เกี่ยว

    endpoint ตอบ

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

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

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

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

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

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

เทียบกับตัวอื่นในหมวด เครื่องมือนักพัฒนาi

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

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

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

Typecast ปลอดภัยไหม?

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

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

registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก

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

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

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

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.0) เข้า registry 3 วันที่ผ่านมา

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

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

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

ในหมวดเดียวกันมี GitHub, Desktop Commander, Cloudflare MCP

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

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

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

GitHub

server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้

โดย githubใช้กันมาก★ 34.2Kอัปเดต 6 วันที่ผ่านมา

บนเครื่องหรือคลาวด์

Desktop Commander

MCP server for terminal commands, file operations, and process management

โดย wonderwhy-erใช้กันมาก↓ 709.6K/สัปดาห์★ 10.2Kอัปเดต 18 วันที่ผ่านมา

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

Cloudflare MCP

Cloudflare MCP servers

โดย cloudflareใช้กันมาก★ 4.4Kอัปเดต 14 เดือนที่ผ่านมา

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

README จากผู้ทำ

เปิดอ่าน README

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

Typecast

LLM agent that turns messy job descriptions into schema-validated, typed JSON — and measures how often that fails.

Key findings (two Qwen models via OpenRouter, 30 real job descriptions):

  • Schema mode makes output valid, not correct. In setup C both models were valid 98.9% of the time, at lower cost than retry, yet end-to-end accuracy was 67.1% (7B) and 84.7% (235B).
  • Error-feedback retry fixed the small model, not the large one. Setup B was 98.9% valid for the 7B but 88.9% for the 235B, which failed on jd_002 in all four setup-B runs. A count-aware retry message did not change that.
  • No run reached my 90% field-accuracy goal (best: 87.3%), and runs vary. The same setup moved by about 8 points end to end between runs, so a gap between two single runs is not conclusive.

60-second walkthrough:

https://github.com/user-attachments/assets/c4a2572c-88a2-49a3-8e20-176010877154

CLI and package name: soa · MCP server on PyPI: typecast-mcp

Results

Two open-weight models through OpenRouter, 30 real job descriptions, four setups. Field accuracy is scored against 20 hand-verified gold labels (see Limitations for how they were made). With 3 runs, the figure is the mean and the brackets are min–max across the runs; with 1 run it is that single run. A = plain prompt, no retry; B = plain prompt + error-feedback retry; C = provider schema mode, no retry; D = schema mode + retry.

modelsetuprunsfinal validend-to-end accuracycost per 30-doc run
qwen-2.5-7b-instructA · plain183.3%50.4%$0.0081
qwen-2.5-7b-instructB · plain + retry398.9% (96.7%-100.0%)67.1% (62.9%-70.4%)$0.0103 ($0.0101-$0.0105)
qwen-2.5-7b-instructC · schema398.9% (96.7%-100.0%)67.1% (65.0%-69.8%)$0.0076 ($0.0076-$0.0076)
qwen-2.5-7b-instructD · schema + retry1100.0%70.0%$0.0080
qwen3-235b-a22b-2507A · plain170.0%60.4%$0.0120
qwen3-235b-a22b-2507B · plain + retry388.9% (86.7%-93.3%)75.6% (72.8%-80.9%)$0.0211 ($0.0199-$0.0234)
qwen3-235b-a22b-2507C · schema398.9% (96.7%-100.0%)84.7% (82.8%-85.8%)$0.0136 ($0.0134-$0.0140)
qwen3-235b-a22b-2507D · schema + retry1100.0%85.4%$0.0143

Full table: first-try valid, avg calls and field accuracy too

modelsetuprunsfirst-try validfinal validavg callsfield accuracy (valid outputs)end-to-end accuracycost per 30-doc run
qwen-2.5-7b-instructA: plain prompt, no retrysingle run83.3%83.3%1.0062.9%50.4%$0.0081
qwen-2.5-7b-instructB: plain prompt + error-feedback retrymean of 3 runs (min–max)82.2% (80.0%-83.3%)98.9% (96.7%-100.0%)1.20 (1.17-1.23)68.2% (66.0%-70.4%)67.1% (62.9%-70.4%)$0.0103 ($0.0101-$0.0105)
qwen-2.5-7b-instructC: schema mode, no retrymean of 3 runs (min–max)98.9% (96.7%-100.0%)98.9% (96.7%-100.0%)1.00 (1.00-1.00)68.2% (66.5%-69.8%)67.1% (65.0%-69.8%)$0.0076 ($0.0076-$0.0076)
qwen-2.5-7b-instructD: schema mode + retrysingle run96.7%100.0%1.0370.0%70.0%$0.0080
qwen3-235b-a22b-2507A: plain prompt, no retrysingle run70.0%70.0%1.0086.6%60.4%$0.0120
qwen3-235b-a22b-2507B: plain prompt + error-feedback retrymean of 3 runs (min–max)76.7% (73.3%-80.0%)88.9% (86.7%-93.3%)1.34 (1.33-1.37)85.6% (85.1%-86.0%)75.6% (72.8%-80.9%)$0.0211 ($0.0199-$0.0234)
qwen3-235b-a22b-2507C: schema mode, no retrymean of 3 runs (min–max)98.9% (96.7%-100.0%)98.9% (96.7%-100.0%)1.00 (1.00-1.00)86.1% (85.6%-87.0%)84.7% (82.8%-85.8%)$0.0136 ($0.0134-$0.0140)
qwen3-235b-a22b-2507D: schema mode + retrysingle run100.0%100.0%1.0085.4%85.4%$0.0143

How to read it:

  • "Mean of 3 runs (min–max)" (B and C) is the mean of three runs on the same 30 documents, with the lowest and highest run in brackets. It is a spread across runs, not an interval estimate. The B runs are the three runs made after the retry-feedback fix described below. The C runs are the first C run plus two repeats. "Single run" (A and D) is one draw each: the repeats show the same setup moving by about 8 points end to end between runs (235B setup B: 72.8% to 80.9%). Each run's own 95% interval (Wilson for the validity columns, bootstrap for the accuracy columns) is in the per-run table at the end of this section; the single runs of A and D have none, because they were made before the interval code existed.
  • First-try / final valid: share of the 30 documents whose first reply, or any reply within 3 attempts, passed validation. Avg calls: model calls per document.
  • Field accuracy (valid outputs) is measured only on documents that produced a valid posting, so it flatters a setup that fails often (235B setup A: 86.6% field accuracy, but only 70.0% of the labelled documents had a valid output to score). End-to-end accuracy counts a failed document as wrong on every field and is the number to trust when setups differ in validity.
  • Cost is the provider-reported cost of one run over the 30 documents. Temperature was not set (the provider default applied, value unknown).
My targets, and whether they were met

I set three targets for setup B before running anything: final validity of 30/30, at most 1.3 calls per document on average, and at least 90% field accuracy. Result, per run (the three runs after the retry fix):

target (setup B)qwen-2.5-7b-instructqwen3-235b-a22b-2507
final validity 30/30met in 2 of 3 runs (100.0%, 100.0%, 96.7%)missed in all 3 (86.7%, 93.3%, 86.7%)
avg calls <= 1.3met (1.20, 1.17, 1.23)missed (1.37, 1.33, 1.33)
field accuracy >= 90%missed (70.4%, 68.1%, 66.0%)missed (85.7%, 85.1%, 86.0%)

The 90% field-accuracy target was missed by every run of both models, in every setup. The best number anywhere is 87.3% (235B, setup B, first-round run).

Every run, with 95% intervals (results/summary.md, verbatim)

Rows 1-8: the first round, one run per model and setup (A, B, C, D for the 7B, then for the 235B). These were written before the interval code existed, so they have none. Rows 9-18: the repeat round, in order 7B B x3, 7B C x2, 235B B x3, 235B C x2. Intervals are in brackets. Columns: field acc is over valid outputs, coverage is the share of the 20 labelled documents with a valid output, e2e acc counts failures as wrong.

modelsetupnfirst-tryfinalavg callsfield acc (norm)coveragee2e acc (norm)cost
openrouter/qwen/qwen-2.5-7b-instructA3083.3%83.3%1.0062.9%80.0%50.4%$0.0081
openrouter/qwen/qwen-2.5-7b-instructB3086.7%96.7%1.1768.3%95.0%64.8%$0.0102
openrouter/qwen/qwen-2.5-7b-instructC30100.0%100.0%1.0069.8%100.0%69.8%$0.0076
openrouter/qwen/qwen-2.5-7b-instructD3096.7%100.0%1.0370.0%100.0%70.0%$0.0080
openrouter/qwen/qwen3-235b-a22b-2507A3070.0%70.0%1.0086.6%70.0%60.4%$0.0120
openrouter/qwen/qwen3-235b-a22b-2507B3083.3%86.7%1.3387.3%85.0%74.3%$0.0186
openrouter/qwen/qwen3-235b-a22b-2507C30100.0%100.0%1.0085.8%100.0%85.8%$0.0140
openrouter/qwen/qwen3-235b-a22b-2507D30100.0%100.0%1.0085.4%100.0%85.4%$0.0143
openrouter/qwen/qwen-2.5-7b-instructB3080.0% [62.7-90.5]100.0% [88.6-100.0]1.2070.4% [64.4-76.9]100.0%70.4% [64.4-76.9]$0.0104
openrouter/qwen/qwen-2.5-7b-instructB3083.3% [66.4-92.7]100.0% [88.6-100.0]1.1768.1% [61.4-74.7]100.0%68.1% [61.4-74.7]$0.0101
openrouter/qwen/qwen-2.5-7b-instructB3083.3% [66.4-92.7]96.7% [83.3-99.4]1.2366.0% [59.6-72.2]95.0%62.9% [54.5-70.5]$0.0105
openrouter/qwen/qwen-2.5-7b-instructC30100.0% [88.6-100.0]100.0% [88.6-100.0]1.0066.5% [59.6-73.8]100.0%66.5% [59.6-73.8]$0.0076
openrouter/qwen/qwen-2.5-7b-instructC3096.7% [83.3-99.4]96.7% [83.3-99.4]1.0068.4% [61.3-75.0]95.0%65.0% [55.2-73.3]$0.0076
openrouter/qwen/qwen3-235b-a22b-2507B3076.7% [59.1-88.2]86.7% [70.3-94.7]1.3785.7% [81.3-89.6]85.0%72.8% [58.4-84.8]$0.0234
openrouter/qwen/qwen3-235b-a22b-2507B3073.3% [55.6-85.8]93.3% [78.7-98.2]1.3385.1% [81.1-88.9]95.0%80.9% [71.1-87.9]$0.0199
openrouter/qwen/qwen3-235b-a22b-2507B3080.0% [62.7-90.5]86.7% [70.3-94.7]1.3386.0% [82.0-89.6]85.0%73.1% [58.7-84.9]$0.0202
openrouter/qwen/qwen3-235b-a22b-2507C3096.7% [83.3-99.4]96.7% [83.3-99.4]1.0087.0% [83.7-89.9]95.0%82.8% [72.3-89.0]$0.0136
openrouter/qwen/qwen3-235b-a22b-2507C30100.0% [88.6-100.0]100.0% [88.6-100.0]1.0085.6% [82.0-88.8]100.0%85.6% [82.0-88.8]$0.0134

The A and D figures in the main table are rows 1-8 (A and D) above. The first-round B rows (7B: 86.7% / 96.7%, 235B: 83.3% / 86.7% first-try / final) are the runs from before the retry fix; the first-round C rows are the first of the three C runs in the main table. The aggregate over the repeats is in results/aggregate.md; the raw per-run reports are results/2026-11-04_*.json.

How it works

text ──► build prompt (schema + instructions)

│ ▼ LLM call ──► raw string │ ▼ JobPosting.model_validate_json(raw) │ ok │ ValidationError ▼ ▼ log success log failure (error + raw) return model attempt < MAX? ──► append error to messages, retry │ no ▼ raise ExtractionFailed (logged)

The schema shown to the model is generated from the Pydantic model (JobPosting.model_json_schema()), never written by hand, and the reply is checked with the same model. A failed reply goes back to the model with the validator's errors, one line per error, for up to 3 attempts. After a valid reply, two deterministic tools tidy the result (canonical skill names, a location check against the document header). They are plain code, not model calls, so they add no LLM calls and the setups below stay comparable. Details: docs/ARCHITECTURE.md.

The four setups: A plain prompt, no retry. B plain prompt, errors fed back (up to 3 attempts). C the provider's strict JSON-schema mode, no retry. D schema mode plus retry.

Why not just use native structured outputs?

Schema mode helped a lot, and it is cheaper. It also does not do the whole job.

What it fixed. Setup C was valid on the first try 98.9% (96.7%-100.0%) of the time for both models, against a single plain-prompt run (A) of 83.3% for the 7B and 70.0% for the 235B. The 30-item cap on skills was the constraint that models actually broke in plain mode; under schema mode the report counts replies that broke a constraint the schema carries, and it was 0 in every C and D run (6 C runs, 2 D runs). C also cost less than B: $0.0076 against $0.0103 for the 7B, $0.0136 against $0.0211 for the 235B (means per run).

What it does not do:

  1. It guarantees shape, not meaning. The remaining failures in C were rules no JSON s

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

ถาม PopNx