Mirobody
Lab results to LOINC codes and UCUM units, symptoms and diagnoses to ICPC-3. Offline, no API key.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Check that a quoted passage appears word for word in its cited source (URL, DOI or PubMed ID).
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"quotecheck": {
"command": "uvx",
"args": [
"quotecheck-mcp"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add quotecheck -- uvx quotecheck-mcpวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"quotecheck": {
"command": "uvx",
"args": [
"quotecheck-mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"quotecheck": {
"type": "stdio",
"command": "uvx",
"args": [
"quotecheck-mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub feenmile ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.1) เข้า registry 7 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย
ในหมวดเดียวกันมี Mirobody, FHIR MCP Server, Google Health MCP
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Lab results to LOINC codes and UCUM units, symptoms and diagnoses to ICPC-3. Offline, no API key.
MCP server providing seamless access to FHIR APIs for AI tools and healthcare applications
Privacy-first unofficial Google Health API v4 MCP server for health, sleep, activity, HR agents
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Does the quoted passage actually appear in the source?
AI agents (and people) often cite real sources but misstate what those sources say: real references, wrong claims. quotecheck fetches the cited source and checks that the quoted text is really there, word for word, and tells you where.
$ quotecheck "Mulberry trees" "https://en.wikipedia.org/wiki/Morus_(plant)"
{ "status": "EXACT", "char_start": 9271, "char_end": 9285, "similarity": 1.0, "snippet": "Mulberry trees", "source_final_url": "https://en.wikipedia.org/wiki/Morus_(plant)", "reason": null }
Built by Feenmile.
| status | meaning |
|---|---|
EXACT | The quote appears in the source text after normalizing whitespace, curly quotes and dash styles. Matching is case-sensitive. |
NEAR | No exact match, but a passage with similarity >= 0.90 exists (difflib SequenceMatcher ratio). snippet holds the source's actual wording. |
NOT_FOUND | Nothing in the retrievable text is close enough. similarity shows the best score found. |
SOURCE_UNAVAILABLE | The source could not be fetched or read; reason says why. |
char_start / char_end are Python string indices (end exclusive) into the plain text quotecheck extracted from the source, which you can get with quotecheck.fetch_source(source).text.
Read NEAR carefully. A NEAR result means the wording differs. A changed number ("43,548" vs "43,549") or a dropped "not" can still score above 0.90. Use the returned snippet as the quotation, or rephrase as a paraphrase.
https://... or http://... URLsdoi:10.xxxx/... (resolved through https://doi.org, following the publisher redirect)pmid:12345 (the PubMed abstract, via NCBI E-utilities efetch, plain text)The PyPI distribution is named quotecheck-mcp; the import package and the command are still quotecheck.
pip install quotecheck-mcp # library + CLI, no dependencies
pip install "quotecheck-mcp[mcp]" # also the MCP server (needs the official mcp SDK)
Python 3.10 or newer.
quotecheck "<quote>" <source>
quotecheck "the exact words" doi:10.1371/journal.pone.0000308 quotecheck --strict "the exact words" pmid:33301246 # exit 1 unless EXACT echo "a long passage" | quotecheck - https://example.org/article python -m quotecheck --help
Output is always JSON on stdout. Exit status is 0 when a verdict was printed (1 with --strict unless EXACT) and 2 for usage errors such as an empty quote.
import quotecheck
result = quotecheck.check("pmid:33301246", "A total of 43,548 participants underwent randomization") print(result.status, result.char_start, result.char_end, result.similarity) print(result.to_dict())
quotecheck.check_text(text, quote, near_threshold=0.90)
The core library uses only the Python standard library.
The server speaks MCP over stdio and exposes one tool, check_quote(quote, source).
{
"mcpServers": { "quotecheck": { "command": "quotecheck-mcp" } } }
If the script is not on your PATH, use "command": "python", "args": ["-m", "quotecheck.mcp_server"].
The tool description tells the agent to call it before presenting text as a direct quotation, and how to act on each verdict.
quotecheck fetches URLs that came from model output, so it treats them as untrusted:
http and https; URLs with embedded credentials are refused;quotecheck/0.1 (+https://feenmile.com);SOURCE_UNAVAILABLE with the reason pdf not supported in v0.1. Many DOIs resolve to a landing page whose abstract is HTML; the full text may only be in a PDF.SOURCE_UNAVAILABLE) or incomplete (NOT_FOUND).NOT_FOUND or SOURCE_UNAVAILABLE, which does not mean the quote is wrong.pmid: checks the abstract text, not the full paper.python -m unittest discover -s tests -t .
python scripts/mutation_check.py
The tests are offline. They run a local http.server fixture. Because the SSRF guard blocks loopback, tests exempt specific fixture (ip, port) pairs with quotecheck._testing.allow_loopback_endpoints, a test-only switch that is off unless a test turns it on. A second fixture server is never exempted, so the tests can prove that a redirect into loopback is refused.
scripts/mutation_check.py copies the project to a temporary directory, disables the address check, and confirms the suite fails.
MIT. See LICENSE.