Gemini Rust Suite ðŠ
ããŒã«ã«Gemini Rust Suite ðŠ ã«ã€ããŠ
Gemini Rust Suite ã¯ãGoogle Gemini åãã® Rust ã³ã³ããŒãã³ã矀ã§ãCLIãæ°žç¶çãªã»ãã³ãã£ãã¯ã¡ã¢ãªãããŒã«é£æºãåããŠããŸããã³ãã³ãã©ã€ã³ã§ã®å¯Ÿè©±ã MCP ããŒã«å©çšãæ±ãããŠãŒã¶ãŒåãã§ãå€éš MCP ãµãŒããŒã®ç®¡çãšããã¡ã€ã«ã·ã¹ãã ã»ã³ãã³ãã»ã¡ã¢ãªçšã®çµã¿èŸŒã¿ãµãŒããŒã«ã察å¿ããŸãã
äž»ãªæ©èœ
- 01Google Gemini API ãžã®éåæã¢ã¯ã»ã¹
- 02察話å CLI ãšã¿ã¹ã¯ã«ãŒã
- 03LanceDB ã«ããæ°žç¶çãªã»ãã³ãã£ãã¯ã¡ã¢ãª
- 04ã¡ã¢ãªã®èªåæ€çŽ¢ãšä¿å
- 05ãã¡ã€ã«ã·ã¹ãã ãã³ãã³ããã¡ã¢ãªçšã®çµã¿èŸŒã¿ãµãŒããŒ
掻çšã·ãŒã³
- 01ã³ãã³ãã©ã€ã³ã§ Gemini ãšå¯Ÿè©±
- 02ã»ãã·ã§ã³ããŸããã§é¢é£ã¡ã¢ãªãæ€çŽ¢
- 03確èªåŸã« MCP ããŒã«ãåŒã³åºã
- 04çµã¿èŸŒã¿ã®ãã¡ã€ã«ã·ã¹ãã ãŸãã¯ã³ãã³ããµãŒããŒãå®è¡
MCP 察å¿
MCP Host 㯠stdioãSSEãWebSocket çµç±ã§å€éš MCP ãµãŒããŒãæ€åºã»èµ·åã»ç®¡çããããŒã«å®è¡ãšãªãœãŒã¹ååŸã Gemini ã«æ¥ç¶ããŸãããã¡ã€ã«ã·ã¹ãã ãã³ãã³ããã¡ã¢ãªçšã® MCP ãµãŒããŒãå«ãŸããŸãã
èšå®
ããŒã«ã«ãµãŒããŒã®èšå®ã¯ã©ã®ã¯ã©ã€ã¢ã³ãã§ãå ±éã§ããã³ããŒããŠã¯ã©ã€ã¢ã³ãã® MCP èšå®ãã¡ã€ã«ã«è²Œãä»ããŠãã ããã
ãã®ãµãŒããŒã®ããã±ãŒãžããªã¢ãŒããšã³ããã€ã³ãã¯ãŸã ååŸã§ããŠããŸããããããžã§ã¯ãã® README ã®æé ã«åŸã£ãŠãã ããã
ããŒã«
ããŒã«ã«ãµãŒããŒã®ããŒã«ã¯ãã·ã³äžã§èµ·åããŠåããŠååŸã§ããŸããã¡ã³ãããŒã¯ãŸã ããŒã«äžèЧãæäŸããŠããŸããã
詳现
Gemini Rust Suite ðŠ
ãã®ãããžã§ã¯ãã¯ãGoogle Gemini ã¢ãã«ãšé£æºããããã® Rust ã¯ã¬ãŒãã®ã¹ã€ãŒããæäŸããModel Context ProtocolïŒMCPïŒãä»ããããŒã«ã®äœ¿çšãæ°žç¶çãªã»ãã³ãã£ãã¯ã¡ã¢ãªãLinux ã¿ãŒããã«åãã®é«æ©èœãªã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ãŒã¹ïŒCLIïŒãªã©ã®é«åºŠãªæ©èœãå®çŸããŸãã
âš ç®æ¬¡
- ã¢ãŒããã¯ãã£
- æ©èœ
- åææ¡ä»¶
- ã€ã³ã¹ããŒã«ïŒCLIïŒ
- èšå®
- CLI ã®äœ¿ç𿹿³
- éçº
ðïž ã¢ãŒããã¯ãã£
Gemini Rust Suite ã¯ãCargo ã¯ãŒã¯ã¹ããŒã¹å ã®è€æ°ã®ã¯ã¬ãŒãã§æ§æãããã¢ãžã¥ãŒã«åãããžã§ã¯ãã§ãã
-
gemini-coreïŒåºç€ãšãªãã³ã³ããŒãã³ããæäŸããŸãã- Google Gemini APIïŒ
generateContentãšã³ããã€ã³ãïŒãšããåãããããã®ãéåæã®GeminiClientã - Gemini API ã®ãªã¯ãšã¹ãïŒã¬ã¹ãã³ã¹åœ¢åŒïŒã³ã³ãã³ãããŒãã颿°åŒã³åºããçæèšå®ïŒãåæ ãããåå®å šãª Rust æ§é äœã
- ã³ã¢èšå®ã®èªã¿èŸŒã¿ïŒTOML ããã®
GeminiConfigïŒãšãšã©ãŒåŠçïŒGeminiErrorïŒã - MCP ã§äœ¿çšãããå
±æ JSON-RPC åïŒ
RequestãResponseãServerCapabilitiesãToolïŒã
- Google Gemini APIïŒ
-
gemini-ipcïŒããã»ã¹ééä¿¡ã®å®çŸ©ãäžå 管çããŸãã- ç°ãªãããŒã¢ã³ïŒã¯ã©ã€ã¢ã³ãïŒäŸïŒ
gemini-cliãmcp-hostdãHAPPEãIDAïŒéã§ããåããããã¡ãã»ãŒãžçšã®ãæšæºåããã Rust æ§é äœïŒåæåãå®çŸ©ããŸãã - éä¿¡ãããã³ã«ã®äžè²«æ§ã確ä¿ããŸãïŒã·ãªã¢ã©ã€ãºã«ã¯
serdeã䜿çšããŸãïŒã
- ç°ãªãããŒã¢ã³ïŒã¯ã©ã€ã¢ã³ãïŒäŸïŒ
-
gemini-mcpïŒModel Context ProtocolïŒMCPïŒã®ãã¹ãåŽãå®è£ ããŸããMcpHostã¯ãMCP ãµãŒããŒïŒå€éšã®ããŒã«ïŒãµãŒãã¹ïŒã®æ€åºãèµ·åïŒstdioãSSEãWebSocket çµç±ïŒãéä¿¡ã管çããŸãã- ããŒã«ã®å®è¡ïŒ
mcp/tool/executeïŒããã³ãªãœãŒã¹ã®ååŸã«é¢ãã JSON-RPC éä¿¡ãåŠçããŸãã - Gemini ã®é¢æ°åŒã³åºããš MCP ããŒã«ã®å®è¡ãçžäºã«å€æããŸãã
mcp-hostdãã€ããªïŒgemini-ipcã䜿ã£ãŠã¯ã©ã€ã¢ã³ããšéä¿¡ãããã¹ã¿ã³ãã¢ãã³ã® MCP ãã¹ãããŒã¢ã³ïŒãå«ã¿ãŸãã- çµã¿èŸŒã¿ MCP ãµãŒããŒïŒ
filesystemãcommandãmemory_storeïŒã®ãœãŒã¹ãæäŸããŸãã
-
gemini-memoryïŒæ°žç¶çãªã»ãã³ãã£ãã¯ã¡ã¢ãªã¹ãã¢ãå®è£ ããŸãã- ãã¯ãã«ããŒã¿ããŒã¹ãšã㊠LanceDB ã䜿çšããŸãã
- ã¡ã¢ãªïŒã¡ã¿ããŒã¿ä»ãã®ããŒãšå€ã®ãã¢ïŒãšããã®ãã¯ãã«åã蟌ã¿ãä¿åããŸãã
- ã¯ãšãªã®æå³ã«åºã¥ããŠé¢é£ããã¡ã¢ãªãèŠã€ãããããã»ãã³ãã£ãã¯æ€çŽ¢ãå®è¡ããŸãã
- ãã¯ãã«çæçšã®å€éš
embedding/embedããŒã«ãåŒã³åºãããã«ãMcpHostInterfaceïŒéåžžã¯gemini-mcpãæäŸïŒã䜿çšããŸãã - LLM ã®ããã³ããã«é¢é£ããã¡ã¢ãªã®ã³ã³ããã¹ãã远å ãã
enhance_promptæ©èœãæäŸããŸãã
-
gemini-cliïŒãŠãŒã¶ãŒåãã®äž»èŠã¢ããªã±ãŒã·ã§ã³ã§ãã- ä»ã®ã¯ã¬ãŒãã䜿çšããŠæ§ç¯ãããã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ã€ã¹ïŒ
gemini-cli-binïŒã - åçºã®ããã³ããã察話åãã£ãããã¿ã¹ã¯ã«ãŒãããµããŒãããŸãã
- ããŒã«ã®äœ¿çšã«ã¯ MCP ããã³ã³ããã¹ãèªèãšå±¥æŽã«ã¯ Memory ãçµ±åããŸãã
- ãŠãŒã¶ãŒèšå®ããã£ããå±¥æŽãã»ãã·ã§ã³ç¶æ ã管çããŸãã
mcp-hostdããŒã¢ã³ã«æ¥ç¶ããïŒgemini-ipcçµç±ïŒããçµã¿èŸŒã¿ã®McpHostãå®è¡ã§ããŸãã- ãã©ã°ïŒ
--filesystem-mcpãªã©ïŒã䜿ã£ãŠãçµã¿èŸŒã¿ MCP ãµãŒããŒãçŽæ¥å®è¡ããããšãã§ããŸãã
- ä»ã®ã¯ã¬ãŒãã䜿çšããŠæ§ç¯ãããã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ã€ã¹ïŒ
-
ïŒæ°èŠïŒ
HAPPEïŒãã¹ãã¢ããªã±ãŒã·ã§ã³ç°å¢ããŒã¢ã³ã§ãã- ããè€éãªã·ããªãªã«ãããŠãCLI ã®çŽæ¥äœ¿çšã«ä»£ããäž»èŠãªå®è¡ç°å¢ãšãªãããšãç®çãšããŠããŸãã
- ãŠãŒã¶ãŒïŒã¯ã©ã€ã¢ã³ããã¡ã€ã³ã® LLMã
IDAãMCP ãµãŒããŒéã®ããåãã管çããŸãã gemini-ipcã䜿çšããŠIDAãšéä¿¡ããŸãã- LLM åŒã³åºããšãLLM ãéå§ãã MCP ããŒã«ã®å®è¡ãåŠçããŸãã
-
ïŒæ°èŠïŒ
IDAïŒå éšå¯Ÿè©±ã¢ããªã±ãŒã·ã§ã³ããŒã¢ã³ã§ãã- æ°žç¶çãªã¡ã¢ãªããã®ä»ã®ããã¯ã°ã©ãŠã³ãèªç¥ã¿ã¹ã¯ã管çããŸãã
gemini-ipcãä»ããŠHAPPEãšéä¿¡ããŸãã- ååŸãšä¿åã®ãããMemory MCP Server ãšïŒ
gemini-mcpã®ã¯ã©ã€ã¢ã³ãããžãã¯ãä»ããŠïŒããåãããŸãã
ð æ©èœ
ãã®ã¹ã€ãŒãã¯ãåã³ã³ããŒãã³ããéããŠå æ¬çãªæ©èœãæäŸããŸãã
- ã³ã¢ API ãžã®ã¢ã¯ã»ã¹ïŒGemini API ãšå ç¢ãªéåæéä¿¡ãè¡ããŸãã
- ããŒã«ã®äœ¿çšïŒMCPïŒïŒModel Context Protocol ãä»ããŠå€éšã®ããŒã«ããµãŒãã¹ã«æ¥ç¶ããGemini ã®æ©èœãæ¡åŒµããŸãã
- æ°žç¶ã¡ã¢ãªïŒã»ãã³ãã£ãã¯ãã¯ãã«ããŒã¿ããŒã¹ïŒLanceDBïŒã䜿çšã㊠Gemini ã«é·æèšæ¶ãæãããã»ãã·ã§ã³ããŸããã ã³ã³ããã¹ãã®ååŸãå¯èœã«ããŸãã
- ããã³ããã®èªåæ¡åŒµïŒé¢é£ããã¡ã¢ãªãããã³ããã«èªåçã«æ¿å ¥ããŸãã
- ã¡ã¢ãªã®èªåä¿åïŒäŒè©±ããéèŠãªæ å ±ãèªåçã«ååŸããã¡ã¢ãªã¹ãã¢ã«ä¿åããŸãã
- 察話å CLIïŒè€æ°ã®å¯Ÿè©±ã¢ãŒããåããã䜿ããããã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ãŒã¹ïŒ
geminiïŒã§ãã - ãã£ããå±¥æŽïŒCLI ã³ãã³ãéã§äŒè©±å±¥æŽãä¿æããŸãïŒã·ã§ã«ã®ã©ãããŒé¢æ°ãå¿ èŠã§ãïŒã
- èšå®ïŒèšå®ãã¡ã€ã«ãšç°å¢å€æ°ã䜿çšããŠãAPI ããŒãã·ã¹ãã ããã³ãããã¢ãã«ãæ©èœãã©ã°ã管çããŸãã
- æŽåœ¢ãããåºåïŒCLI 㯠Markdown ãšæ§æåŒ·èª¿è¡šç€ºãã¬ã³ããªã³ã°ããŸãã
- çµã¿èŸŒã¿ããŒã«ïŒãã¡ã€ã«ã·ã¹ãã æäœãã³ãã³ãå®è¡ãã¡ã¢ãªã®ä¿åã»åã蟌ã¿ã«å¯Ÿå¿ãããããã«äœ¿ãã MCP ãµãŒããŒãå«ãŸããŠããŸãã
â åææ¡ä»¶
- Rust ããŒã«ãã§ãŒã³ïŒ https://rustup.rs/ ããã€ã³ã¹ããŒã«ããŠãã ãã ð ïž
- Gemini API ããŒïŒ Google AI Studio ããååŸããŠãã ãã ð
- 察å¿ã·ã§ã«ïŒCLI ã©ãããŒçšïŒïŒ ã·ãŒã ã¬ã¹ãª
geminiã³ãã³ãã®å©çšã«ã¯ãBash ãŸã㯠Zsh ãæšå¥šããŸã ð - ïŒä»»æïŒå€éš MCP ãµãŒããŒïŒ çµã¿èŸŒã¿ããŒã«ä»¥å€ã®ããŒã«ã«æ¥ç¶ããå Žåã«å¿ èŠã§ãã
ðŠ ã€ã³ã¹ããŒã«ïŒCLIïŒ
ãã®ã¹ã€ãŒããå©çšããäž»ãªæ¹æ³ã¯ãgemini-cli ã¢ããªã±ãŒã·ã§ã³ã䜿çšããããšã§ããæãç°¡åãªã€ã³ã¹ããŒã«æ¹æ³ã¯ãä»å±ã®ã¹ã¯ãªããã䜿çšããããšã§ãã
# Clone the repository (if you haven't already)
# git clone https://github.com/your-username/gemini-rust-suite
# cd gemini-rust-suite
# Run the installation script from the project root
./install.sh
ã¹ã¯ãªããã¯æ¬¡ã®åŠçãè¡ããŸãã
- Rust ãã€ã³ã¹ããŒã«ãããŠããã確èªããŸãã
- ã€ã³ã¹ããŒã«å
ãã£ã¬ã¯ããªïŒ
~/.local/binïŒãååšããã確èªããå¿ èŠã«å¿ããŠäœæããŸãã - ãªãªãŒã¹çšãã€ããªïŒ
gemini-cli-binãšmcp-hostdïŒããã«ãããŸãã - ãã€ããªã
~/.local/bin/ã«ã€ã³ã¹ããŒã«ããŸãã install_mcp_servers.shãèŠã€ãã£ãå Žåã¯ããã®ã¹ã¯ãªããã䜿çšã㊠MCP ãµãŒããŒã®ã©ãããŒã¹ã¯ãªããïŒçµã¿èŸŒã¿ãµãŒããŒçšãªã©ïŒã®ã€ã³ã¹ããŒã«ã詊ã¿ãŸãã~/.bashrcãŸãã¯~/.zshrcïŒæ€åºãããå ŽåïŒã«ãgeminiãšããååã®ã©ãããŒé¢æ°ã远å ããŸãã ãã®ã©ãããŒã¯ãå¥ã ã®ã³ãã³ãéã§ã»ãã·ã§ã³å±¥æŽã管çããããã«äžå¯æ¬ ã§ãã- ïŒZsh ã®ã¿ïŒ
mcp-hostdããŒã¢ã³ã管çããããã®ãã«ããŒé¢æ°mcpdã远å ããŸãïŒmcpd startãmcpd stopãmcpd statusãmcpd logsïŒã - ã·ã§ã«èšå®ã®åèªã¿èŸŒã¿ãä¿ããŸãïŒäŸïŒ
source ~/.zshrcïŒã
éèŠïŒ ã€ã³ã¹ããŒã«åŸãã·ã§ã«èšå®ãåèªã¿èŸŒã¿ããŠãgemini ã³ãã³ãïŒZsh ãŠãŒã¶ãŒã®å Žå㯠mcpd ãïŒã䜿çšã§ããããã«ããå¿
èŠããããŸããð
æåã€ã³ã¹ããŒã«ïŒBashïŒZsh ã䜿çšããªãå ŽåããŸãã¯æåã§èšå®ããå ŽåïŒð§
- å¿
èŠãªãã€ããªããã«ãããŸãã
cargo build --release --bin gemini-cli-bin --bin mcp-hostd - ãã€ããªã PATH äžã®å Žæã«ã³ããŒããŸãã
cp target/release/gemini-cli-bin ~/.local/bin/ cp target/release/mcp-hostd ~/.local/bin/ - éžæããå ŽæïŒäŸïŒ
~/.local/binïŒã PATH ã«å«ãŸããŠããããšã確èªããŸãã - éèŠïŒ ã³ãã³ãéã§ã»ãã·ã§ã³å±¥æŽãæå¹ã«ããã«ã¯ã
install.shã¹ã¯ãªããå ãŸãã¯ä»¥äžã®ã»ã¯ã·ã§ã³ã«ããgeminiã©ãããŒé¢æ°ããã·ã§ã«èšå®ãã¡ã€ã«ïŒ.bashrcã.zshrcãªã©ïŒã«æåã§è¿œå ããŠãã ãããã©ãããŒããªãå Žåãå±¥æŽãä¿æãããã®ã¯åäžã®å¯Ÿè©±åïŒ-iïŒã»ãã·ã§ã³å ã ãã§ãã# Gemini CLI Wrapper Function Start # This function wraps the gemini-cli-bin to manage session environment variables gemini() { # Path to the actual binary local gemini_bin="$HOME/.local/bin/gemini-cli-bin" # Check if binary exists if [ ! -x "$gemini_bin" ]; then echo "Error: gemini-cli-bin not found or not executable at $gemini_bin" >&2 return 1 fi # Run the actual binary, capturing output local output # Use eval to handle potential quotes in arguments correctly output=$(eval "$gemini_bin \"\$@\"") local exit_code=$? # Extract export commands from the output if the command was successful if [ $exit_code -eq 0 ]; then # Filter lines starting with # export local exports exports=$(echo "$output" | grep '^# export') # Execute the export commands if any were found if [ -n "$exports" ]; then # Remove the comment and execute eval "$(echo "$exports" | sed 's/^# export //')" fi # Print the output, excluding the export lines echo "$output" | grep -v '^# export' else # If the command failed, just print the output (likely error messages) echo "$output" fi return $exit_code } # Gemini CLI Wrapper Function End - ã·ã§ã«èšå®ãåèªã¿èŸŒã¿ããŸãã
âïž èšå®
ãã®ã¹ã€ãŒãã§ã¯ã䞻㫠CLI ã§ç®¡çããè€æ°ã®èšå®ãã¡ã€ã«ã䜿çšããŸãã
CLI èšå®ïŒconfig.tomlïŒ
- å ŽæïŒ
~/.config/gemini-suite/config.toml - ç®çïŒ CLI ãšããŒã¢ã³ïŒHAPPEãIDAãmcp-hostdïŒã®çµ±åèšå®ã§ãã
- ç®¡çæ¹æ³ïŒ
gemini configãŸãã¯gemini daemon-manager configãµãã³ãã³ãã䜿çšããŸãã - 詳现ïŒ
cli/README.mdãšdaemon-manager/README.mdãåç §ããŠãã ããã
MCP ãµãŒããŒèšå®ïŒmcp_servers.jsonïŒ
- å ŽæïŒ
~/.config/gemini-suite/mcp_servers.json - ç®çïŒ MCP Host ãå€éšããŒã«ãµãŒããŒã«æ¥ç¶ããæ¹æ³ãå®çŸ©ããŸãã
- ç®¡çæ¹æ³ïŒ
gemini mcpãŸãã¯gemini daemon-manager mcpãµãã³ãã³ãã䜿çšããŸãã
API ããŒã®åªå é äœ ð
~/.config/gemini-suite/config.tomlã®å€ãGEMINI_API_KEYç°å¢å€æ°ã- ã«ã¬ã³ããã£ã¬ã¯ããªïŒéçºäžã¯ãããžã§ã¯ãã«ãŒãïŒã®
.envãã¡ã€ã«ã®å€ã
ã·ã¹ãã ããã³ããã®åªå é äœ ð£ïž
~/.config/gemini-suite/config.tomlã®å€ã- CLI ã«çµã¿èŸŒãŸããããã©ã«ãã®ããã³ããã
ð¡ CLI ã®äœ¿ç𿹿³
ã€ã³ã¹ããŒã«ããŠã·ã§ã«ãåèªã¿èŸŒã¿ããåŸãã©ãããŒã³ãã³ã gemini ã䜿çšããŸãã
# Basic prompt
gemini "Explain Rust's ownership model."
# Interactive chat mode (maintains history within the session)
gemini -i
# Type '/exit' or press Ctrl+C to quit
# Using the wrapper for history across commands:
# First command (creates a session ID):
gemini "What is the capital of France?"
# Subsequent command uses the history (if shell reloaded/wrapper sourced):
gemini "What language do they speak there?"
# Start a new conversation thread (gets a new session ID)
gemini --new-chat "Tell me about Tokio."
# Ask Gemini for command help (requires 'command' MCP server)
gemini -c "list files sorted by modification time"
# Ask Gemini to use a tool (requires relevant MCP server)
gemini "Read the contents of my main.rs file."
# Task loop mode
gemini -t "Refactor the Rust code in src/utils.rs to improve error handling."
# Show configuration
gemini --show-config
# Get help on all flags
gemini --help
# Manage the MCP Host Daemon (Zsh only, via install.sh helper function)
mcpd start
mcpd status
mcpd stop
mcpd logs
察話ã¢ãŒã
- åçºïŒããã©ã«ãïŒïŒ ããã³ããã 1 ã€éä¿¡ããåçã 1 ã€åãåããŸãã
- 察話åãã£ããïŒ
-iïŒïŒ 1 åã® CLI å®è¡äžã« REPL 圢åŒã§äŒè©±ããŸãããã®ã¢ãŒãäžã¯å±¥æŽãä¿æãããŸãã - ã¿ã¹ã¯ã«ãŒãïŒ
-tïŒïŒ Gemini ã«è€éãªã¿ã¹ã¯ãå²ãåœãŠãŠèªåŸçã«äœæ¥ãããŸããããŒã«ã䜿çšããããšããããå¿ èŠãªå Žåã«ã®ã¿ç¢ºèªãæ±ããŸãã
ãã£ããå±¥æŽ
- å±¥æŽã¯
~/.local/share/gemini-suite/history/å ã®ãã¡ã€ã«ã«ä¿åãããŸãã - ã·ã§ã«ã»ãã·ã§ã³ããŸããã§æ£ããåäœãããã«ã¯ãã€ã³ã¹ããŒã©ãŒã«ãã£ãŠã€ã³ã¹ããŒã«ãããã©ãããŒé¢æ°ãå¿ èŠã§ãã
ã¡ã¢ãªæ©èœ
gemini-memory ãš LanceDBïŒ~/.local/share/gemini-suite/memory.dbïŒã«ãã£ãŠæ©èœããŸãã
- ã¡ã¢ãªãããŒã«ãŒïŒ
--enable-memory-broker/--disable-memory-brokerïŒïŒ é¢é£ããéå»ã®ã¡ã¢ãªãèªåçã«ååŸããããã³ããã®ã³ã³ããã¹ããšããŠè¿œå ããŸãã - èªåã¡ã¢ãªïŒ
--enable-auto-memory/--disable-auto-memoryïŒïŒ äŒè©±ããéèŠãªæ å ±ãèªåçã«æœåºããŠä¿åããŸãã - åã蟌ã¿ãµãŒãã¹ãå¿
èŠã§ããéåžžã¯çµã¿èŸŒã¿ã®
memory-store-mcpãµãŒããŒããŸãã¯mcp_servers.jsonã§èšå®ããå€éšã®åçãµãŒãã¹ãæäŸããŸãã
MCP çµ±åãšé¢æ°åŒã³åºã
gemini-mcp ã«ãã£ãŠæ©èœããŸãã
- CLI ã¯ã
mcp_servers.jsonã§å®çŸ©ããã MCP ãµãŒããŒã«æ¥ç¶ããŸãïŒmcp-hostdããŒã¢ã³çµç±ããŸãã¯å éšãã¹ãçµç±ïŒã - æ€åºãããããŒã«ã Gemini ã«æç€ºãããŸãã
- Gemini ãããŒã«ã®äœ¿çšã決å®ãããšã次ã®ããã«ãªããŸãã
- CLI ã«ããŒã«åŒã³åºãæ¡ã衚瀺ãããŸãïŒäŸïŒ
filesystem.readFile(path="./README.md")ïŒã - å®è¡å㫠確èªïŒy/nïŒãæ±ããããŸãã
- 確èªãããšãMCP ãã¹ãïŒãµãŒããŒçµç±ã§ããŒã«ãå®è¡ãããŸãã
- çµæã Gemini ã«è¿ãããŸãã
- CLI ã«ããŒã«åŒã³åºãæ¡ã衚瀺ãããŸãïŒäŸïŒ
- ã»ãã¥ãªãã£ïŒ ããŒã«åŒã³åºãã確èªããåã«ãå¿
ãå
容ã確èªããŠãã ãããç¹ã«
commandã®å®è¡ããã¡ã€ã«ã·ã¹ãã ã®å€æŽã«ã¯æ³šæããŠãã ããã - çµã¿èŸŒã¿ãµãŒããŒïŒ CLI ã®ãã€ããªèªäœã§ã次ã®å梱ãµãŒããŒãå®è¡ã§ããŸãã
gemini --filesystem-mcpgemini --command-mcpgemini --memory-store-mcpïŒã¡ã¢ãªæ©èœåãã«åã蟌ã¿ãšã¹ãã¬ãŒãžãæäŸããŸãïŒ ïŒãããã®ãã©ã°ã¯ãµãŒããŒã®ã¿ãå®è¡ããããã³ããã¯åãä»ããŸãããïŒ
- ããŒã¢ã³ã®ç®¡çïŒ
mcp-hostdãã€ããªã¯ã¹ã¿ã³ãã¢ãã³ã®ããŒã¢ã³ã§ããçŽæ¥ç®¡çããïŒäŸïŒmcp-hostd &ïŒããZsh ãŠãŒã¶ãŒåãã«install.shã远å ãããã«ããŒé¢æ°mcpdã䜿çšã§ããŸãïŒmcpd startãmcpd stopãmcpd statusãmcpd logsïŒã
ð» éçº
ãã®ãããžã§ã¯ã㯠Cargo ã¯ãŒã¯ã¹ããŒã¹ã§ãã
# Clone the repository
# git clone https://github.com/your-username/gemini-rust-suite
# cd gemini-rust-suite
# Build all crates
cargo build
# Build the CLI specifically (release mode)
cargo build --release --package gemini-cli
# Run the CLI directly from the workspace root
# (Ensure API key is set via .env in workspace root or exported env var)
cargo run --package gemini-cli -- "Your prompt"
cargo run --package gemini-cli -- -i # Interactive mode
cargo run --package gemini-cli -- -c "find text in files" # Command help
# Run tests for all crates
cargo test
# Run tests for a specific crate
cargo test --package gemini-core
# Run the MCP Host Daemon directly
cargo run --package gemini-mcp --bin mcp-hostd
ã³ã¡ã³ã
MCP ã¯åããŠã§ããïŒ
ãããã³ã«ã®æŠèŠããæåã®ãµãŒããŒã®å°å ¥ãŸã§ãããããçåã«ãŸãšããŠçããŸãã
AI ã¢ããªã±ãŒã·ã§ã³ãå€éšã®ããŒã«ãããŒã¿ãœãŒã¹ã«çµ±äžçãªæ¹æ³ã§æ¥ç¶ããããã®ãªãŒãã³ãªãããã³ã«ã§ããã¯ã©ã€ã¢ã³ãã¯ã¢ãã«ãšã®å¯Ÿè©±ãæ ããMCP ãµãŒããŒã¯ããŒã«ã»ãªãœãŒã¹ã»ããã³ãããã³ãã¬ãŒããæäŸããŸããæšæºã¡ãã»ãŒãžã§ããåãããããã1 ã€ã®ãµãŒããŒãè€æ°ã®ã¯ã©ã€ã¢ã³ãã§åå©çšã§ããŸãã