AI Agent Access (MCP)
AI Agent Access (MCP)
Connect an AI assistant — like Claude, Claude Desktop, or Claude Code — to your Cine Power Planner account through a secure Model Context Protocol (MCP) server. Once connected, the assistant can answer questions about your projects, gear, schedule, and finances, and (with a read & write key) help manage them.
Requires an active subscription. Available to signed-in users.
Quick start
- Generate a key: Settings → Connections → Agent access → choose an access level → Generate key (shown once — copy it immediately).
- Connect your client: the Connect a client block in the same panel shows the server address and ready-to-copy settings for Claude Desktop, claude.ai and Claude Code, already filled in with the key you just generated.
- Test it: click Test connection in that block. It checks the key against the server and tells you whether it works, or why not.
Generate a key
- Go to Settings → Connections → Agent access.
- Choose an access level:
- Read only — the agent can read your data but can never change anything.
- Read & write — the agent can also create, edit, and archive records.
- (Optional) Fill in Key name so you can recognise it later (e.g. "Claude Desktop").
- Pick when it Expires: 7 days, 30 days, 90 days (the default), 1 year, or No expiry.
- Tick the acknowledgement that you understand what the agent can access.
- Click Generate key. The key is shown once — copy it now and store it securely (a password manager is ideal). You won't be able to see it again.
The panel lists your active keys with their access level, when each was created and last used, and when it expires. Any key can be revoked at any time from the same panel.
Connect your AI client
The Connect a client block under Settings → Connections → Agent access has every setting below with its own Copy button. Right after you generate a key, the settings already contain it. Later, paste a key into Your key to fill them in (the field is not saved; keys are shown only once, so the app cannot fill it in for you).
The server address is always:
https://cine-power-planner.com/mcp
with an Authorization: Bearer <your-key> header.
Claude Desktop / claude.ai: Settings → Connectors → Add custom connector
→ enter the server address, then under Request headers add the header name
Authorization with the value Bearer <your-key>.
Claude Desktop without Request headers (the field is not offered on every
account yet): in Claude Desktop open the Developer settings and choose Edit Config, add this to
claude_desktop_config.json, and restart Claude. It uses the mcp-remote
bridge, so Node.js must be installed.
{ "mcpServers": { "cine-power-planner": { "command": "npx", "args": [ "-y", "mcp-remote", "https://cine-power-planner.com/mcp", "--header", "Authorization:${CPP_MCP_AUTH}" ], "env": { "CPP_MCP_AUTH": "Bearer <your-key>" } } } }
Claude Code (terminal):
claude mcp add --transport http cine-power-planner https://cine-power-planner.com/mcp --header "Authorization: Bearer <your-key>"
Other MCP clients: any client that supports remote MCP servers over Streamable HTTP works — point it at the URL and set the Authorization header.
Test the connection
Click Test connection in the same block. The app makes the same call your client will make and reports one of:
- Connected, with the key's access level (Read only or Read & write).
- Key not accepted: mistyped, revoked or expired. Copy it again, or generate a new one.
- Subscription needed, consent missing or too many requests: the key is fine, the account is not ready yet, or the key was used a lot just now.
- Server not reachable: check your internet connection.
Agent skill for your AI client
The server tells your assistant which tools it has. The Cine Power Planner skill below tells it how to use them well: which question goes to which tool, when to pass a project's name instead of looking it up, that it must ask you before it changes, removes or sends anything, how to read a document into the app, what each error means, and which things only the app can do. With it, the assistant needs fewer calls and guesses less.
A skill is a short instruction file (SKILL.md) that the assistant loads by
itself whenever a request is about your productions, gear or call sheets. Copy
the whole block at the end of this section and install it once:
- Claude (claude.ai and Claude Desktop): save the text as a file named
SKILL.mdin a folder namedcine-power-planner, compress that folder to a ZIP file, then open Settings → Capabilities, find Skills and upload the ZIP. Turn the skill on if it is not on already. - Claude Code: save the text as
~/.claude/skills/cine-power-planner/SKILL.mdto use it in every project, or as<your project>/.claude/skills/cine-power-planner/SKILL.mdfor one project only. - Other assistants: paste the text, without the lines between the two
---at the top, into the assistant's custom or project instructions.
The skill works with both key types: with a read-only key the assistant only reads, and it says so before you ask for a change. When this page's Last Updated date changes, copy the skill again; the server's own instructions still apply in between, so an older copy does no harm.
--- name: cine-power-planner description: Work with a Cine Power Planner account through its MCP server (tools such as get_project_overview, get_project_gear, get_call_sheets, check_gear_availability and import_call_sheet_brief). Use it whenever the user asks about their film or photo productions — projects, gear lists, owned gear and kits, crew, cast, locations, shot lists, call sheets (Dispositionen), shoot schedules, timesheets, quotes, sub-rentals or rental requests — or attaches a receipt, invoice, call sheet or rental quote to bring into the app. --- # Cine Power Planner Cine Power Planner is a production and gear-management app for film and photo crews. Its MCP server lets you read the user's account and, with a read & write key, change it. This skill is about using that server well: few calls, no guessed ids, no change the user did not agree to, and a straight answer when something can only be done in the app. The server also sends its own instructions when it connects, and every tool describes itself. When they disagree with this skill, follow the server: it ships with the tools. ## Before the first call - No Cine Power Planner tools available? The server is not connected. Tell the user to connect it (in the app: Settings → Connections → Agent access) instead of answering from memory. - Before you plan a change, call get_account_status once: it says whether the key is read only or read & write. A read-only key cannot change anything, so say so before the user spends time on the details. ## Pick the narrowest read | The user asks | Call | | ---------------------------------------- | ------------------------------------------------------ | | "How is Nightfall looking?" | get_project_overview | | "Which projects do I have?" | list with entity projects (add query to narrow) | | "What gear is on it?" | get_project_gear | | "Who is on the crew?" | get_project_crew | | "Who plays Anna? Who is not cast yet?" | get_project_cast | | "Where do we shoot? Where is parking?" | get_project_locations | | "What do we shoot in scene 12?" | get_project_shotlist | | "When are prep, shoot and return?" | get_project_schedule | | "What's my call on Friday?" | get_call_sheets (see the call sheet rule below) | | "Which camera package and lenses?" | get_project_requirements | | "What does the job cost and earn?" | get_project_pnl | | "Is the permit uploaded?" | get_project_documents (names and details, never files) | | "What's in my B-camera kit?" | get_gear_sets | | "Which days did I log?" | get_timesheets | | "What's shooting in July?" | get_schedule_overview | | "Is my ALEXA 35 free June 10–14?" | check_gear_availability | | "What are my open quotes worth?" | get_financial_summary | | "How much does an FX6 draw?" | search_devices, then get_device | | "Any invites or rental requests for me?" | list_collab_invites, list_gear_requests | Rules that save calls and mistakes: - **Pass the project's name.** Every project_id also takes the project's exact name ("Nightfall", case ignored), so do not list projects first. If two projects share the name, the error lists both ids: ask the user which one, then pass that id. A result with notFound carries didYouMean; offer those names, never a guessed id. - **Go straight to the section.** Use get_project_overview for a broad question, and the scoped tool for a specific one. Never call get on a whole project to read one section: a project is 8–16 KB. - **Cross-project questions have their own tools.** get_schedule_overview, check_gear_availability and get_financial_summary scan every project in one call; do not loop over projects. - **Call sheets live in two places.** A sheet imported into a project is read with get_call_sheets and that project_id. A sheet the user keeps on its own in the Call Sheet Reader is found with list (entity call_sheets) and read with get_call_sheets and its id. When the user does not name a project, check both. - **Shots and cast are separate records.** Only get_project_shotlist and get_project_cast return them; they are not inside the project document. - **Page, do not widen.** Lists return compact summaries and a nextCursor; follow it only when the answer needs more. - **Turn relative dates into real ones.** Resolve "Friday" or "next week" from today's date and say which dates you used. ## Answer like a production coordinator - Lead with the answer (the call time, the address, free or booked), then the detail, then where it came from (project, shoot day, call sheet). - Answer in the user's language. German crews say Disposition (call sheet), Drehtag (shoot day), Motiv (location), Besetzung (cast), Vorbereitung and Rückgabe (prep and return). - Availability is matched by name. When check_gear_availability finds no clash, add that an item spelled differently on a gear list would not match, and offer to check another spelling. - Logged timesheet days carry times, not money. The app computes hours and pay; never present a sum of times as pay. - Do not repeat a person's e-mail or phone number unless the user asked for it. ## Changing data (read & write key) 1. **Read first.** Get the ids and current values from the read tool; each write tool's description names it. 2. **Say what you will change and wait for a yes.** One plain sentence per change. Always ask before archive, delete_gear_item, any remove tool and send_gear_quote — that one e-mails the person who asked for the quote, so confirm recipient, items and rates. 3. **Use the surgical tool.** Gear: add_gear_item, update_gear_item, delete_gear_item. Crew: add_crew_member, update_crew_member, remove_crew_member. Cast: add_cast_member, update_cast_member, remove_cast_member. Locations: add_location, update_location, remove_location. Shot list: add_scene, update_scene, remove_scene, add_shot, update_shot, remove_shot, reorder_shots. Kits: add_gear_set_item, remove_gear_set_item. Dates: set_project_dates. Use update on a whole record only when no surgical tool fits. Gear items can be **optional** (`optional: true`: nice-to-have gear, priced as an optional position in a quote made from the project) and have an **alternative** (`alternativeItem`, `alternativeReason`: the backup choice and why). get_project_gear returns them with each item's `id`, the id update_gear_item and delete_gear_item take; add_gear_item and update_gear_item set them (`optional: false` or `""` clears). 4. **Requirements merge shallowly.** Read get_project_requirements first and send the whole section you change, or its other settings are dropped. 5. **Check the result.** After a write, call the read tool and report what is stored now, not what you sent. 6. **Nothing is lost for good.** archive hides a project and soft-deletes other records; the user can restore them in the app. Recipes: - **A new job from a brief.** create (entity projects, with its name) → set_project_dates → add_crew_member for each person → add_call_sheet for each shoot day (only the date is required; the app fills crew, cast and gear from the project when the sheet is opened) → get_project_overview to show the result. - **Cast a role.** add_cast_member with the character, the actor and castingStatus only when the user said it. The unavailable field holds dates the actor is blocked, not free days. - **A set under a location.** add_location for the master, then add_location with its parentId for each set. A set inherits the master's address, contacts, parking and hospital, so send only what differs. - **A quote or invoice for a job or sub-rental.** create_quote_draft or create_invoice_draft with project_id or subrental_id. The app builds the draft the way its own button does; it waits in Accounting → Quotes or Invoices until the user opens and saves it. Invoices can only be made this way. - **A timesheet.** create_timesheet with the project (it defaults to the German TV/FFS agreement; set country for AT, FR or IT), then log_time_entry for each day. A day already submitted cannot be changed. - **Answer a rental request.** list_gear_requests → agree items, rates and recipient with the user → send_gear_quote. A request from a private person is answered from the app, not through the server. ## Bringing a document into the app When the user attaches a receipt, a vendor or sales invoice, a call sheet or a rental quote and wants it in the app, you do the reading; no AI key is needed in the app. 1. get_extraction_contract with the kind: receipt, expense_line_items, invoice_header, call_sheet_brief or quote. It returns the exact prompt, shape and rules the app uses. 2. Read the original PDF or photo yourself. Do not convert it to text first. 3. Submit with import_receipt (a purchase receipt or vendor invoice; send header and line items from one document together), import_invoice_header (a sales invoice the user issued), import_call_sheet_brief or import_quote. 4. A call sheet covering several days goes in ONE import_call_sheet_brief call, one day per calendar date, travel and prep days included. Pass project_id when the sheet belongs to one of the user's projects; ask when unsure. Without it, the days land in the Call Sheet Reader as a call sheet of their own. 5. If the server rejects a field, it names the field and the rule: fix that and resubmit with the same submission_id, so a retry never makes a second draft. 6. Nothing is saved yet. Tell the user where to review it (the result's reviewIn) and that they accept or discard it there. ## When a call fails | Error | Do this | | --------------------- | ---------------------------------------------------------------------------------------------- | | UNAUTHENTICATED | Stop. The key is wrong, expired or revoked; the user issues a new one in Agent access. | | FORBIDDEN_READONLY | Do not retry. Say a read & write key is needed and what you were going to change. | | CONSENT_REQUIRED | Reads may work; changes need Cloud Sync turned on in the app. | | SUBSCRIPTION_REQUIRED | The account's plan does not cover it. Say so. | | RATE_LIMITED | Wait a moment, retry the same call once. Do not fan out. | | ENCRYPTED | The record is encrypted on the user's devices. Do not retry or look for a way round it. | | TOOL_ERROR | The message names the field or id. Fix it and retry. | | notFound in a result | The id does not exist or is not the user's. List again or offer didYouMean; never guess an id. | ## Send the user to the app for these - **Encrypted, never readable or changeable here:** the address book (contacts), invoices, expenses and damage reports. A person's e-mail and phone on a project still come with get_project_crew, get_project_cast and get_project_locations. - **Not available through the server:** PDF export, floor plans, moodboards, file uploads (location photos and sketches, self-tape videos — cast headshots are the one exception), adding or changing project documents, the hours and pay of a timesheet day, creating, renaming, pricing or deleting a kit, and the script text, lighting, cast links and camera package of a scene or shot. - **Multi-company accounting accounts:** accounting reads and quote or invoice drafts are refused; projects, gear, sub-rentals and shot lists still work. Say plainly that it is done in the app and where, instead of trying a workaround.
What the agent can do
Ask about your data (read-only key is enough)
- Projects — "What projects do I have running?", "Who's the gaffer on Nightfall?", "What gear is on the Studio X list?", "How is the budget looking on my current job?"
- Shot list — "What are we shooting in scene 12?", "How many shots are left on Nightfall?", "Give me the scene breakdown for day 2." Scenes come back with their headings, INT/EXT, time of day, logline and page eighths, and each scene's shots with their name, action, notes, size, angle, movement, time of day, status and duration.
- Call sheets — "What's the call time on Friday?", "Where's basecamp on day 3?" — the assistant reads back the call sheets on a project without opening the whole thing. "What's my call on Friday?" also covers the call sheets you keep in Additional Tools → Call Sheet Reader without a project: the assistant lists them and reads their days, including the call you set for yourself in Your day. Your drives and start addresses are not part of that answer.
- Cast — "Who's playing Anna?", "Which parts are still not cast?", "Is Lea free the week of 8 September?", "What shoe size is our lead?" The assistant reads the Characters tab: character and actor, playing age, where each role stands in casting, contact details, blocked dates, and — when you ask for the detail — wardrobe sizes, measurements, appearance notes, your own custom columns and the contact log. Headshot images and self-tape files are never read back — the assistant only learns how many headshots one person has.
- Locations — "Where are we shooting?", "What's the parking situation at the villa?", "Which location is nearest to a hospital?", "Is the kitchen confirmed yet?" You get the location list grouped the way the app groups it — a master location with its sets under it — and, for any one location, the full scout sheet: access and load-in, parking, department bases, power, hazards, permits, costs, contacts. For a set, values it inherits from its master are filled in and flagged as inherited.
- Camera package & requirements — "What camera package is on Nightfall?", "Which lenses did I put on the requirements?"
- Schedule — "What's shooting in July?", "Do any of my projects overlap next week?" — one call scans the calendar across all your projects.
- Gear & availability — "Is my ALEXA 35 free June 10–14, or is it on a job?" — checks your projects and sub-rentals in that window. Also: "What do I own from ARRI?"
- Gear sets — "What's in my B-camera kit?", "Which of my sets hold the FX6?" — your sets from Owned Gear → Sets, with their pricing and every item in them.
- Project documents — "Which contracts are on Nightfall?", "Is the shooting permit uploaded?" — the names, categories, folders and notes on a project's Documents tab. The assistant sees what is there, not what is inside a file; open the file in the app.
- Device specs — "How much power does a Sony FX6 draw?", "What's the close focus of a 32mm Master Prime?" — searches the built-in equipment catalog.
- Quotes & banking — "What are my open quotes worth?", "Which quotes went out in June?" — plus your bank accounts and transactions, order confirmations, delivery notes, and fixed assets (read-only). Invoices and expenses are not available to the assistant (see Current limits).
- Sub-rentals, rental requests — look up rental transactions and incoming requests for your public gear list. A person's e-mail and phone on a project come with its crew, cast, and locations.
Make changes (read & write key)
-
Create, edit, and archive projects, owned gear, sub-rentals, and quote drafts.
-
A project the agent creates starts in your account's units (Settings › App › Units), like one created in the app. If you never chose, it starts metric.
-
Surgical project edits: add / update / remove a single gear item, add / update / remove a single crew member, set prep / shoot / return dates, or update project requirements — without touching the rest of the project.
-
Crew — "Put Anna Weber on Nightfall as gaffer at €650/day", "Take Tom off the crew list." Removing someone unstaffs them from that project only; their contact record stays in your address book.
-
Call sheets — "Start a project Nike Spring and make a call sheet for July 10: call at 7am, basecamp at the Warehouse Lot, scenes 12–13 on the rooftop, hotel is the Grand." The assistant creates the project (if needed) and seeds a call sheet from whatever details you give — you only ever need a shoot date. Crew, cast, and gear fill in from the project when you open the call sheet in the app; refine and export to PDF there.
-
Cast — "Add Anna to Nightfall, played by Lea Roth, offer is out", "Mark Marlow as booked", "Lea can't do 1–3 September, she's in theatre", "Note her shirt size as M." The assistant builds and maintains the cast roster — including your project's own custom columns, which you name by their column title. Blocked dates are entered as unavailability, which is what the app's Day-Out-of-Days grid and the availability lights read. Headshots can be set when your assistant supplies them as an image link or as a WebP, JPEG or PNG image of at most 400 KB (up to 10 per person, the first one is the primary photo); sending a new set replaces the old gallery. Self-tape files can't be uploaded this way (links can).
-
Locations — "Add the Villa Rossi as a location, confirmed, Via Roma 1", "Add the kitchen and the courtyard as sets under it — the kitchen is on the second floor", "Put the hospital and the parking notes on the villa", "Mark the beach as a backup." Sets under a master inherit the master's address, contacts, parking, hospital and the rest, so you only fill in what actually differs. Deleting a master asks you first whether its sets should survive on their own or go with it. Photos and sketches are added in the app.
-
Shot list — "Add scene 14, EXT. HARBOUR – NIGHT, to Nightfall", "Add a close-up of Anna to scene 12", "Mark 12B as shot", "Put the insert before the wide in scene 3", "Renumber scene 5 to 5A". New shots take the scene's time of day and lighting, as in the app. Removing a scene keeps its shots; they show as unscheduled until you move them.
-
Gear sets — "Add the second BP-U70 to the B-camera kit", "Take the monitor out of the run-and-gun set". The assistant adds or removes one item (or a whole set inside a set) at a time. It never adds more of an item than you own, refuses a set that would end up inside itself, and keeps at least one item in a set. Creating, renaming, pricing and deleting a set happen in the app.
-
Timesheets — "Set up a timesheet for Nike Spring: gaffer, €650/day, German TV/FFS rules, night and weekend surcharges on." The assistant creates a timesheet with your pay rate and working-time conditions and links it to the project. You (or the crew) then log daily hours against it in the Time Tracking tab, where it computes pay from those conditions. Only the project is required — everything else has sensible defaults.
-
Timesheet days — "Log Tuesday on the Nike Spring timesheet: call 7:00, wrap 18:30, 40 km." The assistant logs the day, or changes the day that is already there for that date. "Which days did I log in March?" reads them back. Hours and pay are worked out by the app, so the assistant shows what was logged and sends you to the Time Tracking tab for the amounts. A day you have already submitted is not changed by the assistant.
-
What was quoted for a project — "What did we quote for Nike Spring?" The project's money answer now lists its quotes, order confirmations and delivery notes with number, status and total. Invoices are not included: they are encrypted on your devices and the assistant cannot read them.
-
Quote and invoice drafts from a project or sub-rental — "Make a quote draft for Nike Spring", "Draft the invoice for the Kamerahaus Nord sub-rental." The assistant asks the app for the draft, and the request appears at the top of Accounting → Quotes or Accounting → Invoices. Open builds the draft exactly as the app's own Create quote draft / Create invoice draft button does — same positions, days and totals — and nothing is saved until you save it. Dismiss removes the request. Not available on multi-company-accounting accounts.
-
Read a document into the app — no AI API key needed. Attach a receipt, vendor invoice, sales invoice, call sheet / Disposition, or rental quote in your chat and ask for it to go in. Your assistant reads the original file itself (it sees the actual PDF or photo, not a text scan of it), the server checks the extracted fields against the same rules the app uses, and a draft appears in the matching place:
You attach Where the draft lands Purchase receipt / vendor invoice Accounting → Expenses A sales invoice you issued Accounting → Invoices Call sheet / Disposition for a project the project's Call Sheets tab Call sheet / Disposition, no project Additional Tools → Call Sheet Reader, as a call sheet of its own Equipment rental quote the project's Quote Comparison Nothing is saved until you review it. Each import shows up as a "waiting for review" notice and opens in the review screen you already use for dropped files — same confidence badges, same gear matching, same duplicate detection. You accept or discard it there. A project keeps one parsed rental quote: when it already has one, reviewing an imported quote asks before it replaces the existing quote and its comparison.
Call sheets are read day by day. A sheet that covers several days becomes one day per calendar date, travel and prep days included, each with its day type, call and wrap times, schedule, scenes, cast, locations, hotels, transport, contacts, emergency details, production and invoice details and camera and gear notes, as far as the sheet prints them. When the assistant names a project, the days wait in that project's Call Sheets tab; without a project they wait in Additional Tools → Call Sheet Reader, and saving them there keeps them as a call sheet of its own, not in any project. Either way they open in the call-sheet steps at Check & correct, as if the sheet had just been read: untick the days you do not need and save the rest. The assistant sent the days, not the file, so there is no original to compare with. A project, or a call sheet of its own, keeps up to 40 days (600 KB together, 60 KB for one day), and one import reads up to 31 days. An import that would go over a limit is refused as a whole, and the assistant tells you which limit; nothing is cut off. Assistants that still send the older single-day format keep working.
This is separate from the in-app AI scanning in Settings, which uses your own API key. Both work; this one needs no key because your assistant does the reading. Pending imports are capped at 200 and clear themselves after 7 days.
-
Accept a pending collaboration invite.
-
Manage your public rental catalog link, and answer an incoming gear request with a quote. Sending a quote emails the requester — your assistant is instructed to confirm recipient, items, and rates with you first. The assistant sees the public requests that still wait for an answer and are not archived, with the kind of requester (business or private person) and the shoot dates. A request from a private person is not quoted through the assistant: that quote has to name you as the trader and carry the withdrawal instructions, so send it from the app.
Changes made by the agent sync to your devices like any other edit and show up in the app immediately.
Current limits
- Contacts, invoices, expenses and damage reports are encrypted on your devices before
they sync, and the Agent access server has no key. The assistant can neither read nor
change them. It tells you so (
ENCRYPTED) instead of guessing. Use the app for your address book, damage reports and Accounting → Invoices and Expenses. A person's e-mail and phone on a project are still available through its crew, cast, and locations. Document imports still work: the app encrypts the draft when you accept it, and an invoice draft the assistant asks for is built and encrypted by the app when you open the request. - Accounting and quote data is unavailable if your account uses multi-company accounting (projects, gear, and sub-rentals still work). Support is planned.
- Gear-availability matching is by name — if a project's gear list spells an item differently than your inventory, mention both spellings when asking.
- Quote drafts created by the agent never receive a final quote number — numbering happens only when you send the quote.
- Document imports of expenses and invoices are unavailable on multi-company-accounting accounts (call sheets and rental quotes still work).
- An imported document is never attached as a file — only the extracted fields are carried over, because the file itself stays in your chat client.
- Some parts of the app are read-only or unavailable to the assistant, and it will tell you so rather than guess: PDF export and rendering, floor plans, moodboards, file and photo uploads (self-tapes and location photos and sketches; cast headshots are the one exception, see above), adding or changing project documents (the assistant reads only their names and details), damage reports, invoices and expenses (encrypted on your devices), and the hours and pay the app computes for a timesheet day. On the shot list, the script text, the lighting and cast of a scene, and a shot's camera package, lens and special setup are set in the app.
Tips for good results
- Ask naturally — the assistant picks the right tools on its own. You never need to name a tool, though you can.
- Name projects the way you call them: "the Nightfall gear list" works without the assistant looking up an id first. If two projects have the same name, the assistant is told both and asks you which one you mean.
- "How is Nightfall looking?" gets you an overview in one step: dates, the next shoot day, and how much gear, crew, cast, locations, scenes, shots, call sheets and timesheets are on it.
- For broad questions, give a time frame: "…in July", "…next month", "…this year".
- With a read & write key, review each proposed change in your MCP client before approving it — archive and delete actions are flagged as destructive so your client asks for confirmation.
Privacy & safety
- A read-only key can never change your data — use it when you only want the agent to look things up.
- Every key requires your explicit consent to data access before it's issued.
- The agent acts strictly as you, sees only your data, and every action is rate-limited and logged (metadata only — tool name, status, time; never the contents). The log is deleted automatically after 180 days.
- Records the app encrypts on your devices (contacts, invoices, expenses, and more) never reach the assistant. The Agent access server sees only encrypted data and has no key to it.
- A key stops working on the expiry date you picked (unless you chose No expiry); revoke a key the moment you stop using a device or client — revocation takes effect immediately.
- Your AI client asks you to approve actions the agent takes — review changes before approving, especially deletions and anything that sends email.
Troubleshooting
| Message / symptom | What it means & what to do |
|---|---|
UNAUTHENTICATED | Key mistyped, expired, or revoked — issue a fresh key in Settings. Test connection in Agent access checks a key before you put it in a client. |
SUBSCRIPTION_REQUIRED | No active subscription on the account. |
CONSENT_REQUIRED | Re-open Settings → Connections → Agent access and grant/confirm the data-access consent. If it names cloud_sync, turn Cloud Sync on — changes need it, reads don't. |
FORBIDDEN_READONLY | The agent tried to write with a read-only key — issue a read & write key if intended. |
RATE_LIMITED | Too many calls in a short burst — wait a moment and retry. |
ENCRYPTED | Contacts, invoices, and expenses are encrypted on your devices — use the app for these. |
| Agent "can't see" recent changes | Make sure the app has synced (cloud sync enabled and online), then ask again. |
Revoke a key
Settings → Connections → Agent access → Revoke next to the key. Any agent using it loses access immediately. Issue a new key to reconnect.
Last Updated: 2026-10-22 Version: 1.176.1
