my-pi

Runtime MCP local-first para agentes de codificação com acesso limitado ao workspace, gravações protegidas, busca por AST, navegação/diagnósticos via LSP e ferramentas Git.

Documentação

my-pi

Runtime MCP local-first para agentes de codificação — acesso seguro ao workspace sem um shell irrestrito
Sistema de arquivos limitado · gravações com pré-condição de conteúdo · busca AST Tree-Sitter · navegação LSP · ferramentas Git

CI status CodeQL status npm version GitHub stars MIT license Alpha status

O que é o my-pi?

my-pi é um runtime determinístico local de capacidades de codificação exposto por meio do oficial Model Context Protocol (MCP). Ele dá a agentes de codificação compatíveis com MCP acesso controlado a um workspace real por meio de autoridade explícita de workspace, leituras limitadas, gravações protegidas, busca estrutural, inteligência de language server e operações Git.

Ele é voltado para desenvolvedores que desejam que ferramentas de codificação agênticas entendam e modifiquem código sem entregar ao agente um shell de propósito geral ou conceder silenciosamente o diretório de trabalho atual.

Por que usar?

  • Local-first: o código-fonte e o estado detalhado do workspace permanecem no host.
  • Somente leitura por padrão: gravações e inicialização de processos de language server exigem elevação explícita via trusted.
  • Mutação mais segura: gravações podem exigir pré-condições de conteúdo SHA-256 em vez de semântica de sobrescrita cega.
  • Busca ciente de código: busca estrutural Tree-Sitter em TypeScript, JavaScript, Python, Rust e Go.
  • Navegação semântica: símbolos LSP, definições, referências, hover e diagnósticos para language servers de host suportados.
  • Contexto ciente de Git: operações limitadas de status e diff com filtragem de segredos e transbordamento de diffs grandes.
  • Sem dependência secundária de LLM pago: o runtime principal executa localmente e não seleciona modelos nem gera agentes.

Canal de lançamento: Alpha. O selo npm acima é a autoridade para a versão do pacote atualmente publicada. Este repositório pode conter um candidato a lançamento mais recente antes da publicação ser concluída. Adequado para avaliação e desenvolvimento local controlado; revise o modelo de segurança antes de habilitar o perfil confiável.

Instale em menos de um minuto

Requer Node.js >=22.6.0.

npm install -g @koonwang03/my-pi
my-pi-mcp --workspace /path/to/your/project

O servidor inicia em modo somente leitura. Para um workspace que você confia explicitamente:

my-pi-mcp --workspace /path/to/your/project --security-profile trusted

Ou inspecione uma configuração de host sem instalação global:

npx --yes --package @koonwang03/my-pi my-pi-mcp host-config cursor-local

Gere trechos de configuração específicos do host:

my-pi-mcp host-config claude-code-local
my-pi-mcp host-config cursor-local
my-pi-mcp host-config opencode-current-local

Iniciar sem --workspace ou MY_PI_WORKSPACE_ROOT falha de forma segura. Use --allow-cwd somente quando conceder o diretório atual for intencional.

Superfície MCP de 13 ferramentas

ÁreaFerramentasPropósito
Sistema de arquivosfs_read, fs_write, fs_patch, fs_statLeituras limitadas, gravações/patches protegidos, metadados
Busca e workspacesearch, workspace_infoExploração de repositório e estado autoritativo do workspace
AST e LSPast_search, lsp_status, lsp_symbols, lsp_navigate, lsp_diagnosticsInteligência estrutural e semântica de código
Gitvcs_status, vcs_diffStatus do repositório e diffs limitados/filtrados

Garantias principais

CapacidadeComportamento
Mutação com pré-condição de conteúdoAtualizações de arquivo verificam impressões digitais SHA-256 brutas e rejeitam sobrescritas protegidas obsoletas
Política de pré-leitura de caminhos sensíveisCaminhos sensíveis como .env*, .aws/, .ssh/ e *.key são negados antes que o conteúdo seja alocado ao contexto do modelo
Perfis de segurança explícitosO padrão é somente leitura; mutação e inicialização de processos LSP exigem elevação explícita
Fidelidade de codificação/modoA substituição de arquivos preserva codificação relevante, finais de linha, BOM e comportamento de modo executável POSIX
CancelamentoTrabalho de subprocesso Git/busca/LSP de longa duração suporta cancelamento e limpeza

Arquitetura

MCP-capable coding host
        │
        │ stdio
        ▼
┌─────────────────────┐
│   my-pi MCP edge    │
└──────────┬──────────┘
           ▼
┌─────────────────────┐
│ capability contracts│
└──────────┬──────────┘
           ▼
┌─────────────────────────────────────────────────────────┐
│ workspace │ policy │ filesystem │ search │ AST │ LSP │ Git │
└─────────────────────────────────────────────────────────┘
           │
           └── local host workspace

A alegação pública estável é a superfície de capacidades MCP de 13 ferramentas. O repositório também contém um candidato opcional de coordenação/avaliação Production Next; esses recursos de coordenação, estado de código, recibos de alteração, avaliação e feedback permanecem experimentais e sujeitos aos seus portões de promoção.

Compile a partir do código-fonte

git clone https://github.com/BoxBoxmari/my-pi.git
cd my-pi
pnpm install --frozen-lockfile
pnpm build

Pré-requisitos para desenvolvimento no repositório:

  • Node.js v22.6.0+ ou v24 LTS
  • pnpm v11.2.2+
  • Rust stable é opcional e atualmente relevante apenas para o scaffold de backend nativo adiado

Verificação

# Local code, architecture, boundary, build, tests, gates and smoke verification
pnpm verify

# Unit/integration suite
pnpm test

# SBOM validation
pnpm verify:sbom

# Release admission checks
pnpm bind:evidence
pnpm verify:release

A matriz de CI configurada cobre trilhas Ubuntu, Windows e macOS. Consulte os selos de workflow ao vivo acima para o status atual, em vez de confiar em alegações estáticas neste documento.

Benchmarks

O repositório contém benchmarks sintéticos determinísticos para sobrecarga de stdio MCP, throughput de busca/travessia, amostragem de memória, limites de runtime, comportamento de coordenação, roteamento de impacto, feedback de avaliação e confiabilidade local. As saídas de benchmark são evidências candidatas; alegações de desempenho devem ser interpretadas junto com seus critérios de qualificação e variação de executor.

Production Next (experimental)

Inicie o candidato de coordenação local para um projeto lógico:

my-pi-daemon --workspace /path/to/your/project
my-pi-mcp --workspace /path/to/your/project --coordination

Adicione --evaluation somente quando o plano de avaliação for necessário. O candidato mantém o código-fonte e o estado detalhado do código local, não seleciona modelos nem gera agentes, e não requer um plano de controle hospedado.

Comandos de qualificação relevantes incluem:

pnpm bench:impact-arms
pnpm bench:evaluation-feedback-arms
pnpm dogfood:self-host
pnpm bench:local-reliability
pnpm verify:production-next

Topologia de pacotes

packages/
├── contracts/             # Core interfaces, error codes, fingerprinting
├── workspace-runtime/     # Workspace/path normalization and mutation coordination
├── policy/                # Sensitive-path protection
├── artifact-store/        # Disk-backed spillover artifacts
├── observability/         # Tracing and metrics contracts
├── fs/                    # Hardened filesystem capabilities
├── search/                # Grep/glob traversal
├── hashline/              # Hashline-anchored patch engine
├── ast/                   # Tree-Sitter structural search
├── lsp/                   # Multi-language LSP lifecycle/client
├── vcs/                   # Git-backed status and diff
├── mcp-adapter/           # MCP stdio server adapter
├── host-profiles/         # Host configuration renderers
├── change-runtime/        # Content preconditions and change receipts
├── code-state/            # Filesystem/AST/LSP/VCS code state
├── coordination-client/   # Local daemon client
├── coordination-runtime/  # Work graph, claims, intents, sync
├── coordination-store/    # SQLite event/projection store
├── evaluation-runtime/    # Evaluation and feedback flow
└── impact-engine/         # Bounded impact/routing decisions

O comportamento de ignorar na busca está documentado em docs/SEARCH_IGNORE.md. É uma otimização de travessia, não um substituto para a política de caminhos sensíveis.

Segurança

Antes de usar o modo confiável, leia docs/SECURITY_MODEL.md. Achados de segurança são bem-vindos por meio do processo de reporte documentado do repositório.

Contribuindo

Issues, relatórios de bug reproduzíveis, contraexemplos de benchmark, feedback de integração e pull requests focados são bem-vindos. Se você está avaliando o my-pi em um host de codificação real, inclua o host, SO, versão do Node, perfil de segurança e uma reprodução mínima quando possível.

Licença

MIT — veja LICENSE.