The pattern is always the same: first describe the system’s capabilities, then build interfaces on top. The domain changes, the structure of resources, tools, and risk classes remains identical. The following examples show what MCP-first looks like in concrete terms across different industries.
Real Estate
A classic real estate software thinks in surfaces: project list, contact management, exposé page, email view, reminder modal. MCP-first inverts this, capabilities come first, then the web app as a client on top of the same actions.
Classic
- Project list
- Contact management
- Exposé page
- Email view
- Reminder modal
MCP-first
- projects.list_active
- contacts.search_buyers
- exposes.generate_download_link
- emails.send_project_email
- deals.recommend_next_action
The web app calls the same actions as the agent. There is no separate agent logic, the capability layer is the shared core for both.
-
projects.list_activeLow -
projects.get_contextLow -
contacts.search_buyersLow -
contacts.get_purchase_profileLow -
exposes.generate_download_linkMedium -
emails.create_project_draftMedium -
calendar.find_free_slotLow -
calendar.create_buyer_meetingMedium -
reminders.create_follow_upLow -
emails.send_project_emailCritical -
deals.recommend_next_actionLow
Payroll & HR
Payroll systems manage some of the most sensitive data in a company. MCP-first clearly separates what an agent may read, what it may prepare, and what is executed exclusively after explicit approval.
-
employees.listLow -
employees.getMedium -
payroll_runs.listMedium -
payroll_runs.getMedium -
documents.list_missingLow -
absences.listLow -
contracts.getMedium
-
employees.createMedium -
employees.updateMedium -
documents.request_missingLow -
payroll.validate_runMedium -
payroll.explain_differenceLow -
payroll.generate_reportMedium -
absences.approveMedium -
salary.readRestricted -
payroll.exportCritical -
salary.changeCritical
Risk levels at a glance:
- Low
employee.basic.read, master data, unproblematic for the agent - Restricted
salary.read, only with additional approval, restricted sharing - Critical
payroll.export, always confirmation, audit event - Critical
salary.change, step-up auth + four-eyes principle recommended
DevOps
A DevOps control panel manages infrastructure, deployments, and secrets. The risk classes are especially important here: reading logs is harmless, reading secrets is forbidden.
-
projects.listLow -
deployments.listLow -
services.statusLow -
logs.queryMedium -
metrics.getLow -
secrets.list_metadataMedium
-
deployments.createHigh -
deployments.rollbackHigh -
services.restartHigh -
dns.create_recordHigh -
ssl.issue_certificateMedium -
firewall.update_ruleCritical -
secrets.rotateCritical -
secrets.readForbidden for AI
Risk levels at a glance:
- Medium
logs.query, autonomous execution permitted, scope limited - High
deployment.create/rollback, confirmation required - Critical
secrets.rotate/firewall.update_rule, always step-up auth - Forbidden for AI
secrets.read, not reachable for agents
CRM & Sales
A sales assistant needs access to contacts, deals, and communication, but not to system permissions, billing, or tenant management. MCP-first ensures the agent sees exactly the capabilities it needs for its assignment.
-
contacts.listLow -
contacts.searchLow -
contacts.timelineLow -
contacts.communication_historyMedium -
companies.getLow -
deals.list_activeLow
-
contacts.searchLow -
contacts.add_noteLow -
reminders.createLow -
deals.recommend_next_actionLow -
emails.create_draftMedium -
calendar.create_eventMedium -
emails.send_externalCritical
The agent may create drafts, add notes, recommend next steps, and prepare appointments. External emails are Critical, the human confirms the send, regardless of how unambiguous the context is.
Support
A support agent primarily needs rich read access: ticket history, context data, previous communication. Write actions are limited to drafts and internal notes, until explicit approval.
-
tickets.list_openLow -
tickets.getLow -
tickets.threadLow -
contacts.getLow -
contacts.timelineLow -
emails.threadMedium -
communications.timelineLow
-
tickets.get_contextLow -
contacts.searchLow -
tickets.add_internal_noteLow -
emails.create_draftMedium -
tickets.update_statusMedium -
tickets.assignMedium -
emails.send_externalCritical
The support agent gathers context, suggests responses, and adds internal notes. As soon as a response is to go externally, the same principle applies as everywhere: the human confirms, the agent prepares.