Mirobody
Lab results to LOINC codes and UCUM units, symptoms and diagnoses to ICPC-3. Offline, no API key.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Read-only MCP server for coding-agent traces, alerts, costs, usage, and budget health.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
AGENTGUARD_API_KEY, AGENTGUARD_URLค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"agentguard47": {
"command": "npx",
"args": [
"-y",
"@agentguard47/mcp-server"
],
"env": {
"AGENTGUARD_API_KEY": "ใส่ค่าของคุณ",
"AGENTGUARD_URL": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add agentguard47 --env AGENTGUARD_API_KEY='ใส่ค่าของคุณ' --env AGENTGUARD_URL='ใส่ค่าของคุณ' -- npx -y @agentguard47/mcp-serverเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"agentguard47": {
"command": "npx",
"args": [
"-y",
"@agentguard47/mcp-server"
],
"env": {
"AGENTGUARD_API_KEY": "ใส่ค่าของคุณ",
"AGENTGUARD_URL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"agentguard47": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@agentguard47/mcp-server"
],
"env": {
"AGENTGUARD_API_KEY": "ใส่ค่าของคุณ",
"AGENTGUARD_URL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
AGENTGUARD_URL envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub bmdhodl ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: AGENTGUARD_API_KEY
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.2.2) เข้า registry 5 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี 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 รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Stop runaway agents with runtime checks in Python.
AgentGuard checks budgets, repeated tool calls, retries, and elapsed time in instrumented Python code. Guards raise exceptions so your application can stop the next operation. The base SDK has no runtime dependencies and needs no account.
Names: this repository is agent47, the PyPI package is agentguard47, and the Python import is agentguard. AgentGuard 2.0.0 requires Python 3.11 or newer. On Python 3.9 or 3.10, pin agentguard47==1.4.0. See the Python migration guide before upgrading.
Install in a virtual environment, then run the offline checks:
python -m pip install agentguard47
agentguard doctor agentguard demo
doctor checks the installation and local trace writing. demo exercises budget, loop, and retry stops without provider keys or network access. Follow the trace path printed by the command to inspect its output. agentguard demo --feedback prints a local redacted report; nothing is sent.
For a fresh PowerShell install and a runnable raw starter, follow the published-release walkthrough.
agentguard receipt agentguard_demo_traces.jsonl prints a receipt of each stop with the trace's SHA-256 drawn as a barcode. Add --format markdown to paste it into a PR or issue. The hash identifies the trace file; it is not a signature. This stop receipt records a covered guard refusal. Anthropic's official /receipts plugin summarizes past Claude Code work (30 days by default). Neither output proves prevented spend or provides a signed attestation. The agentguard receipt command stays the same.
agentguard hook claude-code --install --write
This installs a Claude Code hook that refuses the third identical tool call in a row and a call that already failed twice. "Identical" ignores JSON key order and preserves case and whitespace in values. The optional no_progress_max rule refuses a tool after repeated empty or same-error results even when input changes; it is off by default. Refusals omit raw input and go to .agentguard/claude-code/trace.jsonl. It checks tool calls, not tokens or subscription quota. See the Claude Code hook guide.
agentguard run --budget-usd 5 agent.py
This patches the OpenAI and Anthropic clients, then runs agent.py in the same interpreter. Settings come from flags, then environment variables, then .agentguard.json. A guard stop exits 1. Every run ends with the trace path on stderr, ready for agentguard receipt. agentguard run python -m mypkg works too. The bounds are the same as patching the client yourself; see enforcement boundary.
Subprocesses start a separate interpreter and are not patched by the parent. A detached, uninstrumented child can keep running after the guarded script exits. The offline reproduction demonstrates that boundary with two simulated calls and no network access.
agentguard run prices every patched call at paid rates, including a local model behind an OpenAI-compatible URL such as Ollama. A dollar budget can then stop a model that costs nothing. For a local model, patch the client in the script with free_local_clients=[client] and a BudgetGuard token or call cap, then run the script with python; see free local clients.
Save this as budget_demo.py and run python budget_demo.py. It makes no network requests.
from agentguard import BudgetExceeded, BudgetGuard
budget = BudgetGuard(max_calls=2) completed = 0
for _ in range(3): try: budget.check() # Check before the operation.
completed += 1 budget.consume(calls=1) # Record the completed operation. except BudgetExceeded: print(f"Stopped before call {completed + 1}")
assert completed == 2
Expected output: Stopped before call 3.
A stuck agent often rewords each retry, so no call repeats exactly. max_no_progress counts results instead: the same tool coming back empty, or with the same error, N times in a row stops the run whatever the arguments. normalize=True canonicalizes containers while preserving case and whitespace in argument values. Both options are off by default.
from agentguard import LoopDetected, LoopGuard
loop = LoopGuard(normalize=True, max_no_progress=3)
for pattern in ["retry_count", "retryCount", "retries"]: loop.check("grep", {"pattern": pattern}) matches = [] # Put your search here. This one finds nothing. try: loop.record_result("grep", matches, tool_args={"pattern": pattern}) except LoopDetected as stop: print(stop)
Expected output: No progress: grep came back empty 3 times in a row (limit: 3). Change the approach instead of rewording the call. Functions wrapped with trace_tool feed results to the guard automatically. Any other result in between starts the count over, so pagination and edit-then-test cycles do not trip it.
Install the provider's client separately. For OpenAI:
python -m pip install openai
from agentguard import BudgetGuard, JsonlFileSink, Tracer, patch_openai
budget = BudgetGuard(max_cost_usd=5.00) tracer = Tracer( service="my-agent", sink=JsonlFileSink(".agentguard/traces.jsonl"), ) patch_openai(tracer, budget_guard=budget)
Standard OpenAI clients created earlier are covered too, including resource objects obtained before the patch. Activate the patch before sending requests or saving bound methods and raw/streaming response helpers. Those saved references can retain the original callable; recreate them after activation. patch_openai_async() covers async clients, and agentguard.init() enables both. See the enforcement boundary.
The patch checks recorded usage before dispatch and records response usage afterward, including streamed calls once the final usage arrives. A response can exceed the remaining cost or token allowance. Concurrent requests do not reserve capacity. Chat Completions streams request include_usage unless the caller already set it.
The OpenAI Agents SDK runs on responses.create, so agentguard.init() before the Runner puts every model call under the budget (example). Hosted tools and background=True responses are not covered. See the getting started guide for setup, traces, and framework starters.
flowchart TD
accTitle: AgentGuard operation checks accDescr: Check a limit before an operation, then record usage. A[Instrumented operation] --> B{Guard check} B -->|Limit reached| C[Raise exception] B -->|Allowed| D[Run operation] D --> E[Record usage and trace] E --> A
Text equivalent: check before an operation, run it if allowed, then record usage. A guard exception returns control to your application's error handler.
| Guard | Checks | Raises |
|---|---|---|
BudgetGuard | Recorded calls, tokens, or estimated cost | BudgetExceeded |
LoopGuard | Repeated tool calls; opt in to normalize=True and max_no_progress=N for reworded ones | LoopDetected |
FuzzyLoopGuard | Tool frequency and alternating patterns | LoopDetected |
RetryGuard | Retries per tool | RetryLimitExceeded |
TimeoutGuard | Elapsed time when checked | TimeoutExceeded |
RateLimitGuard | Calls within a sliding minute | BudgetExceeded |
X402SpendGuard | Payment amounts before the payment callback | BudgetExceeded |
For task budgets, use BudgetGuard.goal(...). For signatures and defaults, read the guard source and public exports.
Budgets can also persist across runs: configure JsonFileStateStore, a shared key, and period="day" for a daily counter. Set warn_at_pct=0.8 and an on_warning callback for an 80% warning. Workers must explicitly share the store and key; child-agent budget inheritance is not automatic. Monthly SDK limits are not implemented. See the capability matrix.
[crewai] extra pulls ChromaDB. The 2026-09-12 audit found four unresolved advisories, including PYSEC-2026-311 / CVE-2026-45829. Review that exposure before installing the extra. Base SDK installs do not include ChromaDB.See security reporting, the dated dependency audit, and release notes. Audit results describe their recorded date, not a permanent clean bill of health.
The SDK is the free local proof path. Start local. Add hosted ingest only when you need retained history, alerts, team visibility, spend trends, hosted decision history, or dashboard-managed remote kill signals.
Local guards remain authoritative. HttpSink mirrors trace and decision events; it does not execute remote kill signals by itself. See the dashboard contract before configuring it.
Local use has no hosted event quota, retention period, or API-key allocation. Network egress requires an integration you configure, such as HttpSink or an OpenTelemetry exporter.
Nothing in the local SDK phones home. The AgentGuard website describes the optional hosted service.
| You want to | Start here |
|---|---|
| See which paths actually stop a call | Enforcement boundary |
| Install and trace a first run | Getting started |
| Find guides and source references | [Do
ตัดมาแค่ช่วงต้น อ่านต่อใน repo