Dia 23/30: Expondo Ferramentas com MCP
Eu ainda me lembro da frustração quando o bot de suporte da nossa equipe, alimentado pelo LangGraph e MCP, não conseguia reter o contexto entre as interações dos usuários. Era como se o bot tivesse um caso de amnésia conversacional, forçando os usuários a se repetirem incessantemente. Mais tarde, descobrimos que o problema vinha da nossa falta de um servidor de ferramentas centralizado, tornando impossível para o bot acessar e aproveitar ferramentas externas de maneira escalável. Essa experiência nos ensinou a importância de construir um servidor MCP robusto para expor ferramentas às nossas aplicações de IA.
Neste post, vamos percorrer o processo de configuração de um servidor MCP, focando na exposição de uma única ferramenta para qualquer aplicativo de IA compatível com MCP. Vamos considerar uma ferramenta simples que realiza análise de sentimento em entradas de texto. Queremos que essa ferramenta seja acessível a partir do nosso bot de suporte, permitindo que ele avalie o sentimento do usuário e responda de acordo.
O primeiro passo na construção de um servidor MCP é definir a ferramenta e sua interface. O MCP fornece um conjunto de APIs e protocolos para definição de ferramentas, incluindo a classe Tool e a interface MCPTool. Usaremos esses recursos para criar nossa ferramenta de análise de sentimento. Aqui está um exemplo simplificado de como poderíamos definir essa ferramenta em Python:
from MCP import Tool, MCPTool
class SentimentAnalysisTool(Tool, MCPTool):
def __init__(self):
super().__init__()
self.name = "SentimentAnalysis"
self.description = "Analisa o sentimento do texto de entrada"
def execute(self, input_text):
# Lógica simplificada de análise de sentimento para demonstração
if "love" in input_text or "great" in input_text:
return "Positivo"
elif "hate" in input_text or "bad" in input_text:
return "Negativo"
else:
return "Neutro"
# Cria uma instância da nossa ferramenta
sentiment_tool = SentimentAnalysisTool()
Em seguida, precisamos configurar um servidor MCP para hospedar nossa ferramenta. Os servidores MCP podem ser configurados para expor ferramentas por meio de várias interfaces, incluindo REST e gRPC. Para simplificar, vamos usar um servidor REST básico. Usaremos o Flask, um framework web Python leve, para criar nosso servidor. Aqui está como poderíamos configurá-lo:
from flask import Flask, request, jsonify
from MCP import ToolServer
app = Flask(__name__)
# Cria um servidor de ferramentas MCP
tool_server = ToolServer()
# Registra nossa ferramenta de análise de sentimento com o servidor
tool_server.register_tool(sentiment_tool)
# Define uma rota para execução da ferramenta
@app.route('/tools/<tool_name>/execute', methods=['POST'])
def execute_tool(tool_name):
tool = tool_server.get_tool(tool_name)
if tool:
input_text = request.json['input_text']
result = tool.execute(input_text)
return jsonify({'result': result})
else:
return jsonify({'error': 'Ferramenta não encontrada'}), 404
if __name__ == '__main__':
app.run(debug=True)
Com nosso servidor MCP em funcionamento, nosso bot de suporte (ou qualquer outro aplicativo de IA compatível com MCP) agora pode acessar a análise de sentimento e responder de maneira adequada.
A construção de um servidor MCP pode melhorar a eficiência de bots de suporte, permitindo que eles acessem ferramentas externas e mantenham o contexto nas interações. Isso é crucial para empresas que buscam aprimorar a experiência do cliente com IA.
