openai function calling vs mcp