Bản sao tự lưu trữ
Một máy chủ nhỏ trên phần cứng của bạn giữ một bản sao đầy đủ, trực tiếp dữ liệu Marrow của bạn và trả lời agent khi điện thoại của bạn đang ngủ, nằm trong túi, hoặc ở bên kia thế giới.
Thiết lập cho từng ứng dụng nằm trên trang riêng trong mục kết nối.
Tất cả hướng dẫn của Marrow: MCP · Bản sao tự lưu trữ · Tự động hóa · Tệp · Hỗ trợ
Đó là gì
Một máy chủ nhỏ mã nguồn mở bạn chạy trên phần cứng của mình: Raspberry Pi, NAS, laptop cũ, VPS $5. Điện thoại của bạn ghép đôi với nó một lần bằng cách quét mã QR, rồi đẩy mọi thay đổi ở chế độ nền, kể cả khi đóng ứng dụng. Máy chủ giữ một bản sao SQLite đầy đủ dữ liệu Marrow của bạn và phục vụ mười ba công cụ MCP để đọc: bảy công cụ của điện thoại, sleep_log và symptoms_and_mood, và bốn công cụ trả lời theo cách riêng của ứng dụng (daily_brief, baselines, what_changed, data_quality), để một agent có thể hỏi "tuần này tôi ngủ thế nào" lúc 3 giờ sáng khi điện thoại của bạn nằm trong ngăn kéo. Giấy phép MIT: github.com/MarrowHealth/marrow-mcp.
Cài đặt
Một tệp Python, chỉ dùng thư viện chuẩn, Python 3.10 trở lên:
pip install marrow-mcp marrow-server # or: python3 marrow_server.py
Hoặc với Docker:
git clone https://github.com/MarrowHealth/marrow-mcp cd marrow-mcp docker compose up -d
Lần khởi động đầu tiên, nó in ra một URL ghép đôi và hiện mã QR trong bất kỳ trình duyệt nào trên mạng của bạn.
Ghép đôi điện thoại
- Mở URL ghép đôi trên bất kỳ màn hình nào gần bạn.
- Trong Marrow: Xuất, MCP máy chủ, Ghép đôi với một máy chủ, quét mã.
- Xong. Điện thoại bắt đầu đẩy dữ liệu, và trang Máy chủ hiện thời điểm đẩy gần nhất và số bản ghi đang chờ.
Việc ghép đôi tạo hai token trong thư mục dữ liệu của máy chủ: một cái điện thoại dùng để đẩy, một cái agent dùng để đọc. Xóa tệp token để đổi token mới.
Trỏ một agent tới nó
claude mcp add --transport http marrow http://<server-ip>:8800/mcp \ --header "Authorization: Bearer <mcp token>"
Mười ba công cụ, tất cả đều đọc. Chín công cụ thô: health_summary, list_metrics, metric_daily, metric_samples, workouts, nutrition_log, strength_log, sleep_log, symptoms_and_mood. Và bốn công cụ bắt đầu từ chỗ các công cụ thô dừng lại, chấm điểm theo mức bình thường gần đây của riêng bạn bằng cùng phép tính mà màn hình Trang chủ của ứng dụng dùng: daily_brief (một ngày: mỗi chỉ số chính với giá trị và cụm từ riêng của ứng dụng, thực phẩm và nước so với mục tiêu, giấc ngủ đêm qua, buổi tập đã làm, những cờ đáng nhắc tới), baselines (mức bình thường của riêng bạn theo từng chỉ số, z của giá trị mới nhất và xu hướng 90 ngày), what_changed (tuần vừa qua so với bốn tuần trước nó: cái gì thay đổi, đáng chú ý thế nào với bạn, thay đổi giấc ngủ và giờ đi ngủ, các luồng dữ liệu bắt đầu hoặc ngừng) và data_quality (cái gì còn mới, cũ hoặc thiếu, để một agent không bao giờ nhầm một khoảng trống với một sự thật). Mỗi lượt đọc nhận số ngày lùi lại hoặc from và to theo lịch của điện thoại. Máy chủ cũng liệt kê bốn prompt (how_am_i_doing, weekly_review, doctor_prep, log_from_text) và bốn resource cho các client hiển thị chúng. Nó cũng có mười hai công cụ ghi, được liệt kê khi điện thoại của bạn cho phép. Từ Marrow 1.5, hãy bật Cho phép AI ghi cho máy chủ của bạn trong Xuất, Kết nối của bạn và một AI có thể ghi bữa ăn, nước, cân nặng, bài tập, giấc ngủ, triệu chứng, tâm trạng và mục tiêu qua nó, miễn phí. Máy chủ xếp hàng từng mục và điện thoại áp dụng khi Marrow mở hoặc thức dậy, và mục nào cũng hoàn tác được. Thiết lập cho Claude Desktop, Cursor và các ứng dụng khác nằm ở trang MCP. Chỉ URL là thay đổi.
Truy cập từ bên ngoài mạng LAN của bạn
Máy chủ nói HTTP thuần và không có TLS riêng. Đừng chuyển tiếp cổng thẳng cho nó. Hãy cài Tailscale trên máy và điện thoại rồi dùng tailscale serve, hoặc đặt Cloudflare Tunnel hay bất kỳ reverse proxy nào kết thúc HTTPS phía trước. Mã QR ghép đôi mang địa chỉ mà máy chủ quảng bá: địa chỉ LAN của chính nó, hoặc địa chỉ bạn đặt bằng --url. Hãy khởi động nó với địa chỉ bạn thực sự sẽ dùng, ví dụ marrow-server --url https://pi.your-tailnet.ts.net, rồi ghép đôi.
Những gì được lưu xuống ổ đĩa
- Một cơ sở dữ liệu SQLite với mọi chuỗi theo ngày, mẫu, mục nhật ký và hiệp tập sức mạnh, được các lần đẩy của điện thoại giữ luôn mới.
- Mọi lần đẩy thô được lưu tạm dưới dạng JSONL bên cạnh, để cơ sở dữ liệu có thể được dựng lại nếu bạn lỡ làm hỏng nó.
- Dự trù 50 đến 150 MB mỗi năm cho lịch sử đầy đủ độ chi tiết.
Đơn vị: Chỉ số sức khỏe đến theo đơn vị SI đã lưu kèm nhãn. Các hiệp tập sức mạnh đến theo pound với "unit": "lb" bất kể cài đặt hiển thị của điện thoại, nên bản sao không bao giờ trộn lẫn đơn vị. Hãy trỏ Grafana, DuckDB hoặc một cron job thẳng vào tệp cơ sở dữ liệu.
Khắc phục sự cố
Hai phép thử từ máy tính mà AI của bạn chạy cho biết vấn đề nằm ở đâu. Trước hết, máy chủ có đang chạy không? Phép này không cần token:
curl http://<server-ip>:8800/health
Nó trả lời {"server": "marrow", "ok": true}. Sau đó, token của agent bạn có dùng được không?
curl -i http://<server-ip>:8800/mcp \ -H "Authorization: Bearer <mcp token>" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
| Bạn nhận được gì | Ý nghĩa |
|---|---|
200 OK và một danh sách công cụ | Máy chủ chạy tốt. Kiểm tra địa chỉ, token và loại máy chủ (HTTP) trong cấu hình agent của bạn, rồi khởi động lại agent. |
401 kèm bad bearer token | Sai token. Agent dùng mcp token, không phải token mà điện thoại ghép đôi. Xem bên dưới. |
| Kết nối bị từ chối hoặc hết thời gian chờ | Máy chủ chưa chạy, cổng sai, hoặc tường lửa trên máy chặn cổng 8800. Với Docker, hãy kiểm tra ánh xạ cổng 8800:8800. |
- Token nào. Máy chủ in token của agent khi khởi động, ở dòng bắt đầu bằng
agents:. Nó cũng nằm trong tệp.mcp-tokenở thư mục dữ liệu (./datatrừ khi bạn truyền--data,/datatrong Docker). Điện thoại dùng một token khác, từ.app-token. Để đổi token của agent, hãy xóa.mcp-token, khởi động lại máy chủ và cập nhật mọi agent. - Trang ghép đôi báo token sai hoặc thiếu. Mở liên kết ghép đôi đúng như máy chủ đã in, cùng phần
?token=của nó. - Trang ghép đôi hiện chữ, không phải mã QR. Mã QR cần gói tùy chọn
segno:pip install "marrow-mcp[qr]". Hoặc, trong Marrow, chọn Nhập thủ công thay thế và gõurlvàtokentừ đoạn chữ đó. - Ghép đôi thất bại trên điện thoại. Điện thoại không tới được địa chỉ trong mã QR. Dưới Docker, máy chủ chỉ thấy địa chỉ riêng của container, nên hãy đưa địa chỉ của bạn: thêm
--url http://<your-computer-ip>:8800vào lệnh của nó. Khi ra ngoài Wi-Fi nhà, hãy dùng địa chỉ HTTPS từtailscale servehoặc một tunnel. - Quyền truy cập Mạng cục bộ. Để tới một máy chủ trong mạng nhà bạn, Marrow cần quyền truy cập Mạng cục bộ. iOS hỏi lần đầu bạn ghép đôi. Nếu bạn đã chọn không, hãy bật Marrow trong Cài đặt, Quyền riêng tư và Bảo mật, Mạng cục bộ, rồi ghép đôi lại với Marrow đang mở.
- Mã QR đó không phải mã ghép nối của Marrow. Camera đã đọc một mã khác. Hãy quét mã trên trang ghép đôi của máy chủ.
- Dữ liệu cũ, hoặc Không nhận được dữ liệu trong Marrow. Điện thoại không đẩy được tới máy chủ. Trang MCP máy chủ trong Marrow hiện lần đẩy gần nhất và số bản ghi đang chờ. Kiểm tra máy chủ đang chạy, rồi mở Marrow để gửi những gì đang chờ. Các lần đẩy nền chạy khi iOS cho phép.
- Máy chủ này cần cập nhật trước khi ghi được. Cập nhật bằng
pip install -U marrow-mcpvà khởi động lại. Với Docker, chạygit pullvàdocker compose up -d --buildtrong bản clone. - Các mục từ AI không hiện. Bật Cho phép AI ghi cho máy chủ trong Xuất, Kết nối của bạn. Các công cụ ghi chỉ xuất hiện trên máy chủ sau đó. Mỗi mục chờ trên máy chủ và đến nơi khi Marrow được mở hoặc thức dậy lần tới.
- Kết nối không bật lên được. Gói miễn phí giữ được 1 kết nối bật cùng lúc, Marrow Pro tới 10: AI, máy chủ và tự động hóa cộng lại.
Khi nào chọn cách này thay vì những cách khác
Hãy chọn bản sao khi agent của bạn cần dữ liệu lúc điện thoại đang ngủ hoặc ở xa, hoặc khi bạn muốn một cơ sở dữ liệu truy vấn được thay vì các tệp. Hãy chọn máy chủ MCP trên điện thoại khi agent của bạn chạy gần điện thoại và bạn không muốn bảo trì thêm gì. Hãy chọn tự động hóa khi bạn đã có sẵn nơi dữ liệu nên đến.