Everymark
中文 EN

Agent access and verification

Let your own agent read and write your own archive, without opening a network port or giving Everymark a server-side account.

Availability: the MCP server already exists in the project checkout. The public source repository is still being prepared; no download link is claimed here until it works. If you already have the checkout, the steps below are complete.

1. What it does and does not do

2. Prepare the archive and runtime

  1. In the app, configure a local SAF folder, WebDAV or S3-compatible target, then tap Sync now. There is no automatic background sync.
  2. Make that folder available on your computer. It must contain records/, taxonomy.json, manifest.json and blobs/.
  3. Install Python and the pinned MCP dependency on your computer:
python3 -m pip install mcp==1.30.0

If the sync directory does not exist, the server exits with a “sync directory does not exist” error. That means there is no data at the supplied path; do not create a fake archive to bypass it.

3. Start the MCP server

From your project checkout, run:

python3 /path/to/Everymark/tools/mcp_server.py --dir /path/to/your/sync

For an MCP client, use the equivalent configuration and replace both paths with your own:

{
  "mcpServers": {
    "everymark": {
      "command": "python3",
      "args": [
        "/path/to/Everymark/tools/mcp_server.py",
        "--dir",
        "/path/to/your/sync"
      ]
    }
  }
}

In the Android app, Settings → Models → Agent access shows a copyable command and configuration after a sync target exists. Use those values instead of inventing a path.

4. Verify read and write

  1. Ask the agent to call list_records with a small limit. It should return records already present in your sync folder.
  2. Call create_record with harmless text such as MCP connection test — safe to delete. Keep the returned record id.
  3. Call get_record with that id. Confirm that device_id is agent.
  4. Sync again in the app. The test record should appear on the phone after the app merges the agent shard.
  5. Delete the test through delete_record. Deletion is a soft delete with a revision, not an immediate wipe.

Stop here if step 1 fails. A successful write does not prove that the server can see the correct archive; it may only prove that a new agent shard was created.

5. Tool and data boundaries

Read toolslist_records, search_records, get_record, list_classification_learning, list_facets, list_devices, get_blob (the older alias get_blob_info also exists)
Write toolscreate_record, update_record, delete_record, put_blob
Attachmentsget_blob returns metadata, not file bytes. Original bytes remain content-addressed under blobs/<sha2>/<sha256>. put_blob uploads content and returns its SHA-256.
Categories and timefacets contains third-level ids such as fin.expense.02, not display names. occurred_at is the event time in epoch milliseconds, distinct from when the record was entered.
PrivacyOnce you hand the folder to an agent or another tool, that tool controls what it retains, trains on or redistributes. Everymark cannot inspect or revoke that copy. The app’s copy-configuration action writes to the clipboard; it does not read the clipboard.

Read the Privacy Policy before connecting real health, finance, identity or other sensitive records. Use a small test archive first.