AIUnlimited
🌳

Fundamentos de IA

🌱
AI Seeds

Comece do zero

🌿
AI Sprouts

Construa bases

🌳
AI Branches

Aplique na prática

🏕️
AI Canopy

Aprofunde-se

🌲
AI Forest

Domine a IA

🔨

Mestria em IA

✏️
AI Sketch

Comece do zero

🪨
AI Chisel

Construa bases

⚒️
AI Craft

Aplique na prática

💎
AI Polish

Aprofunde-se

🏆
AI Masterpiece

Domine a IA

📘

Prática de IA

📖
Entendendo modelos open-source

Fundamentos e recursos para modelos open-source

🎯
Do problema à tarefa do modelo

Convertendo problemas de negócio em tarefas de modelo

⚡
Executando seu primeiro modelo

Veja seus primeiros resultados em 30 minutos

🔧
Fine-tuning e avaliação

Ajuste modelos e avalie o desempenho

🚀
Sistemas de aplicação

Construa aplicações IA do mundo real

🎨
IA generativa

Explore modelos AIGC open-source

🤖
Agentes

Aprenda frameworks Agent e ferramentas MCP

📐
Fundamentos complementares

Fundamentos LLM e avaliação

🎓

Claude Academia

🤖
Claude 101

Learn AI basics with Claude

💻
Claude Code 101

Code with Claude as your pair programmer

🤝
Introduction to Claude Cowork

Collaborate with Claude on complex projects

⚙️
Claude Platform 101

Build apps with the Claude API

Laboratório

7 experimentos carregados
🧬Sandbox de Rede Neural🤖IA ou Humano?🥋Dojo de Prompt Engineering🏁Corrida de Algoritmos🧠Trivia de IA🏗️Tela de design de sistemas
🎯Entrevista simuladaEntrar no Laboratório→
🚀

Desenvolvimento de carreira

🚀
Plataforma de Lançamento de Entrevistas

Comece sua jornada

🌟
Domínio Comportamental

Domine habilidades interpessoais

💻
Entrevistas Técnicas

Passe na rodada de programação

🤖
Entrevistas de IA e ML

Domínio em entrevistas de ML

🏆
Oferta e Além

Conquiste a melhor oferta

Começar
AIUnlimited

Licença MIT

沪ICP备18025655号-11

Aprender

  • Fundamentos de IA
  • Prática de IA
  • Claude Academia
  • Laboratório
  • Desenvolvimento de carreira

Comunidade

  • Sobre
  • Perguntas Frequentes

Suporte

  • Termos de Serviço
  • Política de Privacidade
  • Contato
Acadêmicos de IA e Engenharia›🤖 Agentes›Aulas›MCP: Connecting Models to Tools
🔌
Agentes • Iniciante⏱️ 25 min de leitura

MCP: Connecting Models to Tools

get_weather é o identificador exibido depois que o MS-Agent combina o nome da conexão do Servidor com o nome da ferramenta. area e target_date não são parâmetros de chamada pré-definidos, mas parâmetros estruturados gerados pelo Qwen3-4B com base em "Hangzhou amanhã". Os resultados de registro relevantes são mostrados abaixo.

ilustração

Processamento do retorno da ferramenta e resposta final

O MCP de clima recebe os parâmetros, analisa "Hangzhou" como "Hangzhou, Zhejiang, China", converte tomorrow em 7 de setembro de 2026 conforme o fuso horário local e retorna:

{
  "requested_area": "Hangzhou",
  "resolved_area": "Hangzhou, Zhejiang, China",
  "date": "2026-09-07",
  "timezone": "Asia/Shanghai",
  "weather_code": 51,
  "weather": "chuvisco fraco",
  "temperature_max_c": 29.0,
  "temperature_min_c": 21.6,
  "precipitation_probability_max_percent": 31,
  "wind_speed_max_kmh": 13.0,
  "data_source": "Open-Meteo"
}

O Qwen3-4B gera então uma resposta em linguagem natural baseada nesses resultados, listando a região realmente correspondente, a data, as condições climáticas, as temperaturas máxima e mínima, a probabilidade de precipitação e a velocidade máxima do vento. A cadeia de chamadas "entender a pergunta — selecionar a ferramenta — gerar parâmetros — executar a ferramenta — processar resultados" está assim concluída. Os resultados combinados do modelo grande são mostrados abaixo.

ilustração

Chamada do serviço fetch na praça MCP

Após a hospedagem e configuração, conecte-se primeiro diretamente ao serviço e verifique a lista de ferramentas. O exemplo de teste a seguir usa o site https://example.com.

async def direct_fetch_check():
    async with streamable_http_client(MCP_SERVER_URL) as streams:
        read_stream, write_stream, _ = streams
        async with ClientSession(read_stream, write_stream) as session:
            await session.initialize()
            tools = await session.list_tools()
            print("Ferramentas retornadas pelo servidor:", [tool.name for tool in tools.tools])
            result = await session.call_tool(
                "fetch",
                arguments={
                    "url": "https://example.com",
                    "max_length": 1000,
                    "start_index": 0,
                    "raw": False,
                },
            )
            if result.isError:
                raise RuntimeError(str(result.content)
            for block in result.content:
                if getattr(block, "type", None) == "text":
                    print(block.text)

await direct_fetch_check()
Aula 3 de 70% concluído
←What is an Agent?

Discussão

Entrar participar da discussão

Na execução real, o servidor expõe a ferramenta fetch e retorna trechos de conteúdo e links da página da web de destino. Isso confirma que o serviço de hospedagem do ModelScope, a conexão HTTP Streamable e a ferramenta de web scraping funcionam corretamente. A conexão direta ao serviço fetch hospedado pelo ModelScope, a descoberta de ferramentas e o conteúdo web retornado são mostrados abaixo.

ilustração

Após a chamada direta bem-sucedida, reutilize o Qwen3-4B configurado anteriormente para que o modelo selecione a ferramenta de forma autônoma:

fetch_agent = LLMAgent(
    config=agent_config,
    tag="fetch-demo",
    mcp_config=mcp_config,
)

await fetch_agent.run(
    "Por favor, use a ferramenta de web scraping para ler https://example.com."
    "Ao chamar, defina max_length como 1000 e retorne o principal uso descrito no corpo da página e o primeiro link."
    "Use apenas o conteúdo retornado por esta chamada de ferramenta; se a chamada falhar, explique claramente e não invente nada."
)

Os registros mostram que o MS-Agent conectou-se com sucesso ao servidor chamado fetch, o Qwen3-4B selecionou fetch---fetch e gerou os seguintes parâmetros:

{
  "url": "https://example.com",
  "max_length": 1000
}

Após a ferramenta retornar o conteúdo da web, o modelo explica que esse domínio é usado para exemplos de documentação e fornece o primeiro link retornado pela ferramenta. Ao verificar esses resultados, os parâmetros gerados pelo modelo, o retorno original da ferramenta e a resposta final devem ser verificados separadamente.

ilustração

Gerenciamento de permissões MCP

O gerenciamento de permissões MCP não deve se limitar a "este servidor pode ser conectado ou não", mas deve esclarecer três perguntas: quais recursos o usuário atual pode acessar, quais ferramentas o modelo pode invocar e qual impacto cada chamada terá nos sistemas externos. Portanto, o controle de acesso deve ser implementado camada por camada, desde o Host até o Servidor MCP e depois até os sistemas de backend, seguindo sempre o princípio do menor privilégio. Mesmo ferramentas somente leitura não devem ser consideradas sem risco por padrão, pois ainda podem ler informações sensíveis como informações de clientes, código-fonte e tokens de acesso.

Riscos de segurança MCP

O MCP permite ao modelo não apenas gerar conteúdo, mas também ler arquivos, consultar bancos de dados, chamar serviços de rede e até modificar sistemas externos. Portanto, os riscos de segurança que ele introduz são mais complexos que os de um modelo de chat normal. As fontes de risco incluem não apenas entradas do usuário, mas também páginas web, documentos, registros de banco de dados, resultados retornados por ferramentas, código do servidor e dependências de terceiros. O mais típico é a injeção de Prompt: conteúdo externo pode ocultar instruções maliciosas que incitam o modelo a continuar chamando ferramentas de arquivo, rede ou mensagens, formando uma cadeia perigosa de operações entre sistemas.

Cenários adequados para MCP

O MCP é mais adequado para cenários onde há muitas ferramentas e fontes de dados externas, onde se deseja que essas capacidades possam ser reutilizadas por diferentes modelos ou Agents, e onde se deseja que o modelo decida dinamicamente quais ferramentas chamar. As aplicações comuns incluem acesso a arquivos, consultas a bancos de dados e recuperação de informações.

O MCP também é adequado para conectar e-mails, calendários, armazenamento em nuvem, sistemas de gestão de projetos e APIs de negócios existentes. No entanto, nem todas as interfaces precisam ser transformadas em MCP. Se o fluxo de negócios é fixo, as relações de chamada são claras e os requisitos de latência são altos, uma chamada direta a uma API comum geralmente é mais simples e confiável.

Todos os dados experimentais e código deste capítulo estão disponíveis em:

https://modelscope.cn/gallery/liucong/fae5791c-a024-412f-97c3-5fb93fee708e