A developer is building an AI assistant that needs to access their company's internal wiki, query a PostgreSQL database, and run shell commands. They can implement each capability as a custom function in their code. A colleague suggests using MCP (Model Context Protocol) instead. What is MCP and what architectural problem does it solve that custom function calling does not?