使用说明
去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密钥
设置
-
获取Gemini API密钥:
- 首选 谷歌AI工作室
- 创建新的API密钥
- 复制到
.env:
-
创建
.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 |
示例服务器日志 |
运作原理
- 客户端启动 → 生成MCP服务器作为子进程
- 列出工具 → 客户端从服务器获取可用工具
- 转换架构 → MCP工具定义→ Gemini函数声明
- 交互式循环:
- 您键入查询→ Gemini决定是否需要工具
- 如果是→ 客户调用MCP工具→ 将结果返回给Gemini→ 双子座回应
- 如果不→ 双子座直接回应
技术栈
- Go MCP SDK -官方MCP协议实施
- 谷歌GenAI SDK -Gemini API客户
许可证
麻省理工学院