Skip to main content
Glama
tomwugdgz

Happy MedBox MCP Server

by tomwugdgz

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 mit node, kein npm install erforderlich.

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.js

Nach dem Start:

  • Miniprogramm verbindet sich mit REST: http://localhost:3000

  • Erinnerungsagent (AgentCard / Scan auslösen): http://localhost:4100

  • Benutzeragenten-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 --test

3. 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_expiring

4. 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-Seite wx.chooseMediaPOST /api/ocr → aktuell Rückgabe von Mock-strukturierten Feldern (Name/Spezifikation/Herstellungsdatum/Verfallsdatum), Benutzer überprüft und sendet dann POST /api/medicines zur Datenbank.

  • Countdown bis Ablauf: Backend expiry.js berechnet 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.js scannt in Intervallen nach bald ablaufenden Medikamenten → schreibt in die reminders-Tabelle und kapselt eine A2A Task → HTTP-Push an den Benutzeragenten /tasks (Nachrichtenweiterleitung zwischen Agenten) → Miniprogramm reminder-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:sqlitebetter-sqlite3 (schneller, synchron).

  • MCP: src/mcp-server.js eigene JSON-RPC-Implementierung → offizielles @modelcontextprotocol/sdk.

  • REST: Eingebautes httpExpress/Fastify.

  • OCR: ocr.js Mock-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).

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

  • Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.

  • Hosted MCP server exposing US hospital procedure cost data to AI assistants

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tomwugdgz/happy-medbox'

If you have feedback or need assistance with the MCP directory API, please join our Discord server