模型上下文协议(MCP)
所有版权归于: https://github.com/ShawhinT/YouTube-Blog/
这是 AI 代理系列的第四个示例。在这里,我构建了一个客户端 MCP 服务器,以便任何 AI 应用都可以访问人工智能虚拟助手 (AVA) 的工具集。
链接
如何运行此示例
- 克隆此 repo
- 如果还没有安装uv,请先安装
# Mac/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
- 在开发模式下测试服务器
uv run mcp dev mcp-server-example.py
- 将服务器配置添加到 AI 应用程序(例如 Claude Desktop 或 Cursor)。
{
"mcpServers": {
"AVA": {
"command": "/Users/shawhin/.local/bin/uv", # replace with global path to your uv installation
"args": [
"--directory",
"/Users/shawhin/Documents/_code/_stv/sandbox/ava-mcp/", # replace with global path to repo
"run",
"mcp-server-example.py"
]
}
}
}
自定义 AVA 的行为
更新个人信息和偏好
- 在项目目录中找到
prompts/ava.md
文件 - 使用以下方式自定义文件:
- 沟通偏好
- 处理任务的具体说明
- AVA 的任何其他相关指南
环境设置(.env)
- 在项目根目录中创建一个
.env
文件,其中包含以下变量:
USER_EMAIL=your_email_address
# Google OAuth Credentials
GOOGLE_CREDENTIALS_PATH=.config/ava-agent/credentials.json
GOOGLE_TOKEN_PATH=.config/ava-agent/token.json
所需的环境变量:
USER_EMAIL
:您要用于此应用程序的 Gmail 地址GOOGLE_CREDENTIALS_PATH
:您的 Google OAuth 凭据文件的路径GOOGLE_TOKEN_PATH
:存储 Google OAuth 令牌的路径
Google OAuth 设置
1.创建项目目录结构
首先,创建所需的目录结构:
mkdir -p .config/ava-agent
2. 设置 Google Cloud 项目
- 前往Google Cloud Console
- 创建新项目或选择现有项目
- 启用 Gmail API:
- 在导航菜单中,转到“API 和服务”>“库”
- 搜索“Gmail API”
- 点击“启用”
3.创建OAuth凭证
- 在 Google Cloud Console 中:
- 前往“API 和服务”>“凭证”
- 点击“创建凭证”>“OAuth 客户端 ID”
- 选择“桌面应用程序”作为应用程序类型
- 给它起一个名字(例如,“AVA Gmail 客户端”)
- 点击“创建”
- 下载凭证:
- 创建完成后,点击“下载JSON”
- 将下载的文件保存为
.config/ava-agent/
中的credentials.json
- 该文件应包含您的客户端 ID 和客户端密钥
4. 配置 OAuth 同意屏幕
- 在 Google Cloud Console 中:
- 前往“API 和服务”>“OAuth 同意屏幕”
- 选择“外部”用户类型
- 填写所需信息:
- 添加 Gmail API 范围:
https://www.googleapis.com/auth/gmail.modify
- 将您的电子邮件添加为测试用户
- 完成配置
登录 Google
在服务器访问你的 Gmail 账户之前,你需要先授权。你可以运行uv run oauth.py
来执行此操作,它会执行以下操作。
- 检查
token.json
是否存在 - 如果未找到,它将启动 Google OAuth 身份验证流程
- 指导您完成浏览器中的身份验证过程:
- 系统会要求您登录 Google 帐户
- 授予请求的权限
- 应用程序将自动保存令牌
- 自动生成并存储令牌
安全说明
文件保护
- 切勿将
.env
文件或token.json
提交到版本控制 - 确保您的 Google 凭据安全
- 将以下内容添加到您的
.gitignore
中:.env
.config/ava-agent/token.json
.config/ava-agent/credentials.json