MP-201b · Module 3

Data Fabric Integration

4 min read

Enterprise data does not live in one place. Customer records are in Salesforce, support tickets in Jira, financial data in SAP, logs in Elasticsearch, documents in SharePoint, and metrics in Datadog. A data fabric is the architectural pattern that unifies access across these sources — and MCP is a natural fit for the AI-facing layer. Each data source gets its own MCP server, and a client can connect to multiple servers simultaneously, giving the AI model a unified view of cross-system data without building point-to-point integrations.

Multi-source aggregation is where MCP's composability shines. A client connected to a CRM server, a ticketing server, and a metrics server can correlate a customer's sales pipeline, their open support tickets, and their product usage metrics — all through standard resource reads. The AI model does the joining in its context window, using natural language reasoning to connect records across systems. No ETL pipeline, no data warehouse, no schema mapping. The trade-off is that the model needs enough context to hold data from all sources simultaneously, which puts a premium on efficient resource design.

Governance in a multi-server architecture requires coordination. Each MCP server enforces its own access control and masking rules, but the organization needs a consistent policy layer. A governance overlay — implemented as a proxy MCP server or a shared policy engine — can enforce cross-cutting rules: data classification labels, retention policies, cross-system query limits, and aggregate access budgets. This prevents a scenario where the AI bypasses access controls by reading the same data through a less-restricted server.

{
  "mcpServers": {
    "crm": {
      "command": "npx",
      "args": ["-y", "@company/mcp-salesforce"],
      "env": { "SF_TOKEN": "${SALESFORCE_TOKEN}" }
    },
    "tickets": {
      "command": "npx",
      "args": ["-y", "@company/mcp-jira"],
      "env": { "JIRA_TOKEN": "${JIRA_API_TOKEN}" }
    },
    "metrics": {
      "command": "npx",
      "args": ["-y", "@company/mcp-datadog"],
      "env": { "DD_API_KEY": "${DATADOG_API_KEY}" }
    },
    "documents": {
      "command": "npx",
      "args": ["-y", "@company/mcp-sharepoint"],
      "env": { "SP_TOKEN": "${SHAREPOINT_TOKEN}" }
    },
    "governance": {
      "command": "npx",
      "args": ["-y", "@company/mcp-governance-proxy"],
      "env": {
        "POLICY_ENGINE_URL": "${POLICY_ENGINE_URL}",
        "AUDIT_LOG_STREAM": "${AUDIT_LOG_ARN}"
      }
    }
  }
}
  1. Map your data landscape List every data source the AI needs to access. For each source, identify the owner, authentication method, sensitivity level, and change frequency. This becomes your MCP server inventory.
  2. Deploy servers incrementally Start with the two highest-value data sources. Get them working with access control and audit logging before adding more. Multi-server complexity grows faster than you expect.
  3. Implement a governance layer Create a shared policy engine that all MCP servers consult for access decisions. Centralize data classification, masking rules, and audit requirements so they are consistent across every server in your fabric.