Practical software guides
Choose an integration mechanism from the job it must do. A custom MCP server is useful for exposing controlled capabilities to AI clients; it is not automatically the right way to synchronize business records.
| Source | Destination | Validation |
|---|---|---|
| Contact email | CRM contact.email | Valid format; approved use |
| Requested service | CRM enquiry.service | Allowlisted value, not arbitrary instructions |
| Submission reference | CRM external_id | Unique; repeated delivery handled once |
| Attachment | Restricted document reference | Approved type/access; no public URL |
If the CRM rejects the service value, retain a visible failed event with a safe retry path. Do not create a half-complete customer record and mark the enquiry handled. Keep sensitive content and secrets out of diagnostic logs.
- API: request or update a supported resource with authenticated permission.
- Webhook: receive a provider event; verify authenticity and tolerate duplicate delivery.
- ETL/batch: transform a bounded dataset with reconciliation and versioned mappings.
- MCP: expose approved resources/tools to an AI client with access and action limits.
The MCP architecture documentation explains the protocol; it does not grant business authority or replace provider APIs. Begin with an existing supported connector and add custom code only for a demonstrated missing capability.