Extensibilidade da Cortex Code CLI

É possível estender a Cortex Code CLI com comportamentos personalizados, agentes especializados, ganchos de ciclo de vida e integrações de ferramentas externas. Este tópico aborda os quatro principais mecanismos de extensibilidade:

Habilidades

Arquivos Markdown que injetam conhecimento e instruções específicos do domínio em conversas. Use as habilidades para treinar o Cortex Code sobre as práticas recomendadas, os padrões de codificação ou os fluxos de trabalho especializados da sua organização.

Subagentes

Agentes de AI especializados e autônomos que processam as tarefas específicas de forma independente. Os subagentes permitem execução paralela, experiência focada e fluxos de trabalho complexos de várias etapas.

Ganchos

Scripts que interceptam e personalizam o comportamento do Cortex Code em pontos importantes do ciclo de vida. Use os ganchos para validar entradas de ferramentas, registrar operações ou aplicar políticas.

MCP (Model Context Protocol)

Um padrão aberto para conectar o Cortex Code a ferramentas e fontes de dados externas, como GitHub, Jira e bancos de dados.

Habilidades

As habilidades estendem o Cortex Code com conhecimento e recursos específicos do domínio, injetando instruções especializadas e permitindo ferramentas adicionais.

O que são habilidades?

As habilidades são arquivos Markdown com:

  • Instruções específicas do domínio e práticas recomendadas

  • Quando usar a habilidade

  • Fluxos de trabalho de exemplo

  • Configurações opcionais da ferramenta

Quando você invoca uma habilidade, as instruções dela são injetadas no contexto da conversa.

Usando as habilidades

Execute /skill list para listar as habilidades disponíveis e invoque-as pelo nome para carregá-las na conversa.

Locais das habilidades

As habilidades são carregadas de vários locais, listados abaixo em ordem de prioridade da mais alta para a mais baixa:

Local

Caminho

Escopo

Projeto

.cortex/skills/ ou .claude/skills/

Projeto

Usuário

~/.snowflake/cortex/skills/ ou ~/.claude/skills/

Usuário

Global

~/.snowflake/cortex/skills/

Sistema

Sessão

Adicionado temporariamente

Sessão

Remoto

Clonado do git

Cache

Em pacote

Integrado ao Cortex Code

Sistema

Criando habilidades personalizadas

As habilidades são diretórios que contêm um arquivo SKILL.md com as instruções de cada habilidade, além de exemplos e modelos opcionais. Você pode criar habilidades em um dos seguintes locais:

Escopo

Caminho

Projeto

.cortex/commands/ ou .claude/commands/ no diretório do projeto

Global

~/.snowflake/cortex/commands/

Usuário

~/.claude/commands/

Para começar a criar uma habilidade personalizada:

  1. Crie o diretório de habilidades. Este exemplo cria um diretório de habilidades chamado «my-skill» no local do projeto:

    mkdir -p .cortex/skills/my-skill
    
    Copy
  2. Crie o SKILL.md nesse diretório e adicione as instruções da habilidade. Este exemplo mostra a estrutura básica:

    ---
    name: my-skill
    description: Brief description of what this skill does
    tools:
    - optional_tool_name
    ---
    
    # When to Use
    
    - Describe when this skill should be invoked
    - List specific user intents or scenarios
    
    # What This Skill Provides
    
    Explain the capabilities and knowledge this skill adds.
    
    # Instructions
    
    Step-by-step guidance for the AI when this skill is active.
    
    ## Best Practices
    
    - Best practice 1
    - Best practice 2
    
    ## Common Patterns
    
    ### Pattern 1
    Description and example.
    
    ### Pattern 2
    Description and example.
    
    # Examples
    
    ## Example 1: Basic Usage
    User: $my-skill Do something Assistant: [Expected behavior]
    
    
    ## Example 2: Advanced Usage
    User: $my-skill Complex task with @file.txt Assistant: [Expected behavior]
    
    Copy
  3. Verifique se sua habilidade aparece na listagem usando o comando $$:

    > $$
    
    Copy

    Se estiver listada, ela foi carregada corretamente e está disponível para uso.

  4. Use sua habilidades em uma conversa:

    > $my-skill Test it out
    
    Copy

Configurações da habilidade personalizada

As opções de cada habilidade são definidas no frontmatter do YAML, na parte superior do SKILL.md. As seguintes opções são suportadas:

Opção

Descrição

name: <skill name>

Obrigatório: identificador exclusivo

description: <description>

Obrigatório: exibido na listagem $$

tools:

Opcional: ferramentas para habilitar nesta habilidade

  - tool_name_1

  - tool_name_2

Este exemplo mostra uma habilidade que utiliza duas ferramentas:

---
name: database-admin
description: Database administration tasks
tools:
- snowflake_sql_execute
- snowflake_object_search
---
Copy

Práticas recomendadas para habilidades

Para escrever habilidades eficazes, siga estas diretrizes:

  • Seja específico: instruções claras produzem melhores resultados

  • Dê exemplos: mostre as entradas e saídas esperadas

  • Inclua casos de borda: tratamento de erros e exceções comuns

  • Mantenha o foco: uma habilidade é igual a um domínio ou recurso

Gerenciando habilidades

Comandos com barra

Descrição

/skill

Gerenciador de habilidades interativo

/skill list

Listar todas as habilidades

/skill sync <nome>

Sincronização com a localização global

/skill add <git-url>

Adicionar habilidade remota

Conflitos de habilidades

Quando a mesma habilidade existe em vários locais compatíveis e os conteúdos são diferentes, ocorre um conflito, e um indicador de conflito aparece na listagem de habilidades. Use /skill sync para resolver conflitos sincronizando o escopo local com o escopo global.

Compondo habilidades

As habilidades personalizadas podem fazer referência a outras habilidades ou combinar habilidades com o contexto do arquivo:

> $code-review Review @src/auth.py following $security-guidelines
Copy

Habilidades remotas

É possível adicionar habilidades remotas de repositórios Git. Um repositório pode conter qualquer número de habilidades. O layout das habilidades remotas deve corresponder à estrutura da habilidade local.

/skill add https://github.com/org/my-skills.git
Copy

As habilidades remotas são armazenadas em cache localmente. Para atualizá-las, use /skill sync.

Referência de comandos de habilidade

Comandos CLI:

cortex skill list
cortex skill add <path>
cortex skill remove <path>
Copy

Comandos com barra:

/skill list
/skill add <path>
Copy

Solução de problemas de habilidades

A habilidade não é ativada
  • Use uma linguagem específica relacionada ao propósito da habilidade

  • Mencione a habilidade explicitamente: «use a otimização de exibição semântica»

  • Verifique a disponibilidade: /skill list

Comportamento inesperado
  • Forneça mais contexto sobre seu objetivo

  • Tente uma solicitação mais específica

  • Envie feedback: /feedback

Subagentes

Os subagentes são agentes de AI especializados e autônomos que processam as tarefas específicas de forma independente. Eles permitem execução paralela, experiência focada e fluxos de trabalho complexos de várias etapas.

Subagentes:

  • Executados de forma independente da conversa principal

  • Têm o próprio contexto e acesso a ferramentas

  • Podem ser executados em primeiro ou segundo plano

  • Especializados em domínios ou tarefas específicos

Tipos de subagentes internos

general-purpose

Agente multiuso com acesso a todas as ferramentas. É ideal para:

  • Tarefas de pesquisa complexas

  • Alterações de código em várias etapas

  • Tarefas que exigem várias ferramentas

explore

Especialista em exploração rápida da base de código. Ideal para

  • Localizar arquivos por padrões

  • Pesquisar código para palavras-chave

  • Entender a estrutura da base de código

  • Reconhecimento rápido

Você pode especificar o nível de detalhes da pesquisa do agente Explore:

  • "quick": pesquisa básica

  • "medium": exploração moderada

  • "very thorough": análise abrangente

plan

Projeta e descreve planos de implementação complexos. Ideal para

  • Criar estratégias de implementação

  • Identificar arquivos críticos

  • Avaliar vantagens e desvantagens arquitetônicas

  • Criar planos passo a passo

feedback

Coleta de feedbacks estruturada. Ideal para

  • Reunir entradas dos usuários

  • Perguntas estruturadas

  • Feedback de sessão

Executando subagentes

O Cortex Code delega automaticamente a subagentes quando apropriado. Por exemplo, esta consulta delega a um agente Explore:

> Find all files that import the authentication module
Copy

Você também pode solicitar explicitamente tipos de subagentes específicos por nome:

> Use an Explore agent to find all database query definitions
> Use the Explore agent to find all API endpoint definitions
> Launch a Plan agent to design the authentication refactor
Copy

Você também pode solicitar que vários subagentes sejam executados em paralelo para lidar com diferentes aspectos de uma tarefa:

> In parallel, search for all test files and all config files
Copy

Os agentes podem ser executados em segundo plano enquanto você continua seu trabalho:

> Run a background agent to refactor all the test files
Copy

O agente é iniciado imediatamente e retorna um ID de agente para rastreamento. Quando o agente for concluído, você poderá recuperar a saída usando esse ID:

> Get the output from agent abc1234
Copy

Para monitorar o status de todos os subagentes em execução, use o comando /agents (ou pressione Ctrl-B) para abrir o visualizador de processos em segundo plano. É possível parar um agente em execução usando o ID dele ou com a interface /agents:

> kill agent abc1234
Copy

Os agentes encerrados param de ser executados, mas mantêm o contexto indefinidamente. Você pode retomar um agente encerrado usando o ID dele:

> Resume agent abc1234 and continue from where it left off
Copy

Tipos de agente

Autônomo

Um agente autônomo é executado sem interação do usuário. O agente:

  • é concluído forma independente;

  • nunca é bloqueado para perguntas;

  • é adequado para tarefas bem definidas.

Não autônomo

Um agente não autônomo pode pausar a execução para fazer perguntas ao usuário. O agente:

  • pode fazer perguntas de esclarecimento;

  • pode solicitar permissões interativamente;

  • é adequado para tarefas que precisam de orientação.

Personalizado

Os agentes personalizados são subagentes definidos pelo usuário com prompts e configurações especializados. Você cria agentes adaptados a domínios ou fluxos de trabalho específicos em arquivos Markdown, semelhantes às habilidades personalizadas.

Criando subagentes personalizados

Os subagentes personalizados são definidos em arquivos Markdown com frontmatter do YAML. O frontmatter especifica o nome, a descrição, o acesso a ferramentas e o modelo do agente. O corpo contém o prompt do sistema que orienta o comportamento do agente.

Você pode armazenar arquivos Markdown de agentes personalizados em um destes três locais:

Escopo

Caminho

Projeto

.cortex/agents/ ou .claude/agents/

Global

~/.snowflake/cortex/agents/

Usuário

~/.claude/agents/

Veja a seguir o formato de uma definição de agente:

---
name: my-agent
description: What this agent specializes in
tools:

- Bash
- Read
- Write

model: claude-sonnet-4-5
---

# System Prompt

You are a specialized agent for [domain].

## Your Responsibilities

1. Task 1
2. Task 2

## Guidelines

- Guideline 1
- Guideline 2

## Output Format

Describe expected output format.
Copy

Exemplo: Agente executor de teste

O arquivo Markdown a seguir define um agente executor de teste personalizado que executa testes e resume os resultados:

---
name: test-runner
description: Runs tests and reports results
tools:
- Bash
- Read
- Grep
---

# Test Runner Agent

You run tests and provide clear reports of the results.

## Process

1. Identify the test framework (pytest, jest, go test, etc.)
2. Run appropriate test command
3. Parse and summarize results
4. Highlight failures with relevant code context

## Output Format

## Test Results Summary
- Total: X
- Passed: Y
- Failed: Z

## Failures
### Test Name
- File: path/to/file.py
- Error: Description
- Relevant code snippet
Copy

Configuração do agente

A configuração de um agente personalizado é especificada no frontmatter do YAML do arquivo Markdown.

Acesso a ferramentas

Os agentes podem especificar a quais ferramentas têm acesso:

tools:
- "*"           # All tools
- Bash          # Specific tools
- Read
- Write
Copy
Seleção do modelo

É possível escolher um modelo para um agente específico. Ele substitui o modelo padrão da sessão.

model: claude-sonnet-4-5   # Specific model
model: auto                # Cost-optimized
Copy

Isolamento da árvore de trabalho

Os agentes podem ser executados em árvores de trabalho ou ramificações git isoladas. Quando você solicita o isolamento da árvore de trabalho, a Cortex Code CLI cria uma árvore de trabalho git separada na qual o agente vai operar. Isso permite que vários agentes sejam executados em paralelo sem alterações conflitantes e é fácil de limpar posteriormente. Árvores de trabalho isoladas são particularmente úteis para exploração e experimentação. A ramificação git criada pelo agente é chamada agent/<agentId>.

Para usar o isolamento da árvore de trabalho, basta incluí-lo no prompt:

> Run a background agent with worktree isolation to implement feature X
Copy

Padrão swarm (enxame)

Você pode iniciar um «enxame» de agentes para processar diferentes aspectos de uma tarefa complexa em paralelo. Cada agente opera de forma independente, e os resultados são agregados quando todos os agentes são concluídos. Todos os tipos de agentes podem participar de um swarm.

Veja a seguir alguns casos de uso de swarms:

  • Análise de código: vários agentes analisam diferentes aspectos

  • Refatoração: agentes paralelos processam arquivos diferentes

  • Teste: os agentes executam diferentes conjuntos de testes

  • Documentação: os agentes documentam diferentes componentes

Para criar um swarm, basta descrever os diferentes agentes que deseja iniciar:

> Launch a swarm of agents:
> 1. Explore agent to find all database queries
> 2. Explore agent to find all API endpoints
> 3. Explore agent to find all test files
Copy

Práticas recomendadas para subagentes

Use os subagentes para:

  • Tarefas complexas: divisão em subtarefas para execução paralela

  • Exploração: uso do agente Explore para pesquisas de base de código

  • Planejamento: uso do agente Plan antes das principais alterações

  • Trabalho em segundo plano: tarefas de longa duração que não precisam de atenção

Os subagentes podem não ser ideais para:

  • Consultas simples: as ferramentas diretas são mais rápidas

  • Edições de arquivo único: o agente principal é mais eficiente

  • Trabalho interativo: quando você precisa de feedback imediato

Geralmente, os prompts detalhados são mais eficientes:

Boa

Encontre todos os arquivos Python que contêm consultas de banco de dados e liste-os com os números das linhas

Melhor

Use o agente Explore (muito detalhado) para encontrar todos os arquivos Python contendo consultas de banco de dados. Para cada arquivo, extraia os padrões de consulta e identifique os possíveis riscos de injeção de SQL.

Visualizando os subagentes ativos

Comando /agents

Emita o comando /agents em uma sessão do Cortex Code para abrir o visualizador de agente interativo. Essa interface mostra todos os agentes em execução, os respectivos tipos, status e prévias de saída.

Visualizador de processo em segundo plano

Em uma sessão da Cortex Code CLI, pressione Ctrl-B para visualizar:

  • Todos os processos em segundo plano

  • Sessões do agente

  • Processos Bash

Limites do agente

Os seguintes limites se aplicam a subagentes na Cortex Code CLI:

  • Máximo de 50 agentes simultâneos em segundo plano

  • Os agentes herdam as permissões da sessão

  • Os agentes em segundo plano não podem gerar outros agentes em segundo plano

Ganchos

Os ganchos permitem interceptar e personalizar o comportamento do Cortex Code em pontos importantes do ciclo de vida. Um gancho é um prompt ou script do shell que é executado em resposta a um evento:

  • Antes do uso da ferramenta: validar ou modificar as entradas da ferramenta

  • Após o uso da ferramenta: adicionar o contexto ou registrar os resultados

  • Na entrada do usuário: injetar o contexto da sessão

  • Nos eventos de sessão: inicializar ou limpar

Eventos de gancho

Os seguintes eventos podem acionar ganchos:

Evento

Descrição

Pode bloquear

PreToolUse

Antes da execução da ferramenta

Sim

PostToolUse

Após a execução da ferramenta

Não

PermissionRequest

Quando a permissão é necessária

Sim

UserPromptSubmit

Quando o usuário envia o prompt

Não

SessionStart

Quando a sessão começa

Não

SessionEnd

Quando a sessão termina

Não

PreCompact

Antes da compactação do contexto

Não

Parada

Quando o usuário interrompe o Claude

Não

SubagentStop

Quando o subagente é interrompido

Não

Notificação

Nas notificações do sistema

Não

Configuração

Durante a inicialização

Não

Configurando ganchos

Os ganchos são definidos em arquivos de configurações, que podem residir em qualquer diretório de configuração (listados abaixo em ordem de prioridade da mais alta para a mais baixa):

Local

Caminho

Local

.claude/settings.local.json ou .cortex/settings.local.json

Projeto

.claude/settings.json ou .cortex/settings.json

Usuário

~/.claude/settings.json

Global

~/.snowflake/cortex/hooks.json

Os ganchos são definidos em formato JSON, especificando o evento, a correspondência de ferramenta e as ações do gancho. Veja abaixo um exemplo simples de gancho para pré-uso da ferramenta:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "bash .claude/hooks/validate-bash.sh",
            "timeout": 60
          }
        ]
      }
    ]
  }
}
Copy

Dois tipos de gancho são compatíveis: de comando e de prompt.

  • Os ganchos de comando executam comandos ou scripts do shell.

    {
      "type": "command",
      "command": "bash /path/to/script.sh",
      "timeout": 60,
      "enabled": true
    }
    
    Copy
  • Os ganchos de prompt são avaliados como prompts de linguagem natural para um modelo de linguagem.

    {
      "type": "prompt",
      "prompt": "Is this command safe? $ARGUMENTS",
      "timeout": 30
    }
    
    Copy

Para executar o gancho somente em ferramentas específicas, insira os nomes das ferramentas ou os padrões no campo matcher. Por exemplo, para corresponder a todas as ferramentas SQL, use "matcher": "SQL*". Você pode usar expressões regulares para corresponder a várias ferramentas.

Padrão

Corresponde a

*

Todas as ferramentas

Bash

Apenas Bash

Edit|Write

Edição ou gravação

mcp__.*

Todas as ferramentas MCP

Notebook.*

NotebookEdit, NotebookExecute

Escrevendo scripts de gancho

Os scripts de gancho aceitam uma entrada JSON via entrada padrão e retornam uma saída JSON via saída padrão. A saída contém um campo indicando se a operação é permitida ou negada. Opcionalmente, o script de gancho pode retornar uma versão modificada da entrada da ferramenta.

Entrada de amostra:

{
  "session_id": "abc123",
  "transcript_path": "/path/to/transcript.json",
  "cwd": "/working/directory",
  "permission_mode": "default",
  "hook_event_name": "PreToolUse",
  "tool_name": "Bash",
  "tool_input": {
    "command": "ls -la"
  }
}
Copy

Exemplo de saída:

{
  "decision": "allow",
  "systemMessage": "Note: This operation was validated.",
  "hookSpecificOutput": {
    "hookEventName": "PreToolUse",
    "updatedInput": {
      "command": "ls -la --color=never"
    }
  }
}
Copy

O código de retorno indica se a operação deve ser bloqueada:

  • 0: não bloquear

  • 2: bloquear

Essas informações também podem ser retornadas como parte da saída JSON, como mostrado abaixo.

{
  "decision": "block",
  "reason": "Operation not allowed"
}
Copy

As seguintes variáveis de ambiente estão disponíveis nos scripts de gancho:

Variável

Descrição

CORTEX_PROJECT_DIR

Caminho do diretório do projeto

CORTEX_CODE_REMOTE

"true" se contexto da web

CORTEX_ENV_FILE

Caminho do arquivo env persistente

Exemplos de ganchos

Os exemplos a seguir ilustram a saída possível para casos de uso de gancho comuns.

Modificar entrada da ferramenta

{
  "hookSpecificOutput": {
    "hookEventName": "PreToolUse",
    "updatedInput": {
      "command": "modified command"
    }
  }
}
Copy

Adicionar contexto

{
  "hookSpecificOutput": {
    "hookEventName": "PostToolUse",
    "additionalContext": "Note: File was recently modified."
  }
}
Copy

Mostrar mensagens do sistema

{
  "systemMessage": "Warning: This operation may take a while."
}
Copy

Decisões de permissão

{
  "hookSpecificOutput": {
    "hookEventName": "PreToolUse",
    "permissionDecision": "allow",
    "permissionDecisionReason": "Auto-approved by policy"
  }
}
Copy

Ganchos remotos

Você pode referenciar scripts em repositórios git como mostrado abaixo:

{
  "type": "command",
  "command": "bash",
  "source": {
    "source": "github:org/hooks-repo/scripts/validate.sh",
    "ref": "main"
  }
}
Copy

Práticas recomendadas para ganchos

  • Mantenha os ganchos rápidos: o tempo limite padrão é de 60 segundos

  • Trate os erros de forma adequada: saída de retorno 0 em caso de dúvida

  • Registre em log para depuração: grave em arquivos para solução de problemas

  • Use correspondências: foque em ferramentas específicas, não todas

  • Faça um teste detalhado: use o gerenciador de ganchos para verificar o comportamento

Model Context Protocol (MCP)

Você pode conectar a Cortex Code CLI a ferramentas e fontes de dados externas com o Model Context Protocol (MCP). O MCP é um padrão aberto para conectar agentes de AI a ferramentas externas, como GitHub, Jira e bancos de dados. Depois de configurado, os servidores MCP darão ao Cortex Code acesso a ferramentas hospedadas, além dos recursos internos.

Tipos de transporte

O Cortex Code oferece suporte a três tipos de transporte MCP:

Tipo

Caso de uso

Conexão

stdio

Ferramentas locais, wrappers de CLI

Subprocesso com stdin/stdout

http

Serviços web, APIs

Solicitações de HTTP

sse

Serviços em tempo real

Eventos enviados pelo servidor

Você pode usar o OAuth para autenticação em servidores MCP por HTTP. A primeira vez que você se conecta a um servidor configurado para OAuth, a Cortex Code CLI abre uma janela do navegador, na qual o usuário se autentica. O token resultante é armazenado em ~/.snowflake/cortex/mcp_oauth/ e atualizado automaticamente conforme necessário. Veja a seguir uma configuração do OAuth de amostra:

{
   "oauth": {
      "client_id": "pre-registered-client-id",
      "client_name": "My Client",
      "redirect_port": 8585,
      "scope": "openid mcp read write",
      "authorization_server_url": "https://auth.example.com"
   }
}
Copy

Gerenciando servidores MCP

Você pode emitir o comando /mcp em uma sessão interativa da Cortex Code CLI para abrir um visualizador de status de MCP interativo. Use o comando cortex mcp para gerenciar as configurações do servidor MCP pela linha de comando.

Comando

Descrição

Linha de comando

Descrição

cortex mcp add

Adicionar um novo servidor (veja abaixo)

cortex mcp list

Listar os servidores configurados

cortex mcp get <server>

Obter detalhes de um servidor específico

cortex mcp remove <server>

Remover um servidor

cortex mcp start <server>

Verificar o status do servidor e as ferramentas disponíveis

Adicionando um servidor

O comando cortex mcp add aceita opções para configuração de servidores.

cortex mcp add <name> <command> [args...]
Copy

Opções:

--transport, -t    Transport type (stdio, http, sse)
--type             Alias for --transport
--env, -e          Environment variable (KEY=value)
--header, -H       HTTP header
--timeout          Connection timeout in ms
Copy

Nota

As ferramentas MCP são definidas como namespaces para evitar conflitos, usando o formato abaixo:

mcp__{server-name}__{tool-name}
Copy

Por exemplo, uma ferramenta chamada search do servidor github recebe o nome mcp__github__search.

Configuração do MCP

A configuração do servidor MCP é armazenada em ~/.snowflake/cortex/mcp.json sob a chave mcpServers. O exemplo a seguir mostra a estrutura de um arquivo de configuração com um servidor MCP único:

{
   "mcpServers": {
      "server-name": {
         "type": "stdio",
         "command": "command-to-run",
         "args": ["arg1", "arg2"]
      }
   }
}
Copy

Variáveis de ambiente

Use a sintaxe ${VAR} ou $VAR para inserir os valores das variáveis de ambiente no arquivo de configuração.

{
"mcpServers": {
   "my-server": {
      "type": "http",
      "url": "https://api.example.com",
      "headers": {
      "Authorization": "Bearer ${MY_API_TOKEN}"
      }
   }
}
Copy

Importante

É uma prática recomendada usar variáveis de ambiente para credenciais. Nunca codifique tokens em mcp.json. Adicione uma linha ao perfil do shell, como ~/.bashrc ou ~/.zshrc, da seguinte forma:

export GITHUB_TOKEN="your_token_here"
Copy

Configuração pela linha de comando

Para adicionar um servidor MCP usando a linha de comando, execute o comando cortex mcp add. Por exemplo:

Ação

Comando

Adicionar servidor stdio

cortex mcp add git-server uvx mcp-server-git

Adicionar servidor HTTP

cortex mcp add api-server https://api.example.com --type http

Adicionar com variáveis de ambiente

cortex mcp add my-server npx my-mcp-server -e API_KEY=secret

Adicionar com cabeçalhos

cortex mcp add my-server https://api.example.com -H "Authorization: Bearer token"

Usando as ferramentas MCP

Após a configuração, as ferramentas MCP estarão disponíveis automaticamente nas sessões da Cortex Code CLI. Você as invoca por meio de comandos de linguagem natural:

Show me recent GitHub pull requests
Create a Jira ticket for this bug
Query the PostgreSQL database for user activity
Copy

As permissões são solicitadas no primeiro uso. Configure os padrões em ~/.snowflake/cortex/permissions.json:

{
  "allow": ["mcp__github__read_file", "mcp__github__list_repos"],
  "deny": ["mcp__github__delete_repo"]
}
Copy

Configurações do MCP de amostra

Os exemplos a seguir ilustram as configurações do servidorMCP para casos de uso comuns.

Servidor Git (stdio)

{
  "mcpServers": {
    "git": {
      "type": "stdio",
      "command": "uvx",
      "args": ["mcp-server-git", "--repository", "/path/to/repo"]
    }
  }
}
Copy

API HTTP com OAuth

{
  "mcpServers": {
    "my-api": {
      "type": "http",
      "url": "https://api.example.com/mcp",
      "oauth": {
        "client_id": "my-client-id",
        "redirect_port": 8585,
        "scope": "openid mcp"
      }
    }
  }
}
Copy

Servidor SSE com cabeçalhos

{
  "mcpServers": {
    "realtime": {
      "type": "sse",
      "url": "https://realtime.example.com/events",
      "headers": {
        "Authorization": "Bearer ${API_TOKEN}",
        "X-Custom-Header": "value"
      },
      "timeout": 30000
    }
  }
}
Copy

Integração do Sourcegraph

{
  "mcpServers": {
    "sourcegraph": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@sourcegraph/mcp-server"],
      "env": {
        "SRC_ACCESS_TOKEN": "${SOURCEGRAPH_TOKEN}",
        "SRC_ENDPOINT": "https://sourcegraph.company.com"
      }
    }
  }
}
Copy

Solução de problemas do MCP

Servidor não conecta
  • Verifique o /mcp durante uma sessão para garantir que ele esteja listado

  • Use cortex mcp start <servidor> para testar a conectividade

  • Garanta que as credenciais estejam definidas corretamente nas variáveis de ambiente

  • cat ~/.snowflake/cortex/logs/mcp.log para revisar o log em busca de pistas

Ferramentas que não aparecem
  • Execute cortex mcp list para verificar a configuração

  • Certifique-se de que os nomes das ferramentas sejam válidos (contêm apenas caracteres alfanuméricos, sublinhados e hifens)

  • Verifique se os nomes das ferramentas têm menos de 64 caracteres

Problemas com o OAuth
  • Limpe os tokens armazenados em cache: rm ~/.snowflake/cortex/mcp_oauth/{server}*

  • Reconecte para acionar o novo fluxo do OAuth

  • Verifique se a porta de redirecionamento está disponível (padrão 8585)

Variáveis de ambiente não são expandidas
  • Use a sintaxe ${VAR} (com chaves) em vez de $VAR

  • Certifique-se de que a variável esteja definida no shell (echo $VAR)

  • Verifique se há erros de digitação nos nomes das variáveis

Práticas recomendadas para MCP

  • Use nomes de servidor descritivos: torna claro o uso de namespace das ferramentas

  • Defina tempos limite apropriados: o padrão é 10 minutos para listagem de ferramentas

  • Proteja as credenciais: use variáveis de ambiente em vez de segredos codificados

  • Teste as conexões: use cortex mcp start antes de confiar em um servidor