Capture

Bring your own capture source

Mycel does not embed Feishu, web, or chat integrations. Any MCP client can call capture and drop content into the inbox. Built-in desktop / Chrome / phone surfaces are documented under Capture.

One pipe

Any MCP client → capture → Dropt/Inbox/ → (optional) automatic distill into a reviewable proposal.

capture ships from 0.3.10. It is a write tool, so the Pro gate applies (a trial counts). Successful calls leave an Audit trail. Re-sending the same payload returns created: false and does not write a second file.

Contract

ArgRequiredMeaning
contentyesMarkdown / plaintext body (max 65536 characters)
sourceyesOrigin label, e.g. feishu-feed, rss-hn
titlenoTitle; defaults to the first non-empty content line
sourceUrlnoCanonical source URL, stored as source_url
intentnocapture (inbox) or request (proposal path); inferred when omitted

Returns { "created": true|false, "cid": "dropt_…", "relativePath": "Dropt/Inbox/…/dropt_….md" }. cid is derived from source + URL + intent + body, so the same fingerprint is idempotent.

Minimal call

Register Mycel MCP in your client (Settings → MCP can do this), then ask the agent to call:

capture({ content: "…", source: "my-source", sourceUrl: "https://example.com" })

Or feed JSON-RPC on stdio with no agent in the middle:

printf '%s\n' \
  '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' \
  '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"capture","arguments":{"content":"a test capture","source":"shell","intent":"capture"}}}' \
  | /Applications/Mycel.app/Contents/MacOS/chunfeng mcp

The server reads the current app vault by default. For headless use, set VAULT_PATH.

Worked example: Feishu / Lark feed

Mycel does not embed Feishu. The official handbook’s zero-secret example uses lark-cli to read a folder you shared with a bot, fetch Markdown, then call capture. Credentials stay in the lark-cli Keychain; the script itself holds no secrets.

  1. Install @larksuite/cli, create a Feishu app, and run lark-cli auth login.
  2. Create a “Mycel inbox” folder (or wiki node) and share it with that app.
  3. Loop: list → skip unchanged docs with a cursor → fetch Markdown → capture with source: "feishu-feed".

Idempotency is guaranteed by cid, so reruns are safe. The copy-paste Python skeleton lives in the in-app Help Vault; email silicoville@gmail.com if you need a copy.

Other sources

  • RSS: pull new items, set source: "rss-<name>" and sourceUrl to the article.
  • Clipboard: poll pbpaste; pasting the same text twice is fine — cid is idempotent.
  • Mail: IMAP a labeled folder, convert to Markdown, then capture; set intent: "request" when the subject looks like a request.

Troubleshooting

SymptomWhat to do
locked: true / MCP writes require ProWrite MCP tools are Pro-gated. Open Mycel → Settings → License and start a trial or activate.
created: falseNot an error. The same fingerprint was already captured; no second file, no second distill.
Landed in Inbox, no proposalAuto-distill is off by default. Enable “process captures automatically”, check the AI provider, or trigger distill from the capture workbench.
Tool capture missingNeed Mycel ≥ 0.3.10 and the native chunfeng mcp entry. The Node fallback does not expose this tool.