hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Allows integration with the filesystem server through MCP, enabling reading files from allowed directories
젠킷 MCP
[!경고]
이 플러그인은 실험적이므로 장기적으로 지원되지 않을 수 있으며 API는 자주 중단되는 변경 사항을 받을 수 있습니다.
이 플러그인은 Genkit과 모델 컨텍스트 프로토콜 (MCP) 간의 통합을 제공합니다. MCP는 개발자가 클라이언트에 도구, 리소스 및 프롬프트를 제공하는 "서버"를 구축할 수 있도록 하는 개방형 표준입니다. Genkit MCP를 통해 Genkit 개발자는 MCP 도구, 프롬프트 및 리소스를 클라이언트로 사용하는 동시에 도구와 프롬프트를 서버로 제공할 수 있습니다.
설치
시작하려면 Genkit과 MCP 플러그인이 필요합니다.
지엑스피1
MCP 클라이언트
MCP 클라이언트를 생성하려면 mcpClient
함수를 호출하여 MCP 서버용 Genkit 플러그인을 생성합니다. 예를 들어, MCP의 파일 시스템 서버 예제를 사용하려면 다음과 같이 합니다.
대부분의 MCP 서버는 stdio
전송을 사용하여 동일한 머신에서 생성된 프로세스로 실행되도록 설계되었습니다. serverProcess
옵션을 제공하면 서버를 하위 프로세스로 생성하는 데 필요한 명령, 인수 및 환경 변수가 지정됩니다.
mcpClient() 옵션
name
: (필수) 이 클라이언트의 이름으로, 도구와 프롬프트의 네임스페이스입니다.version
: (선택 사항) 클라이언트 버전 번호입니다. 기본값은 "1.0.0"입니다.- 다음 중 하나를 제공해야 합니다.
serverProcess
: stdio MCP 전송을 사용하여 로컬 서버 프로세스를 시작하기 위한 매개변수입니다.command
: MCP 서버를 시작하기 위한 셸 명령 경로입니다. 예를 들어npx
또는uvx
사용하여 패키지 관리자에서 서버를 다운로드하고 실행할 수 있습니다.args
: (선택 사항) 명령에 전달할 문자열 인수 배열입니다.env
: (선택 사항) 명령에 전달할 환경 변수의 키 값 객체입니다.
serverUrl
: SSE MCP 전송을 사용하여 연결할 원격 서버의 URL입니다.- **
serverWebsocketUrl
: WebSocket MCP 전송을 사용하여 연결할 원격 서버의 URL입니다. transport
: 서버에 연결하기 위한 기존 MCP 전송 개체입니다.
rawToolResponses
: (선택 사항) 부울 플래그입니다.true
이면 도구 응답이 원시 MCP 형식으로 반환되고, 그렇지 않으면 Genkit 호환성을 위해 처리됩니다.
MCP 작업 사용
Genkit MCP 클라이언트는 사용 가능한 도구와 프롬프트를 자동으로 검색하고 Genkit에 등록하여 다른 도구와 프롬프트를 사용할 수 있는 모든 곳에서 사용할 수 있도록 합니다. 리소스에 액세스하려면 서버의 리소스에 액세스하는 특수 도구인 list_resources
및 read_resource
가 등록됩니다.
모든 MCP 작업은 사용자가 제공한 이름으로 네임스페이스가 지정되므로 filesystem
이라는 클라이언트는 filesystem/read_file
과 같은 도구를 등록합니다.
도구 응답
MCP 도구는 대부분의 Genkit 도구처럼 구조화된 응답이 아닌 content
배열을 반환합니다. Genkit MCP 플러그인은 반환된 콘텐츠를 파싱하고 강제 변환하려고 시도합니다.
- 콘텐츠가 텍스트이고 유효한 JSON인 경우 JSON이 구문 분석되어 반환됩니다.
- 콘텐츠가 텍스트이고 유효한 JSON이 아닌 경우 텍스트가 반환됩니다.
- 콘텐츠에 텍스트가 아닌 부분이 하나만 있는 경우 해당 부분이 반환됩니다.
- 콘텐츠에 여러 부분/혼합 부분이 있는 경우 전체 콘텐츠 응답이 반환됩니다.
MCP 서버
Genkit 인스턴스의 모든 도구와 프롬프트를 MCP 서버로 공개할 수도 있습니다.
위 코드는 add
라는 도구와 happy
라는 프롬프트를 노출하는 stdio 전송을 사용하여 MCP 서버를 시작합니다. 다른 전송으로 서버를 시작하려면 mcpServer(...).start(otherTransport)
사용합니다.
알려진 제한 사항
- MCP 프롬프트는 문자열 매개변수만 사용할 수 있으므로 스키마에 대한 입력은 문자열 속성 값만 있는 개체여야 합니다.
- MCP 프롬프트는
user
및model
메시지만 지원합니다.system
메시지는 지원되지 않습니다. - MCP 프롬프트는 메시지 내에서 단일 "유형"만 지원하므로 동일한 메시지에 미디어와 텍스트를 혼합할 수 없습니다.
MCP 서버 테스트
공식 검사기를 사용하여 MCP 서버를 테스트할 수 있습니다. 예를 들어, 서버 코드가 dist/index.js
파일로 컴파일된 경우 다음을 실행할 수 있습니다.
검사기를 시작하면 프롬프트와 작업을 나열하고 수동으로 테스트할 수 있습니다.
You must be authenticated.
Genkit 과 Model Context Protocol(MCP) 간의 통합을 제공합니다.