Your AI context doesn't have to stay trapped inside one app. With MCP (Model Context Protocol), you can bring your entire ambientChat world into Claude Desktop, brand apps, or any compatible AI client — and it works exactly like having a very well-informed research assistant sitting at your desk.
All tools respect your authentication. The AI can only access your data, using your credentials. Nobody else's stuff, ever.
#Inventory Tools
Manage your physical items — everything you've scanned, photographed, or manually added.
| Tool | What It Does |
|---|---|
list_items |
List all items, optionally filtered by category, folder, or search query |
get_item |
Get full details of a specific item — name, brand, price, expiry, location, notes, nutritional data |
search_items |
Semantic search — finds items by meaning, not just keywords ("things in my garage", "snacks for the party") |
list_expiring_items |
Find items expiring within a number of days (default 14), soonest first. Set include_expired to also see items already past their date; limit sets the page size (default 200) and truncated flags when more match |
get_items_at_scene |
List items last seen at a specific physical location — identified by beacon, GLN, or scene ID |
get_scan_session_items |
List items created together in the same scan session (scan siblings) |
update_item |
Edit any item field — name, brand, category, price, expiry date, notes |
set_item_location |
Set where an item IS — pick one of your zones or type a place. Say "the kayak is in the garage" |
update_items_by_filter |
Bulk-update fields across many items in one call, by category, a search, a folder, "everything in Home", or "everything in any folder". Say "change all items in the kitchen to category Food" |
save_web_pointer |
Keep a scanned web page as a document you can rename and share. Saving the same address twice returns the same document, so your title sticks |
read_web_page |
Read what a page you scanned or saved says RIGHT NOW — a temperature reading, an alert, a date — alongside the title and notes you gave it |
promote_item |
Keep an item the AI Lookup camera created provisionally — this is what Save does |
discard_scan_session |
Throw away an AI Lookup capture nobody kept, with its scan photo. Only ever touches items still awaiting that choice |
trash_item |
Move a single item to trash (soft delete). Cleans up linked documents |
trash_items |
Bulk move multiple items to trash at once |
restore_item |
Restore an item from trash back to the inventory |
regenerate_item_image |
Generate a fresh AI illustration for an item. Costs credits |
upload_item_image |
Set the user's own picture (base64) as an item's image — it becomes the thumbnail in folders, chat cards and Radar tour exhibit cards. The photo it replaces (original_image_url) and the AI icon are kept |
set_item_face_image |
Choose which of an item's own pictures is its thumbnail. pin: true makes it the fixed default (face_pinned_url), which an unpinned choice can't move; pin: false clears it |
trash_item_image |
Move one of an item's pictures to Trash. If it was the thumbnail, the next picture takes over. restore_trash with the returned trashId puts it back |
find_album_covers |
Replace AI pictures on albums (vinyl, CD, LP) with their real cover from MusicBrainz / Discogs, and fetch their track listings. Pass a folder (view_id) or itemIds. Albums that already have their cover but no track listing get one. Free; covers and details land over a few minutes. Never replaces a user's photo |
Example things you can say:
- "What's in my pantry?"
- "Show me everything expiring this week."
- "Change the category of all my vitamins to Health."
- "How much is my electronics collection worth?"
- "What was scanned with the olive oil?" (scan siblings)
- "What did I leave in the garage?" (items at scene)
#Document Tools
Navigate, search, and manage your digital paperwork — receipts, manuals, photos, and files.
| Tool | What It Does |
|---|---|
list_documents |
List documents with optional filters for media type, category, and folder |
get_document |
Get full document details — AI summary, linked items, metadata |
search_documents |
Keyword search across document titles, summaries, and content |
search_documents_semantic |
AI-powered semantic search — finds documents by meaning, returns full content |
update_document |
Update a document's title, description, and/or tags. Improves search and accessibility |
upload_document |
Upload a new document (image or PDF) into a folder for AI processing. Provide the bytes one of three ways: a Firebase Storage URL, a get_document_upload_url storage path, or inline base64 (max 10MB) |
get_document_upload_url |
Get a short-lived signed URL for uploading document bytes directly to storage, then hand the returned path to upload_document. This is how an AI client that holds a file (e.g. one with a code-execution sandbox) gets it into a folder without inlining the bytes |
get_scan_status |
Check the status of an upload/scan job by its jobId (returned by upload_document). Tells you whether it's still processing, complete (with the created document/item), or failed (with the reason) — so you don't have to keep refreshing the folder. When the scan carried an “only capture…” instruction it also returns capture_gate: what was kept, what was skipped and why, whether each reject has since been brought back, and — if the instruction was not applied — not_applied_reason saying whether the photo simply held one thing (nothing to filter) or the filtering step could not run |
restore_skipped_objects |
Bring back objects a scan's “only capture…” instruction skipped. Read the list from get_scan_status and pass the positions the user wants, or omit them to restore everything. The object is re-run through the original photo, so what appears is the item the scan would have made — same scan session, same place. Costs credits, about what that object would have cost inside the scan; restoring the same one twice does nothing |
move_document |
Move a document between folders |
link_document_to_item |
Attach a document you already have to one of your inventory items — the manual, warranty, receipt, or spec sheet that belongs with a thing you own |
unlink_document_from_item |
Detach a document from an item. Removes only the link; both records stay |
add_document_pages |
Add the photos you attached to this message as extra pages of an image document — how a photographed multi-page manual becomes ONE document instead of a pile of photos |
combine_documents |
Gather several photo documents into ONE multi-page document — the fix for a manual uploaded page by page. The first keeps its identity; the rest become its pages and go to Trash |
remove_document_page |
Remove one page from a multi-page document by its number |
get_item_documents |
List the paperwork attached to an item — its manual, warranty, receipt, or the scan photo it came from |
trash_document |
Move a document to trash (soft delete). Cleans up linked inventory items |
restore_document |
Restore a document from trash |
regenerate_document_image |
Generate an AI illustration thumbnail for a document. Costs credits |
generate_image |
Create an image from a text description — optionally grounded in your own photos. Say "draw my armchair in a jungle" and the armchair's actual photo is shown to the generator so the result looks like your armchair, not a generic one; "me as an astronaut" uses your profile photo. The per-image price is checked against your balance before generating, only delivered images are charged, and the result is saved into your context as an image document — with a recipe showing exactly what went into the prompt (and whether each reference was matched from its photo or just described) and a scorecard grading the image against your brief. Say "dual" or "show me both" to run the same brief on Gemini AND OpenAI side by side and pick your favorite. Ask for "widescreen" (3:2) or "phone wallpaper" (9:16) shapes, and say "final quality" for the premium render (paid plans). Prefer knobs over words? Open Image Studio — the ✦ button in chat, or the sidebar on web — for a full composer with model, quality, and shape controls plus live pricing. To build on something you already have, add it as a reference from My Stuff inside the composer |
resolve_dual |
After a Dual image run, record your verdict: pick a winner (the other image moves to Trash, recoverable) or keep both — no extra charge either way. Works by voice too: "keep the Gemini one", "keep both" |
Example things you can say:
- "Make me an image of my armchair reupholstered in mustard."
- "Generate a picture of a lighthouse at dusk and save it to my Ideas folder."
- "Find my Costco receipts from January."
- "Show me all my warranty documents."
- "Move the washing machine manual to the Appliances folder."
- "What receipts do I have for tax deductions?"
- "Save these photos into my Medical folder." (uploads the attached images for processing)
- "That PDF is the manual for my cordless drill — file it against that item."
- "Add these three photos as pages of the drill manual."
- "Read page 11 of the manual and tell me the torque setting."
- "Those three photos are all the same manual — combine them into one document."
- "Do I have the warranty for the dishwasher?"
- "Detach that receipt from the lawnmower, it belongs to the hedge trimmer."
- "Did that upload finish?" (checks the upload job's status)
#Views (Folders)
Organize your items and documents into folders and views.
| Tool | What It Does |
|---|---|
list_views |
List folders at a given level of the hierarchy |
get_view |
Get folder details and its first 20 documents |
get_view_tree |
See the entire folder hierarchy at a glance, with item, document, and subfolder counts |
get_view_members |
Get the union of items and documents in a folder |
create_view |
Create a new folder. Idempotent — won't create duplicates |
update_view |
Rename a folder, change its description, sort order, or thumbnail mode |
reorder_views |
Batch update the sort order for multiple folders |
generate_view_icon |
Generate an AI icon for a folder based on its name and contents. Costs credits |
add_items_to_view |
Tag items with a folder — adds them without removing prior folder memberships |
move_items_to_view |
Move items to a single destination folder |
file_items |
File items into one or many folders in one call — by a filter (a category, everything in Home, everything in another folder, everything in any folder) or by explicit ids. "Put all the food in Home into the Food folder" is one group; "file everything in Home into the right folders" is one group per folder; "move everything out of every folder" is one group to Home with in_any_folder: true |
remove_items_from_view |
Remove items from a folder |
navigate_up |
Navigate to the parent folder |
Example things you can say:
- "Create a folder called Holiday Gifts."
- "Move all the spices into the Spice Rack folder."
- "How many items are in each folder?"
- "Generate an icon for the Kitchen folder."
#Markdown Documents
Create, edit, and search your own written documents — notes, lists, reports, and more.
| Tool | What It Does |
|---|---|
create_markdown_document |
Create a new markdown document with optional YAML frontmatter and folder placement |
update_text_document |
Replace the contents of any TEXT document — note, .txt, .csv, .tsv. Send the complete new text, not a patch. Read it with get_document({include_source: true}) and edit source_text — not raw_text, which for a spreadsheet is a searchable summary rather than the file. A spreadsheet that doesn't parse is refused, not saved |
undo_text_update |
Step a text document one state back. For a spreadsheet this restores the previous file, byte for byte |
redo_text_update |
Step one state forward, undoing an undo |
get_markdown_document |
Retrieve a document's full content, parsed frontmatter, table of contents, and version info |
list_markdown_documents |
List markdown documents, optionally filtered by folder, type, or tags |
search_markdown_content |
Semantic + keyword search across markdown document content |
read_document_rows |
Read a window of rows from a stored spreadsheet (.csv, .tsv, or Excel .xlsx) — pages through a large file the document text only partly shows. For a workbook it reads one sheet at a time, names the sheet it read, and lists the others |
propose_import_mapping |
Work out what each column of a stored spreadsheet means before importing it, and recall the mapping you approved for that file layout last time |
create_items_bulk |
Turn a spreadsheet — in your library, or attached in the current chat without saving it — into inventory items as ONE reversible operation — the server reads every row itself, so a file of hundreds of rows imports in one step; several columns (year, label, format…) can be kept together in notes; duplicates skipped, "undo that" removes the whole import |
create_data_file |
Generate a file from content and save it to your library with a download link — Excel .xlsx, Word .docx, PowerPoint .pptx, or a plain .csv |
Example things you can say:
- "Create a packing list for my Hawaii trip."
- "Make a spreadsheet of everything expiring this month." →
create_data_file - "Give me a CSV of my inventory I can import elsewhere." →
create_data_file - "How many rows are in that spreadsheet, and what's in row 500?" →
read_document_rows - "Add everything in that spreadsheet to my inventory." →
propose_import_mappingthencreate_items_bulk - "What sheets are in that workbook? Read the Q2 one." →
read_document_rows(it reports every sheet, and takes a sheet by name or number) - "Write a summary of what I bought this month."
- "Update the recipes section of my meal plan."
- "Find my notes about home insurance."
#Skills
Skills are reusable SKILL.md playbooks that orchestrate your inventory, documents, tags, location, and beacons. The first-party set — curated by ambientChat — is available to everyone (read-only), and you can author your own on any Standard-or-higher plan. The same skills work in Claude and ChatGPT when you connect ambientChat there.
| Tool | What It Does |
|---|---|
list_skills |
List the skills available to you — first-party plus your own — with name, slug, and description |
get_skill |
Load a skill's full instructions (SKILL.md) by slug, ready to follow |
create_skill |
Save a new skill of your own — name, slug, when-to-use description, and markdown instructions (Standard+) |
update_skill |
Edit one of your own skills — its instructions, name, description, or tags. First-party skills stay read-only; creating your own with the same slug overrides them for you |
Example things you can say:
- "What skills can you run?"
- "Use the Auto-Filer skill on this document."
- "Run Renewals & Warranty Watch."
- "Save what we just did as a skill called Weekly Fridge Audit."
- "Update my trip-packer skill to always include chargers."
#Conversations & History
Your Q&A history — every question you've asked and answer you've received.
| Tool | What It Does |
|---|---|
journal_conversation |
Save a Q&A exchange to your history for searchable recall |
recall_history |
Search your prior conversations — past Q&A, advice given, topics discussed. Filters by channel (voice/text/mcp), platform, session, or date range |
list_conversations |
Browse your full Q&A history in date order, with paging. Use for "show my recent conversations"; use recall_history to find a specific topic |
trash_conversation |
Move a conversation to trash (soft delete) |
trash_conversations |
Bulk move multiple conversations to trash |
restore_conversation |
Restore a conversation from trash |
Example things you can say:
- "What did we talk about last week?"
- "Recall the recipe advice you gave me yesterday."
- "What questions have I asked about insurance?"
- "Delete all conversations from March."
#Change History & Undo
Review and revert recent changes to your inventory. Every edit is tracked and reversible.
| Tool | What It Does |
|---|---|
recent_item_changes |
See recent edits to inventory items — shows old and new values for each change |
list_item_location_history |
Where an item has BEEN — its location trail, newest first: manual "Last seen" sets, the stamp made when its tag was linked, and live tag sightings. Try: “where has my tape measure been?” |
list_item_temperature_history |
A tracked item's temperature trail from its tag's telemetry — minute points, newest first. Try: “what temperature is my tape measure at?” or “did the cool-box get warm overnight?” |
get_asset_journey |
The chain of custody for one or more tracked items over a date range: where they went, grouped by venue and zone, how long they stayed, the temperature along the way, and the events it was built from — each stop says whether it was observed (tag heard, scan) or entered by a person. Try: “where has this crate been this week, and did it stay cold?” |
create_journey_report |
Publishes a tracked item's journey as a live page anyone with the link can open — venues and zones with time spent, temperature, a map, and how each stop is known — saved as a document and shared through the normal public link. Positions are rounded to about 10 km unless you ask for exact ones. Up to 25 items, named or as a folder the page follows live — several items show as one row each on a shared clock. Try: “make a journey report for the crates in my Demo Kit folder.” |
undo_item_change |
Revert a single-item edit by re-applying the old values |
recent_bulk_changes |
List recent bulk inventory operations — useful after a mass update |
undo_bulk_change |
Revert an entire bulk update in one call — every item the operation touched goes back |
Example things you can say:
- "What did you just change?"
- "Where has my tape measure been?"
- "Where was the drill before the garage?"
- "Undo that last edit."
- "Show me the recent bulk changes."
- "Revert the bulk update you made to my kitchen items."
How undo works: Every change is logged with before/after values. You can undo individual edits or entire bulk operations. Undo is available from any surface — in-app chat, voice, Claude Desktop, or the web interface.
#Sharing
Share your items, documents, conversations, and folders — with a person by email or with a whole group — and manage what others have shared with you. See the Sharing guide for the full walkthrough.
Share something out:
| Tool | What It Does |
|---|---|
share_with_email |
Grant a person live access to an item, document, folder, or conversation by email — read-only or read-write. Sends an invitation if they have no account yet |
share_with_group |
Share something with an entire group at once |
share_item |
Share an inventory item |
share_document |
Share a document — includes title, type, and summary |
share_conversation |
Share a Q&A answer |
share_view |
Share a folder — cascades to its sub-folders and contents |
list_my_shares |
See everything you've shared and with whom |
renew_share_grant |
Give an in-app share more time — "renew Ann's access". Never shortens: a share that already has longer is left as it is |
renew_share |
The same, for a share you sent by email or as a link — so the link already in someone's inbox keeps working. Also only ever extends, and a public link has no expiry to renew |
update_share_grant |
Change a share's access (view ↔ edit) or set an exact length, which can be shorter. Returns the previous values so the change can be undone |
revoke_share_grant |
Remove a share — access ends immediately |
revoke_share |
Remove an emailed or link share — the counterpart of revoke_share_grant for links |
resend_invitation |
Re-send a pending invitation to someone who hasn't signed up yet |
Groups:
| Tool | What It Does |
|---|---|
create_group |
Create a group to share with several people at once |
invite_to_group |
Invite a person to a group by email |
accept_group_invitation |
Accept an invitation to join a group |
list_my_groups |
List the groups you belong to |
get_group_members |
See who's in a group |
remove_group_member |
Remove a member — ends their access to the group's shares |
set_group_member_role |
Make a member an admin of the group, or an admin a plain member. Admins can invite, remove and promote; a group always keeps at least one admin, so the last one cannot be demoted or removed until someone else is made admin |
delete_group |
Delete a group |
Shared with you (and mounting):
| Tool | What It Does |
|---|---|
list_shared_with_me |
See what others have shared with you |
get_shared_resource |
Open a specific resource someone shared with you |
list_shared_folder_contents |
List the contents of a shared folder. With kind (item, document or folder) it pages one kind at a time like your own folder, most recently changed first unless sort_by says otherwise — pass next_cursor back as cursor until it is null; total is null in this mode. Without kind, the whole folder up to 2,000 documents and 2,000 items; total is its real size and truncated says when the list stopped short |
hide_shared_with_me |
Remove a share from your list (hides it for you only; owner's copy is untouched) |
mount_shared_resource |
Add something shared with you (or with Everyone) into your own library, so it sits inline alongside your own content — like "Add to My Drive". The master stays with its owner, so you always see their latest version |
unmount_shared_resource |
Remove a mounted shared resource from your library (reversible; doesn't delete the owner's content or revoke your access) |
list_mounts |
List the shared resources you've added to your library |
list_mounted_contents |
Resolve the shared resources you've mounted into a folder into their live data + provenance, so they show inline alongside your own content |
Example things you can say:
- "Share the olive oil with my wife, read-only."
- "Share my Recipes folder with the family group."
- "Who have I shared the Warranties folder with?"
- "Stop sharing that receipt with the repair shop."
- "Add the shared Skills to my library."
#Connected Services
Connect outside tools (GitHub, Gmail, Calendar, Drive, Slack, Linear, Mercury, or any MCP server by URL) so the assistant can use them in chat alongside your own context. See the Connected Services guide.
| Tool | What It Does |
|---|---|
list_mcp_servers |
List the services you've connected, with status and tool counts |
add_mcp_server |
Connect a new MCP server by URL — OAuth handled where the provider supports it |
update_mcp_server |
Edit a connection's settings or stored token |
remove_mcp_server |
Disconnect a service — its tools leave chat and its access is revoked |
Example things you can say:
- "What services do I have connected?"
- "Connect my GitHub."
- "Match my Mercury transactions to the receipts in my library."
- "Disconnect Slack."
(Connecting outside tools into ambientChat is the opposite of Context Sharing — the get_context_sharing tool and the context_sharing setting below, which control what ambientChat shares out to Claude, brands, and partners.)
#Tool Permissions
Control what the assistant can do without asking — Anthropic-style per-tool cards. Every tool is Auto (runs automatically), Ask (approval prompt first), or Blocked (never runs). Writes to connected services ask by default; when a prompt appears you can tap Always Allow to stop being asked for that tool. Manage everything under Settings → MCP Servers → Tool Permissions (iOS and web). Safety tools like emptying trash or deleting your account always ask and can't be changed.
| Tool | What It Does |
|---|---|
list_tool_permissions |
List every tool — built-in and from connected services — with its approval status |
update_tool_permission |
Change a tool's policy to approved, ask, or blocked (asks you to confirm the change) |
Example things you can say:
- "Which tools need my approval?"
- "Stop asking me about Linear writes."
- "Block web search."
- "Make save_issue ask again."
#Trash & Restore
Manage your trash across all content types.
| Tool | What It Does |
|---|---|
list_trash |
See everything currently in the trash, ordered by most recently trashed |
restore_trash |
Generic restore — works for items, documents, and conversations without needing to know the type. Takes one id, or several at once for "restore everything" |
empty_trash |
Permanently delete ALL trash entries. Optional scope: "item", "document", or "all" |
purge_trash |
Permanently delete the entries you name, leaving the rest of the trash alone. Purging a trashed folder takes its contents with it |
Example things you can say:
- "What's in my trash?"
- "Restore the last thing I deleted."
- "Empty the trash."
#Search & Discovery
Cross-cutting tools for finding information and getting answers.
| Tool | What It Does |
|---|---|
web_search |
Search the web for current information — used when you need real-time data, recent events, or fact verification |
query_expert |
Ask another AI model for a second opinion mid-conversation, with your ambientChat context included. The result's documents list says which of your large documents the answer used — and which were held back because they were too big to spend on without asking, with the token cost. Your agent can then re-ask with include_documents to pay for one, or exclude_documents to leave one out; the choice applies to that call only |
get_user_context |
Assembles relevant context for your query — bio, nearby beacons, focus item details |
resolve_scanned_code |
Says what a scanned code is — the same answer the phone's scan card gets. A barcode or ISBN becomes the product or book; a web address becomes the page (with your own title and picture if you kept it). A Bluetooth tag's printed label — its address, like C3:00:00:51:CC:E7 or c3-00-00-51-cc-e7 — comes back as a Tag with its address in the one standard spelling, ready to look up with list_asset_tags. Try: “what is this code: 036000291452?” or “what is c3-00-00-51-cc-e7?” |
update_beacon |
Renames a registry beacon or tag, or changes how it BEHAVES, on the central record every app reads: its name (a renamed tag's name also updates on the item it tracks), alert mode (silent01, popup01, ack01), alert text, context string (what the AI is told whenever it is detected), context prominence (1–3) and live/paused. Only the fields you pass change; the previous state is kept in the record's history. The beacon's owner, a brand admin for its brand, or staff may change it. Try: “pause the lobby beacon”, “make the Study beacon high prominence” or “rename my Keys tag to Front door keys”. |
delete_beacon |
Deletes a registry beacon or tag: it leaves the registry, so it stops appearing in the owner's list, on every device and in their AI context; its last state is kept in the record's history. An item a deleted tag tracked stops being tracked, and the tag can be set up again by scanning its label. The owner, a brand admin for its brand, or staff may delete it, and you are asked to confirm first. Try: “delete my old wallet tag”. |
link_beacon |
Links a registry beacon/tag to your inventory items or documents. On a FIXED beacon (yours, or any for staff) it ADDS an exhibit (up to 8 per beacon); unlink: true with a kind and id removes just that one, and kind none clears them all. On a Bluetooth TAG YOU OWN it starts asset tracking — the tag follows one item, replacing its previous one. Try: “link the lobby beacon to the Rodin sculpture” or “track my drill with the Minew tag”. A link to an item or document that does not exist is refused, and a write drops any of the beacon's links whose targets are gone. |
list_asset_tags |
Lists the Bluetooth asset tags you own (tags only — never fixed Zone beacons), each with the item it currently tracks or free, its battery state, and — when the battery reads unknown — why. A tag the app set up over Bluetooth also says so (provisioning_state: active) with the firmware, model and profile it was given; a tag you already had stays listed through a re-flash, with the state saying how that went; a tag you have never had is not listed while it is being set up or after a failed first attempt. Try: “which of my tags are free?”, “which of my tags did the app set up?” or “why is my tape measure tag’s battery unknown?” |
list_beacons |
Lists the FIXED beacons you own (Zone beacons and exhibits — never mobile asset tags), each with its battery state, when that reading was taken, when it was last heard, what it is linked to (linked_refs), and — when the battery reads unknown — why. Try: “what's linked to my Pantry beacon?”, “which of my beacons need batteries?” or “is the garage beacon dead?” — a flat beacon battery looks exactly like bad signal or a detection bug, so it is worth ruling out first |
reserve_device_identity |
Claim and HOLD an iBeacon identity (UUID + Major + Minor) for a Bluetooth device you are setting up, so nobody else can be given the same number while you work — and get back the write plan: which slots the phone will program at what interval and power, from the standard profile for a tag or a beacon. Leave the network out and the device is placed on the fleet's own. Ask again with the same MAC address and you get the same identity and the same plan back rather than burning a second one, so a retry after a failed write is safe; prior says what the row was before the call (new, reserved, failed or active), which is how the phone knows to read a device's current values before overwriting one that was set up before. The hold lapses after 24 hours if the setup is abandoned; a device that is live keeps its identity for good. The plan's password never travels to an agent — only the phone's own channel carries it. Try: “reserve an identity for the tag with MAC AA:BB:CC:DD:EE:FF” |
create_venue |
Create a place — your home, your office, a store. It's personal by default: only you can see it, and it never collides with anyone else's place of the same name. Pass visibility: "group" to share it with a group you belong to, or "public" to list it for everyone (that one needs a brand-admin or superuser role). Try: "add my house as a place" |
update_venue |
Rename a place or move its coordinates. You can edit any place you created; editing never changes who can see it |
create_zone |
Add a room or area inside one of your places — "Kitchen", "Meeting Room 2". Zone names must be unique within their venue; a duplicate is refused and names the existing one so you can use that instead. A zone is visible to whoever can see its venue |
assign_beacons_to_zone |
Point one or more registered beacons at a zone — this is what puts a beacon on the map. Needs a brand-admin or superuser role, because a beacon is shared hardware that may already belong to someone else's place |
Example things you can say:
- "What's the current price of a KitchenAid mixer?" (triggers web search)
- "Ask Gemini what it thinks about this recipe." (query expert)
- "What do you know about me?" (user context)
- "Add my house as a place, and put a Kitchen zone in it." (creates a personal venue + zone)
#Settings & Profile
Read and update your profile and app settings — all manageable via voice or chat.
#Profile
| Tool | What It Does |
|---|---|
get_profile |
Get your profile — name, nickname, email, photo, timezone, home/work locations, and bio |
update_user_setting (key profile) |
Update profile fields — first name, last name, nickname, hail name, home/work location, and bio |
upload_profile_image |
Upload a new profile photo from image data |
reimagine_profile_image |
Re-render your profile photo as a claymation figurine portrait |
#Identity & Roles
| Tool | What It Does |
|---|---|
get_identity |
Who you are and what you can do — your uid, email, role (superuser / brand-admin / brand-user / enduser), and whether you're a superuser |
set_user_role |
(Superuser only) Grant or change a user's role by uid or email — audited; writes both the auth claim and the profile mirror so they stay in sync |
#Interests ("How I Roll")
| Tool | What It Does |
|---|---|
list_interests |
List your interests / "how I roll" tags — free-text preferences that personalize AI responses |
add_interest |
Add an interest tag (e.g. "vegetarian", "loves hiking") |
remove_interest |
Remove an interest by id |
#AI & Scanning
| Tool | What It Does |
|---|---|
get_ai_model_pref |
Get your default AI model preference |
update_user_setting (key ai_model) |
Set your default AI model — validated against the model registry |
list_available_models |
The models you can pick right now. If you have Desktop AI — a model running on your own Mac — it is listed first by your Mac's name and the model it runs (“Steve's Mac – Qwen 3.6 35B”), with whether it's online and, if not, why (e.g. “Offline since 2:02 PM”). It costs nothing: questions your Mac answers use no credits. An offline Mac is never swapped for another model. Try: “is my Mac online?”, “which models can I use?” or “which model is cheapest?” |
register_home_node |
Superuser only (Desktop AI early access). Register a Mac for an account so its Desktop AI appears in that account's model list. Returns the Mac's connection key once |
start_home_node_setup |
Desktop AI. Set up Desktop AI on your own Mac: names the Mac and gives you one command to paste into Terminal on it. The command works once and expires in 30 minutes; ask again for a fresh one. Pass the Mac's node_id to set it up again — that also moves it to the current Desktop AI model (Qwen 3.6 35B); superusers can pass model_build_id to choose another vetted model (e.g. home-gemma-4-26b-a4b-q4, Gemma 4 26B). Try: “set up Desktop AI on my Mac mini” |
remove_home_node |
Desktop AI. Remove one of your Macs for good — an old Mac, or the duplicate a reinstall left behind. It leaves your model list on every device, can no longer connect as your Desktop AI, and a default that named it is cleared. Asks you to confirm in chat; can't be undone (set the Mac up again to use it). Try: “remove my old Mac mini from Desktop AI” |
set_private_ai_access |
Superuser only. Give an account Desktop AI (the early-access group) or take it away, by email. Its role is unchanged |
get_home_fleet_versions |
Superuser only. Which Desktop AI version each Mac runs, whether it follows main (dev) or tagged releases, who is behind, and which Macs went back after a failed update — and why. Try: “which Macs are behind?” |
set_home_agent_rollout |
Superuser only. Move the Desktop AI release rollout: founder Macs first, then a canary share, then everyone — or halt it. Widening is refused if the new version fails more often or answers more slowly than the one it replaces |
#App Behavior
| Tool | What It Does |
|---|---|
get_app_behavior_prefs |
Get app-behavior preferences — haptic feedback, sounds, keep source photos |
update_user_setting (key app_behavior) |
Update haptic feedback, feedback sounds, or the "keep source photos" toggle |
get_background_trails_pref |
Get your background location trails master switch state |
update_user_setting (key background_trails) |
Toggle background location trails on or off |
#Save Destinations
| Tool | What It Does |
|---|---|
get_save_preferences |
Get your sticky save-destination — the folder new scans/items default into |
update_user_setting (key save_destinations) |
Set or clear your default save folder |
#Notifications & Context Sharing
| Tool | What It Does |
|---|---|
get_notification_preferences |
Get beacon-category notification preferences — which categories are disabled |
update_user_setting (key notifications) |
Toggle notifications for a single beacon category, or bulk enable/disable all |
get_beacon_snoozes |
Read the beacons whose alerts you've snoozed, and until when. A snooze is yours alone: it follows you to every device and never silences the beacon for anyone else. Snooze or un-snooze with update_user_setting, key beacon_snoozes. Try: “snooze the lobby beacon for an hour” or “which beacons have I snoozed?” |
get_venue_invitation_settings |
Read the venue-invitation settings: the master switch plus the venues you've told "don't show this invitation again" — synced to your account |
update_user_setting (key venue_invitations) |
Turn all venue invitations on/off, or opt out of (and back into) one venue's tour invitation — every change reaches every device |
get_context_sharing |
Get third-party context-sharing preferences — master switch + per-service toggles |
update_user_setting (key context_sharing) |
Toggle context sharing for Claude Desktop, McCormick, Amazon, etc. |
#Account Management
| Tool | What It Does |
|---|---|
get_account_deletion_precheck |
Pre-flight check — shows data counts, subscription status, warnings, and your latest export (latestExport) or whether one is still being made (exportInProgress), so the AI can offer — never require — saving a copy first |
request_account_deletion |
Request account deletion. Creates a confirmation with 5-minute expiry |
Example things you can say:
- "Switch my default AI to Claude."
- "Turn off haptic feedback."
- "Turn off location trails."
- "Stop sharing context with Amazon."
- "Give me a claymation profile picture."
#Privacy
Control how your ambient data (location, beacons) is shared with AI calls.
| Tool | What It Does |
|---|---|
get_privacy_preferences |
Get your ambient-data privacy preferences — location precision per AI call type |
update_user_setting (key privacy) |
Update location precision settings for different AI call types |
list_connected_apps |
Every AI app connected to your account — one row per app, with whether it may read your context, when it last did, and what it read recently |
set_connected_app_sharing |
Pause or resume one app's access without touching the others. Asks you first; an outside AI app can pause but never switch an app back on |
disconnect_connected_app |
Sign one app out on every device — it can't read anything until you connect it again from that app. Asks you first |
Example things you can say:
- "What are my privacy settings?"
- "Don't share my exact location with AI — use city-level only."
- "Which AI apps can see my data?"
- "Pause ChatGPT." · "Disconnect Muse."
#Voice Preferences
Control how the assistant speaks to you.
| Tool | What It Does |
|---|---|
get_voice_preferences |
Get your voice/TTS settings — voice name, style, auto-speak, playback speed, and whether the Radar's Zone guide is on (tour_listen) |
update_user_setting (key voice) |
Update voice name, style, auto-speak toggle, playback speed, or the Zone guide (tour_listen) — "stop the tour guide" |
Example things you can say:
- "Switch to the Shimmer voice."
- "Speed up your speech."
- "Stop auto-speaking responses."
- "What voice are you using?"
#Settings Catalog
Browse all available settings and their current values.
| Tool | What It Does |
|---|---|
list_user_settings |
Read every settings domain you have in a single structured payload |
list_setting_dimensions |
Read the catalog of settings the AI can manage on your behalf — each names the setting_key for updates |
update_user_setting |
Change ANY setting: pass the domain's setting_key plus the fields to change — one write tool for every settings domain |
Example things you can say:
- "Show me all my settings."
- "What settings can you change for me?"
- "Turn haptics off." (one
update_user_settingcall — same for any setting)
#Subscription & Usage
Check your plan, credit balance, and usage history.
| Tool | What It Does |
|---|---|
get_subscription |
Get your subscription summary — tier, period dates, credits used/remaining, exemption status |
get_usage_state |
Get current usage and billing summary — tier, credits, exemption status |
get_billing_events |
Get itemized billing history — individual AI requests with credits consumed, model used, and token counts |
grant_credits |
Superuser only. Add complimentary credits to a user's current period (plan and reset date unchanged; expires at reset). The note is shown to the user |
Example things you can say:
- "How many credits do I have left?"
- "What plan am I on?"
- "Show me my usage this month."
- "What's my most expensive AI request?"
#Export & Import
Move your data in and out of ambientChat.
| Tool | What It Does |
|---|---|
print_resource |
Print an item, document, or saved answer — renders the branded PDF and (in the ambientChat app) opens the print dialog automatically |
export_user_data |
Start an export of all your data as a ZIP archive — inventory, documents, conversations, preferences, settings, profile. A full export becomes your backup and replaces the previous one; a CSV export doesn't |
get_export_status |
Check if your export is ready and get the download URL |
list_export_jobs |
Your recent exports and your one current backup — with a fresh download link and its size |
get_import_upload_url |
Get a secure upload URL for importing data |
get_import_status |
Check how an import is going, and what it restored when it finishes |
list_import_jobs |
Your recent imports — one still running, what the last one restored, or why it failed |
import_user_data |
Import data from an uploaded archive — preserves original IDs and reconciles links |
Example things you can say:
- "Print this document."
- "Print my coffee maker."
- "Export all my data as a ZIP."
- "Is my export ready?"
- "Import data from the file I uploaded."
#Onboarding & Help
Get started and find help.
| Tool | What It Does |
|---|---|
get_ambientchat_welcome |
Get your personalized welcome — tiles, greeting, suggested prompts, and next best action |
get_help |
Search the help documentation (Don't Panic guides) for answers to your question |
get_onboarding_state |
Read your onboarding progress — tier, engagement metrics, dismissed tiles, activation status, and which once-only walkthroughs you have already seen (seen_walkthrough_ids, e.g. radar_intro for "Show me around Radar") |
update_onboarding_state |
Update onboarding preferences — turn the welcome suggestions off (stop_showing) or back on (resume_showing), dismiss tiles, restore dismissed items, reset; mark a walkthrough seen (mark_walkthrough_seen) or bring it back (reset_walkthrough — "show me around Radar again"), or bring every one back at once (reset_walkthroughs — "show me all the tours again"; leaves dismissed tiles alone) |
record_onboarding_event |
Record onboarding analytics events (used internally for A/B analysis) |
Example things you can say:
- "How do I scan a receipt?"
- "Show me the getting started guide."
- "Turn off the welcome suggestions."
#User Stats
| Tool | What It Does |
|---|---|
get_user_stats |
Get counts of your content — active and trashed inventory items, documents, folders, and conversations |
Example things you can say:
- "How many items do I have?"
- "Give me an overview of my account."
#Confirmation Tools
Safety gates for irreversible actions. Some operations create a pending confirmation that you must approve within a short time window.
| Tool | What It Does |
|---|---|
list_pending_confirmations |
See actions awaiting your approval |
confirm_action |
Approve a pending action |
deny_action |
Reject a pending action |
Tools that require confirmation: request_account_deletion, purge_trash
Tools that require failsafe confirmation: empty_trash
#Scan Regression Tools (Developer Only)
These tools are restricted to superusers for internal quality testing.
| Tool | What It Does |
|---|---|
get_scan_regression_runs |
List recent scan-regression harness runs with summary metrics |
get_scan_regression_run |
Fetch one scan-regression run with full per-fixture detail |
run_scan_regression |
Trigger a scan-regression run against deployed code |
get_scan_regression_request |
Check the status of a previously created scan-regression request |
#How to Connect
#The MCP Server URL
https://mcp.ambientchat.ai
That's the address. Point any MCP-compatible client at it, sign in with your ambientChat credentials, and the tools above become available.
#Via Claude Desktop (MCP)
- Open Claude Desktop settings
- Navigate to the MCP Servers configuration
- Add a new MCP server with the URL
https://mcp.ambientchat.ai - Authenticate with your ambientChat credentials
- Claude Desktop will discover all available tools automatically
#Via Meta's Muse (or any app that speaks REST, not MCP)
Muse can't plug into an MCP server, so ambientChat offers the same tools as a web API it can call. Step-by-step setup, what Muse can see and how to pause or disconnect it: Connect Muse — Use ambientChat from Meta's Muse.
#Using Tools in Conversation
Once connected, you don't need to call tools by name. Just ask natural questions and the AI uses the appropriate tools:
- "What food is expiring this week?" →
list_expiring_items - "Find my Costco receipts from January." →
search_documents - "How much is my electronics collection worth?" →
search_items - "Create a packing list for my Hawaii trip." →
create_markdown_document - "Change all items in the kitchen to category Food." →
update_items_by_filter - "Undo that last bulk change." →
undo_bulk_change - "Export all my data as CSV." →
export_user_data - "What did we talk about last week?" →
recall_history - "Share this recipe with my wife." →
share_conversation
#Tips & Tricks
- Same context everywhere. MCP gives external clients the same context as in-app chat. The search quality, semantic matching, and data access are identical.
- Great for desktop workflows. Writing a report? Planning a meal? Doing insurance paperwork? Your full inventory and document archive is accessible without switching to your phone.
- Combine tools naturally. Search your inventory, then create a document summarizing what you found. The tools compose together — search, analyze, write, save — all in one conversation.
- Everything is undoable. Bulk changes, individual edits, trash operations — all reversible. Say "undo that" and the AI knows what you mean.
- Voice works too. Every tool listed here works identically via voice in the mobile app. Just say what you need.
#Known Limitations
- Requires a compatible MCP client — or a REST-capable agent. Claude Desktop is the primary supported client. The MCP server follows the standard protocol; apps without MCP (Muse) use the REST API at
/v1, which offers the same tools. - Uploading images/files now works via MCP. Use
upload_documentwith inline base64 (small files) or theget_document_upload_url→ PUT →upload_documentflow (any size). In claude.ai chat, dropping in a photo and saying "save this to my Medical folder" works when code execution is enabled — the assistant uploads the attached file for you. Live, on-device camera scanning still happens in the mobile app. - Rate limits apply. MCP tool calls consume the same credits as in-app chat. Your subscription tier determines available credits.
- Real-time sync is not instant. If you scan something on your phone, it may take a few seconds before MCP tools see the new item.
#Version History
| Version | Date | What Changed |
|---|---|---|
| 87 | 2026-10-07 | list_available_models says Desktop AI is free: your Mac's entry carries cost_multiplier 0, beside the $×N of every cloud model, so an assistant asked which model is cheapest names your Mac AMB-1889 |
| 86 | 2026-10-07 | Added remove_home_node — remove one of your Macs from Desktop AI for good; its credential stops working and it leaves your model settings (AMB-1887) |
| 85 | 2026-10-07 | Added the superuser-only get_home_fleet_versions (which Desktop AI version each Mac runs, who is behind, who rolled back) and set_home_agent_rollout (founder → canary → all, gated on speed and failure rate) AMB-1796 |
| 84 | 2026-10-08 | update_beacon takes beacon_name — rename a beacon or tag (a tag's new name reaches the item it tracks). New delete_beacon deletes a beacon or tag after you confirm; a deleted tag's item stops being tracked (AMB-1741) |
| 83 | 2026-10-07 | link_beacon takes unlink: true to remove ONE link by kind + id and keep the rest (on a tag, unlinking its item untracks it). list_beacons and list_asset_tags report each record's linked_refs, plus missing_linked_refs for links whose item or document was deleted (AMB-1740) |
| 82 | 2026-10-07 | Added trash_item_image: move one of an item's pictures to Trash; restore_trash puts it back |
| 81 | 2026-10-07 | update_beacon takes context_string — the words handed to the AI whenever the beacon or tag is detected (empty string clears it). list_beacons and list_asset_tags report it, as plain words |
| 80 | 2026-10-07 | Added upload_item_image (the user's own picture becomes the item's thumbnail) and set_item_face_image (choose or pin which picture is the thumbnail); items carry original_image_url and face_pinned_url |
| 79 | 2026-10-06 | start_home_node_setup takes model_build_id (superusers); setting a Mac up again moves it to the current Desktop AI model, Qwen 3.6 35B (AMB-1829) |
| 78 | 2026-10-05 | Private AI is now called Home AI in every tool description and result: a Mac is listed as “your Mac's name · Home AI”. Tool and field names are unchanged (set_private_ai_access, private_ai_enabled) (AMB-1782) |
| 77 | 2026-10-05 | Added get_beacon_snoozes, and update_user_setting takes key beacon_snoozes: snoozing a beacon is kept on your account, so it lasts as long as you asked, follows you to every device, and never silences the beacon for anyone else (AMB-1629) |
| 76 | 2026-10-05 | find_album_covers matches the album, not a single of the same title. It also re-matches albums that were given a single's sleeve and two-track listing, and counts them in queued (AMB-1771) |
| 75 | 2026-10-04 | get_dpp returns music for albums: the track listing, edition, genres, credits, notes and Discogs collectors' numbers, merged from MusicBrainz and Discogs. Item rows carry album_summary. find_album_covers also fetches track listings (AMB-1770) |
| 74 | 2026-10-03 | Added start_home_node_setup — set up Private AI on your own Mac with one Terminal command — and the superuser-only set_private_ai_access. list_available_models now says whether Private AI is on for your account (private_ai_enabled), and a Mac still being set up reads “Waiting for setup on your Mac” (AMB-1752) |
| 73 | 2026-10-03 | Share durations are now chosen as '30', '60', '90' or 'never' (strings) on share_with_email, update_share_grant and renew_share_grant, where they used to be a number or null. update_share_grant's expires_at takes a number only — to make a share never expire, pass expires_in_days: 'never'. update_beacon clears alert text with an empty string, and update_list_row / add_list_row unlink an item with an empty item_id, instead of null. Nothing you can do changed; the old null form broke Gemini (AMB-1700) |
| 72 | 2026-10-02 | Added renew_share_grant — renewing an in-app share never shortens it. update_share_grant no longer claims "give them longer", reports the expiry it actually wrote (it used to echo the old one), and returns previous_access / previous_expires_at for undo (AMB-1540, AMB-1497) |
| 71 | 2026-10-01 | Added list_available_models — the models you can pick, including your own Mac's Private AI with its online state — and the superuser-only register_home_node. get_ai_model_pref and update_user_setting (key ai_model) accept a Private AI as your default, and report it unavailable with the reason while the Mac is offline (AMB-1644) |
| 70 | 2026-09-30 | Added update_beacon — change a beacon's alert mode, alert text, prominence or live/paused on its registry record, as a partial update. list_beacons and list_asset_tags now report alert_mode, alert_string and prominence, so an agent can read a setting before changing it (AMB-1444) |
| 69 | 2026-10-01 | Muse setup moved to its own guide, Connect Muse |
| 68 | 2026-09-30 | REST agents (Muse) can now read the same connect-time guidance as MCP clients — your skills list, the journaling policy and the skill-authoring rule — at GET /v1/instructions. A paused or switched-off app no longer learns your skills list when it connects, over MCP or REST (AMB-1616) |
| 67 | 2026-09-30 | Added find_album_covers: real album cover art in place of AI illustrations; list rows now carry image_regenerating (picture on its way) and cover_art_source (AMB-1621) |
| 66 | 2026-09-30 | Added list_connected_apps, set_connected_app_sharing and disconnect_connected_app: every connected AI app gets its own switch, checked on every request over MCP and the REST API (AMB-1615) |
| 65 | 2026-09-30 | query_expert now obeys your context-sharing switch and appears in your access log like every other tool — with sharing off, no connected AI can reach your context through the expert panel (AMB-1614) |
| 64 | 2026-09-30 | Every tool is now also a REST API at https://mcp.ambientchat.ai/v1 (OpenAPI at /v1/openapi.json), same OAuth sign-in — so agents without MCP, starting with Meta's Muse, can connect (AMB-1613) |
| 63 | 2026-09-28 | create_journey_report refusals: an empty folder is now code no_items (was invalid_request), and too_many_items carries details: { asset_count, max } (AMB-1513) |
| 62 | 2026-09-28 | create_journey_report takes up to 25 asset_ids or a view_id (a folder, followed live); the page draws several items as lanes on one clock with a temperature line per item. get_asset_journey's temperature points now carry asset_id (AMB-1172) |
| 61 | 2026-09-28 | Added create_journey_report — publishes a tracked item's chain of custody as a live, no-account page through the normal document public link; asking again with the same settings returns the same link (AMB-1172) |
| 60 | 2026-09-27 | Added list_import_jobs — your recent imports, so a restore can be checked on after leaving the screen that started it (AMB-1366) |
| 59 | 2026-09-25 | Added get_asset_journey — a chain of custody for one or more tracked items over a required date range: chapters by venue, stops by zone, dwell times, temperature, and the underlying events. It says when it is partial instead of implying completeness (events_complete, temperature_complete, assets_complete). list_item_location_history gains optional from/to, and list_item_temperature_history now reports complete (AMB-1171) |
| 58 | 2026-09-25 | file_items and update_items_by_filter take in_any_folder: true — every item filed in some folder, the opposite of at_root (passing both is refused). "Move everything out of every folder" is one short call instead of an agent listing and re-emitting every filed item's id (AMB-1346) |
| 57 | 2026-09-23 | get_account_deletion_precheck reports your latest export (latestExport) and whether one is still being made (exportInProgress), so an assistant can offer — never require — that you save a copy before deleting (AMB-1360) |
| 56 | 2026-09-22 | The voice settings gain tour_listen, the Radar's Zone guide (on by default): read by get_voice_preferences, changed with update_user_setting key voice |
| 55 | 2026-09-22 | link_beacon refuses a target that does not exist (structured, naming it) and never carries a beacon's dead links forward; list_asset_tags reports linked: null for a tag whose item is gone rather than the ghost's name |
| 54 | 2026-09-22 | resolve_scanned_code is listed here for the first time, and now knows a Bluetooth tag's printed label: it used to answer Not recognized and echo the label as printed, while the phone called it a Tag. It now answers a Tag card with tag.address in the standard spelling whatever the label used, so an assistant can look the tag up with list_asset_tags |
| 53 | 2026-09-21 | get_ble_scan_rate and the ble_scanning setting are withdrawn: the Bluetooth scan rate was a Settings → Bluetooth choice that page no longer offers — the phone tunes its own radio (see Beacons → How the phone listens). "Set my scan rate to eco" no longer does anything; there is nothing to set |
| 52 | 2026-09-18 | reserve_device_identity answers prior — what the row was before the call — so the phone reads a previously set-up device's current values and asks before overwriting them. POST /resolve (the phone's own lookup, not an agent tool) now says what a tag is to the caller: how far along its set-up is and whether it is yours, somebody else's or nobody's — never who |
| 51 | 2026-09-18 | confirm_device_provisioning is withdrawn as a tool: the report of a tag set-up is the phone's, over its own channel, in the same class as a tag sighting — an agent that could file “verified” would only be fabricating it. What an agent needs is on list_asset_tags, which now carries provisioning_state, firmware, oem_model and flashed_profile, and no longer lists a tag you have never had while it is being set up (or after a failed first attempt) — a tag you already had stays listed, with its state. reserve_device_identity checks the whole registry by MAC: a tag you already claimed is adopted (same row, now with an identity), one somebody else owns is refused before any plan is handed out, and asking on a different network returns the identity the tag already has |
| 50 | 2026-09-18 | reserve_device_identity now returns the write plan with the identity (profile, slots, interval, power, measured power) and chooses the network when none is named; the password candidates ride the phone's channel only, never an agent's. New confirm_device_provisioning — the phone's report flips a reserved row to active or failed, records what was intended and what the tag actually holds, and gives the device the same ownership shape a claimed tag has |
| 49 | 2026-09-18 | file_items joins the folder tools, and files by filter — a category, everything in Home, everything in another folder — so an agent never lists and re-emits hundreds of ids; update_items_by_filter takes the same folder filters (AMB-1203) |
| 49 | 2026-09-19 | get_scan_status’s capture_gate now says WHY an “only capture…” instruction was not applied. An agent asked “what happened to my scan?” could previously only report that the instruction failed, so it would suggest trying again — when the real answer was that the photo held a single subject and there was nothing to filter |
| 48 | 2026-09-18 | Added restore_skipped_objects, and get_scan_status now reports capture_gate — what an “only capture office furniture” scan kept, what it skipped and why. An agent could already be told a scan was “complete, 1 item created” while thirty-nine objects had been dropped, and had no way to mention it or undo it. Now it can say what went and put any of it back, into the same scan session and the same place |
| 47 | 2026-09-17 | query_expert now tells your agent which large documents the answer used and which were held back (with the token cost), and takes include_documents / exclude_documents so the agent can pay for one or leave one out on the next call. Before this an agent in Claude Code or Claude Desktop got an answer that quietly omitted a big document with no way to know |
| 46 | 2026-09-08 | Added reserve_device_identity — anyone signed in can now claim an iBeacon identity for a device they are setting up, and the number is HELD while they work. Allocating one used to need a staff account, and the old route only read the registry: two people provisioning at the same moment computed the same Minor and the loser's save failed. Asking twice with the same MAC returns the same identity, so a retry after a failed device write costs nothing |
| 45 | 2026-09-08 | Added read_web_page — the assistant can read what a scanned page says now, not just its title. Page content is treated as quoted data, never as instructions |
| 44 | 2026-09-08 | Added save_web_pointer — scan a web link and keep it as a document you can rename |
| 43 | 2026-09-07 | Added promote_item and discard_scan_session — AI Lookup keeps a capture only when you say so |
| 28 | 2026-07-28 | Spreadsheet → inventory import: propose_import_mapping reads the columns (remembering a layout you have approved before) and create_items_bulk creates the items as one operation you can undo in one go |
| 29 | 2026-08-10 | Text documents are editable: update_text_document replaces a note/.txt/.csv/.tsv, with undo_text_update / redo_text_update stepping the history — a spreadsheet undo restores the previous file exactly. Read the editable text with get_document({include_source: true}) |
| 30 | 2026-08-11 | update_markdown_document, undo_markdown_update and redo_markdown_update are retired — markdown is a text document like any other, so update_text_document / undo_text_update / redo_text_update serve it too. The generic tool gained section updates (section_heading / append) so nothing was lost |
| 33 | 2026-08-16 | link_beacon ADDS a linked thing to a beacon (up to 8) instead of replacing what is there; kind none still clears them all |
| 34 | 2026-08-20 | Added get_venue_invitation_optouts / update_venue_invitation_optout — the per-venue "don't show this invitation again" choices, stored on your account so they survive reinstalls |
| 36 | 2026-08-20 | Settings writes converged on ONE tool: update_user_setting(key, value) replaces update_privacy_preferences, update_voice_preferences, update_notification_preferences, update_context_sharing, update_profile, update_save_preferences, update_background_trails_pref, update_app_behavior_prefs, update_ble_scan_rate, update_ai_model_pref, and update_venue_invitation_settings. Per-domain get_* read tools remain; list_setting_dimensions names each domain's setting_key |
| 35 | 2026-08-20 | Those two became get_venue_invitation_settings / update_venue_invitation_settings: one pair for the whole domain — the master switch moved into your account too, and un-muting a venue from anywhere (chat, web, phone) now reaches every device. Venue invitations also appear in list_user_settings / list_setting_dimensions |
| 40 | 2026-09-02 | An unknown tag battery now says WHY: list_asset_tags rows and get_item’s tracking carry the tag’s stored MAC and telemetry_join (ok / missing / malformed). A tag registered without a usable MAC can never report battery or temperature at all — the address is what matches the telemetry broadcast — so an assistant can now tell you to add it from the device label instead of guessing the tag is dead |
| 39 | 2026-08-26 | Added list_item_temperature_history — a tracked item's temperature trail from its Bluetooth tag's telemetry (recorded up to once a minute), newest first, with from/to windowing. Ask "what temperature is my tape measure at?" The same data draws the temperature graph in the app's TRACKING manage sheet |
| 38 | 2026-08-26 | Added list_item_location_history — where an item has BEEN, newest first: manual "Last seen" sets, the link-time stamp, and live tag sightings, with paging for long trails. Ask "where has my tape measure been?" The same history appears in the app when you tap a tracked item's TRACKING row |
| 42 | 2026-09-05 | You can create your own places: create_venue, update_venue and create_zone no longer need a staff role. A place you make is personal — only you can see it — because the alternative would have published your home address: the underlying registry treats a record with no explicit permissions as public, which is right for a museum beacon and wrong for a house. Two people can each have a place called "3M HQ" without either knowing the other exists; only a duplicate within your own places is refused. assign_beacons_to_zone stays staff-only — a beacon is shared hardware |
| 41 | 2026-09-03 | Added list_beacons — your FIXED beacons with battery state (good/low/replace/unknown), the reading's timestamp, last-heard, and the same telemetry_join explanation row 40 gave tags. A beacon's battery has always been recorded and was surfaced nowhere, which made a dead beacon indistinguishable from bad signal; list_beacons is the readable half. A beacon that reported once and then went silent is distinguishable from one never heard from, via battery_seen_at |
| 37 | 2026-08-22 | Asset tracking: link_beacon now lets you link a Bluetooth tag YOU OWN to your own item (no staff needed — the tag then tracks that one item and its category becomes Asset Tracker); new list_asset_tags lists your tags and what each tracks; items now carry a tracking fact (tag_id, tag_name) in get_item / search_items / list_items |
| 27 | 2026-07-28 | Spreadsheets: read_document_rows pages through a stored .csv/.tsv/.xlsx (one sheet at a time for a workbook, naming the others), and create_office_document is now create_data_file — it also makes .csv |
| 26 | 2026-07-27 | Word-style Undo/Redo — undo_markdown_update steps BACK one change (repeat to keep going), redo_markdown_update steps forward. A new edit discards anything ahead |
| 23 | 2026-07-26 | Added undo_markdown_update — document edits are snapshotted and can be reverted with "undo that" |
| 22 | 2026-07-18 | Added Tool Permissions section (list_tool_permissions / update_tool_permission) — per-tool Auto / Ask / Blocked policy, "Always Allow" on approval prompts |
| 14 | 2026-07-05 | Rewrote Sharing for in-app live sharing + groups (share_with_email, share_with_group, group lifecycle, revoke_share_grant, list_shared_with_me, …); added Connected Services section (add/list/update/remove_mcp_server) (v0.13.2) |
| 13 | 2026-06-26 | Added list_mounted_contents — resolve mounted shares into live data + provenance for inline display (AMB-377) |
| 12 | 2026-06-26 | Added mount_shared_resource / unmount_shared_resource / list_mounts — add shared content into your own library (AMB-376) |
| 11 | 2026-06-25 | Added list_skills / get_skill — first-party SKILL.md skills, readable by everyone (AMB-350) |
| 10 | 2026-06-07 | Terminology: undo surfaces say "the web interface" not "admin console" |
| 1 | 2026-03-01 | Initial guide — 28 tools across 6 categories |
| 2 | 2026-05-27 | Complete rewrite — all 93 user-facing tools across 17 categories (AMB-188) |
| 3 | 2026-05-28 | Added the MCP server URL (https://mcp.ambientchat.ai); reverted title to v1 to keep the seed idempotent |
| 4 | 2026-05-29 | Added get_document_upload_url; upload_document now accepts base64 / signed-URL bytes so MCP clients can upload images into folders (AMB-281) |
| 5 | 2026-05-28 | Added list_conversations (browse Q&A history with paging) — AMB-104 MCP promotion |
| 6 | 2026-05-29 | Added get_save_preferences / update_save_preferences (sticky save folder) — AMB-104 MCP promotion |
| 7 | 2026-05-29 | Added list_interests / add_interest / remove_interest (How I Roll tags) — AMB-104 MCP promotion |
| 8 | 2026-06-01 | get_profile / update_profile now read & write bio (folded in from the legacy profile field, which was removed) — AMB-104 |
| 9 | 2026-06-01 | Added get_scan_status — query an upload/scan job by jobId (processing / complete / failed) — AMB-287 |