Decispher
O Decispher captura as decisões, convenções e restrições das conversas que sua equipe já tem no Slack, GitHub, GitLab e Jira e as devolve para cada pessoa e cada agente que precisa delas. Automaticamente.
Documentação
Servidor MCP
Uma instalação. Toda ferramenta de IA que seu time usa ganha acesso ao vivo ao seu grafo de conhecimento. Cursor, Claude Code e VS Code Copilot consultam o mesmo contexto, sempre atualizado.
Início rápido
Configure o servidor MCP do Decispher no Claude Code em 5 minutos
Três passos: gere uma chave, registre o servidor, faça uma pergunta. O Claude Code executa o servidor via npx, então não há nada para instalar.
1. Gere uma chave de API com escopo de projeto e dê um nome a ela nesta máquina. No painel, vá em Projeto → Integrações → Servidor MCP → Gerar Chave. Copie-a agora; a chave completa é exibida apenas uma vez. Em seguida, armazene-a sob um nome:
npx decispher@latest link
O nome é público e deve ser commitado. A chave permanece em ~/.decispher/links.json e nunca chega a um arquivo do projeto.
2. Registre o servidor no Claude Code. Execute:
claude mcp add decispher \
-e DECISPHER_LINK=acme \
-- npx -y @decispher/mcp-server
Verifique se foi registrado com claude mcp list (ou /mcp dentro do Claude Code). Você deve ver as ferramentas do Decispher listadas.
3. Faça sua primeira pergunta. Em uma sessão do Claude Code, basta perguntar, e o Claude chamará ask_knowledge_base e responderá com base no registro do seu time, com citações:
> What did we decide about the worker queue, and why?
Decispher → ask_knowledge_base
We use BullMQ over SQS: SQS cold-starts add latency to the worker
fleet, so BullMQ + Redis keeps workers warm.
Captured from #engineering, approved 2026-06-18. [decision:8f2c…]
Essa resposta veio do seu registro de decisões, não de um palpite, e a recuperação é registrada com os tokens que economizou. Quer o mesmo no Cursor ou no VS Code? As configurações estão abaixo, ou siga o guia de contexto de time para Cursor.
O que é?
O grafo de conhecimento do seu time, ao vivo via MCP
O Servidor MCP do Decispher é um pacote npm que implementa o Model Context Protocol, uma interface padrão que ferramentas de codificação com IA usam para buscar contexto externo no momento da consulta. Uma vez instalado, qualquer agente compatível com MCP pode chamar as ferramentas do Decispher para recuperar decisões, restrições e convenções do seu time em tempo real.
Diferente de arquivos CLAUDE.md ou .cursorrules, que são snapshots estáticos carregados uma vez no início da sessão, o servidor MCP serve dados ao vivo. Uma decisão capturada no Slack às 9h pode ser consultada pelos seus agentes às 9h01.
📄
Arquivos estáticos (CLAUDE.md, .cursorrules)
Carregados uma vez no início da sessão. Desatualizados até o próximo Git sync. Sem medição de tokens. Sem frescor por consulta.
⚡
Servidor MCP
Consultado sob demanda. Sempre atualizado. Recibo por chamada. Isolamento por escopo de projeto. Recuperação por grafo de símbolos.
Por que usar?
Porque arquivos de contexto estáticos têm um problema de frescor
Um CLAUDE.md commitado no seu repositório era preciso no dia em que foi gerado. No dia seguinte, seu time entrega três decisões, uma restrição é substituída e uma nova convenção é adotada. O arquivo commitado não faz ideia disso.
O servidor MCP resolve isso servindo contexto do grafo de conhecimento ao vivo do Decispher, a mesma fonte de verdade que seu painel consulta. O agente sempre obtém o estado atual, não um snapshot do último Git sync.
Sempre atualizado
Novo contexto capturado do Slack ou GitHub é consultável imediatamente, sem necessidade de commit, PR ou invalidação de cache.
Isolamento por escopo de projeto
Uma chave de API com escopo de projeto retorna apenas unidades de contexto ativas naquele projeto. O agente do projeto A não consegue ver decisões rejeitadas ou irrelevantes do projeto B.
Recuperação por grafo de símbolos
get_context_for_file faz correspondência com nomes de funções, identificadores de tipos e rótulos técnicos canônicos, não apenas busca por palavras-chave ou similaridade de embeddings.
Recibo por chamada
Cada chamada MCP é registrada com tokens economizados, modelo usado e escopo do projeto. Seu painel mostra exatamente o que cada agente está consumindo e o que isso economiza para você.
O que você obtém
Economia de tokens mensurável, com recibo por chamada
Cada chamada MCP que retorna contexto evita que seu agente descubra esse contexto do jeito lento, buscando, perguntando ou alucinando. O Decispher mede essa economia em cada chamada e mostra o total acumulado no seu painel.
Exemplo: uma única chamada check_intent
tokens de consulta do agente: 240
contrafactual (sem MCP): 1.840 ← custo estimado de redescoberta
tokens economizados (líquido): +1.600
nas taxas de modelos de fronteira: ≈ US$ 0,0048 economizados
O conjunto de ferramentas
Uma ferramenta para cada padrão de consulta
check_intent 1 crédito
Envie uma descrição do que o agente está prestes a fazer. O Decispher retorna regras conflitantes E unidades de contexto relevantes antes que qualquer código seja escrito. Retorna BLOCKED (conflito grave, pare), WARN (tensão, prossiga com cautela) ou CLEAR. Chame antes de cada mudança significativa.
decispher.check_intent({ description: "adicionar cache redis na busca do token de autenticação", files: ["src/auth/token-manager.ts"] })
search_decisions 1 crédito
Busca semântica em todos os 7 tipos de contexto. Passe tipos para filtrar (ex.: ["constraint", "decision"]) ou omita para buscar em tudo. Resultados classificados por relevância à consulta e frescor.
decispher.search_decisions({ query: "por que BullMQ e não SQS", types: ["decision", "rationale"] })
get_constraints 1 crédito
Busque todas as restrições arquiteturais ativas do projeto: as regras rígidas que o agente não pode violar. Suporta paginação via cursor e um orçamento de tokens. Chame uma vez por sessão e armazene em cache para a execução.
decispher.get_constraints()
check_conventions 1 crédito
Recupere todas as convenções de codificação ativas. Use para alinhar o código gerado aos padrões do time antes de enviar. Cobre nomenclatura, padrões, escolhas de bibliotecas e decisões de estilo.
decispher.check_conventions()
get_context_for_file 1 crédito
Passe um caminho de arquivo (ou até 10 via filePaths[]). O Decispher lê o arquivo do disco, extrai identificadores e símbolos, e retorna unidades de contexto cujas decisões capturadas se relacionam àquele arquivo ou àqueles símbolos. Usa pontuação híbrida de símbolos + embeddings.
decispher.get_context_for_file({ filePath: "src/auth/token-manager.ts" })
ask_knowledge_base 1–8 créditos
Faça uma pergunta em linguagem natural. O Decispher recupera unidades de contexto relevantes e sintetiza uma resposta de LLM com citações das fontes. O custo varia com o modo de esforço (Saver 1 / Balanced 2 / Pro 6). Cada resposta mostra de quais unidades ela se baseou.
decispher.ask_knowledge_base({ question: "por que usamos HNSW e não IVFFlat para índices vetoriais?" })
list_topics Grátis
Liste todos os slugs de tópicos canônicos disponíveis neste projeto. Grátis: a primitiva de descoberta. Use primeiro quando precisar explorar uma área desconhecida ou confirmar um ID de tópico antes de chamar get_context_for_topic.
decispher.list_topics()
get_context_for_topic 1 crédito
Busque o cluster de contexto curado para um tópico. Retorna unidades principais inline (as regras CRITICAL sempre carregadas) além de IDs e títulos de unidades de expansão; chame get_decision em qualquer um desses IDs para o corpo completo.
decispher.get_context_for_topic({ topic: "auth" })
get_decision Grátis
Busque o corpo completo de uma unidade de contexto específica por ID: título, declaração do problema, justificativa, alternativas consideradas, arquivos afetados e fontes. Use após qualquer ferramenta retornar um ID que valha uma busca profunda. Consulta direta, sem LLM.
decispher.get_decision({ decisionId: "0e3f1c2a-bc91-d109-..." })
get_related_context 1–4 créditos
Percorra o grafo de conhecimento ao redor de uma unidade antes de alterá-la ou contradizê-la: o que ela substitui, estende, deriva, documenta, confirma ou conflita, retornado como um subgrafo limitado em vez de uma cadeia de consultas por ID. Profundidade 1 ou 2, filtrável por tipo de relação. Unidades fora do escopo do projeto da sua chave aparecem como stubs apenas de relação e nunca são expandidas, então um conflito que você não pode ler ainda é um conflito sobre o qual você é informado. Travessia determinística, sem LLM.
decispher.get_related_context({ decisionId: "0e3f1c2a-…", depth: 2 })
capture_decision Grátis
Escreva novo conhecimento de volta na base de conhecimento do time. Use apenas para conhecimento durável e reutilizável que valha ser lembrado na próxima sessão. Se um quase-duplicado já existir, o ID da unidade existente é retornado com alreadyExists: true e nada é inserido, então um agente recapturando a mesma coisa é seguro em vez de ruidoso. Capturas de agentes são rotuladas como tal para que humanos revisando o registro possam diferenciá-las.
decispher.capture_decision({ type: "constraint", title: "Use HNSW not IVFFlat for new vector indexes", decision: "...", rationale: "..." })
copy_chat 1–8 créditos
Comprima a conversa atual de IA em um snapshot portátil. O servidor retorna uma clipKey aleatória que você pode compartilhar entre máquinas, IDEs ou ferramentas de IA. O modelo destila um resumo estruturado: título, objetivo, status, o que estava em andamento, decisões, código e arquivos, restrições, erros e correções, perguntas em aberto, as alternativas exploradas, cada turno do usuário verbatim, e próximos passos rastreados até a solicitação que os autorizou. Armazenado apenas no Redis, nunca entra no grafo de conhecimento. TTL de 7 dias. Cobrado por cópia, mais uma pequena sobretaxa para transcrições muito grandes.
decispher.copy_chat({ messages: history }) // → { clipKey: "dsk-clip-…", estimatedReadySeconds: 30 }
paste_chat Grátis
Restaure um snapshot pela clipKey. O conteúdo retornado se torna a memória de trabalho da nova sessão, então o agente o lê a frio e continua exatamente de onde a sessão anterior parou. Seções que não cabem no orçamento de resposta são nomeadas e mantidas atrás de um cursor de continuação gratuito, ou buscadas uma a uma. Sempre grátis. Funciona em qualquer máquina e qualquer ferramenta de IA conectada ao Decispher. Retorna um estado vazio elegante se a chave estiver errada ou o snapshot tiver expirado.
decispher.paste_chat({ clipKey: "dsk-clip-…" }) decispher.paste_chat({ clipKey: "dsk-clip-…", section: "errors_fixes" })
list_clips Grátis
Liste os snapshots que seu time salvou, do mais recente ao mais antigo, com suas chaves, títulos, tamanhos e expiração. Uma clipKey é lida uma vez de um terminal e fácil de perder; é assim que você a recupera. Apenas metadados, nunca os corpos dos snapshots.
decispher.list_clips({ status: "ready" })
update_context_metadata Grátis
Atualize os metadados do ciclo de vida de uma unidade existente: expiração, tags, arquivos afetados, severidade. Ou defina stillAccurate para redefinir o relógio de frescor após revalidá-la. Corpos nunca são editados aqui; uma decisão que realmente mudou deve ser capturada como uma nova unidade substituta. Desativado por padrão até um administrador habilitar atualizações de agentes.
decispher.update_context_metadata({ contextId: "0e3f1c2a-…", stillAccurate: true })
store_read Grátis
Leia o armazenamento de branch: a memória de trabalho compartilhada para um branch git. Retorna o cabeçalho de resumo (último estado e perguntas em aberto), unidades em estágio aguardando revisão, entradas atribuídas recentes de outros agentes e humanos, e unidades vinculadas do grafo de conhecimento. Chame no início de uma sessão em um branch existente para começar aquecido em vez de frio.
decispher.store_read({ repo: "acme/api", branch: "feat/token-refresh" })
store_write Grátis
Adicione uma entrada atribuída ao armazenamento de branch. entryType direciona o cabeçalho de resumo: state e handoff substituem o último estado, question abre uma, answer fecha uma, note é apenas linha do tempo. Escreva um handoff antes de parar para que o próximo agente continue exatamente de onde você parou.
decispher.store_write({ repo: "acme/api", branch: "feat/token-refresh", entryType: "handoff", content: "Caminho de refresh concluído, rotação ainda em aberto" })
store_list Grátis
Liste os armazenamentos de branch visíveis para esta chave: branch, repositório, último estado, contagem de perguntas em aberto, última atividade. Use para encontrar onde o trabalho já está em andamento antes de pegar um branch.
decispher.store_list()
store_link Grátis
Vincule o branch a uma unidade existente do grafo de conhecimento por ID, como uma decisão que este branch implementa ou da qual depende. Unidades vinculadas aparecem então por título em todo store_read nesse branch.
decispher.store_link({ repo: "acme/api", branch: "feat/token-refresh", decisionId: "0e3f1c2a-…" })
session_record Grátis
Auto-relate um momento notável desta sessão: uma decisão não óbvia, uma restrição descoberta do jeito difícil, uma abordagem tentada e abandonada, ou uma pergunta esclarecedora cuja resposta moldou o trabalho. O relato é colocado em estágio para um humano promover, nunca escrito diretamente no registro. Use com moderação para conhecimento durável; use store_write para notas de progresso.
decispher.session_record({ repo: "acme/api", branch: "feat/token-refresh", type: "history", statement: "Tentei rotacionar a cada requisição, atingi o limite de taxa do provedor" })
remember 1–3 créditos
Salve uma memória durável pessoal ou de equipe: uma preferência, um estilo de trabalho, um fato do ambiente, uma norma do time. Solicitações humanas explícitas são salvas como ativas; qualquer coisa que o agente oferecer por conta própria vira uma proposta que o dono confirma. O escopo padrão é a memória privada do usuário, e compartilhar de forma mais ampla é uma solicitação que um administrador aprova. Requer que a Memória esteja habilitada para a sua empresa.
decispher.remember({ body: "Use pnpm, never npm, in this org", userRequested: true })
get_memory Grátis
Desreferencie uma memória por ID a partir de um manifesto servido, retornando o corpo completo e a proveniência. Deliberadamente não há ferramenta de busca de memória: a memória relevante é injetada na sessão para você, então o agente apenas desreferencia.
decispher.get_memory({ memoryId: "b41c7e90-…" })
Instalação
Um pacote npm, três arquivos de configuração
O servidor é distribuído como @decispher/mcp-server. Você não precisa instalá-lo globalmente; todos os três exemplos de configuração abaixo usam npx para puxar a versão mais recente automaticamente.
Configuração do Cursor
Escopo do projeto ou global
Adicione ao .cursor/mcp.json na raiz do seu projeto (escopo deste repositório) ou ~/.cursor/mcp.json (todos os projetos).
{
"mcpServers": {
"decispher": {
"command": "npx",
"args": ["-y", "@decispher/mcp-server"],
"env": {
"DECISPHER_LINK": "acme"
}
}
}
}
Confirmar este arquivo compartilha o nome, nunca a chave. Cada colega de equipe executa npx decispher@latest link uma vez e suas próprias credenciais respondem a ele.
Configuração do Claude Code
Via a CLI do Claude Code
claude mcp add decispher \
-e DECISPHER_LINK=acme \
-- npx -y @decispher/mcp-server
Ou adicione diretamente pela interface do Claude Code: Configurações → Servidores MCP → Adicionar servidor.
Configuração do VS Code
GitHub Copilot + MCP
Adicione ao .vscode/mcp.json na raiz do seu workspace:
{
"servers": {
"decispher": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@decispher/mcp-server"],
"env": {
"DECISPHER_LINK": "acme"
}
}
}
}
Chaves na configuração
A saída de emergência, e os três lugares onde ela é a resposta certa
Tudo acima coloca um nome no arquivo e mantém a chave na sua máquina. Colocar a chave na própria configuração é totalmente suportado e não vai desaparecer, porque três situações realmente precisam disso:
- O Decispher Worker injeta credenciais por execução em um sandbox que não tem diretório home para armazenar um repositório de links, e nunca deveria ter.
- CI e contêineres são reconstruídos do zero a cada execução, então uma variável de ambiente é a única coisa que sobrevive.
- Testar o MCP antes de instalar a CLI, onde ainda não há link para nomear.
Toda configuração existente continua funcionando sem alterações. As mesmas três formas:
{
"mcpServers": {
"decispher": {
"command": "npx",
"args": ["-y", "@decispher/mcp-server"],
"env": {
"DECISPHER_API_URL": "https://api.decispher.com",
"DECISPHER_API_KEY": "dsk_your_key_here",
"DECISPHER_COMPANY_ID": "your-company-uuid"
}
}
}
}
claude mcp add decispher \
-e DECISPHER_API_KEY=dsk_your_key_here \
-e DECISPHER_API_URL=https://api.decispher.com \
-e DECISPHER_COMPANY_ID=your-company-uuid \
-- npx -y @decispher/mcp-server
{
"servers": {
"decispher": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@decispher/mcp-server"],
"env": {
"DECISPHER_API_URL": "https://api.decispher.com",
"DECISPHER_API_KEY": "dsk_your_key_here",
"DECISPHER_COMPANY_ID": "your-company-uuid"
}
}
}
}
DECISPHER_COMPANY_ID agora é opcional. Presente, é usado e uma ida e volta é pulada; ausente, o servidor o resolve a partir da chave na primeira chamada de ferramenta. A Memória também funciona aqui, via DECISPHER_IDENTITY_KEY e DECISPHER_SET_KEY.
Definir tanto um link quanto uma variável de ambiente é aceitável: eles se compõem campo por campo, com cada variável sobrescrevendo apenas aquele campo do link.
Chaves de API
Escopo da empresa ou do projeto
Gere chaves na página de Integrações do seu projeto: Projeto → Integrações → Servidor MCP → Gerar chave. As chaves são mostradas apenas uma vez, então copie imediatamente.
Chave da empresa dsk_co_…
Retorna resultados em todos os projetos. Use para um ambiente de desenvolvimento pessoal onde você trabalha em vários repositórios.
Chave do projeto dsk_pr_…
Retorna apenas unidades de contexto ativas neste projeto. Use para CI por repositório, configuração de IDE específica do projeto ou pipelines de agente com escopo em um único serviço.
Variáveis de ambiente: DECISPHER_LINK (um link nesta máquina) · DECISPHER_SET (conjuntos de memória para anexar, por nome) · DECISPHER_API_KEY (em vez de um link, para CI e contêineres) · DECISPHER_API_URL · DECISPHER_COMPANY_ID (opcional, resolvido a partir da chave quando ausente)
Custos de crédito
Pague apenas pelo que consultar
Custos por chamada
list_topicsGrátisDescoberta de namespace somente leitura, sem LLM ou consulta vetorialget_decisionGrátisBusca direta por ID, sem chamada de LLMcapture_decisionGrátisGravação é gratuita: queremos que agentes registrem o que aprendemupdate_context_metadataGrátisPatch de ciclo de vida ou redefinição de frescor, sem chamada de LLMstore_read / store_writeGrátisMemória de trabalho de branch, sempre gratuitastore_list / store_linkGrátisDescoberta e vinculação de branch, sempre gratuitassession_recordGrátisEnfileirado para revisão humana, sempre gratuitoget_memoryGrátisDesreferencie uma memória servida, sem chamada de LLMpaste_chatGrátisLeia a área de transferência, sempre gratuito, páginas de continuação incluídas (TTL de 7 dias)list_clipsGrátisEncontre um snapshot cuja chave você perdeu, apenas metadadoscheck_intent1 créditoVarredura de conflito vetorial + palavra-chave (Saver/Balanced 1 · Pro 2)search_decisions1 créditoBusca semântica em todos os 7 tipos de contextoget_constraints1 créditoConsulta filtrada somente leituracheck_conventions1 créditoConsulta filtrada somente leituraget_context_for_file1 créditoHíbrido de grafo de símbolos + incorporaçãoget_context_for_topic1 créditoCluster de tópico curado com espinha inlineremember1–3 créditosIncorporação e fusão antes de retornar: Saver 1 · Balanced 2 · Pro 3ask_knowledge_base1–8 créditosResposta sintetizada por LLM: Saver 1 · Balanced 2 · Pro 6copy_chat1–8 créditosLLM comprime conversa para a área de transferência: Saver 1 · Balanced 2 · Pro 4 · Super 8, mais 1–4 para transcrição muito grande
Pronto para conectar seus agentes?
Solicite acesso beta e obtenha sua primeira chave de API em minutos.