Junê (june-mcp)
chính thứcTrao cho agent của bạn một bộ nhớ: bộ nhớ knowledge-graph dùng chung, có trích dẫn, cô lập theo tenant cho mọi MCP host. Câu trả lời có căn cứ từ một endpoint June ưu tiên cục bộ — từ chối trả lời thay vì đoán.
Bạn có thể làm gì với Junê (june MCP?
- 从记忆中引用答案 — 让您的助手基于您的六月知识图谱回答问题,并提供可验证的来源。
- 搜索与上下文组装 — 让您的助手通过
june_search或june_context为查询查找排名证据,或构建受令牌预算限制的上下文包。 - 持久化笔记 — 告诉您的助手将事实或笔记记住到图谱中,以便日后通过
june_remember检索和引用。 - 常设指令管理 — 指示您的助手将持久规则或技能保存为文档,或使用
june_doc_save或june_learn附加带日期的经验。 - 图谱探索 — 让您的助手映射节点周围的邻域,导出有界子图,或通过
june_graph列出链接到某页面的内容。 - 仓库同步 — 指示您的助手使用
june_docs_export或june_page_import将六月文档或页面镜像到您的仓库,或将编辑后的文件导入回来。
Tài liệu
june-mcp
Cấp cho agent của bạn một bộ nhớ. june-mcp là máy chủ MCP chính thức
dành cho Junê — nó kết nối bất kỳ máy chủ MCP nào (Claude Desktop, Claude
Code, và các ứng dụng khác) tới một đồ thị tri thức June, để agent của bạn có thể hỏi, tìm kiếm và ghi nhớ
dựa trên một bộ nhớ dùng chung, có trích dẫn, và cô lập theo khách thuê.
Gói này là một bộ kết nối mỏng, không chứa logic: toàn bộ việc truy xuất, lắp ráp đồ thị và trả lời đều diễn ra trên điểm cuối June mà bạn trỏ tới. Không có mã nguồn engine nào nằm ở đây — đó là lý do nó đủ nhỏ để đọc trong một lần ngồi.
Claude Desktop / Claude Code ──stdio──▶ june-mcp ──HTTPS──▶ your June endpoint
(graph · retrieval · answers)
Cài đặt
pip install june-mcp # just the connector (or: pipx install june-mcp)
pip install june-ai # umbrella: june-mcp + june-bench (the benchmark suite)
pip install "june-bench[mcp]" # the bench, with the connector as an extra
Trỏ tới một điểm cuối June
june-mcp giao tiếp với bất kỳ dịch vụ June nào. Có ba cách để có một dịch vụ:
- Ứng dụng desktop Junê (ưu tiên cục bộ). Chạy ứng dụng Junê và kết nối tới engine cục bộ của nó — tệp, đồ thị và khóa của bạn vẫn nằm trên máy của bạn.
- Dịch vụ June của riêng bạn. Khách hàng Pro/Team chạy gói engine
june-localtrỏJUNE_BASE_URLtới máy chủ của riêng họ. - Được lưu trữ (Team). Trỏ tới điểm cuối không gian làm việc June được lưu trữ của bạn bằng khóa API từ bảng điều khiển của bạn.
Cấu hình
Máy chủ đóng khi lỗi: nó từ chối khởi động trừ khi biết kết nối tới đâu và với tư cách ai, và báo cho bạn mọi thứ còn thiếu trong một thông báo (không phải từng lỗi một).
| biến môi trường | bắt buộc | ý nghĩa |
|---|---|---|
JUNE_BASE_URL | ✅ | Điểm cuối June của bạn, ví dụ http://localhost:8000 |
JUNE_CANVAS | ✅ | Canvas (không gian làm việc) để gắn kết nối này — một tên (work) hoặc một id canvas. Tên được phân giải thành id khi khởi động; tên mơ hồ sẽ đóng khi lỗi |
JUNE_CANVAS_CREATE | tùy chọn | 1 tạo canvas có tên khi chạy lần đầu nếu nó chưa tồn tại (bị từ chối ở chế độ chỉ đọc) |
JUNE_API_KEY | ✅ | Khóa API June của bạn (JUNE_ALLOW_ANON=1 chọn thoát một cách tường minh cho các thiết lập cục bộ không khóa) |
JUNE_LLM_KEY | tùy chọn | Khóa LLM của riêng bạn cho các câu trả lời có trích dẫn — được chuyển tiếp theo từng yêu cầu dưới dạng tiêu đề, không bao giờ được ghi log, không bao giờ được lưu trên dịch vụ |
JUNE_READONLY | tùy chọn | 1 ẩn và từ chối mọi công cụ ghi (bộ nhớ trở thành chỉ đọc) |
JUNE_TOOL_PROFILE | tùy chọn | compact (mặc định), full, hoặc lean. compact gộp 17 công cụ liên quan thành bảy công cụ họ nhận một đối số op — 20 công cụ được liệt kê thay vì 37, 11.359 token nhắc lệnh thay vì 13.236 trên một kết nối đọc-ghi Pro. Mọi lời gọi được điều phối tới cùng mã như trước, vì vậy các cổng, quy tắc canvas, biên nhận và xác nhận hai pha không thay đổi. Được đo trên bốn máy chủ trước khi trở thành mặc định: Claude Code 1.000 thành công tác vụ (đường cơ sở 0.987), GPT-5.4 trực tiếp 0.983 (0.957), Codex 0.922 (0.763), không có xóa không an toàn nào trên mọi nhánh. full liệt kê 37 thành viên dưới tên riêng của chúng — cùng mã, mỗi cái một tên. lean chỉ hiển thị sáu động từ mà một agent lập trình sử dụng (june_answer / june_context / june_search / june_remember / june_learn / june_usage) với một phần bắt tay một đoạn, ~2,5k token — cho các phiên chỉ cần hỏi và ghi nhớ |
JUNE_FILES_ROOT | tùy chọn | Thư mục chọn tham gia mà agent có thể tải tệp lên từ đó qua june_ingest_file — không đặt ⇒ công cụ đó không tồn tại |
JUNE_TIMEOUT_READ / JUNE_TIMEOUT_RETRIEVAL / JUNE_TIMEOUT_ANSWER | tùy chọn | Ngân sách thời gian cho từng lớp động từ (mặc định 15 s / 90 s / 120 s): đọc nhanh; june_context, thứ xếp hạng lại mọi ứng viên; câu trả lời, thứ mang theo một lời gọi mô hình |
JUNE_TOOL_CONCURRENCY | tùy chọn | Số lời gọi công cụ tối đa thực thi cùng lúc trên kết nối này (mặc định 8). Các máy chủ xếp hàng các yêu cầu qua một luồng; đây là trần tường minh — các lời gọi vượt quá sẽ xếp hàng, không bao giờ xô đổ |
JUNE_DOCS_CANVAS | tùy chọn | Canvas chứa tài liệu agent (hướng dẫn/kỹ năng thường trực — xem Bộ nhớ agent bên dưới). Mặc định agent_docs; được tạo ở lần june_doc_save đầu tiên |
JUNE_DOCS_REFRESH | tùy chọn | 0 vô hiệu hóa bản tóm tắt định kỳ standing_docs (mặc định bật — đó là lưới an toàn chống quên) |
JUNE_DOCS_REFRESH_CALLS / JUNE_DOCS_REFRESH_MINUTES | tùy chọn | Nhịp tóm tắt: đến hạn sau mỗi N lời gọi công cụ (mặc định 12) hoặc M phút (mặc định 10), tùy điều nào đến trước |
JUNE_DOCS_DIGEST_CHARS | tùy chọn | Giới hạn kích thước tóm tắt được tuần tự hóa (mặc định 2000) |
JUNE_EXPORT_ROOT | tùy chọn | Thư mục kho lưu trữ chọn tham gia mà agent có thể xuất các trang/tài liệu June vào dưới dạng tệp (xem Đồng bộ kho lưu trữ bên dưới) — không đặt ⇒ ba công cụ đồng bộ kho lưu trữ không tồn tại |
JUNE_EXPORT_GIT | tùy chọn | 1 cam kết chính xác các tệp mà mỗi lần xuất đã ghi (giới hạn theo đường dẫn, không bao giờ đẩy) |
JUNE_EXPORT_DIR | tùy chọn | Cây con tài liệu agent bên trong thư mục gốc (mặc định docs/agent) |
JUNE_LOG_LEVEL | tùy chọn | Ghi log chỉ dành cho stderr theo thiết kế — stdout là dây MCP |
Kiểm tra trước khi agent của bạn làm
JUNE_BASE_URL=http://localhost:8000 JUNE_API_KEY=... JUNE_CANVAS=work june-mcp --doctor
Trình kiểm tra xác minh, theo thứ tự: cấu hình → dịch vụ có thể truy cập → phân giải canvas (tên
canvas của bạn → id của nó, ví dụ name "work" → 9147bee6-…) → đường nối tìm kiếm khỏe mạnh → danh mục công cụ, và
in PASS/FAIL cho từng kiểm tra kèm gợi ý được ánh xạ (ví dụ: một tên bị thiếu sẽ liệt kê các canvas ĐANG
tồn tại và chỉ tới JUNE_CANVAS_CREATE=1). Trình kiểm tra thoát 0 chỉ khi mọi kiểm tra đều đạt
(1 nếu không); bản thân máy chủ thoát 2 khi có lỗi cấu hình thay vì khởi động nửa vời.
Chạy trình kiểm tra trước; nó bắt mọi lỗi cấu hình phổ biến trước khi agent của bạn thấy máy chủ.
Kết nối vào Claude
Claude Desktop — hợp nhất vào claude_desktop_config.json (Cài đặt → Nhà phát triển):
{
"mcpServers": {
"june": {
"command": "june-mcp",
"env": {
"JUNE_BASE_URL": "http://localhost:8000",
"JUNE_API_KEY": "your-key",
"JUNE_CANVAS": "work",
"JUNE_LLM_KEY": "your-llm-provider-key"
}
}
}
}
Claude Code:
claude mcp add june -e JUNE_BASE_URL=http://localhost:8000 \
-e JUNE_API_KEY=your-key -e JUNE_CANVAS=work \
-e JUNE_LLM_KEY=your-llm-provider-key -- june-mcp
Khởi động lại hoàn toàn máy chủ (Cmd+Q trên macOS), sau đó kiểm tra máy chủ hiển thị 20 công cụ —
bề mặt compact, mặc định kể từ 0.4.2. JUNE_TOOL_PROFILE=full liệt kê cùng các khả năng
như 37 công cụ được đặt tên riêng lẻ (38 khi bạn chọn tham gia june_ingest_file
qua JUNE_FILES_ROOT).
Các công cụ
Bề mặt mặc định là compact: 20 công cụ, bảy trong số đó nhóm các thao tác liên quan sau một
đối số op. JUNE_TOOL_PROFILE=full liệt kê 37 thành viên dưới tên riêng của chúng — cùng
khả năng, cùng cổng, cùng hành vi.
| công cụ họ | thao tác | gộp |
|---|---|---|
june_graph | neighborhood, subgraph, backlinks | june_neighborhood, june_subgraph, june_backlinks |
june_maintain | enrich, resolve | june_enrich, june_resolve |
june_page_read | list, get, removed, grammar | june_page_list, june_page_get, june_page_removed (+ ngữ pháp khối theo yêu cầu) |
june_page_edit | create, append, update, insert, move, rename, meta, restore | june_page_create, june_page_append, june_page_update, june_page_insert, june_page_move, june_page_rename, june_page_meta, june_page_restore |
june_canvas_read | list, current, use | june_canvas_list, june_canvas_current, june_canvas_use |
june_canvas_erase | clear, delete | june_canvas_clear, june_canvas_delete |
june_docs_read | refresh, list, get | june_docs_refresh, june_doc_list, june_doc_get |
Mọi thứ khác giữ tên riêng của nó: june_answer, june_search, june_enumerate, june_context,
june_usage, june_remember, june_ingest, june_page_write, june_page_delete,
june_canvas_create, june_doc_save, june_doc_delete, june_learn. Một động từ có thể xóa
thứ gì đó không bao giờ được gộp với động từ không thể — vì vậy june_page_write và june_page_delete
vẫn tách biệt khỏi june_page_edit, và mỗi họ mang một destructiveHint trung thực.
Các tên cũ vẫn hoạt động trong tài liệu agent đã lưu của bạn: phần bắt tay compact mang
bản đồ tên cũ → tên mới, và một lời gọi tới tên bị gộp sẽ bị từ chối kèm thay thế chính xác
(june_page_get is not a tool on this surface (compact): call june_page_read with op='get').
Mỗi thao tác làm gì:
| công cụ | agent của bạn nhận được gì |
|---|---|
june_answer | Một câu trả lời có căn cứ, có trích dẫn từ đồ thị — từ chối thay vì đoán |
june_search | Bằng chứng được xếp hạng cho một truy vấn (hỗ trợ đa bước nhảy) |
june_context | Một gói ngữ cảnh được lắp ráp dưới ngân sách token |
june_neighborhood | Đồ thị xung quanh một nút |
june_subgraph | Một xuất đồ thị con có giới hạn |
june_backlinks | Những gì liên kết tới một nút (các cạnh đến của nó) |
june_remember | Ghi một sự kiện/ghi chú vào đồ thị (trở nên truy xuất được + trích dẫn được ngay lập tức). Văn bản dài chạy như một công việc engine: một kết quả {state: running, job_id} được thu thập bằng june_remember(job_id=…) — không bao giờ gửi lại văn bản. Văn bản dán được định địa chỉ theo nội dung trên engine (v0.0.13), vì vậy việc gửi lại văn bản giống hệt sẽ upsert cùng các nút; nó không thể trùng lặp |
june_ingest | Tiếp nhận nút/cạnh có cấu trúc |
june_enumerate | Các nút khớp một vị từ cho các câu hỏi "liệt kê TẤT CẢ X" (không phải top-k). Chỉ exhaustive: true chứng minh danh sách là đầy đủ; một kết quả ngắn hoặc rỗng không có nó không chứng minh không có gì khác khớp |
june_ingest_file | Tải lên một tệp cục bộ (pdf/docx/xlsx/csv/html/md/hình ảnh/âm thanh) từ thư mục được người vận hành phê duyệt — chỉ tồn tại khi bạn đặt JUNE_FILES_ROOT |
june_enrich | Pro: trích xuất lại nền của canvas với engine phong phú hơn (idempotent; công việc + thăm dò; 403 trên gói miễn phí) |
june_resolve | Bảo trì: hợp nhất các thực thể trùng lặp qua các cạnh same_as có thể đảo ngược (chạy phía máy chủ; strong_only=false mở khóa tầng ngữ nghĩa trên Pro) |
june_docs_refresh / june_doc_list / june_doc_get | Đọc tài liệu thường trực của agent — tóm tắt đầy đủ, danh sách đăng ký, nội dung một tài liệu |
june_doc_save / june_doc_delete / june_learn | Ghi chúng — tạo/thay thế một tài liệu hoặc kỹ năng, xóa hai pha, thêm một bài học có ngày tháng |
june_page_insert / june_page_move | Đặt các khối mới sau một khối có tên, hoặc sắp xếp lại các khối theo id — mà không gửi lại trang (cần một engine có tính năng trang positions) |
june_page_rename / june_page_meta | Đặt lại tiêu đề một trang, hoặc ghim nó / đặt nhóm của nó trong danh sách trang của bạn — các khối của nó không bị chạm tới |
june_page_removed / june_page_restore | Xem một trang đã mất gì, và đưa các khối trở lại với id và vị trí gốc của chúng |
june_usage | Biên nhận sử dụng — những gì June thực sự phục vụ, được đo bằng một tokenizer có tên, không bao giờ ước tính. Một biên nhận đầy đủ (receipt_id) hoặc tóm tắt cửa sổ (window); một con số tiết kiệm chỉ xuất hiện trên các lời gọi mà hai mức sử dụng do nhà cung cấp báo cáo thực sự được đo |
Biên nhận trên mỗi lần đọc
Khi engine chạy với JUNE_USAGE=1 (desktop: Cài đặt → Biên nhận sử dụng), mọi
kết quả june_answer / june_context / june_search cũng mang receipt và một dòng
receipt_footer:
receipt r_7f…: served 812 tokens (exact, tiktoken:cl100k_base) from 3 blocks across 2 docs
· 1 doc this session already had — june_usage(receipt_id="r_7f…") shows it in full
Bộ kết nối gửi X-June-Source: mcp và một id X-June-Session cho mỗi tiến trình máy chủ, vì vậy
engine có thể ghi lại tài liệu nào phiên agent này đã có (các lần đọc lại mà nó tránh được).
Chân trang không bao giờ nói "đã lưu": từ đó chỉ tồn tại trên một biên nhận giữ một cặp được đo.
Một engine không có biên nhận gửi không có chân trang, và june_usage trả lời rõ ràng rằng chúng đang tắt.
Các mô tả được viết cho agent (cái gì → khi nào → trả về gì), và mọi đầu vào bị kẹp được hiển thị rõ ràng ghi chú lại cho agent thay vì bị cắt ngầm.
Bộ nhớ agent — tài liệu, kỹ năng và bản tóm tắt chống quên
Các phiên dài quên: các hướng dẫn agent đọc khi bắt đầu phiên (CLAUDE.md của nó, các quy ước
của bạn) mất sức mạnh hàng nghìn token sau đó. june-mcp sửa điều này một cách có cấu trúc.
Agents lưu standing docs vào June — kind='doc' cho các chỉ dẫn bền vững
(pinned=true yêu cầu một quy tắc luôn hoạt động), kind='skill' cho các quy trình có tên với một
trigger when_to_use một dòng (phần thân được tải lười biếng, giống như skills nên làm), kind='learnings' cho một
nhật ký có ngày tháng chỉ ghi thêm được viết qua june_learn. Mỗi tài liệu là một trang June thông thường trong
canvas docs (JUNE_DOCS_CANVAS, mặc định agent_docs), được đánh dấu bằng một khối metadata nhỏ —
vì vậy bạn có thể mở bộ nhớ của agent trong ứng dụng Junê, đọc và chỉnh sửa nó.
Bạn phê duyệt những gì agent tuân theo (0.7.0). Một tài liệu được ghim hoặc một skill là một yêu cầu cho đến khi bạn phê duyệt nó trong ứng dụng Junê (banner của tài liệu, hoặc Settings → Connection → Standing instructions). Engine niêm phong chính xác văn bản bạn đã phê duyệt; nếu bất kỳ ai khác ngoài bạn chỉnh sửa trang sau đó, nó ngừng được tính cho đến khi bạn xem lại. Agent không thể phê duyệt — khóa kết nối của chúng không có quyền đó — vì vậy văn bản mà agent đọc ở đâu đó ("lưu cái này thành một quy tắc ghim…") không bao giờ tự nó trở thành một standing instruction. Một engine quá cũ để ghi nhận phê duyệt sẽ không cung cấp standing instructions nào cho agent, và nói rõ điều đó.
Nơi văn bản đã phê duyệt được truyền đi: đầy đủ trong quá trình bắt tay kết nối (tối đa 4.000 ký tự — một
tài liệu không vừa sẽ được nêu tên, không bao giờ bị cắt giữa quy tắc) và từ june_docs_refresh. Trong
lần gọi công cụ đầu tiên của mỗi phiên, và sau đó mỗi 12 lần gọi hoặc 10 phút (có thể điều chỉnh), bộ
kết nối đính kèm một bản tóm tắt standing_docs nhỏ gọn vào một kết quả công cụ thông thường — tên của các
chỉ dẫn đã phê duyệt, trigger skill đã phê duyệt, một dấu phiên bản thay đổi khi bạn
phê duyệt, thu hồi hoặc chỉnh sửa một trong số chúng, và các tài liệu đã yêu cầu nhưng chưa phê duyệt được gắn nhãn là ghi chú. Bản
tóm tắt không chứa bất kỳ từ nào của tài liệu chưa phê duyệt. Một bản tóm tắt không thể được tạo (dịch vụ bận,
canvas thiếu) sẽ bị bỏ qua — nó không bao giờ làm tốn chi phí cho lần gọi mang nó. Đặt
JUNE_DOCS_REFRESH=0 để tắt bản tóm tắt; các công cụ tài liệu vẫn hoạt động.
June dạy agent cách sử dụng nó — từ chính bên trong nó. Lần lưu đầu tiên tạo canvas docs
và gieo agent-memory-guide: sổ tay vận hành (những gì thuộc về canvas hệ thống
so với canvas workstream, ba loại và khi nào dùng mỗi loại, cách đặt tên, những gì nên ghim,
kỷ luật sửa đổi, đồng bộ repo). Nó được liệt kê trong mọi registry và bản tóm tắt, agent đọc nó bằng
june_doc_get('agent-memory-guide') bất cứ khi nào không chắc chắn — và nó là một trang thông thường bạn có thể chỉnh sửa. Trước khi bất cứ thứ gì được lưu, các trạng thái trống trả về một
hướng dẫn setup thay vì một cái nhún vai, và prompt june_memory_setup yêu cầu agent phỏng vấn bạn
và lưu các quy ước của bạn thành các tài liệu đầu tiên.
Làm cho June tự động — agent phụ thuộc vào nó mà không cần được bảo
"Use June" không bao giờ cần phải nói ra. Ba cơ chế xếp chồng lên nhau để làm cho việc sử dụng trở nên tự động, mỗi cơ chế bao phủ điểm mù của cơ chế trước:
-
Host hook (đóng khoảng trống khởi động lạnh). Một server không thể nói cho đến khi agent gọi lần đầu — vì vậy hãy cài đặt standing instructions của June vào tệp mà host của bạn tải nguyên bản mỗi phiên:
JUNE_EXPORT_ROOT=/path/to/project june-mcp --install-instructions # → CLAUDE.md JUNE_EXPORT_ROOT=/path/to/project june-mcp --install-instructions AGENTS.md # other agentsNó được viết như một phần được quản lý (nội dung của bạn không bao giờ bị chạm vào; các lần chạy lại cập nhật nó tại chỗ), và nó đặt tư thế june-first — kiểm tra June trước khi tuyên bố không biết, ghi nhớ sự thật mà không cần nhắc, học bài học khi chúng xảy ra — vào chính system prompt.
-
Mô tả công cụ chủ động (không bao giờ suy giảm). Mô tả của các động từ cốt lõi cho mô hình biết khi nào nên với tới chúng mà không cần được yêu cầu — và mô tả được đọc lại trong mỗi lượt, trong mọi MCP host, mà không cần sự hợp tác nào.
-
Tư thế june-first trong quá trình bắt tay. Tư thế mặc định của riêng June được tích hợp vào các chỉ dẫn của kết nối (0.7.0; các bản phát hành trước gieo nó như một tài liệu ghim — một hạt giống không bị chạm vào giờ bị ẩn, một hạt giống đã chỉnh sửa là của bạn và cần phê duyệt của bạn như bất kỳ tài liệu nào khác).
Điều mà không MCP server nào có thể làm — thành thật — là ép một host hành động: một agent có host ẩn
SERVER_INSTRUCTIONS và không có tệp chỉ dẫn và không bao giờ thực hiện một lần gọi June nào vẫn
lạnh. Cơ chế 1 tồn tại chính xác để trường hợp đó không bao giờ xảy ra trong thực tế.
Đồng bộ repo — repo luôn cập nhật với những gì June biết
Chọn tham gia với JUNE_EXPORT_ROOT=<your repo> và ba công cụ nữa xuất hiện:
| công cụ | chức năng |
|---|---|
june_docs_export | Phản chiếu mọi tài liệu agent đến docs/agent/<name>.md — repo luôn giữ các standing instructions hiện tại |
june_page_export | Xuất bất kỳ trang nào thành một tệp được quản lý, hoặc thành một phần được quản lý được chèn giữa các marker bên trong một tệp hiện có (path=KNOWHOW.md section=june-learnings) — chỉ vùng được đánh dấu là được chạm vào |
june_page_import | Chiều ngược lại: chỉnh sửa một tệp đã xuất trong trình soạn thảo của bạn và nhập lại vào trang June của nó — tài liệu agent giữ danh tính của chúng, và một tệp cũ bị từ chối thay vì được phép ghi đè kiến thức mới hơn |
Các quy tắc an toàn, tất cả được thực thi trong mã và được ghim bằng bài kiểm tra: mọi đường dẫn được rào bên trong thư mục gốc
(kiểm tra .. từ vựng và giải quyết symlink); một tệp không được viết bởi june-mcp không bao giờ bị
ghi đè; không có gì bị xóa; và với JUNE_EXPORT_GIT=1 mỗi lần xuất cam kết chính xác các
tệp mà nó đã viết — giới hạn pathspec, vì vậy công việc đã staged của bạn không bao giờ bị cuốn vào, và push không bao giờ
xảy ra. Các tệp đã xuất mang frontmatter và xác định theo byte, vì vậy một tài liệu không thay đổi
được xuất lại thành một tệp giống hệt và git giữ im lặng.
Manifest (.june-export.json) làm cho việc kiểm tra tính cập nhật trở nên khả thi — hai chế độ CLI cho CI:
june-mcp --export # sync agent docs + every managed page/section, commit if enabled
june-mcp --export-check # write NOTHING; exit 1 if the repo has drifted from June
--export-check trong CI biến "các tài liệu có cập nhật không?" từ một hy vọng thành một bản build thất bại.
Free vs Pro — thẻ june-pro
june-mcp là một gói cho tất cả mọi người; không có "bản build pro" riêng biệt. Pro là một thuộc tính
của endpoint, không phải của connector: kết nối với một June được kích hoạt Pro (một giấy phép Pro trong
ứng dụng, một khóa Pro trên một workspace được lưu trữ) và các công cụ tương tự mang kết quả cấp Pro: mọi
lần ghi june_remember và june_ingest_file tự động chạy các engine entity/edge phong phú hơn
(kết quả báo cáo engine nào đã chạy), june_resolve nâng cấp lên khớp ngữ nghĩa, và
june_enrich điền ngược các ký ức được viết trên nền miễn phí trước khi bạn nâng cấp. Terminal
hiển thị bạn đang ở thế giới nào: --doctor in một dòng edition và banner khởi động của server
gắn thẻ kết nối —
june-mcp: connected http://localhost:8000 canvas name "work" → 11d2… [june-pro]
Thẻ được đọc từ /v1/whoami của chính dịch vụ (cùng trạng thái entitlement bảo vệ các tuyến Pro
phía server), vì vậy nó không thể mâu thuẫn với những gì bạn thực sự nhận được — và nó chỉ
hiển thị: entitlements được thực thi trên dịch vụ bất kể client in gì.
Các dịch vụ cũ hơn không có /v1/whoami chỉ đơn giản là không hiển thị thẻ.
Mô hình bảo mật
Bề mặt công cụ không hiển thị tham số canvas/workspace — workspace được ràng buộc phía server
từ ngữ cảnh kết nối của bạn, đóng khi lỗi. Một lần đọc xuyên đối tượng thuê không phải là một kiểm tra quyền có thể
mở khi lỗi; nó không thể biểu diễn được từ phía client. JUNE_READONLY=1 thêm một hàng rào thứ hai
cho các triển khai chỉ đọc. Khóa LLM BYO của bạn đi cùng mỗi yêu cầu trả lời như một header và không bao giờ được
lưu trữ hoặc ghi nhật ký bởi dịch vụ.
Lỗi
Mọi lỗi thượng nguồn được ánh xạ thành một payload lỗi có kiểu, được biên tập (được xây dựng từ loại ngoại lệ + mã trạng thái HTTP chỉ — không bao giờ từ nội dung phản hồi), vì vậy server sống sót qua bất cứ điều gì endpoint ném ra và agent của bạn thấy một thông báo rõ ràng, có thể hành động.
Giấy phép
MIT. Bản thân engine Junê là một sản phẩm riêng biệt, mã nguồn đóng — connector này là phần mở, theo thiết kế.