MCP SOP Server
Um servidor MCP para acessar e pesquisar Procedimentos Operacionais Padrão (POPs) com suporte ao idioma italiano.
Documentação
MCP SOP Server
Um servidor Model Context Protocol (MCP) para acessar e pesquisar Procedimentos Operacionais Padrão (SOPs) com suporte ao idioma italiano.
Visão Geral
Este servidor MCP fornece aos agentes de IA a capacidade de:
- Pesquisar na documentação de SOPs da sua empresa usando busca semântica
- Recuperar procedimentos relevantes com base em situações específicas
- Navegar por SOPs por categoria
- Obter orientação sobre o que fazer em cenários específicos
O servidor utiliza:
- ChromaDB para armazenamento vetorial e busca semântica
- Sentence Transformers com modelos multilíngues para suporte ao idioma italiano
- FastMCP para a implementação do servidor MCP
- RAG (Retrieval Augmented Generation) para recuperação inteligente de documentos
Recursos
- 🇮🇹 Suporte ao Idioma Italiano: Utiliza embeddings multilíngues otimizados para texto em italiano
- 📄 Suporte a Múltiplos Formatos: Processa documentos PDF e DOCX
- 🔍 Busca Semântica: Encontre SOPs relevantes com base no significado, não apenas em palavras-chave
- 📁 Filtro por Categoria: Pesquise dentro de categorias específicas de SOPs
- 🤖 Pronto para IA: Fornece respostas estruturadas perfeitas para consumo por LLMs
- ⚡ Recuperação Rápida: Busca vetorial eficiente com ChromaDB
- 🚀 Inicialização Preguiçosa: O servidor inicia rapidamente, os documentos são indexados na primeira solicitação
Instalação
-
Clone o repositório:
git clone https://github.com/dadapera/mcp-sop-server.git cd mcp-sop-server -
Crie e ative o ambiente virtual:
python -m venv venv # On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activate -
Instale as dependências:
pip install -r requirements.txt -
Adicione seus documentos SOP: Crie um diretório
sop_documents/e organize seus arquivos SOP por pastas de categoria.
Configuração
Configuração do Cliente MCP
Para usar este servidor com o Claude Desktop ou outros clientes MCP, adicione-o à configuração do seu cliente MCP:
Para Claude Desktop (mcp-client-config.json):
{
"mcpServers": {
"sop-server": {
"command": "/path/to/your/venv/Scripts/python.exe",
"args": ["/path/to/your/mcp-sop-server/main.py"],
"cwd": "/path/to/your/mcp-sop-server"
}
}
}
Nota: Certifique-se de usar o caminho completo para o executável Python do seu ambiente virtual e ajuste os caminhos de acordo com o seu sistema.
Estrutura de Diretórios
O servidor espera que os documentos SOP estejam organizados da seguinte forma:
sop_documents/
├── SOP01 Quality System Documentation Management/
│ ├── document1.pdf
│ └── document2.docx
├── SOP02 HR management/
│ └── hr_procedures.pdf
├── SOP03 Design/
│ └── design_process.docx
└── ...
Uso
Iniciando o Servidor
O servidor normalmente é iniciado automaticamente pelo seu cliente MCP (como o Claude Desktop). Se for executar manualmente:
python main.py
O servidor irá:
- Iniciar rapidamente e aguardar conexões
- Na primeira chamada de ferramenta: escanear todos os documentos SOP no diretório
sop_documents/ - Processar e extrair texto de arquivos PDF e DOCX
- Gerar embeddings usando o modelo multilíngue
- Armazenar tudo no ChromaDB para recuperação rápida
Ferramentas Disponíveis
O servidor fornece as seguintes ferramentas MCP:
1. search_sop_documents
Pesquise conteúdo relevante de SOPs usando consultas em linguagem natural.
Parâmetros:
query(string): Consulta de busca em italiano ou inglêsmax_results(int, opcional): Número máximo de resultados a retornar (padrão: 5)category(string, opcional): Filtrar por categoria de SOP
Exemplo:
{
"query": "Come gestire una non conformità nel processo di produzione",
"max_results": 3,
"category": "SOP05 Non Conformity"
}
2. get_sop_guidance
Obtenha orientação específica para uma situação com base nos documentos SOP.
Parâmetros:
situation(string): Descrição da situaçãocategory(string, opcional): Focar a busca em uma categoria específica
Exemplo:
{
"situation": "Un cliente ha segnalato un difetto nel prodotto consegnato",
"category": "SOP05 Non Conformity"
}
3. list_sop_categories
Obtenha todas as categorias de SOP disponíveis e estatísticas da coleção.
4. get_sop_by_category
Recupere todos os SOPs dentro de uma categoria específica.
Parâmetros:
category(string): Nome da categoria de SOP
5. refresh_sop_database
Atualize o banco de dados de documentos (use quando os SOPs forem atualizados).
6. get_server_status
Obtenha o status atual do servidor e estatísticas.
Configuração Técnica
Modelo de Embedding
O servidor usa sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2 por padrão para suporte ao idioma italiano. Você pode alterar isso em src/mcp_sop_server/document_searcher.py:
model_name = "sentence-transformers/your-preferred-model"
Tamanho do Chunk
O particionamento de texto pode ser ajustado em src/mcp_sop_server/document_processor.py:
def chunk_text(self, text: str, chunk_size: int = 1000, overlap: int = 200):
Localização do Banco de Dados
O local de armazenamento do ChromaDB é definido automaticamente para chroma_db/ na raiz do projeto.
Exemplos de Consultas
Aqui estão alguns exemplos de consultas que você pode usar:
Italiano:
- "Come gestire una non conformità?"
- "Procedura per la manutenzione dell'infrastruttura"
- "Cosa fare in caso di audit interno?"
- "Gestione del magazzino e inventario"
Inglês:
- "How to handle quality issues?"
- "Software development lifecycle procedures"
- "Risk management protocols"
- "Employee training requirements"
Solução de Problemas
Problemas Comuns
- Nenhum documento encontrado: Certifique-se de que os documentos SOP estejam na estrutura de diretórios correta
- Download do modelo de embedding: A primeira execução pode levar tempo para baixar o modelo multilíngue
- Uso de memória: Coleções grandes de documentos podem exigir mais RAM para geração de embeddings
- Problemas de caminho: Certifique-se de usar caminhos absolutos na configuração do seu cliente MCP
Logs
O servidor fornece logs detalhados com emojis para melhor legibilidade:
- 🚀 Inicialização e inicialização do servidor
- 📄 Status do processamento de documentos
- 📊 Estatísticas de processamento
- ✅ Mensagens de sucesso
- ❌ Mensagens de erro
Verifique a saída do console ou os logs do seu cliente MCP para informações detalhadas.
Desenvolvimento
Estrutura do Projeto
mcp-sop-server/
├── src/mcp_sop_server/ # Main package
│ ├── __init__.py # Package initialization
│ ├── mcp_server.py # FastMCP server and tools
│ ├── document_processor.py # Document text extraction
│ └── document_searcher.py # Vector search with ChromaDB
├── main.py # Entry point
├── requirements.txt # Dependencies
├── test_server.py # Server testing
├── mcp-client-config.json # Example client configuration
└── README.md # This file
Adicionando Novos Tipos de Documentos
Para suportar formatos de arquivo adicionais, estenda a classe DocumentProcessor:
def extract_text_from_new_format(self, file_path: Path) -> str:
# Implementation for new format
pass
Lógica de Busca Personalizada
Modifique a classe DocumentSearcher para implementar algoritmos ou filtros de busca personalizados.
Ferramentas Adicionais
Adicione novas ferramentas MCP definindo-as com o decorador @mcp.tool() em mcp_server.py.
Licença
Este projeto é destinado ao uso interno da empresa para acessar a documentação de SOPs.
Suporte
Para problemas ou perguntas sobre o servidor MCP SOP, crie uma issue no repositório do GitHub.