npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

omnichat-expert-mcp

v1.1.2

Published

MCP Server especialista no projeto OmniChat web-app e Angular 18

Readme

OmniChat Expert MCP

MCP Server especialista no projeto OmniChat web-app e Angular 18.

Fornece recursos sobre arquitetura, convencoes, patterns Angular e ferramentas de busca no monorepo para uso dentro do Cursor IDE.


Instalacao rapida

1. Publicar no npm (uma vez, feito pelo admin)

npm login
npm publish

2. Instalar no Cursor (cada colega)

npx omnichat-expert-mcp --setup

O wizard vai:

  1. Detectar automaticamente o monorepo OmniChat (ou pedir o caminho)
  2. Pedir a chave de ativacao
  3. Configurar o Cursor automaticamente

Chave de ativacao: omnichat-mcp-2025

Depois, reinicie o Cursor. O MCP aparece automaticamente.


Configuracao manual (alternativa)

Se preferir configurar manualmente, adicione ao arquivo ~/.cursor/mcp.json:

{
  "mcpServers": {
    "omnichat-expert": {
      "command": "npx",
      "args": ["-y", "omnichat-expert-mcp"],
      "env": {
        "PROJECT_ROOT": "/caminho/do/monorepo/omnichat",
        "OMNICHAT_MCP_KEY": "omnichat-mcp-2025"
      }
    }
  }
}

Comandos

| Comando | Descricao | |---------|-----------| | npx omnichat-expert-mcp --setup | Wizard de instalacao automatica | | npx omnichat-expert-mcp --help | Mostra ajuda | | npx omnichat-expert-mcp --version | Mostra versao | | npx omnichat-expert-mcp | Inicia o server MCP (usado pelo Cursor) |


O que o MCP oferece

Resources (conhecimento estatico) — 7

| Resource | Descricao | |----------|-----------| | architecture | Visao completa da arquitetura do monorepo, libs, dominios, tech stack e relacionamentos | | conventions | Convencoes de codigo: naming, estrutura de arquivos, imports, testes (mockProvider, it.each, private/protected) | | angular-patterns | Patterns Angular: components, NgRx, signal store, services, routes, guards, testing, i18n | | troubleshooting | Erros comuns e solucoes: circular deps, lazy loading, state, Transloco, Spectator, camelCase/snake_case | | onboarding | Guia para novos devs: setup, estrutura do repo, workflow, como criar features, primeiros passos | | testing-patterns | Padroes de teste com Spectator + Jest: mockProvider, it.each, respeito a private/protected, componentes, services, guards, effects | | migration-guide | Guias de migracao: NgRx -> Signal Store, modules -> standalone, inject(), guards funcionais, @if/@for |

Tools — 10

| Tool | Descricao | Requer monorepo local | |------|-----------|----------------------| | get_component_template | Gera template completo de componente Angular (.ts, .html, .scss, .spec.ts) | Nao | | get_service_template | Gera service com HttpClient, CRUD, conversao camelCase/snake_case e spec | Nao | | get_store_template | Gera Signal Store (1 arquivo) ou NgRx completo (state, actions, reducer, selectors, effects) | Nao | | get_lib_dependencies | Analisa dependencias entre libs; mostra quem importa quem e detecta ciclos | Sim | | get_pr_checklist | Gera checklist de PR por tipo (feature, bugfix, refactor, migration) com secoes condicionais | Nao | | scaffold_feature | Gera feature completa: component + template + SCSS + test + service + store + route + i18n | Nao | | search_project_patterns | Busca patterns/texto no codigo do monorepo (grep-like) | Sim | | search_angular_usage | Busca uso de features Angular (signals, guards, NgRx, transloco, etc.) | Sim | | get_lib_info | Info detalhada de uma lib: estrutura, state, routes, exports | Sim | | list_all_libs | Lista todas as libs do monorepo com dominio e features | Sim |


Desenvolvimento local

# Instalar dependencias
npm install

# Build
npm run build

# Watch mode
npm run dev

# Testar
node dist/index.js --help
OMNICHAT_MCP_KEY="omnichat-mcp-2025" node dist/index.js

Testar como npx local (sem publicar)

npm link
omnichat-expert-mcp --help
omnichat-expert-mcp --setup
npm unlink -g omnichat-expert-mcp   # para remover depois

Gerenciar chaves de ativacao

A chave e validada via hash SHA-256. Apenas o hash fica no codigo publicado.

Gerar hash de uma nova chave

node -e "console.log(require('crypto').createHash('sha256').update('NOVA-CHAVE-AQUI').digest('hex'))"

Adicionar/revogar chaves

Edite o array VALID_KEY_HASHES em src/auth.ts:

const VALID_KEY_HASHES: string[] = [
  'hash-da-chave-1',
  'hash-da-chave-2',  // adicione mais conforme necessario
];

Depois: npm run build && npm publish


Estrutura do projeto

src/
  index.ts              # Entry point, registra resources e tools, CLI flags
  auth.ts               # Validacao de chave de ativacao (SHA-256)
  setup.ts              # Wizard interativo de instalacao
  detect-project.ts     # Auto-deteccao do monorepo e config do Cursor
  resources/
    architecture.ts     # Resource: arquitetura do monorepo
    conventions.ts     # Resource: convencoes de codigo
    angular-patterns.ts # Resource: patterns Angular
    troubleshooting.ts # Resource: erros comuns e solucoes
    onboarding.ts      # Resource: guia para novos devs
    testing-patterns.ts# Resource: padroes de teste Spectator/Jest
    migration-guide.ts # Resource: guias de migracao
  tools/
    component-template.ts # Tool: gera template de componente
    service-template.ts   # Tool: gera template de service
    store-template.ts     # Tool: gera Signal Store ou NgRx
    project-info.ts       # Tool: info de libs (requer filesystem)
    search-patterns.ts    # Tool: busca no codigo (requer filesystem)
    lib-dependencies.ts   # Tool: analise de dependencias entre libs
    pr-checklist.ts       # Tool: checklist de PR
    scaffold-feature.ts   # Tool: scaffold de feature completa

README na raiz vs MCP (resources/tools)

| Aspecto | README .md na raiz do projeto | MCP (estrutura atual) | |---------|------------------------------|------------------------| | Para quem | Humanos (dev lendo o repo). A IA so ve se o arquivo estiver aberto ou referenciado. | IA (Cursor): o modelo recebe o conteudo quando chama o resource/tool no chat. | | Quando entra em contexto | So se voce abrir o arquivo ou colar no prompt. | Automatico: ao perguntar "quais as convencoes?" ou usar uma tool, o MCP injeta o conteudo. | | Atualizacao | Commit no repo; todos que puxam o codigo veem. | Nova versao do pacote npm; colegas recebem ao usar `npx` (cache pode atrasar um pouco). | | Escopo | Um repo: documentacao vive junto do codigo. | Um pacote: o mesmo MCP serve qualquer pessoa que instale, em qualquer repo. |

Conclusao: Os dois se complementam. Use README (ou .md na raiz) para onboarding humano e referencia rapida no repo. Use MCP para a IA aplicar convencoes, gerar codigo e responder duvidas durante o desenvolvimento. Para eficiencia da IA no dia a dia, a estrutura MCP e mais eficiente: o modelo nao depende de voce ter um .md aberto; ele usa resources e tools sob demanda.