Happy MedBox MCP Server
Hausapotheken-Managementsystem (Happy MedBox)
Drei-Endpunkte-Softwaregerüst: WeChat-Miniprogramm + Node/SQLite-Backend + MCP-Server + A2A-Erinnerungsagent. Kernablauf: Foto erfassen → erkennen → in Datenbank schreiben → regelmäßig auf Ablauf scannen → MCP stellt Datenschnittstelle bereit → A2A löst Erinnerung aus → Miniprogramm zeigt Erinnerungen und Vorschläge an.
Technische Auswahl: Backend und Miniprogramm werden nativ / ohne externe Abhängigkeiten implementiert (Node 22 eingebautes
http/node:sqlite/node:test), lauffähig und testbar offline mitnode, keinnpm installerforderlich.
Verzeichnisstruktur
happy-medbox/
├─ prd.md / architecture.md # 产品需求 + 系统架构(团队 SOP 产出)
├─ package.json / README.md
├─ src/ # 后端:API + 数据库 + MCP + A2A
│ ├─ db.js # SQLite 连接与建表(node:sqlite)
│ ├─ expiry.js # 过期计算(纯函数,可单测)
│ ├─ ocr.js # OCR 接口 + Mock(预留腾讯云/微信 OCR)
│ ├─ repository.js # 数据访问层 CRUD
│ ├─ mcp-server.js # MCP 工具 + JSON-RPC(stdio)
│ ├─ server.js # REST API(小程序对接)
│ ├─ a2a-server.js # 提醒代理 + 用户代理(双端口,A2A 推送)
│ ├─ seed.js # 样例数据
│ └─ index.js # 编排入口(启动 + 定时扫描)
├─ miniprogram/ # 微信小程序端(原生)
│ ├─ pages/{index,capture,detail,knowledge,reminder}/
│ └─ utils/{api,ocr,format}.js
└─ test/ # 单元测试(expiry/db/mcp/a2a)Related MCP server: Medical MCP Server
Schnellstart
1. Backend + A2A starten (Standardports 3000 / 4100 / 4200)
cd happy-medbox
node src/index.jsNach dem Start:
Miniprogramm verbindet sich mit REST:
http://localhost:3000Erinnerungsagent (AgentCard / Scan auslösen):
http://localhost:4100Benutzeragenten-Posteingang:
http://localhost:4200
Umgebungsvariablen: API_PORT / REMINDER_PORT / USER_PORT / WARNING_DAYS(Standard 30) / REMINDER_INTERVAL_MS(Standard 60000) / MEDBOX_DB(Standard data/medbox.db, für In-Memory-Datenbank :memory:).
2. Tests ausführen (19 Tests, alle bestanden)
node --test3. MCP-Server separat starten (für AI-Assistent stdio-Aufruf)
node src/mcp-server.js
# 支持 initialize / tools/list / tools/call
# 工具:query_medicines / recognize_medicine_image / compute_expiry /
# get_medication_advice / add_medicine / list_expiring4. Miniprogramm öffnen
Importieren Sie das Verzeichnis miniprogram/ mit den WeChat-Entwicklertools (die appid ist bereits auf touristappid gesetzt, im Gastmodus direkt in der Vorschau verfügbar).
Ändern Sie bei der echten Gerätedebugging die baseUrl in miniprogram/app.js auf die lokale IP des Computers (z. B. http://192.168.x.x:3000) und aktivieren Sie in den Entwicklertools die Option "Legale Domainnamen nicht überprüfen".
Erläuterung der Schlüsselprozesse
Fotoerkennung:
capture-Seitewx.chooseMedia→POST /api/ocr→ aktuell Rückgabe von Mock-strukturierten Feldern (Name/Spezifikation/Herstellungsdatum/Verfallsdatum), Benutzer überprüft und sendet dannPOST /api/medicineszur Datenbank.Countdown bis Ablauf: Backend
expiry.jsberechnet dynamisch die verbleibenden Tage und den Status (safe/warning/expired) basierend auf dem aktuellen Datum; Miniprogramm-Startseite und Detailseite zeigen dies an.Zeitgesteuerter Scan + A2A-Push: Der Erinnerungsagent in
a2a-server.jsscannt in Intervallen nach bald ablaufenden Medikamenten → schreibt in diereminders-Tabelle und kapselt eine A2A Task → HTTP-Push an den Benutzeragenten/tasks(Nachrichtenweiterleitung zwischen Agenten) → Miniprogrammreminder-Seite pollt zur Anzeige, Benutzer kann als gelesen markieren.MCP-Datenschnittstelle: AI-Assistent ruft über stdio JSON-RPC sechs Tools auf, um bei Bedarf Medikamente abzufragen, zu erkennen, das Verfallsdatum zu berechnen oder Medikationsvorschläge abzurufen.
Empfehlungen für die Produktion (Schnittstellenvertrag bleibt gleich)
Datenbank:
node:sqlite→better-sqlite3(schneller, synchron).MCP:
src/mcp-server.jseigene JSON-RPC-Implementierung → offizielles@modelcontextprotocol/sdk.REST: Eingebautes
http→Express/Fastify.OCR:
ocr.jsMock-Zweig → Einbindung von Tencent Cloud allgemeiner Druckschrift-OCR oder WeChat OCR Plugin (erfordert Schlüssel/Berechtigungen).
Bekannte Einschränkungen (MVP-Umfang)
Erinnerungskanal verwendet zunächst Polling innerhalb des Miniprogramms, Schnittstelle für WeChat-Abonnementnachrichten bleibt vorbereitet.
Wissensdatenbank enthält nur wenige eingebaute Beispiele, Admin-Hintergrund muss noch entwickelt werden (P2).
Kein Kontosystem, lokale Kennzeichnung pro Familie (P2 für Multi-Endpunkt-Synchronisation).
This server cannot be deployed
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Hosted MCP server for Cliniko — patients, appointments, availability, and invoices for AI agents.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for managing Homebox inventory via AI assistants, enabling item management, location organization, and label categorization.4MIT
- AlicenseNot gradedqualityDmaintenanceA comprehensive Model Context Protocol (MCP) server for medical document processing with advanced AI capabilities, including OCR, medical NER, local embeddings, and vector search.284 npm1MIT
- AlicenseAqualityCmaintenanceMCP server for managing personal items with expiration dates, enabling AI agents to add, query, and scan barcode items via API Key authentication.59 npmMIT
- AlicenseAqualityBmaintenanceAn MCP server that enables AI assistants to query U.S. FDA public datasets, including drug adverse events, labeling, recalls, approvals, shortages, NDC directory, and medical device regulatory information.10MIT