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

Clef MCP

โดย HighlyLoadedEgoรุ่น 0.4.0i★ –iรันบนเครื่อง
ชื่อใน registryio.github.HighlyLoadedEgo/clef-mcp

ติดตั้ง

ภาพรวม

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

Local MCP server for the Cloudflare Clef-Flash decision model: structured decisions, fully offline

สามเสาของ PopNx MCP

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

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

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

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

ติดตั้ง

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

ก่อนติดตั้ง

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

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

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

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

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

{
  "mcpServers": {
    "clef": {
      "command": "npx",
      "args": [
        "-y",
        "clef-mcp"
      ]
    }
  }
}

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

claude mcp add clef -- npx -y clef-mcp

เปิดใน Cursor

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

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

{
  "mcpServers": {
    "clef": {
      "command": "npx",
      "args": [
        "-y",
        "clef-mcp"
      ]
    }
  }
}

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

เปิดใน VS Code

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

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

{
  "servers": {
    "clef": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "clef-mcp"
      ]
    }
  }
}

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

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

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

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

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

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

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

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

  • ✓ ผ่าน

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

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

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

    ยังมีคนดูแล

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

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

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

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

  • – ไม่เกี่ยว

    endpoint ตอบ

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

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

GitHub

โดย github

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

บนเครื่องหรือคลาวด์★ 34,245MITอัปเดต 3 วันที่ผ่านมา
ติดตั้ง

Desktop Commander

โดย wonderwhy-er

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

รันบนเครื่อง★ 10,225MITอัปเดต 16 วันที่ผ่านมา
ติดตั้ง

Cloudflare MCP

โดย cloudflare

Cloudflare MCP servers

รันบนคลาวด์★ 4,446Apache-2.0อัปเดต 14 เดือนที่ผ่านมา
ติดตั้ง

README จากผู้ทำ

เปิดอ่าน README

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

clef-mcp

Local decisions for AI agents. Reusable classification for your datasets.

Run Clef-Flash (9B, Apache-2.0 by Cloudflare) locally. Give coding agents a structured MCP decision tool, or classify JSONL/CSV datasets with YAML profiles. Get probabilities and explicit review results instead of generated prose. Inference stays on your machine.


Quick start

Requires Node.js 20+ and enough memory for the selected model (16 GB recommended for Q4_K_M). The default model download is approximately 6 GB; subsequent inference runs offline.

npm install -g clef-mcp

clef-mcp install

Choose your workflow:

WorkflowStart here
Decisions inside Claude Code, Codex, Cursor or ZCodeclef-mcp setup, then restart your client; client configuration
Classify tickets, documents or other recordsYAML profiles and dataset classification
Hooks, CI or shell scriptsclef-mcp decide

The MCP server starts with clef-mcp (stdio). Only install downloads model/runtime files. You can also use npx -y clef-mcp instead of a global install; npx -y clef-mcp install --setup combines model installation and client registration.

Classify JSONL/CSV with a YAML profile

Define a task once, then apply it to separate records. The model loads once for the whole batch; a separate daemon is not required.

Save this as support-routing.yaml:

schema_version: 1

name: support-routing instructions: Classify the current support request into exactly one department. labels: billing: Payments, refunds, invoices and subscription charges technical: Errors, outages, installation and integration problems other: Requests outside billing and technical support input: id_field: id fields: [subject, body] policy: min_probability: 0.80 min_margin: 0.15

Save tickets.jsonl (one object per line):

{"id":"001","subject":"Duplicate charge","body":"Please refund my duplicate subscription payment."}

{"id":"002","subject":"Checkout crashes","body":"The payment page returns an error."}

Or use tickets.csv with a header row:

id,subject,body

001,Duplicate charge,Please refund my duplicate subscription payment. 002,Checkout crashes,The payment page returns an error.

clef-mcp classify tickets.jsonl --profile support-routing.yaml --output results.jsonl

clef-mcp classify tickets.csv --profile support-routing.yaml --output csv-results.jsonl

stdout carries JSONL; summaries and diagnostics go to stderr

cat tickets.jsonl | clef-mcp classify - --profile support-routing.yaml

Extension override, including CSV on stdin

cat tickets.csv | clef-mcp classify - --format csv --profile support-routing.yaml

Runnable files also ship in examples/classify/.

Profile fields
FieldMeaning
schema_versionRequired; currently 1
nameRequired profile ID, up to 64 letters/digits/underscores/hyphens, starting with a letter or digit
instructionsRequired classification question
labelsRequired map of 2–100 mutually exclusive label IDs to descriptions; include a fallback category where appropriate
modelOptional model ID; priority is CLI --model → profile → CLEF_MODEL → clef-flash
input.fieldsOptional exact top-level field names to send to the model; otherwise use the full record
input.id_fieldOptional string/numeric ID to copy to the result; missing or invalid IDs become row errors
policy.min_probabilityMinimum winning probability, default 0.80
policy.min_marginMinimum difference between the two highest probabilities, default 0.15
policy.min_confidenceOptional minimum runtime-reported confidence; missing confidence then requires review
examplesOptional list of up to 20 {input: {...}, label: configured_label} references

Examples are data supplied alongside the current record; they do not train or modify model weights. Unknown fields, duplicate YAML keys, aliases, merge keys, unsupported tags and non-JSON values are rejected. Label IDs use the same character rules as profile names, with a 128-character limit; prototype-shaped reserved keys are rejected. Missing selected fields produce row errors.

Accepted results and needs_review

Illustrative results (actual probabilities depend on your data and runtime):

{"row":1,"id":"001","profile":"support-routing","model":"clef-flash","status":"classified","label":"billing","suggested_label":"billing","probability":0.92,"margin":0.87,"probabilities":{"billing":0.92,"technical":0.05,"other":0.03},"review_reasons":[]}

{"row":2,"id":"002","profile":"support-routing","model":"clef-flash","status":"needs_review","label":null,"suggested_label":"technical","probability":0.48,"margin":0.06,"probabilities":{"billing":0.42,"technical":0.48,"other":0.10},"review_reasons":["low_probability","low_margin"]}

classified means all configured thresholds passed. needs_review keeps the suggestion and full distribution but sets label: null. Reasons are low_probability, low_margin, tie, low_confidence or missing_confidence. Exact ties always require review, including when thresholds are zero. Comparisons are inclusive at the threshold. Results may include model confidence and token usage when available.

Winning probability, probability margin and model-reported confidence are different quantities. These thresholds are routing policy, not a calibrated accuracy guarantee. Check them on representative labeled data before automating decisions. Classification does not grant authorization or execute actions.

Invalid JSONL objects and missing fields produce status: "error" rows and processing continues. Runtime failures stop the run; they are never converted to review decisions. Output includes identifiers and results, not a copy of the original record.

Resume, formats and limits
clef-mcp classify tickets.jsonl --profile support-routing.yaml --output results.jsonl --resume

File output creates private results.jsonl and results.jsonl.meta.json files. The sidecar fingerprints the full input, validated profile, effective model, runtime and format. Resume requires all of these to match. Use a new output path after changing data or thresholds; existing files are never silently overwritten. Input must stay unchanged while a run is active.

Resume skips the contiguous committed prefix, including committed error rows; it does not retry those errors. An incomplete final write is discarded, while corruption in a complete row is rejected. Resume requires regular file input and --output; stdin/stdout resume is unsupported. A local lock prevents simultaneous writers. Dead local writer locks can be reclaimed; active, foreign-host or unverifiable locks are preserved. A crash during lock acquisition may leave .lock.claim, which requires inspection before manual removal.

JSONL accepts objects, ignores blank lines and supports UTF-8 BOM/CRLF. CSV supports quoted commas, escaped quotes and multiline fields; headers must be nonempty and unique, with consistent column counts. CSV cells remain strings, preserving IDs such as 001. Format defaults to .jsonl/.csv, or JSONL for stdin; other extensions need --format.

Profiles and logical records are limited to 1 MiB, YAML nesting to 64 levels, selected/CSV fields to 1000, and examples to 20. Existing instruction/criteria/state limits and the model's 16k-token context also apply; selected fields and examples share that context. Oversized JSONL rows are reported as row errors. Broken/oversized CSV syntax stops the run because record boundaries cannot be recovered reliably.

Exit codeMeaning
0Completed; review results are allowed
1Row errors occurred in this invocation, or inference/output failed
2Invalid options/profile/input structure or incompatible checkpoint
3 / 4Model not installed / runtime missing
130Interrupted; committed file output can be resumed
Update
npm install -g clef-mcp@latest

Restart MCP clients and any existing daemon after updating. An already installed model does not need another download.

Why not just ask the LLM?

Chat LLMclef_decide
Outputprose, you parse itstrict JSON: probability per option
Determinismvaries per runsingle forward pass, no sampling
Latency (1 decision)seconds of generation~0.5 s local
Context costgrows with every decisionfixed, small schema
Privacydepends on provider100% on-device, works offline
Calibrationvibessoftmax over trained option scores

Sweet spot: decision points inside agent loops — next action, routing, classification, severity, yes/no judgment — asked dozens of times per task.

The clef_decide tool

{

"state": { "task": "Fix failing tests", "error": "TypeError: Cannot read properties of undefined" }, "questions": { "next_action": { "type": "choice", "instructions": "What should the coding agent do next?", "criteria": { "inspect": "Inspect the code and gather more information", "modify": "Modify the code", "test": "Run additional tests", "ask_user": "Ask the user for clarification" } }, "confidence": { "type": "score", "instructions": "How confident are you in this decision?", "criteria": ["very_low", "low", "medium", "high", "very_high"] }, "is_outage": { "type": "noul", "instructions": "Is a service down?" } } }

TypeCriteriaAnswer
choicemap option id → description, or a plain listprobability per option
scoreordered list (index = score)probability per level
nouloptional {"true": "...", "false": "..."}{"true": p, "false": 1-p}

Response — strictly structured, never prose. Each decision carries the model-reported confidence (when the runtime sends it), plus token usage for the call:

{

"model": "clef-flash", "decisions": { "next_action": { "answer": { "inspect": 0.72, "modify": 0.12, "test": 0.14, "ask_user": 0.02 }, "confidence": 0.83 }, "confidence": { "answer": { "very_low": 0.01, "low": 0.04, "medium": 0.18, "high": 0.61, "very_high": 0.16 }, "confidence": 0.61 }, "is_outage": { "answer": { "true": 0.9, "false": 0.1 } } }, "usage": { "input_tokens": 228, "output_tokens": 0, "latency_ms": 512 } }

Act on the argmax only when the distribution is decisive — top p ≥ 0.8 and high confidence for destructive or security-adjacent calls.

Batch up to 64 questions per call — they are scored in one forward pass. state is treated strictly as data: never executed, never interpreted as instructions for the server.

Prompts & resources

The server ships four MCP prompts (canned, decision-shaped asks — your client lists them via prompts/list):

PromptPurpose

| incident-triage | action + severity + user-impa

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

ถาม PopNx