Securing the Model Context Protocol: Defending LLMs Against Tool Poisoning and Adversarial Attacks