> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coffeechats.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Permissions reference

> Every permission you can grant to a Coffee Chats MCP connection and the tools that use it.

When an agent asks to connect, Coffee Chats shows you a page headed Authorize access, listing the permissions it asked for. This page is generated from the same source as that page, so the wording below is the wording you will read there.

A permission you can grant appears in this table. Nothing else can be asked for.

| Permission | What the Authorize access page says | Kind | Tools that use it |
| - | - | - | - |
| `billing:read` | Read your subscription, usage, and referral information | read | `billing.credit_history.list`, `billing.limits.get`, `billing.referrals.get`, `billing.subscription.get`, `billing.usage.get` |
| `booking:read` | Read your booking settings, event types, bookings, and booking conflicts | read | `booking.conflicts.list`, `booking.event_types.get`, `booking.event_types.list`, `booking.event_types.questions.list`, `booking.profile.get`, `booking.records.answers.list`, `booking.records.get`, `booking.records.list`, `booking.settings.get` |
| `booking:write` | Update the title, description and duration of your booking event types, and archive or restore them, after you approve the change | write | `booking_archive_event_type`, `booking_update_event_type` |
| `campaigns:read` | Read your campaigns, their selected companies, and outreach templates | read | `campaigns.companies.list`, `campaigns.contact_stats.get`, `campaigns.get`, `campaigns.list`, `campaigns.template.get` |
| `campaigns:write` | Pause a campaign's sending, and change a campaign's name, description and goal | write | `campaign_pause_sending`, `campaigns.details.update` |
| `contacts:read` | Read your contacts, network information and research results | read | `contacts.get`, `contacts.import.check`, `contacts.list`, `contacts.network.stats.get`, `contacts.notes.get`, `contacts.research.get`, `contacts.research.start`, `contacts.stats.get`, `contacts.tags.get`, `contacts.update` |
| `contacts:write` | Add contacts, update the notes and tags on your contacts, and change their details and status after you approve each change | write | `contacts.bulk_create`, `contacts.create`, `contacts.import`, `contacts.notes.update`, `contacts.tags.update`, `contacts.update`, `contacts.update.get` |
| `documents:generate` | Write resumes, and tailored resumes and cover letters for your applications, which uses credits | costed | `documents.jobs.tailor`, `documents.resumes.generate` |
| `documents:read` | Read your resumes and the tailored resumes and cover letters for your applications, with their text and download links that work for 15 minutes | read | `documents.jobs.get`, `documents.jobs.tailor`, `documents.resumes.generate`, `documents.resumes.get` |
| `documents:write` | Edit sections of your resumes and cover letters | write | `documents.section.update` |
| `integrations:read` | Read your connected calendar sources and their stored connection status | read | `calendars.selected.list`, `calendars.sources.get`, `calendars.sources.list`, `calendars.status.get` |
| `jobs:read` | Read your internship applications, the referral requests on them and individual job postings, search open job postings with the names of your contacts at each company, and read whether the Chrome extension is running and the status of your browser applications | read | `jobs.applications.get`, `jobs.applications.import.check`, `jobs.applications.list`, `jobs.applications.referrals.list`, `jobs.apply_batches.list`, `jobs.postings.get`, `jobs.search` |
| `jobs:write` | Add internship applications you plan to apply to or already applied to, edit their apply URL, notes and deadline, update their stage and priority, and queue a browser apply | write | `jobs.applications.apply`, `jobs.applications.create`, `jobs.applications.import`, `jobs.applications.stage.update`, `jobs.applications.update` |
| `mail:read` | Read your outreach templates, thank-you drafts, email delivery jobs, and your outreach settings | read | `campaigns.template.get`, `mail.jobs.list`, `mail.outreach.get`, `meetings.thank_you.get` |
| `mail:send` | Send a thank-you email you already drafted, to the address stored on the contact linked to that meeting, when you read the exact message and approve it, and send one stored outreach draft you already wrote, and queue a checked table of your own outreach drafts | write | `mail.batch.enqueue`, `mail.drafts.send`, `meeting_thank_you_send` |
| `meetings:read` | Read your meetings and meeting details | read | `meetings.get`, `meetings.insights.get`, `meetings.list`, `meetings.notes.get`, `meetings.outcome.get`, `meetings.thank_you.get` |
| `meetings:transcript:read` | Read meeting transcripts when participant consent allows it | read | `meetings.transcript.list` |
| `meetings:write` | Update your meeting notes and meeting outcome | write | `meetings.notes.update`, `meetings.outcome.update` |
| `offline_access` | Stay connected by issuing rotating refresh credentials | refresh | no tool uses it |
| `profile:read` | Read your Coffee Chats profile and preferences | read | `profile.education.list`, `profile.get`, `profile.job_preferences.get`, `profile.job_search_stage.get` |
| `profile:write` | Update your profile preferences, and propose booking page changes you approve | write | `actions.cancel`, `booking_update_page_text`, `booking_update_page_visibility`, `booking_update_scheduling_rules`, `mail.outreach.update`, `profile.job_search_stage.update`, `profile.update` |
| `research:run` | Start research on your contacts that uses credits, after you approve each batch in the browser | costed | `contacts.research.start` |

## Staying connected

`offline_access` is not a permission to read anything. It lets the agent host keep the connection alive with rotating refresh credentials instead of sending you back through sign-in. No tool requires it, which is why its last column reads "no tool uses it".

## Reading the table

The last column is the honest answer about what a permission buys. It lists the tools that use the permission today, generated from the same catalogue the connector registers. If a consent sentence ever sounds wider than that list, believe the list.

The [tool reference](/mcp/tools/overview.md) describes what each of those tools returns.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.