文件操作工具集成Gemini

一个基于Go构建的MCP服务器,提供文件操作工具(读取、搜索、列表)并与Google Gemini集成,支持自然语言查询。

  • by KiranRajeev-KV
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 KiranRajeev-KV/go-mcp

使用说明

去mcp

使用Go构建的具有Gemini LLM集成的MCP(模型上下文协议)服务器。

概述

该项目演示了一个可工作的MCP服务器,该服务器提供文件操作工具(读取、搜索、列表),并与谷歌的Gemini集成用于自然语言查询。MCP服务器作为子进程运行,并通过stdio传输进行通信。

特性

  • MCP服务器 -提供3个文件操作工具:

    • read_file -从数据/文件夹读取文件内容
    • search_files -使用grep在文件中搜索模式
    • list_files -列出目录中的文件
  • Gemini集成 -使用Google Gemini API的自然语言界面

  • 范围访问 -文件操作仅限于 data/ 安全文件夹

  • 交互式CLI -使用自然语言查询您的文件

先决条件

  • 转到1.24+
  • Gemini API密钥

设置

  1. 获取Gemini API密钥:

  2. 创建 .env 文件:

    cp .env.example .env
    

    或手动创建 .env:

    GEMINI_API_KEY=your_api_key_here
    

用法

go run ./cmd/client

然后键入您的查询。示例:

>> list the files in the data folder
>> read team.json
>> what products are in stock?
>> search for "ERROR" in the logs
>> find functions in calculator.go

类型 quit 或 exit 停止。

项目结构

go-mcp/
├── cmd/
│   ├── server/         # MCP server entry point
│   └── client/         # CLI client with Gemini
├── internal/
│   ├── mcp/            # MCP server implementation
│   │   ├── server.go    # Server setup
│   │   └── tools.go    # Tool handlers
│   └── llm/            # Gemini client
│       └── client.go    # LLM integration
├── data/               # Files you can query (scoped access)
├── .env                # API keys (gitignored)
├── .env.example        # Template for .env
├── go.mod
└── README.md

数据文件夹

这 data/ 文件夹包含可以查询的示例文件:

文件 描述
readme.md 项目文件
team.json 具有角色和技能的团队成员
products.csv 有价格和库存的产品
calculator.go Go计算器代码
process_data.py Python数据处理
todo.txt 项目TODO列表
server.log 示例服务器日志

运作原理

  1. 客户端启动 → 生成MCP服务器作为子进程
  2. 列出工具 → 客户端从服务器获取可用工具
  3. 转换架构 → MCP工具定义→ Gemini函数声明
  4. 交互式循环:
    • 您键入查询→ Gemini决定是否需要工具
    • 如果是→ 客户调用MCP工具→ 将结果返回给Gemini→ 双子座回应
    • 如果不→ 双子座直接回应

技术栈

许可证

麻省理工学院