Langfuse Prompt Management

공식

협업 편집, 버전 관리, 평가, 프롬프트 릴리스를 위한 오픈소스 도구입니다.

문서

Langfuse 프롬프트 관리 MCP 서버

Langfuse 프롬프트 관리를 위한 모델 컨텍스트 프로토콜(MCP) 서버입니다. 이 서버를 사용하면 모델 컨텍스트 프로토콜을 통해 Langfuse 프롬프트에 접근하고 관리할 수 있습니다.

데모

Claude Desktop에서 Langfuse 프롬프트 MCP의 빠른 데모입니다 (음성 해설을 들으려면 음소거를 해제하세요):

https://github.com/user-attachments/assets/61da79af-07c2-4f69-b28c-ca7c6e606405

기능

MCP 프롬프트

이 서버는 프롬프트 검색 및 조회를 위해 MCP 프롬프트 사양을 구현합니다.

  • prompts/list: 사용 가능한 모든 프롬프트 나열

    • 선택적 커서 기반 페이지네이션
    • 프롬프트 이름과 필수 인수를 반환합니다. 제한 사항: Langfuse에서 변수에 대한 사양이 없으므로 모든 인수는 선택 사항으로 간주되며 설명이 포함되지 않습니다.
    • 프롬프트가 1페이지를 초과하는 경우 페이지네이션을 위한 다음 커서를 포함합니다.
  • prompts/get: 특정 프롬프트 가져오기

    • Langfuse 프롬프트(텍스트 및 채팅)를 MCP 프롬프트 객체로 변환합니다.
    • 제공된 변수로 프롬프트를 컴파일합니다.

도구

프롬프트 기능을 지원하지 않는 다른 MCP 클라이언트와의 호환성을 높이기 위해, 서버는 MCP 프롬프트의 기능을 복제하는 도구도 내보냅니다.

  • get-prompts: 사용 가능한 프롬프트 나열

    • 페이지네이션을 위한 선택적 cursor 매개변수
    • 인수와 함께 프롬프트 목록을 반환합니다.
  • get-prompt: 특정 프롬프트 조회 및 컴파일

    • 필수 name 매개변수: 조회할 프롬프트의 이름
    • 선택적 arguments 매개변수: 프롬프트 변수가 포함된 JSON 객체

개발

npm install

# build current file
npm run build

# test in mcp inspector
npx @modelcontextprotocol/inspector node ./build/index.js

사용법

1단계: 빌드

npm install
npm run build

2단계: MCP 서버에 서버 추가하기:

Claude Desktop

claude_desktop_config.json을(를) 편집하여 Claude for Desktop을 구성합니다.

{
  "mcpServers": {
    "langfuse": {
      "command": "node",
      "args": ["<absolute-path>/build/index.js"],
      "env": {
        "LANGFUSE_PUBLIC_KEY": "your-public-key",
        "LANGFUSE_SECRET_KEY": "your-secret-key",
        "LANGFUSE_BASEURL": "https://cloud.langfuse.com"
      }
    }
  }
}

환경 변수를 실제 Langfuse API 키로 교체해야 합니다. 이제 Claude Desktop에서 서버를 사용할 수 있습니다.

Cursor

Cursor에 새 서버 추가:

  • 이름: Langfuse Prompts
  • 유형: command
  • 명령:
    LANGFUSE_PUBLIC_KEY="your-public-key" LANGFUSE_SECRET_KEY="your-secret-key" LANGFUSE_BASEURL="https://cloud.langfuse.com" node absolute-path/build/index.js
    

제한 사항

MCP 서버는 개발 중이며 몇 가지 제한 사항이 있습니다:

  • Langfuse에서 production 레이블이 있는 프롬프트만 반환됩니다.
  • Langfuse에서 변수에 대한 사양이 없으므로 모든 인수는 선택 사항으로 간주되며 설명이 포함되지 않습니다.
  • 목록 작업은 인수를 추출하기 위해 백그라운드에서 각 프롬프트를 개별적으로 가져와야 하므로 작동은 하지만 효율적이지 않습니다.

기여를 환영합니다! 제안이나 피드백이 있으시면 이슈나 PR을 열어주세요 (저장소).