Junê (june-mcp)

chính thức

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

GitHub
1
Dùng thử MCP nàyĐược tài trợ

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ụ:

  1. Ứ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.
  2. Dịch vụ June của riêng bạn. Khách hàng Pro/Team chạy gói engine june-local trỏ JUNE_BASE_URL tới máy chủ của riêng họ.
  3. Đượ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ườngbắ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_CREATEtùy chọn1 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_KEYtùy chọnKhó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_READONLYtùy chọn1 ẩn và từ chối mọi công cụ ghi (bộ nhớ trở thành chỉ đọc)
JUNE_TOOL_PROFILEtùy chọncompact (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_ROOTtùy chọnThư 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_ANSWERtùy chọnNgâ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_CONCURRENCYtùy chọnSố 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_CANVAStùy chọnCanvas 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_REFRESHtùy chọn0 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_MINUTEStùy chọnNhị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_CHARStùy chọnGiới hạn kích thước tóm tắt được tuần tự hóa (mặc định 2000)
JUNE_EXPORT_ROOTtùy chọnThư 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_GITtùy chọn1 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_DIRtùy chọnCây con tài liệu agent bên trong thư mục gốc (mặc định docs/agent)
JUNE_LOG_LEVELtùy chọnGhi 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ácgộp
june_graphneighborhood, subgraph, backlinksjune_neighborhood, june_subgraph, june_backlinks
june_maintainenrich, resolvejune_enrich, june_resolve
june_page_readlist, get, removed, grammarjune_page_list, june_page_get, june_page_removed (+ ngữ pháp khối theo yêu cầu)
june_page_editcreate, append, update, insert, move, rename, meta, restorejune_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_readlist, current, usejune_canvas_list, june_canvas_current, june_canvas_use
june_canvas_eraseclear, deletejune_canvas_clear, june_canvas_delete
june_docs_readrefresh, list, getjune_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_answerMộ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_searchBằng chứng được xếp hạng cho một truy vấn (hỗ trợ đa bước nhảy)
june_contextMộ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_subgraphMột xuất đồ thị con có giới hạn
june_backlinksNhững gì liên kết tới một nút (các cạnh đến của nó)
june_rememberGhi 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_ingestTiếp nhận nút/cạnh có cấu trúc
june_enumerateCá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_fileTả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_enrichPro: 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_resolveBả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_learnGhi 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_restoreXem 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_usageBiê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:

  1. 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 agents
    

    Nó đượ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.

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

  3. 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_exportPhả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_exportXuấ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_importChiề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ế.