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
- Runs on your computer through stdio, using
tools/mcp_server.py. - Reads the sync directory that you explicitly pass with
--dir. - Provides 11 tools: 7 read and 4 write. Tool definitions come from
assets/mcp/mcp-contract.json. - Writes new records into the
agentdevice shard. The app merges them on a later sync, using the higher revision. - Does not connect directly to the phone, open a LAN/HTTP port, require an MCP key, or run in the background on your phone.
2. Prepare the archive and runtime
- In the app, configure a local SAF folder, WebDAV or S3-compatible target, then tap Sync now. There is no automatic background sync.
- Make that folder available on your computer. It must contain
records/,taxonomy.json,manifest.jsonandblobs/. - 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
- Ask the agent to call
list_recordswith a small limit. It should return records already present in your sync folder. - Call
create_recordwith harmless text such asMCP connection test — safe to delete. Keep the returned record id. - Call
get_recordwith that id. Confirm thatdevice_idisagent. - Sync again in the app. The test record should appear on the phone after the app merges the agent shard.
- 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 tools | list_records, search_records, get_record, list_classification_learning, list_facets, list_devices, get_blob (the older alias get_blob_info also exists) |
|---|---|
| Write tools | create_record, update_record, delete_record, put_blob |
| Attachments | get_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 time | facets 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. |
| Privacy | Once 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.