gemini-mcp
Gemini CLIを使ってMCPサーバーを管理し、外部ツールやデータベース、APIとの連携を強化することで、Geminiの機能を拡張し、企業のワークフローを効率化するSkill。
📜 元の英語説明(参考)
Manage MCP (Model Context Protocol) servers with Gemini CLI for extended tool capabilities, custom integrations, and enterprise workflows. Use when integrating external tools, databases, or APIs with Gemini.
🇯🇵 日本人クリエイター向け解説
Gemini CLIを使ってMCPサーバーを管理し、外部ツールやデータベース、APIとの連携を強化することで、Geminiの機能を拡張し、企業のワークフローを効率化するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o gemini-mcp.zip https://jpskill.com/download/9433.zip && unzip -o gemini-mcp.zip && rm gemini-mcp.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/9433.zip -OutFile "$d\gemini-mcp.zip"; Expand-Archive "$d\gemini-mcp.zip" -DestinationPath $d -Force; ri "$d\gemini-mcp.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
gemini-mcp.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
gemini-mcpフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
Gemini MCP サーバー管理
Gemini CLI をカスタムツールや機能で拡張するための、包括的な MCP (Model Context Protocol) サーバー統合です。
MCP とは?
MCP (Model Context Protocol) を使用すると、Gemini は追加のツールと機能を提供する外部サーバーに接続できます。
- データベース接続
- API 統合
- カスタムビジネスロジック
- エンタープライズシステム
- 特殊なツール
クイックスタート
MCP サーバーのリスト表示
# 設定済みのサーバーを表示
gemini mcp list
# サーバーの状態を確認
gemini -i
/mcp
# サーバー接続をテスト
gemini mcp test <server-name>
MCP サーバーの追加
# インタラクティブなセットアップ
gemini mcp add
# 手動設定
gemini mcp add \
--name "my-server" \
--command "python" \
--args "-m my_mcp_server" \
--cwd "./mcp-servers/"
サーバーの削除
gemini mcp remove <server-name>
MCP の設定
設定ファイル
// ~/.gemini/mcp-servers.json または ./.gemini/mcp-servers.json
{
"mcpServers": {
"database-tools": {
"command": "python",
"args": ["-m", "database_mcp_server"],
"cwd": "./mcp-tools/database",
"env": {
"DATABASE_URL": "postgresql://localhost/mydb",
"DB_PASSWORD": "$DB_PASSWORD_FROM_ENV"
},
"timeout": 30000,
"trust": false
},
"api-gateway": {
"command": "node",
"args": ["./api-mcp-server.js"],
"cwd": "./mcp-tools/api",
"env": {
"API_KEY": "$API_KEY",
"BASE_URL": "https://api.example.com"
},
"includeTools": ["getUser", "createOrder"],
"excludeTools": ["deleteUser"]
},
"analytics": {
"command": "docker",
"args": ["run", "-p", "8080:8080", "analytics-mcp:latest"],
"timeout": 60000,
"trust": true
}
}
}
セキュリティ設定
{
"mcpServers": {
"secure-server": {
"command": "python",
"args": ["secure_server.py"],
"trust": false, // ツール呼び出しに確認を要求
"includeTools": ["safe_read", "safe_write"],
"excludeTools": ["dangerous_delete"],
"allowedDomains": ["*.internal.com"],
"maxConcurrent": 5,
"rateLimit": {
"requests": 100,
"window": 60000 // 1分あたり
}
}
}
}
MCP サーバーの構築
Python MCP サーバー
# database_mcp_server.py
import json
import sys
import psycopg2
from typing import Dict, Any
class DatabaseMCP:
def __init__(self):
self.conn = psycopg2.connect(
os.environ.get('DATABASE_URL')
)
def handle_request(self, request: Dict[str, Any]):
method = request.get('method')
params = request.get('params', {})
if method == 'query':
return self.execute_query(params.get('sql'))
elif method == 'insert':
return self.insert_data(
params.get('table'),
params.get('data')
)
def execute_query(self, sql: str):
cursor = self.conn.cursor()
cursor.execute(sql)
return cursor.fetchall()
def get_tools(self):
return [
{
"name": "database_query",
"description": "Execute SQL query",
"parameters": {
"type": "object",
"properties": {
"sql": {
"type": "string",
"description": "SQL query to execute"
}
},
"required": ["sql"]
}
},
{
"name": "database_insert",
"description": "Insert data into table",
"parameters": {
"type": "object",
"properties": {
"table": {"type": "string"},
"data": {"type": "object"}
},
"required": ["table", "data"]
}
}
]
if __name__ == "__main__":
server = DatabaseMCP()
server.start()
Node.js MCP サーバー
// api-mcp-server.js
const { MCPServer } = require('@modelcontextprotocol/server');
const axios = require('axios');
class APIMCPServer extends MCPServer {
constructor() {
super();
this.baseURL = process.env.BASE_URL;
this.apiKey = process.env.API_KEY;
}
async getTools() {
return [
{
name: 'api_get',
description: 'Make GET request to API',
parameters: {
type: 'object',
properties: {
endpoint: {
type: 'string',
description: 'API endpoint path'
},
params: {
type: 'object',
description: 'Query parameters'
}
},
required: ['endpoint']
}
},
{
name: 'api_post',
description: 'Make POST request to API',
parameters: {
type: 'object',
properties: {
endpoint: { type: 'string' },
body: { type: 'object' }
},
required: ['endpoint', 'body']
}
}
];
}
async handleToolCall(name, params) {
const headers = {
'Authorization': `Bearer ${this.apiKey}`,
'Content-Type': 'application/json'
};
switch(name) {
case 'api_get':
const response = await axios.get(
`${this.baseURL}${params.endpoint}`,
{ headers, params: params.params }
);
return response.data;
case 'api_post':
const postResponse = await axios.post(
`${this.baseURL}${params.endpoint}`,
params.body,
{ headers }
);
return postResponse.data;
default:
throw new Error(`Unknown tool: ${name}`);
}
}
}
const server = new APIMCPServer();
server.start();
Docker
(原文がここで切り詰められています)
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Gemini MCP Server Management
Comprehensive MCP (Model Context Protocol) server integration for extending Gemini CLI with custom tools and capabilities.
What is MCP?
MCP (Model Context Protocol) allows Gemini to connect to external servers that provide additional tools and capabilities:
- Database connections
- API integrations
- Custom business logic
- Enterprise systems
- Specialized tools
Quick Start
List MCP Servers
# View configured servers
gemini mcp list
# Check server status
gemini -i
/mcp
# Test server connection
gemini mcp test <server-name>
Add MCP Server
# Interactive setup
gemini mcp add
# Manual configuration
gemini mcp add \
--name "my-server" \
--command "python" \
--args "-m my_mcp_server" \
--cwd "./mcp-servers/"
Remove Server
gemini mcp remove <server-name>
MCP Configuration
Configuration File
// ~/.gemini/mcp-servers.json or ./.gemini/mcp-servers.json
{
"mcpServers": {
"database-tools": {
"command": "python",
"args": ["-m", "database_mcp_server"],
"cwd": "./mcp-tools/database",
"env": {
"DATABASE_URL": "postgresql://localhost/mydb",
"DB_PASSWORD": "$DB_PASSWORD_FROM_ENV"
},
"timeout": 30000,
"trust": false
},
"api-gateway": {
"command": "node",
"args": ["./api-mcp-server.js"],
"cwd": "./mcp-tools/api",
"env": {
"API_KEY": "$API_KEY",
"BASE_URL": "https://api.example.com"
},
"includeTools": ["getUser", "createOrder"],
"excludeTools": ["deleteUser"]
},
"analytics": {
"command": "docker",
"args": ["run", "-p", "8080:8080", "analytics-mcp:latest"],
"timeout": 60000,
"trust": true
}
}
}
Security Settings
{
"mcpServers": {
"secure-server": {
"command": "python",
"args": ["secure_server.py"],
"trust": false, // Require confirmation for tool calls
"includeTools": ["safe_read", "safe_write"],
"excludeTools": ["dangerous_delete"],
"allowedDomains": ["*.internal.com"],
"maxConcurrent": 5,
"rateLimit": {
"requests": 100,
"window": 60000 // per minute
}
}
}
}
Building MCP Servers
Python MCP Server
# database_mcp_server.py
import json
import sys
import psycopg2
from typing import Dict, Any
class DatabaseMCP:
def __init__(self):
self.conn = psycopg2.connect(
os.environ.get('DATABASE_URL')
)
def handle_request(self, request: Dict[str, Any]):
method = request.get('method')
params = request.get('params', {})
if method == 'query':
return self.execute_query(params.get('sql'))
elif method == 'insert':
return self.insert_data(
params.get('table'),
params.get('data')
)
def execute_query(self, sql: str):
cursor = self.conn.cursor()
cursor.execute(sql)
return cursor.fetchall()
def get_tools(self):
return [
{
"name": "database_query",
"description": "Execute SQL query",
"parameters": {
"type": "object",
"properties": {
"sql": {
"type": "string",
"description": "SQL query to execute"
}
},
"required": ["sql"]
}
},
{
"name": "database_insert",
"description": "Insert data into table",
"parameters": {
"type": "object",
"properties": {
"table": {"type": "string"},
"data": {"type": "object"}
},
"required": ["table", "data"]
}
}
]
if __name__ == "__main__":
server = DatabaseMCP()
server.start()
Node.js MCP Server
// api-mcp-server.js
const { MCPServer } = require('@modelcontextprotocol/server');
const axios = require('axios');
class APIMCPServer extends MCPServer {
constructor() {
super();
this.baseURL = process.env.BASE_URL;
this.apiKey = process.env.API_KEY;
}
async getTools() {
return [
{
name: 'api_get',
description: 'Make GET request to API',
parameters: {
type: 'object',
properties: {
endpoint: {
type: 'string',
description: 'API endpoint path'
},
params: {
type: 'object',
description: 'Query parameters'
}
},
required: ['endpoint']
}
},
{
name: 'api_post',
description: 'Make POST request to API',
parameters: {
type: 'object',
properties: {
endpoint: { type: 'string' },
body: { type: 'object' }
},
required: ['endpoint', 'body']
}
}
];
}
async handleToolCall(name, params) {
const headers = {
'Authorization': `Bearer ${this.apiKey}`,
'Content-Type': 'application/json'
};
switch(name) {
case 'api_get':
const response = await axios.get(
`${this.baseURL}${params.endpoint}`,
{ headers, params: params.params }
);
return response.data;
case 'api_post':
const postResponse = await axios.post(
`${this.baseURL}${params.endpoint}`,
params.body,
{ headers }
);
return postResponse.data;
default:
throw new Error(`Unknown tool: ${name}`);
}
}
}
const server = new APIMCPServer();
server.start();
Docker MCP Server
# Dockerfile for MCP server
FROM python:3.11-slim
WORKDIR /app
# Install dependencies
COPY requirements.txt .
RUN pip install -r requirements.txt
# Copy server code
COPY mcp_server.py .
# MCP protocol port
EXPOSE 8080
# Start server
CMD ["python", "mcp_server.py"]
# Build and run
docker build -t my-mcp-server .
docker run -p 8080:8080 -e DATABASE_URL="$DATABASE_URL" my-mcp-server
Usage Patterns
Database Operations
# Configure database MCP
cat > ~/.gemini/mcp-servers.json << 'EOF'
{
"mcpServers": {
"postgres": {
"command": "python",
"args": ["-m", "postgres_mcp"],
"env": {
"DATABASE_URL": "postgresql://user:pass@localhost/db"
}
}
}
}
EOF
# Use with YOLO for automated database operations
gemini --yolo -p "Query the users table and generate comprehensive report of active users from last week"
gemini --yolo -p "Create detailed sales analysis with charts from the orders table"
API Integration
# Configure API MCP
gemini mcp add \
--name "stripe" \
--command "node" \
--args "stripe-mcp.js" \
--env "STRIPE_KEY=$STRIPE_SECRET_KEY"
# Use with YOLO for automated API operations
gemini --yolo -p "Create a new customer and subscription using Stripe with full setup"
gemini --yolo -p "Generate comprehensive transaction report with analytics for this month"
Custom Business Logic
# Configure business logic MCP
gemini mcp add \
--name "business-rules" \
--command "java" \
--args "-jar business-mcp.jar"
# Apply business rules with YOLO automation
gemini --yolo -p "Validate this order against all business rules and generate compliance report"
gemini --yolo -p "Calculate pricing using custom algorithm and create detailed breakdown"
YOLO Mode with MCP Servers
YOLO mode with MCP servers enables powerful automation for trusted operations:
Automated Data Operations
# Database automation with YOLO
gemini --yolo -p "Using the database MCP:
1. Query all user activity from last 30 days
2. Generate engagement analytics
3. Create user segmentation report
4. Export findings to CSV
5. Send summary email to stakeholders"
# Multi-database operations
gemini --yolo -p "Synchronize data between PostgreSQL and Redis:
1. Read user sessions from Redis
2. Update last_active in PostgreSQL
3. Clean expired sessions
4. Generate sync report"
API Workflow Automation
# Automated API orchestration
gemini --yolo -p "Using Stripe and database MCP servers:
1. Fetch all subscription cancellations from Stripe
2. Update user status in our database
3. Send personalized retention offers
4. Log all actions for audit
5. Generate retention campaign report"
# Multi-service integration
gemini --yolo -p "Complete order processing workflow:
1. Validate order via business rules MCP
2. Process payment via Stripe MCP
3. Update inventory via database MCP
4. Send confirmation via email MCP
5. Log transaction and generate receipt"
Enterprise Automation
# Automated compliance reporting
gemini --yolo -p "Generate quarterly compliance report:
1. Query all financial data via database MCP
2. Validate against regulations via compliance MCP
3. Generate charts and visualizations
4. Create executive summary
5. Export to PDF and store securely"
# Infrastructure monitoring
gemini --yolo -p "Complete infrastructure health check:
1. Query metrics from monitoring MCP
2. Check service status via K8s MCP
3. Analyze logs via logging MCP
4. Generate incident reports
5. Update status dashboard"
Safe YOLO Practices for MCP
# ✅ SAFE with YOLO (read-only or low-risk)
gemini --yolo -p "Generate analytics dashboard from database MCP"
gemini --yolo -p "Sync read-only data between MCP services"
gemini --yolo -p "Create comprehensive status reports from all MCPs"
# ⚠️ USE CAUTION (write operations)
# Review first, then use YOLO if confident
gemini -p "Plan user data migration between databases"
# After review:
gemini --yolo -p "Execute the reviewed migration plan"
# 🔒 NEVER YOLO (critical operations)
# Always manual approval for:
# - Production data deletion
# - Security configuration changes
# - Financial transactions above thresholds
MCP Server Management Automation
#!/bin/bash
# Automated MCP server lifecycle management
manage_mcp_servers() {
local operation="$1"
case $operation in
health-check)
gemini --yolo -p "Check health of all MCP servers and create status report"
;;
restart-all)
gemini --yolo -p "Safely restart all MCP servers in dependency order"
;;
update-configs)
gemini --yolo -p "Update all MCP server configurations and validate"
;;
deploy-new)
gemini --yolo -p "Deploy new MCP servers from configs and test connections"
;;
esac
}
# Usage
manage_mcp_servers health-check
Advanced Workflows
Multi-Server Orchestration
#!/bin/bash
# Orchestrate multiple MCP servers
orchestrate_mcp() {
# Start all servers
gemini mcp start database
gemini mcp start api
gemini mcp start analytics
# Execute workflow
gemini --yolo -p "Using all available MCP tools:
1. Query user data from database
2. Enrich with API data
3. Analyze with analytics tools
4. Generate comprehensive report"
# Stop servers
gemini mcp stop --all
}
Dynamic Server Management
#!/bin/bash
# Dynamically add servers based on project
setup_project_mcp() {
local project_type="$1"
case $project_type in
ecommerce)
gemini mcp add --name "payment" --command "payment-mcp"
gemini mcp add --name "inventory" --command "inventory-mcp"
gemini mcp add --name "shipping" --command "shipping-mcp"
;;
analytics)
gemini mcp add --name "bigquery" --command "bq-mcp"
gemini mcp add --name "tableau" --command "tableau-mcp"
;;
devops)
gemini mcp add --name "kubernetes" --command "k8s-mcp"
gemini mcp add --name "terraform" --command "tf-mcp"
;;
esac
echo "MCP servers configured for $project_type project"
}
Health Monitoring
#!/bin/bash
# Monitor MCP server health
monitor_mcp_health() {
while true; do
echo "=== MCP Server Status ==="
for server in $(gemini mcp list --json | jq -r '.servers[].name'); do
if gemini mcp test "$server" > /dev/null 2>&1; then
echo "✓ $server: Healthy"
else
echo "✗ $server: Unhealthy"
# Attempt restart
echo " Attempting restart..."
gemini mcp restart "$server"
fi
done
sleep 30
done
}
Load Balancing
// Load-balanced MCP configuration
{
"mcpServers": {
"api-pool": {
"type": "pool",
"strategy": "round-robin", // or "random", "least-connections"
"servers": [
{
"command": "node",
"args": ["api-1.js"],
"port": 8081
},
{
"command": "node",
"args": ["api-2.js"],
"port": 8082
},
{
"command": "node",
"args": ["api-3.js"],
"port": 8083
}
],
"healthCheck": {
"interval": 10000,
"timeout": 5000,
"path": "/health"
}
}
}
}
Security Best Practices
Authentication
{
"mcpServers": {
"secure-server": {
"command": "python",
"args": ["server.py"],
"auth": {
"type": "bearer",
"token": "$MCP_AUTH_TOKEN"
},
"tls": {
"enabled": true,
"cert": "/path/to/cert.pem",
"key": "/path/to/key.pem",
"ca": "/path/to/ca.pem"
}
}
}
}
Tool Restrictions
#!/bin/bash
# Restrict MCP tool access
restrict_mcp_tools() {
local server="$1"
local allowed_tools=("$@")
# Generate config with restrictions
cat > ~/.gemini/mcp-restrictions.json << EOF
{
"$server": {
"includeTools": [${allowed_tools[@]}],
"requireConfirmation": true,
"logAllCalls": true,
"maxCallsPerMinute": 10
}
}
EOF
# Apply restrictions
gemini mcp update "$server" --config ~/.gemini/mcp-restrictions.json
}
# Usage
restrict_mcp_tools "database" "read_only_query" "get_schema"
Audit Logging
# Auditing MCP server
import logging
import json
from datetime import datetime
class AuditedMCPServer:
def __init__(self):
self.audit_log = logging.getLogger('mcp.audit')
self.audit_log.setLevel(logging.INFO)
# Setup audit file
handler = logging.FileHandler('/var/log/mcp-audit.log')
formatter = logging.Formatter(
'%(asctime)s - %(name)s - %(message)s'
)
handler.setFormatter(formatter)
self.audit_log.addHandler(handler)
def handle_tool_call(self, tool, params, user_context):
# Log before execution
self.audit_log.info(json.dumps({
'event': 'tool_call_start',
'tool': tool,
'params': params,
'user': user_context,
'timestamp': datetime.utcnow().isoformat()
}))
try:
result = self.execute_tool(tool, params)
# Log success
self.audit_log.info(json.dumps({
'event': 'tool_call_success',
'tool': tool,
'result_size': len(str(result))
}))
return result
except Exception as e:
# Log failure
self.audit_log.error(json.dumps({
'event': 'tool_call_failure',
'tool': tool,
'error': str(e)
}))
raise
Troubleshooting
Common Issues
- Server Won't Start
# Check logs gemini mcp logs <server-name>
Test manually
python -m my_mcp_server --debug
Check port conflicts
lsof -i :8080
2. **Connection Timeout**
```bash
# Increase timeout
gemini mcp update <server> --timeout 60000
# Check network
ping localhost
telnet localhost 8080
- Tool Not Available
# List available tools gemini -i /tools
Refresh tool list
gemini mcp refresh <server>
Check server implementation
gemini mcp debug <server>
### Debug Mode
```bash
# Enable debug logging
export GEMINI_MCP_DEBUG=true
# Verbose output
gemini --verbose mcp test <server>
# Trace tool calls
gemini --trace -p "Use MCP tools to query database"
Performance Optimization
Connection Pooling
{
"mcpServers": {
"database": {
"command": "python",
"args": ["db_mcp.py"],
"pool": {
"min": 2,
"max": 10,
"idle": 300000 // 5 minutes
}
}
}
}
Caching
# Enable MCP response caching
export GEMINI_MCP_CACHE=true
export GEMINI_MCP_CACHE_TTL=300 # seconds
# Clear cache
gemini mcp cache clear
Related Skills
gemini-cli: Main Gemini CLI integrationgemini-auth: Authentication managementgemini-chat: Interactive chat sessionsgemini-tools: Tool execution workflows