SciPilot
Interface de linguagem natural para ferramentas científicas de linha de comando via MCP
Documentação
SciPilot
Interface de linguagem natural para ferramentas científicas de linha de comando via Model Context Protocol (MCP).
O SciPilot preenche a lacuna entre linguagem natural e ferramentas científicas de CLI. Defina sua ferramenta uma vez em YAML e deixe os LLMs cuidarem do resto — parâmetros, caminhos de arquivo, análise de saída, tudo. Funciona para qualquer linha de comando que valha a pena conversar.
Início Rápido
git clone https://github.com/grebenyyk/scipilot
cd scipilot
pip install -e .
scipilot --tools-dir ./tools
Uso
- Adicione descritores de ferramentas a
tools/(vejaexamples/raspa.yaml) - Conecte o cliente MCP (Claude Desktop, VS Code, etc.)
- Pergunte em linguagem natural:
- "Execute um cálculo de fração de vazio de hélio em MIL-47 a 298 K"
- "Compare os resultados das simulações de ontem"
Formato do Descritor de Ferramenta
Você escreve um descritor de ferramenta — um arquivo YAML que informa ao SciPilot:
• O que sua ferramenta espera (entradas, tipos, padrões) • Como construir o comando (modelos) • Onde encontrar a saída (caminhos de arquivo, padrões regex) O SciPilot expõe esses como ferramentas MCP que qualquer LLM pode chamar.
tool:
name: mytool
binary: mytool
operations:
- name: run_simulation
description: "Run a simulation"
inputs:
- name: input_file
type: file
required: true
outputs:
- name: result
path: "output.txt"
extract_pattern: "Result: ([0-9.]+)"
Consulte examples/ para descritores de ferramentas completos.
⚠️ Nota de Segurança: Arquivos YAML de ferramentas são executados com privilégios totais de shell. Carregue apenas descritores de ferramentas em que você confia e que tenha revisado. As entradas do usuário são substituídas diretamente nos modelos de comando do shell.
Estrutura do Projeto
scipilot/
├── server.py # MCP server entry point
├── tool_loader.py # YAML parsing, tool discovery
├── executor.py # Subprocess execution, output parsing
└── models.py # Dataclasses for tool descriptors
tools/ # Your tool descriptors (gitignored)
examples/ # Example descriptors
Desenvolvimento
# Run tests
pytest
# Type checking
mypy scipilot/
# Format
ruff format .
Licença
MIT