플러그인 API

MCP 서버, 사용자 정의 도구 및 강력한 통합으로 Gemini CLI를 확장하세요. Model Context Protocol을 사용하여 데이터베이스, API, 파일 시스템 등에 연결하세요.

MCP 프로토콜사용자 정의 서버도구 통합

확장 아키텍처

Gemini CLI는 Model Context Protocol (MCP)을 사용하여 AI 어시스턴트를 외부 도구 및 데이터 소스와 연결하는 표준화된 방법을 제공합니다.

MCP 서버

Model Context Protocol을 통해 도구와 리소스를 노출하는 독립적인 프로세스

도구 통합

외부 도구와 서비스를 AI 워크플로우에 원활하게 통합

사용자 정의 개발

사용자 정의 기능으로 Gemini CLI를 확장하기 위한 자체 MCP 서버 구축

MCP 서버 유형

다양한 유형의 MCP 서버와 그 기능 탐색

파일 시스템 서버

파일 시스템 액세스 및 작업을 제공하는 서버

filesystem

파일 및 디렉토리 읽기, 쓰기 및 관리

기능:
read_filewrite_filelist_directorycreate_directory

git

Git 저장소 작업 및 버전 제어

기능:
git_statusgit_commitgit_branchgit_log

웹 및 API 서버

웹 서비스 및 API와 상호 작용하는 서버

web-search

웹 검색 및 정보 검색

기능:
web_searchfetch_urlextract_content

github

저장소 관리를 위한 GitHub API 통합

기능:
list_reposcreate_issueget_pull_requests

데이터베이스 서버

데이터베이스 연결 및 작업을 제공하는 서버

sqlite

SQLite 데이터베이스 작업

기능:
execute_querycreate_tableinsert_data

postgres

PostgreSQL 데이터베이스 통합

기능:
querytransactionschema_info

구성 예제

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 서버 사용 및 개발을 시작하는 빠른 단계

기존 서버 사용

  1. 1MCP 서버 패키지 설치: npm install -g @modelcontextprotocol/server-filesystem
  2. 2서버를 .gemini/config.json 파일에 추가
  3. 3새 서버를 로드하기 위해 Gemini CLI 재시작
  4. 4사용 가능한 서버를 나열하려면 /mcp 명령 사용

사용자 정의 서버 개발

  1. 1MCP SDK 설치: npm install @modelcontextprotocol/sdk
  2. 2위의 예제를 사용하여 서버 생성
  3. 3MCP 검사기로 서버 테스트
  4. 4Gemini CLI에서 구성하고 사용 시작

관련 리소스

MCP 서버 및 플러그인 개발에 대해 더 알아보기