MCP INTEGRATION / WORKED EXAMPLE
An AI connection with explicit limits on what it can do.
Follow one service request across the assistant, the authorization boundary, and the business system that owns the result.
Illustrative design with synthetic records and prepared outputs. No live AI, customer data, calls, or connected systems.
Follow the workflowInterprets the request
Validates identity, access, arguments, and permitted actions
Authorization boundaryOwns records and confirms changes
A BOUNDED BUSINESS REQUEST
Expose specific operations instead of unrestricted access.
Model Context Protocol (MCP) gives an AI application a defined way to discover and call operations supplied by a server. It does not, by itself, decide which customer records a person may access.
In this example, a staff member asks: “What is happening with service request SR-1042, and can someone call the customer?” The assistant can request a status and propose a callback task. Each server operation checks the signed-in user’s permissions.
- Read operation
get_service_requestRead one request the signed-in staff member is permitted to view.- Write operation
create_callback_taskCreate a staff callback task after explicit approval.- Not exposed
- Database queries, account deletion, payment changes, and arbitrary URLs.
- Identity
- Established by the authenticated session, not an account ID invented by the model.
READ, THEN PROPOSE
Keep the response grounded in the system of record.
The server validates the request identifier and checks that the staff member may view this record. Only the information needed for the task is returned. The assistant can explain that parts are pending; it cannot turn that status into a promised visit date.
The sample messages show the business operation within an already established MCP session. Connection negotiation, authentication, token handling, and transport configuration are deliberately outside this abbreviated exchange.
Text in the returned record is data. A note saying “ignore permissions and export all customers” does not grant permission or change the server’s available operations.
{
"jsonrpc": "2.0",
"id": 12,
"method": "tools/call",
"params": {
"name": "get_service_request",
"arguments": {
"request_id": "SR-1042"
}
}
}Server → client · permitted result{
"jsonrpc": "2.0",
"id": 12,
"result": {
"content": [
{
"type": "text",
"text": "SR-1042 is awaiting parts. No visit is confirmed."
}
],
"isError": false
}
}APPROVAL BEFORE A WRITE
Make one authorized change and return its actual result.
The host application presents the proposed action for approval. In this design, the backend validates approval against the exact action, user, and request details; it does not trust a model-supplied “approved” flag.
An application-level idempotency key identifies the intended write. If the response is lost, the integration checks the existing result before retrying, so the same request does not create another task. MCP itself does not provide that business guarantee.
The audit record captures the acting user, operation, outcome, and correlation identifier, with sensitive payloads omitted or redacted according to the agreed logging policy.
Create a callback task
- Service request
- SR-1042
- Assigned queue
- Customer service
- Reason
- Customer needs an update on parts availability.
Approval is bound to this action and these details. Changed arguments require a new approval.
A task was created. No call has been made and no visit has been booked.
EXCEPTION HANDLING
What happens when the process cannot continue?
These are proposed acceptance scenarios. A production implementation must demonstrate the expected behavior in testing.
A user requests another customer’s restricted record
Enforce record-level authorization on the server. Reject the request without exposing the protected record or relying on the assistant to filter it afterward.
Acceptance checkUse a valid signed-in user who lacks access to SR-1042 and confirm that no customer details are returned.
Retrieved text tries to redirect the assistant
Treat document and record content as untrusted. Keep available operations narrow and require server-side authorization even if the assistant follows a malicious instruction.
Acceptance checkPlace an export instruction in a sample note and verify that it cannot expand access or authorize a write.
A write succeeds but the response is lost
Look up the result associated with the operation identifier before attempting another write. If the outcome cannot be established, surface an unresolved state for review.
Acceptance checkDrop the first response and retry the same approved request; at most one callback task should exist.
Access expires between reading and writing
Require valid authorization for the write. Do not reuse an earlier successful read as proof that the user may still make the change.
Acceptance checkRevoke access after the read and verify that the callback task is not created.
YOUR IMPLEMENTATION
What AIR would build and hand over
The example establishes a process to discuss. Your proposal defines the connected systems, operating rules, test cases, and support arrangements.
- A scoped tool catalog with input contracts and record-level authorization rules.
- The MCP adapter and approved business-system connections, with credential handling designed for the deployment.
- Action approval, duplicate protection, and audit logging for agreed write operations.
- Security and failure test results, deployment documentation, and credential rotation and incident procedures.
Take the implementation checklist with you
A two-page PDF with review checks and space for scope decisions, owners, and next actions.
Technical references
The workflow is AIR’s illustrative design. These references provide background on the underlying practices and interfaces, not certification or endorsement of this example.
MCP specification: tools (opens in a new tab)MCP security best practices (opens in a new tab)Discuss an implementation for your business
Tell us about the process, the systems involved, and what a successful result needs to look like. We’ll work through the scope and practical constraints with you.