MCP Prompts Server

by sparesparrow
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Supports deployment using Docker and Docker Compose for containerized deployment

  • Built on Node.js with support for Node.js 18 or later

  • Provides integration with PostgreSQL databases for storing prompts, with export/import functionality and synchronization between file storage and database

MCP 프롬프트 서버

프로젝트 오케스트레이션 기능을 갖춘 프롬프트 및 템플릿 관리를 위한 MCP 서버입니다. 모델 컨텍스트 프로토콜(Model Context Protocol) 생태계의 일부입니다.

이 서버는 AI 프롬프트에 대한 템플릿을 저장, 검색, 적용하는 간단한 방법을 제공하여 AI 애플리케이션 전반에서 일관된 프롬프트 패턴을 유지하기 쉽게 해줍니다.

목차

특징

  • 프롬프트 저장 및 검색
  • 변수를 사용하여 템플릿을 만들고 사용하세요
  • 태그로 필터링하여 프롬프트 나열
  • 템플릿에 변수 적용
  • 다중 스토리지 백엔드(파일 시스템, PostgreSQL 및 MDC 형식)
  • Claude 및 기타 AI 어시스턴트와 함께 사용하기 쉽습니다.
  • 프로젝트 오케스트레이션 기능
  • 상태 점검 엔드포인트

설치

npx 사용(권장)

지엑스피1

글로벌 설치

npm install -g @sparesparrow/mcp-prompts

Docker 사용

docker run -p 3003:3003 -v ~/mcp/data:/app/data sparesparrow/mcp-prompts:latest

설치 확인

설치 후 다음을 통해 서버가 제대로 작동하는지 확인할 수 있습니다.

  1. 클로드 데스크탑 열기
  2. 채팅 입력란에 "/"를 입력하여 서버에서 프롬프트가 나타나는지 확인하세요.
  3. 간단한 도구 호출로 테스트:
    use_mcp_tool({ server_name: "prompt-manager", tool_name: "list_prompts", arguments: {} });

구성

서버는 환경 변수를 사용하여 구성할 수 있습니다.

환경 변수설명기본
서버 이름서버 이름MCP 프롬프트 서버
서버 버전서버 버전package.json 버전
저장 유형저장 유형: 'file', 'postgres' 또는 'mdc'파일
프롬프트_디렉토리프롬프트를 저장하기 위한 디렉토리~/mcp/data/prompts
백업 디렉토리백업용 디렉토리~/mcp/데이터/백업
포트HTTP 서버용 포트3003
로그 레벨로깅 레벨정보
HTTP_서버HTTP 서버 활성화거짓
주인HTTP 서버용 호스트0.0.0.0

PostgreSQL 설정(STORAGE_TYPE=postgres인 경우 필수)

환경 변수설명기본
PG_호스트PostgreSQL 호스트로컬호스트
PG_PORTPostgreSQL 포트5432
PG_데이터베이스PostgreSQL 데이터베이스 이름mcp_프롬프트
PG_USERPostgreSQL 사용자 이름포스트그레스
PG_비밀번호PostgreSQL 비밀번호
PG_SSLPostgreSQL 연결에 SSL 사용거짓
POSTGRES_CONNECTION_STRING전체 PostgreSQL 연결 문자열(개별 설정 재정의)

MDC 설정(STORAGE_TYPE=mdc인 경우 필수)

환경 변수설명기본
MDC_규칙_디렉토리MDC 규칙에 대한 디렉토리./.커서/규칙

용법

Claude와 함께 사용

Claude 3 Desktop 앱에서 claude_desktop_config.json 에서 MCP Prompts 서버를 구성할 수 있습니다.

{ "mcpServers": { "prompts": { "command": "npx", "args": [ "-y", "@sparesparrow/mcp-prompts" ], "env": { "STORAGE_TYPE": "file", "PROMPTS_DIR": "/path/to/your/prompts/directory", "LOG_LEVEL": "debug" } } } }

사용 가능한 도구

MCP 프롬프트 서버는 다음과 같은 도구를 제공합니다.

  • add_prompt : 새로운 프롬프트를 추가합니다
  • get_prompt : ID로 프롬프트를 가져옵니다
  • update_prompt : 기존 프롬프트를 업데이트합니다.
  • list_prompts : 모든 프롬프트를 나열합니다
  • delete_prompt : ID로 프롬프트 삭제
  • apply_template : 프롬프트 템플릿에 변수 적용

API 사용 예

사용 가능한 프롬프트 나열

사용 가능한 프롬프트를 확인하려면:

use_mcp_tool({ server_name: "prompt-manager", tool_name: "list_prompts", arguments: {} });

태그로 필터링하려면:

use_mcp_tool({ server_name: "prompt-manager", tool_name: "list_prompts", arguments: { tags: ["development"] } });

특정 프롬프트 받기

ID로 특정 프롬프트를 검색하려면:

use_mcp_tool({ server_name: "prompt-manager", tool_name: "get_prompt", arguments: { id: "development-workflow" } });

템플릿 프롬프트 사용

템플릿 프롬프트에 변수를 적용하려면:

use_mcp_tool({ server_name: "prompt-manager", tool_name: "apply_template", arguments: { id: "development-system-prompt", variables: { "project_type": "web frontend", "language": "JavaScript/React", "project_name": "TaskManager", "project_goal": "create a task management application with drag-and-drop functionality", "technical_context": "Using React 18, TypeScript, and Material UI" } } });

프롬프트 관리

새로운 프롬프트 추가

새로운 프롬프트를 추가하려면:

use_mcp_tool({ server_name: "prompt-manager", tool_name: "add_prompt", arguments: { name: "Bug Report Template", description: "Template for submitting bug reports", content: "## Bug Report\n\n### Description\n{{description}}\n\n### Steps to Reproduce\n{{steps}}\n\n### Expected Behavior\n{{expected}}\n\n### Actual Behavior\n{{actual}}\n\n### Environment\n{{environment}}", isTemplate: true, variables: ["description", "steps", "expected", "actual", "environment"], tags: ["bug", "template", "documentation"] } });

기존 프롬프트 편집

기존 프롬프트를 편집하려면:

use_mcp_tool({ server_name: "prompt-manager", tool_name: "edit_prompt", arguments: { id: "development-workflow", content: "Updated workflow content here...", tags: ["development", "workflow", "python", "updated"] } });

워크플로에서 프롬프트 사용

개발 워크플로우 예제

새로운 기능 작업을 시작할 때:

  1. 개발 시스템 프롬프트 템플릿 요청
  2. 프로젝트 세부 정보를 템플릿에 입력하세요
  3. 결과 시스템 프롬프트를 사용하여 Claude의 지원을 안내합니다.

코드 검토 예제

코드를 검토할 때:

  1. 코드 검토 템플릿 요청
  2. 검토할 코드를 제공하세요
  3. Claude는 구조화된 검토를 제공할 것입니다.

프롬프트 형식

프롬프트의 구조는 다음과 같습니다.

{ "id": "unique-id", "name": "Prompt Name", "description": "Optional description", "content": "The prompt content with {{variables}}", "tags": ["tag1", "tag2"], "isTemplate": true, "variables": ["variable1", "variable2"], "metadata": { "author": "Your Name", "version": "1.0.0" } }

다양한 형식의 프롬프트 지원

MCP 프롬프트 서버에는 프롬프트를 여러 형식 간에 변환할 수 있는 강력한 MutablePrompt 인터페이스가 포함되어 있습니다.

  • JSON 형식 : 서버에서 사용하는 표준 내부 형식
  • MDC 형식 : 커서 규칙 마크다운 형식(.mdc 파일)
  • PGAI 형식 : PostgreSQL AI에 대한 임베딩 지원이 포함된 형식
  • 템플릿 형식 : 가변 플레이스홀더가 있는 동적 형식

형식 간 변환

MutablePrompt 인터페이스는 다음 형식 간에 프롬프트를 변환하는 메서드를 제공합니다.

// Create a mutable prompt const factory = new MutablePromptFactoryImpl(); const prompt = factory.create({ name: "API Design Guide", description: "Template for designing RESTful APIs", content: "# API Design for {{service_name}}\n\n## Endpoints\n\n{{endpoints}}\n\n## Authentication\n\n{{auth_method}}", isTemplate: true, variables: ["service_name", "endpoints", "auth_method"], tags: ["api", "design", "rest", "glob:*.md"] }); // Convert to MDC format const mdcContent = prompt.toMdc({ includeVariables: true }); // Convert to PGAI format with embeddings const pgaiData = prompt.toPgai({ generateEmbeddings: true, collection: "prompts", vectorConfig: { dimension: 1536, metric: "cosine" } }); // Convert to template format with dollar-style variables const templateContent = prompt.toTemplate({ delimiterStyle: "dollar" });

템플릿 적용

템플릿 프롬프트에 변수를 쉽게 적용할 수 있습니다.

const result = prompt.applyVariables({ service_name: "User Management API", endpoints: "GET /users, POST /users, GET /users/{id}, PUT /users/{id}, DELETE /users/{id}", auth_method: "JWT Bearer Token" });

변수 추출

템플릿 콘텐츠에서 변수 추출:

const variables = prompt.extractVariables(); // Returns ["service_name", "endpoints", "auth_method"]

다양한 형식으로 만들기

다양한 형식으로 프롬프트를 만들 수도 있습니다.

// From MDC format const mdcContent = `--- description: Template for code reviews globs: ["*.js", "*.ts"] --- # Code Review Template ## Context {{context}} ## Patterns {{patterns}} ## Variables - \`context\`: Description of the code being reviewed - \`patterns\`: Common patterns to look for `; const promptFromMdc = factory.fromMdc(mdcContent); // From PGAI format const pgaiData = { id: "api-design", name: "API Design Guide", content: "# API Design Guide\n\nUse this guide...", metadata: { description: "Comprehensive API design guide", tags: ["api", "rest"], isTemplate: false } }; const promptFromPgai = factory.fromPgai(pgaiData);

스토리지 어댑터와의 통합

MutablePrompt 인터페이스는 기존 스토리지 어댑터와 원활하게 작동합니다.

// Save a prompt in MDC format const mdcPrompt = factory.fromMdc(mdcContent); await fileAdapter.savePrompt(mdcPrompt); // Save a prompt to PostgreSQL with PGAI format const pgaiPrompt = factory.fromPgai(pgaiData); await postgresAdapter.savePrompt(pgaiPrompt);

이러한 유연한 형식 처리를 통해 다음이 가능합니다.

  1. 크로스 플랫폼 호환성 : 다양한 도구와 플랫폼에서 프롬프트를 사용하세요
  2. 벡터 검색 : 의미 검색 기능을 위해 PGAI 형식 사용
  3. IDE 통합 : 커서 규칙과의 직접 호환성
  4. 템플릿 시스템 : 다양한 프로그래밍 언어에서 사용할 수 있는 템플릿 내보내기

스토리지 어댑터

서버는 세 가지 유형의 스토리지 어댑터를 지원합니다.

  1. 파일 어댑터 : 프롬프트를 디렉토리에 개별 JSON 파일로 저장합니다.
  2. PostgreSQL 어댑터 : PostgreSQL 데이터베이스에 프롬프트를 저장합니다.
  3. MDC 어댑터 : 커서 규칙 MDC 형식으로 프롬프트를 저장합니다.

STORAGE_TYPE 환경 변수를 사용하여 저장소 유형을 구성할 수 있습니다.

STORAGE_TYPE=file # Default STORAGE_TYPE=postgres # Requires PostgreSQL configuration STORAGE_TYPE=mdc # For Cursor Rules format

PostgreSQL 설정

PostgreSQL 저장소를 사용할 때 다음 환경 변수를 구성하세요.

PG_HOST=localhost PG_PORT=5432 PG_DATABASE=mcp_prompts PG_USER=postgres PG_PASSWORD=your_password PG_SSL=false

또는 연결 문자열을 사용하세요.

POSTGRES_CONNECTION_STRING=postgresql://user:password@host:port/database

도커 배포

Docker Compose 오케스트레이션

MCP 프롬프트 서버는 다양한 배포 시나리오에 맞춰 다양한 Docker Compose 구성을 제공합니다.

간단한 배포

docker compose up -d

이렇게 하면 포트 3003의 파일 저장소를 사용하여 MCP 프롬프트 서버가 배포됩니다.

PostgreSQL 배포

docker compose -f docker-compose.postgres.yml up -d

이를 배포합니다.

  • PostgreSQL 데이터베이스 서버
  • PostgreSQL에 대해 구성된 MCP Prompts 서버
  • http://localhost:8080 에서 데이터베이스 관리를 위한 관리자

개발 환경

docker compose -f docker-compose.dev.yml up -d

핫 리로딩 기능을 갖춘 개발 환경을 설정합니다. 로컬 디렉터리의 소스 코드를 마운트하고 Adminer를 포함합니다.

테스트 환경

docker compose -f docker-compose.test.yml up --build

이를 통해 다음과 같은 전용 테스트 환경이 생성됩니다.

  • 테스트 데이터가 포함된 임시 PostgreSQL 인스턴스
  • 모든 테스트를 실행하는 격리된 테스트 러너 컨테이너
  • 테스트 결과는 ./test-results 디렉토리에 저장됩니다.

Docker 관리 스크립트

Docker Compose 작업을 간소화하려면 제공된 관리 스크립트를 사용하세요.

# Start development environment ./scripts/docker-manage.sh start dev # Run tests in Docker ./scripts/docker-manage.sh test # View logs from production environment ./scripts/docker-manage.sh logs prod # Clean up test environment ./scripts/docker-manage.sh clean test # Show help ./scripts/docker-manage.sh help

관리 스크립트는 다음 명령을 지원합니다.

  • start : Docker 컨테이너 시작
  • stop : Docker 컨테이너 중지
  • restart : Docker 컨테이너를 다시 시작합니다.
  • logs : 컨테이너의 로그를 표시합니다.
  • clean : 컨테이너, 네트워크 및 볼륨 제거
  • build : Docker 이미지 빌드
  • test : Docker 컨테이너에서 테스트 실행

그리고 다음과 같은 환경:

  • dev : 개발 환경(기본값)
  • test : 테스트 환경
  • prod : 프로덕션 환경

사용자 정의 구성

기본 구성을 확장하여 사용자 정의 Docker Compose 구성을 만들 수 있습니다.

# custom-compose.yml version: '3.8' include: - docker-compose.yml services: mcp-prompts: environment: - CUSTOM_ENV=value

다음으로 다음을 실행합니다.

docker compose -f custom-compose.yml up -d

개발

개발 워크플로

개발 환경 설정

  1. 저장소를 복제합니다
    git clone https://github.com/user/mcp-prompt-manager.git cd mcp-prompt-manager
  2. 종속성 설치
    npm install
  3. 환경 변수 설정 필요한 구성으로 .env 파일을 만듭니다.

개발 명령

  • 핫 리로딩으로 개발 서버 시작
    npm run dev
  • 프로젝트를 빌드하세요
    npm run build
  • 단위 테스트 실행
    npm test
  • 통합 테스트 실행
    npm run test:integration
  • 테스트 빌드 프로세스
    npm run test:build
  • Docker 빌드 테스트
    npm run test:docker
  • Docker 이미지 빌드
    npm run docker:build

빌드 프로세스

빌드 프로세스에는 몇 가지 중요한 단계가 포함됩니다.

  1. TypeScript 컴파일
    npm run build
  2. 진입점을 실행 가능하게 만들기
    chmod +x dist/index.js

테스트

테스트를 실행하세요:

npm test

테스트를 위해 MCP Inspector를 실행하세요.

npm run test:inspector

종합 테스트 스크립트

더욱 고급 테스트 옵션을 원하시면 제공된 테스트 스크립트를 사용하세요.

# Run all tests (unit and integration) ./scripts/run-tests.sh # Run only unit tests ./scripts/run-tests.sh --unit # Run only integration tests ./scripts/run-tests.sh --integration # Generate test coverage report ./scripts/run-tests.sh --coverage # Run tests in Docker ./scripts/run-tests.sh --docker # Clean up Docker resources after testing ./scripts/run-tests.sh --docker --clean

Docker 컨테이너 상태 테스트

Docker 컨테이너의 상태를 테스트하려면:

# Run the Docker health check tests TEST_DOCKER_HEALTH=true npm test -- tests/integration/docker-health.integration.test.ts

이 테스트는 MCP-Prompts 서버가 Docker 컨테이너에서 실행 중일 때 상태 점검 엔드포인트가 올바르게 작동하는지 확인합니다.

디렉토리 구조

이 프로젝트는 우려 사항을 명확하게 분리하기 위해 체계적인 조직을 따릅니다.

mcp-prompt-manager/ ├── .github/workflows/ # CI/CD workflow configurations ├── dist/ # Built files ├── src/ # Source code │ ├── adapters.ts # Storage adapters │ ├── interfaces.ts # Core types and interfaces │ └── index.ts # Main entry point ├── scripts/ # Maintenance and utility scripts ├── package.json # Project metadata and scripts └── README.md # Project documentation

릴리스 프로세스

출시 전 체크리스트

  • 모든 TypeScript 오류가 해결되었습니다.
  • 코드 린팅은 오류 없이 통과됩니다.
  • 코드는 프로젝트 표준에 따라 적절하게 형식화되었습니다.
  • 단위 테스트 통과
  • 통합 테스트 통과
  • 빌드 테스트 패스
  • Docker 빌드 테스트 통과
  • 패키지 설치 테스트 통과
  • README에는 최신 기능과 변경 사항이 포함되어 있습니다.
  • CHANGELOG는 모든 주요 변경 사항으로 업데이트됩니다.

버전 업데이트

  • 의미적 버전에 따라 package.json 의 버전을 업데이트합니다.
  • 종속성이 최신 상태인지 확인하세요
  • 문서의 모든 버전 참조를 업데이트합니다.

출판

  • 새 버전에 대한 git 태그를 만듭니다.
  • 변경 사항을 GitHub에 푸시하고 태그를 지정합니다.
  • npm에 게시( npm publish )
  • Docker 이미지 빌드 및 푸시

출시 후 검증

  • npm에서 설치 확인
  • npx로 패키지를 실행할 수 있는지 확인하세요
  • Docker 이미지가 예상대로 작동하는지 확인하세요
  • Claude Desktop과의 통합 확인

변경 사항

[1.2.20] - 2025-03-14

  • 자동 버전 범프

[1.2.19] - 2024-03-16

결정된

  • PostgresAdapter 구현에서 TypeScript 오류가 수정되었습니다.
  • 생성된 프롬프트를 올바르게 반환하기 위해 향상된 savePrompt 메서드
  • PostgresAdapter에 updatePrompt 메서드가 추가되었습니다.
  • listPrompts 및 clearAll 메서드를 포함하도록 StorageAdapter 인터페이스를 고정했습니다.
  • clearAll 메서드에 대한 database-tools.ts의 오류 처리가 개선되었습니다.
  • 더욱 자세한 정보를 제공하는 향상된 상태 점검 엔드포인트

추가됨

  • 상태 점검 엔드포인트에 대한 더 나은 문서화 및 오류 처리 기능이 추가되었습니다.

[1.2.18] - 2024-03-14

추가됨

  • 상태 점검 엔드포인트가 있는 HTTP 서버 추가
  • Docker 컨테이너 상태 검사가 추가되었습니다.
  • Node.js 18-23+에 대한 ESM 모듈 호환성이 추가되었습니다.
  • 더 나은 오류 처리 기능을 갖춘 향상된 데이터베이스 도구

변경됨

  • 다단계 빌드를 통한 향상된 Docker 빌드 프로세스
  • 간소화된 구성 관리
  • 최적화된 PostgreSQL 어댑터 연결 처리
  • 최신 버전으로 종속성을 업데이트했습니다.

결정된

  • 특정 파일 시스템의 파일 어댑터 관련 문제가 해결되었습니다.
  • 더 나은 디버깅을 위해 오류 메시지가 개선되었습니다.
  • 고정 템플릿 변수 추출

[1.2.0] - 2025-03-14

변경됨

  • 더 나은 유지 관리를 위해 재구성된 코드베이스 구조
  • Docker 관련 파일을 docker/ 디렉토리로 이동했습니다.
  • 빌드 스크립트를 scripts/build/ 디렉토리로 이동했습니다.
  • 테스트 스크립트를 scripts/test/ 디렉토리로 이동했습니다.
  • 새로운 파일 경로를 사용하도록 GitHub 워크플로가 업데이트되었습니다.
  • 새로운 파일 경로를 사용하도록 Docker Compose 구성이 업데이트되었습니다.
  • 포괄적인 개발 문서가 추가되었습니다.

추가됨

  • 자세한 지침이 포함된 개발 문서를 작성했습니다.
  • 릴리스 준비를 위한 릴리스 체크리스트를 생성했습니다.
  • 변경 사항을 추적하기 위해 CHANGELOG.md를 추가했습니다.

제거됨

  • 중복 및 중복 파일을 제거했습니다.
  • 불완전한 스크립트를 제거했습니다.

[1.1.0] - 2024-03-01

추가됨

  • 의미적 프롬프트 검색을 위한 PGAI 벡터 검색
  • PostgreSQL의 임베딩 지원
  • 전문가용 템플릿을 사용하여 향상된 프롬프트 컬렉션
  • 신속한 수금을 위한 일괄 처리 기능

변경됨

  • 향상된 신속한 처리 파이프라인
  • 더 많은 옵션을 갖춘 향상된 명령줄 인터페이스
  • 더 나은 오류 처리 및 검증

[1.0.0] - 2024-02-15

추가됨

  • MCP Prompts Server의 초기 릴리스
  • 기본 프롬프트 관리 기능(추가, 편집, 가져오기, 나열, 삭제)
  • 템플릿 변수 대체
  • 태그 기반 조직
  • 파일 기반 저장소
  • 가져오기/내보내기 기능
  • MCP 프로토콜 호환성

모범 사례

  1. 태그로 정리 : 태그를 사용하여 프롬프트를 분류하여 더 쉽게 검색할 수 있습니다.
  2. 템플릿 사용 : 일관된 프롬프트를 위해 변수를 사용하여 재사용 가능한 템플릿을 만듭니다.
  3. 메타데이터 포함 : 더 나은 구성을 위해 작성자, 버전 및 기타 메타데이터를 추가합니다.
  4. 정기 백업 : 중요한 프롬프트를 관리하는 경우 백업 기능을 사용하세요.
  5. 대규모 컬렉션 최적화 : 대규모 프롬프트 컬렉션을 검색할 때 페이지 매김을 사용합니다.
  6. 일관된 명명 사용 : 쉽게 찾을 수 있도록 명확하고 일관되게 이름을 지정합니다.
  7. 효과적인 태그 사용: 태그를 사용하여 목적, 프로젝트 또는 컨텍스트별로 프롬프트를 구성합니다.
  8. 재사용 가능한 프롬프트 템플릿 만들기 : 변수를 사용하여 자주 사용되는 프롬프트에 대한 템플릿을 만듭니다.
  9. 정기적으로 업데이트 : 요구 사항이 변경되면 프롬프트를 최신 상태로 유지하세요.
  10. 팀과 공유 : 일관된 상호작용을 위해 효과적인 메시지를 팀과 공유하세요.

특허

MIT

ID: i0z4f3pr82