Prompts MCP Server

Um servidor MCP para gerenciar e servir prompts a partir de arquivos markdown com suporte a frontmatter YAML.

Documentação

Servidor MCP de Prompts

Um servidor Model Context Protocol (MCP) para gerenciar e fornecer prompts. Este servidor permite que usuários e LLMs adicionem, recuperem e gerenciem facilmente modelos de prompts armazenados como arquivos markdown com suporte a frontmatter YAML.

Prompts Server MCP server

Início Rápido

# 1. Install from NPM
npm install -g prompts-mcp-server

# 2. Add to your MCP client config (e.g., Claude Desktop)
# Add this to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
  "mcpServers": {
    "prompts-mcp-server": {
      "command": "prompts-mcp-server"
    }
  }
}

# 3. Restart your MCP client and start using the tools!

Recursos

  • Adicionar Prompts: Armazene novos prompts como arquivos markdown com frontmatter YAML
  • Recuperar Prompts: Obtenha prompts específicos pelo nome
  • Listar Prompts: Visualize todos os prompts disponíveis com pré-visualização de metadados
  • Excluir Prompts: Remova prompts da coleção
  • Armazenamento Baseado em Arquivos: Os prompts são armazenados como arquivos markdown no diretório prompts/
  • Cache em Tempo Real: Cache em memória com monitoramento automático de alterações de arquivos
  • Frontmatter YAML: Suporte para metadados estruturados (título, descrição, tags, etc.)
  • TypeScript: Implementação completa em TypeScript com definições de tipos abrangentes
  • Arquitetura Modular: Separação clara de responsabilidades com injeção de dependências
  • Testes Abrangentes: 95 testes com 84,53% de cobertura de código

Instalação

Opção 1: Via NPM (Recomendado)

Instale o pacote globalmente via NPM:

npm install -g prompts-mcp-server

Isso tornará o comando prompts-mcp-server disponível no seu sistema.

Após a instalação, você precisa configurar seu cliente MCP para usá-lo. Veja Configuração do Cliente MCP.

Opção 2: Via GitHub (para desenvolvimento)

# Clone the repository
git clone https://github.com/tanker327/prompts-mcp-server.git
cd prompts-mcp-server

# Install dependencies
npm install

# Build the TypeScript code
npm run build

# Test the installation
npm test

Opção 3: Download Direto

  1. Baixe a versão mais recente do GitHub
  2. Extraia para o local desejado
  3. Execute as etapas de instalação da Opção 2.

Verificação

Após a instalação, verifique se o servidor funciona:

# Start the server (should show no errors)
npm start

# Or test with MCP Inspector
npx @modelcontextprotocol/inspector prompts-mcp-server

Testes

Execute a suíte de testes abrangente:

npm test

Execute testes com cobertura:

npm run test:coverage

Modo de observação para desenvolvimento:

npm run test:watch

Ferramentas MCP

O servidor fornece as seguintes ferramentas:

add_prompt

Adicione um novo prompt à coleção. Se nenhum frontmatter YAML for fornecido, metadados padrão serão adicionados automaticamente.

  • name (string): Nome do prompt
  • content (string): Conteúdo do prompt em formato markdown com frontmatter YAML opcional

create_structured_prompt

Crie um novo prompt com estrutura de metadados guiada e validação.

  • name (string): Nome do prompt
  • title (string): Título legível para o prompt
  • description (string): Breve descrição do que o prompt faz
  • category (string, opcional): Categoria (padrão: "general")
  • tags (array, opcional): Array de tags para categorização (padrão: ["general"])
  • difficulty (string, opcional): "beginner", "intermediate" ou "advanced" (padrão: "beginner")
  • author (string, opcional): Autor do prompt (padrão: "User")
  • content (string): O conteúdo real do prompt (markdown)

get_prompt

Recupere um prompt pelo nome.

  • name (string): Nome do prompt a ser recuperado

list_prompts

Liste todos os prompts disponíveis com pré-visualização de metadados. Nenhum parâmetro necessário.

delete_prompt

Exclua um prompt pelo nome.

  • name (string): Nome do prompt a ser excluído

Exemplos de Uso

Uma vez conectado a um cliente MCP, você pode usar as ferramentas assim:

Método 1: Criação rápida de prompt com metadados automáticos

// Add a prompt without frontmatter - metadata will be added automatically
add_prompt({
  name: "debug_helper",
  content: `# Debug Helper

Help me debug this issue by:
1. Analyzing the error message
2. Suggesting potential causes
3. Recommending debugging steps`
})
// This automatically adds default frontmatter with title "Debug Helper", category "general", etc.

Método 2: Criação estruturada de prompt com controle total de metadados

// Create a prompt with explicit metadata using the structured tool
create_structured_prompt({
  name: "code_review",
  title: "Code Review Assistant",
  description: "Helps review code for best practices and potential issues",
  category: "development",
  tags: ["code", "review", "quality"],
  difficulty: "intermediate",
  author: "Development Team",
  content: `# Code Review Prompt

Please review the following code for:
- Code quality and best practices
- Potential bugs or issues
- Performance considerations
- Security vulnerabilities

## Code to Review
[Insert code here]`
})

Método 3: Frontmatter manual (preserva metadados existentes)

// Add a prompt with existing frontmatter - no changes made
add_prompt({
  name: "custom_prompt",
  content: `---
title: "Custom Assistant"
category: "specialized"
tags: ["custom", "specific"]
difficulty: "advanced"
---

# Custom Prompt Content
Your specific prompt here...`
})

Outras operações

// Get a prompt
get_prompt({ name: "code_review" })

// List all prompts (shows metadata preview)
list_prompts({})

// Delete a prompt
delete_prompt({ name: "old_prompt" })

Estrutura de Arquivos

prompts-mcp-server/
├── src/
│   ├── index.ts          # Main server orchestration
│   ├── types.ts          # TypeScript type definitions
│   ├── cache.ts          # Caching system with file watching
│   ├── fileOperations.ts # File I/O operations
│   └── tools.ts          # MCP tool definitions and handlers
├── tests/
│   ├── helpers/
│   │   ├── testUtils.ts  # Test utilities
│   │   └── mocks.ts      # Mock implementations
│   ├── cache.test.ts     # Cache module tests
│   ├── fileOperations.test.ts # File operations tests
│   ├── tools.test.ts     # Tools module tests
│   └── index.test.ts     # Integration tests
├── prompts/              # Directory for storing prompt markdown files
│   ├── code_review.md
│   ├── debugging_assistant.md
│   └── api_design.md
├── dist/                 # Compiled JavaScript output
├── CLAUDE.md            # Development documentation
├── package.json
├── tsconfig.json
└── README.md

Arquitetura

O servidor usa uma arquitetura modular com os seguintes componentes:

  • PromptCache: Cache em memória com monitoramento em tempo real de alterações de arquivos via chokidar
  • PromptFileOperations: Operações de I/O de arquivos com integração de cache
  • PromptTools: Definições de ferramentas MCP e manipuladores de solicitações
  • Sistema de Tipos: Tipos TypeScript abrangentes para todas as estruturas de dados

Suporte a Frontmatter YAML

Os prompts podem incluir metadados estruturados usando frontmatter YAML:

---
title: "Prompt Title"
description: "Brief description of the prompt"
category: "development"
tags: ["tag1", "tag2", "tag3"]
difficulty: "beginner" | "intermediate" | "advanced"
author: "Author Name"
version: "1.0"
---

# Prompt Content

Your prompt content goes here...

Configuração do Cliente MCP

Este servidor pode ser configurado com vários aplicativos compatíveis com MCP. Aqui estão as instruções de configuração para clientes populares:

Claude Desktop

Adicione isso ao seu arquivo de configuração do Claude Desktop:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "prompts-mcp-server": {
      "command": "prompts-mcp-server",
      "env": {
        "PROMPTS_FOLDER_PATH": "/path/to/your/prompts/directory"
      }
    }
  }
}

Cline (Extensão VS Code)

Adicione às suas configurações MCP do Cline no VS Code:

{
  "cline.mcp.servers": {
    "prompts-mcp-server": {
      "command": "prompts-mcp-server",
      "env": {
        "PROMPTS_FOLDER_PATH": "/path/to/your/prompts/directory"
      }
    }
  }
}

Continue.dev

No seu ~/.continue/config.json:

{
  "mcpServers": [
    {
      "name": "prompts-mcp-server",
      "command": "prompts-mcp-server",
      "env": {
        "PROMPTS_FOLDER_PATH": "/path/to/your/prompts/directory"
      }
    }
  ]
}

Editor Zed

Nas suas configurações do Zed (~/.config/zed/settings.json):

{
  "assistant": {
    "mcp_servers": {
      "prompts-mcp-server": {
        "command": "prompts-mcp-server",
        "env": {
          "PROMPTS_DIR": "/path/to/your/prompts/directory"
        }
      }
    }
  }
}

Cliente MCP Personalizado

Para qualquer aplicativo compatível com MCP, use estes detalhes de conexão:

  • Protocolo: Model Context Protocol (MCP)
  • Transporte: stdio
  • Comando: prompts-mcp-server
  • Variáveis de Ambiente:
    • PROMPTS_FOLDER_PATH: Diretório personalizado para armazenar prompts (opcional, padrão: ./prompts)

Configuração de Desenvolvimento/Testes

Para desenvolvimento ou testes com o MCP Inspector:

# Install MCP Inspector
npm install -g @modelcontextprotocol/inspector

# Run the server with inspector
npx @modelcontextprotocol/inspector prompts-mcp-server

Configuração Docker

Crie um docker-compose.yml para implantação em contêiner:

version: '3.8'
services:
  prompts-mcp-server:
    build: .
    environment:
      - PROMPTS_FOLDER_PATH=/app/prompts
    volumes:
      - ./prompts:/app/prompts
    stdin_open: true
    tty: true

Configuração do Servidor

  • O servidor cria automaticamente o diretório prompts/ se ele não existir
  • Os arquivos de prompt são automaticamente sanitizados para usar nomes de arquivo seguros (apenas caracteres alfanuméricos, hífens e sublinhados)
  • As alterações de arquivos são monitoradas em tempo real e o cache é atualizado automaticamente
  • O diretório de prompts pode ser personalizado via variável de ambiente PROMPTS_FOLDER_PATH

Variáveis de Ambiente

VariávelDescriçãoPadrão
PROMPTS_FOLDER_PATHDiretório personalizado para armazenar arquivos de prompt (substitui o padrão)(não definido)
NODE_ENVModo de ambienteproduction

Nota: Se PROMPTS_FOLDER_PATH estiver definido, ele será usado como diretório de prompts. Se não estiver definido, o servidor usa o padrão ./prompts relativo ao local do servidor.

Requisitos

  • Node.js 18.0.0 ou superior
  • TypeScript 5.0.0 ou superior
  • Dependências:
    • @modelcontextprotocol/sdk ^1.0.0
    • gray-matter ^4.0.3 (análise de frontmatter YAML)
    • chokidar ^3.5.3 (monitoramento de arquivos)

Desenvolvimento

O projeto inclui ferramentas abrangentes para desenvolvimento:

  • TypeScript: Verificação estrita de tipos e módulos ES modernos
  • Vitest: Framework de testes rápido com 95 testes e 84,53% de cobertura
  • ESLint: Linting de código (se configurado)
  • Monitoramento de Arquivos: Atualizações de cache em tempo real durante o desenvolvimento

Solução de Problemas

Problemas Comuns

Erros de "Módulo não encontrado"

# Ensure TypeScript is built
npm run build

# Check that dist/ directory exists and contains .js files
ls dist/

Cliente MCP não consegue conectar

  1. Verifique se o servidor inicia sem erros: npm start
  2. Verifique se o caminho correto é usado na configuração do cliente
  3. Garanta que Node.js 18+ esteja instalado: node --version
  4. Teste com MCP Inspector: npx @modelcontextprotocol/inspector prompts-mcp-server

Erros de permissão com o diretório de prompts

# Ensure the prompts directory is writable
mkdir -p ./prompts
chmod 755 ./prompts

Monitoramento de arquivos não funcionando

  • No Linux: Instale inotify-tools
  • No macOS: Nenhuma configuração adicional necessária
  • No Windows: Garanta o Windows Subsystem for Linux (WSL) ou Node.js nativo

Modo de Depuração

Habilite o registro de depuração definindo variáveis de ambiente:

# Enable debug mode
DEBUG=* node dist/index.js

# Or with specific debug namespace
DEBUG=prompts-mcp:* node dist/index.js

Obtendo Ajuda

  1. Verifique as Issues do GitHub
  2. Revise os arquivos de teste para exemplos de uso
  3. Use o MCP Inspector para depurar conexões de clientes
  4. Verifique a documentação do seu cliente MCP para detalhes de configuração

Dicas de Desempenho

  • O servidor usa cache em memória para recuperação rápida de prompts
  • O monitoramento de arquivos atualiza automaticamente o cache quando os arquivos mudam
  • Grandes coleções de prompts (1000+ arquivos) funcionam eficientemente devido ao cache
  • Considere usar armazenamento SSD para melhor desempenho de I/O de arquivos

Variantes e Extensões da Comunidade

ProjetoMantenedorRecursos Extras
smart-prompts-mcp@jezwebBibliotecas de prompts hospedadas no GitHub, busca avançada e composição, tipos TypeScript mais ricos, etc.

👉 Você construiu algo legal em cima do prompts-mcp-server?
Abra uma issue ou PR para adicioná-lo aqui para que outros possam descobrir sua variante!

Licença

MIT