플러그인 API
MCP 서버, 사용자 정의 도구 및 강력한 통합으로 Gemini CLI를 확장하세요. Model Context Protocol을 사용하여 데이터베이스, API, 파일 시스템 등에 연결하세요.
확장 아키텍처
Gemini CLI는 Model Context Protocol (MCP)을 사용하여 AI 어시스턴트를 외부 도구 및 데이터 소스와 연결하는 표준화된 방법을 제공합니다.
MCP 서버
Model Context Protocol을 통해 도구와 리소스를 노출하는 독립적인 프로세스
도구 통합
외부 도구와 서비스를 AI 워크플로우에 원활하게 통합
사용자 정의 개발
사용자 정의 기능으로 Gemini CLI를 확장하기 위한 자체 MCP 서버 구축
MCP 서버 유형
다양한 유형의 MCP 서버와 그 기능 탐색
파일 시스템 서버
파일 시스템 액세스 및 작업을 제공하는 서버
filesystem
파일 및 디렉토리 읽기, 쓰기 및 관리
기능:
git
Git 저장소 작업 및 버전 제어
기능:
웹 및 API 서버
웹 서비스 및 API와 상호 작용하는 서버
web-search
웹 검색 및 정보 검색
기능:
github
저장소 관리를 위한 GitHub API 통합
기능:
데이터베이스 서버
데이터베이스 연결 및 작업을 제공하는 서버
sqlite
SQLite 데이터베이스 작업
기능:
postgres
PostgreSQL 데이터베이스 통합
기능:
구성 예제
Gemini CLI 설정에서 MCP 서버를 구성하는 방법 알아보기
기본 구성
MCP 서버를 .gemini/config.json
파일에 추가:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/files"]
},
"git": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-git", "--repository", "/path/to/repo"]
},
"web-search": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-web-search"]
}
}
}
고급 구성
환경 변수 및 고급 옵션으로 사용자 정의 서버 구성:
{
"mcpServers": {
"custom-database": {
"command": "node",
"args": ["./custom-mcp-server.js"],
"env": {
"DATABASE_URL": "postgresql://localhost:5432/mydb",
"API_KEY": "your-api-key"
}
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "your-github-token"
}
}
}
}
개발 구성
로컬 개발 및 디버깅을 위한 구성:
{
"mcpServers": {
"local-dev": {
"command": "node",
"args": ["./dev-server.js"],
"cwd": "/path/to/development/server",
"env": {
"NODE_ENV": "development",
"DEBUG": "mcp:*"
}
}
}
}
사용자 정의 MCP 서버 개발
사용자 정의 기능으로 Gemini CLI를 확장하기 위한 자체 MCP 서버 구축
완전한 MCP 서버 예제
시작점으로 사용할 수 있는 사용자 정의 MCP 서버의 완전한 예제입니다:
#!/usr/bin/env node
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import {
CallToolRequestSchema,
ListToolsRequestSchema,
} from '@modelcontextprotocol/sdk/types.js';
class CustomMCPServer {
constructor() {
this.server = new Server(
{
name: 'custom-server',
version: '0.1.0',
},
{
capabilities: {
tools: {},
},
}
);
this.setupToolHandlers();
}
setupToolHandlers() {
// 사용 가능한 도구 나열
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
return {
tools: [
{
name: 'custom_tool',
description: '특정 작업을 수행하는 사용자 정의 도구',
inputSchema: {
type: 'object',
properties: {
input: {
type: 'string',
description: '사용자 정의 작업을 위한 입력',
},
},
required: ['input'],
},
},
],
};
});
// 도구 호출 처리
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
const { name, arguments: args } = request.params;
if (name === 'custom_tool') {
const result = await this.performCustomOperation(args.input);
return {
content: [
{
type: 'text',
text: `사용자 정의 작업 결과: ${result}`,
},
],
};
}
throw new Error(`알 수 없는 도구: ${name}`);
});
}
async performCustomOperation(input) {
// 여기에 사용자 정의 로직
return `처리됨: ${input}`;
}
async run() {
const transport = new StdioServerTransport();
await this.server.connect(transport);
console.error('사용자 정의 MCP 서버가 stdio에서 실행 중');
}
}
const server = new CustomMCPServer();
server.run().catch(console.error);
시작하기
MCP 서버 사용 및 개발을 시작하는 빠른 단계
기존 서버 사용
- 1MCP 서버 패키지 설치:
npm install -g @modelcontextprotocol/server-filesystem
- 2서버를
.gemini/config.json
파일에 추가 - 3새 서버를 로드하기 위해 Gemini CLI 재시작
- 4사용 가능한 서버를 나열하려면
/mcp
명령 사용
사용자 정의 서버 개발
- 1MCP SDK 설치:
npm install @modelcontextprotocol/sdk
- 2위의 예제를 사용하여 서버 생성
- 3MCP 검사기로 서버 테스트
- 4Gemini CLI에서 구성하고 사용 시작