使用说明
终极谷歌文档、表格和驱动器MCP服务器
将Claude Desktop(或其他MCP客户端)连接到您的Google文档、Google表格和Google云端硬盘!
🔥 结账 15个强大的任务 你可以用这个增强的服务器来完成! 📁 新 完整的Google Drive文件管理功能! 📊 新 完整的谷歌表格支持阅读、写作和管理电子表格!
该综合服务器使用模型上下文协议(MCP)和 fastmcp 该库提供阅读、写作、格式化、构建谷歌文档和电子表格以及管理整个谷歌云端硬盘的工具。它充当了一个强大的桥梁,允许像Claude这样的人工智能助手通过高级功能以编程方式与您的文档、电子表格和文件进行交互。
特征:
文档访问和编辑
- 阅读文件: 阅读内容
readGoogleDoc(纯文本、JSON结构或markdown) - 文件附录: 使用以下命令向文档添加文本
appendToGoogleDoc - 插入文本: 将文本放置在特定位置
insertText - 删除内容: 使用以下命令从文档中删除内容
deleteRange - 选项卡支持: 使用以下工具处理多标签文档
listDocumentTabs可选tabId读/写操作中的参数
🆕 Markdown支持
- 用Markdown书写: 使用熟悉的markdown语法编辑文档
- 丰富格式: 支持标题、粗体、斜体、删除线、链接和列表
- 双向转换: 以markdown格式读取文档,在本地编辑,然后将更改应用回
replaceDocumentWithMarkdown - 添加Markdown: 使用以下命令将markdown内容添加到文档中
appendMarkdownToGoogleDoc - 完整工作流程: 检索→ 离线编辑→ 批量应用格式
格式和样式
- 文本格式: 运用丰富的造型
applyTextStyle(粗体、斜体、颜色等) - 段落格式: 控制段落布局
applyParagraphStyle(对齐、间距等) - 查找和格式化: 使用按文本内容格式化
formatMatchingText(遗留支持)
文档结构
- 桌子: 使用创建表
insertTable - 分页符: 插入分页符
insertPageBreak - 图像: 从URL插入图像
insertImageFromUrl,或上传本地图像insertLocalImage - 实验特点: 工具如
fixListFormatting用于自动列表检测
🆕 评论管理
- 列出评论: 查看文档中的所有评论
listComments(显示作者、日期和引用文本) - 获取评论详细信息: 使用以下方式获取特定评论和回复
getComment - 添加评论: 使用以下命令创建锚定到文本的新评论
addComment - 对评论的回复: 添加对现有评论的回复
replyToComment - 解决意见: 将评论标记为已解决
resolveComment - 删除评论: 从文档中删除注释
deleteComment
🆕 Google表格支持
- 阅读电子表格: 从范围读取数据
readSpreadsheet(支持A1表示法,如“A1:B10”或“Sheet1!A1:B10”) - 写入数据: 将数据写入范围
writeSpreadsheet(覆盖现有数据) - 添加行: 在图纸中添加新行
appendSpreadsheetRows - 清晰范围: 使用清除单元格值
clearSpreadsheetRange - 电子表格信息: 使用获取详细的元数据和工作表列表
getSpreadsheetInfo - 创建电子表格: 使用创建新的电子表格
createSpreadsheet(可选初始数据) - 添加图纸: 在电子表格中添加新的表格/选项卡
addSpreadsheetSheet - 电子表格列表: 查找并列出电子表格
listGoogleSheets
🆕 Google云端硬盘文件管理
- 文档发现: 查找并列出文档
listGoogleDocs,searchGoogleDocs,getRecentGoogleDocs - 文件信息: 通过以下方式获取详细的元数据
getDocumentInfo - 文件夹管理: 创建文件夹(
createFolder),列出内容(listFolderContents),获取信息(getFolderInfo) - 文件操作: 移动(
moveFile),复制(copyFile),重命名(renameFile),删除(deleteFile) - 文档创建: 创建新文档(
createDocument)或来自模板(createFromTemplate)
整合
- 谷歌身份验证: 使用完整的驱动器、文档和表格访问权限进行安全的OAuth 2.0身份验证
- 符合MCP标准: 专为与Claude和其他MCP客户端一起使用而设计
- VS代码集成: 安装指南 用于VS代码MCP扩展
先决条件
在开始之前,请确保您已经:
- Node.js和npm: 您的计算机上安装了最新版本的Node.js(包括npm)。您可以从以下网址下载 nodejs.org。(建议使用版本18或更高版本)。
- Git: 克隆此存储库所需。 (下载Git).
- Google帐户: 拥有或有权访问您要与之交互的Google Docs的帐户。
- 命令行熟悉度: 使用终端或命令提示符(如macOS/Linux上的终端,或Windows上的命令提示符/PowerShell)的基本舒适度。
- 克劳德桌面(可选): 如果您的目标是将此服务器连接到Claude,则需要安装Claude Desktop应用程序。
安装说明
请仔细遵循以下步骤,以运行您自己的服务器实例。
第一步:谷歌云项目和证书(重要的一点!)
此服务器需要权限才能代表您与Google API通信。您将创建只有您的服务器才会使用的特殊“密钥”(凭据)。
- 转到谷歌云控制台: 打开您的网络浏览器并转到 谷歌云控制台。您可能需要使用您的Google帐户登录。
- 创建或选择项目:
- 如果您没有项目,请单击顶部附近的项目下拉列表,然后选择“新建项目”。为其命名(例如“我的MCP文档服务器”),然后单击“创建”。
- 如果您有现有项目,可以选择一个或创建一个新项目。
- 启用API: 您需要打开此服务器使用的特定Google服务。
- 在顶部的搜索栏中,键入“API和服务”,然后选择“库”。
- 搜索“谷歌文档API“并单击它。然后单击”启用“按钮。
- 搜索“谷歌网页API“并单击它。然后单击”启用“按钮。
- 搜索“Google Drive API“并单击它。然后单击”启用“按钮(这通常是查找文件或权限所必需的)。
- 配置OAuth同意屏幕: 此屏幕告诉用户(通常只有您)您的应用程序需要什么权限。
- 在左侧菜单上,单击“API和服务”->“OAuth同意屏幕".
- 选择用户类型:选择“外部的然后单击“创建”。
- 填写应用程序信息:
- 应用程序名称: 给它起一个用户会看到的名字(例如,“Claude Docs MCP Access”)。
- 用户支持电子邮件: 选择您的电子邮件地址。
- 开发人员联系信息: 输入您的电子邮件地址。
- 点击“保存并继续".
- 范围: 点击“添加或删除作用域“.搜索并添加以下范围:
https://www.googleapis.com/auth/documents(允许读取/写入文档)https://www.googleapis.com/auth/spreadsheets(允许读取/写入电子表格)https://www.googleapis.com/auth/drive.file(允许访问应用程序打开/创建的特定文件)- 点击“更新".
- 点击“保存并继续".
- 测试用户: 点击“添加用户“.输入您登录时使用的相同Google电子邮件地址。单击”加“。这允许 你 在“测试”模式下使用应用程序。
- 点击“保存并继续“.查看摘要并单击”返回仪表板".
- 创建凭据(密钥!):
- 在左侧菜单上,单击“API和服务”->“凭证".
- 点击“+创建凭据“在顶部并选择”OAuth客户端ID".
- 应用程序类型: 选择“桌面应用程序”从下拉列表中。
- 姓名: 为其命名(例如,“MCP Docs桌面客户端”)。
- 点击“创建".
- ⬇️ 下载凭据文件: 将弹出一个显示您的客户ID的框。单击“下载JSON“按钮。
- 保存此文件。它可能会被命名为
client_secret_....json. - 重要: 将下载的文件重命名为
credentials.json.
- 保存此文件。它可能会被命名为
- ⚠️ 安全警告: 处理这个
credentials.json文件就像密码一样!不要公开分享,以及 永远不要将其提交到GitHub。 任何拥有此文件的人都有可能假装 您的申请 (尽管他们仍然需要用户同意才能访问数据)。
步骤2:获取服务器代码
- 克隆存储库: 打开终端/命令提示符并运行:
git clone https://github.com/a-bonus/google-docs-mcp.git mcp-googledocs-server - 导航到目录:
cd mcp-googledocs-server - 地点凭证: 移动或复制
credentials.json您下载并重命名的文件(从步骤1.6)直接保存到此mcp-googledocs-server文件夹。
步骤3:安装依赖项
您的服务器需要在 package.json 文件。
- 在你的终端(确保你在里面
mcp-googledocs-server目录),运行:这将下载所有必要的软件包并将其安装到npm installnode_modules文件夹。
步骤4:构建服务器代码
服务器是用TypeScript编写的(.ts),但我们需要将其编译成JavaScript(.js)Node.js可以直接运行。
- 在您的终端中,运行:这使用TypeScript编译器(
npm run buildtsc)创建adist包含编译的JavaScript文件的文件夹。
步骤5:首次运行和谷歌授权(仅限一次)
现在,您需要手动运行服务器一次,以授予其访问您的Google帐户数据的权限。这将创建一个 token.json 保存您的权限授予的文件。
- 在您的终端中,运行 编译 服务器使用
node:node ./dist/server.js - 观看终端: 脚本将打印:
- 状态消息(如“正在尝试授权…”)。
- 一条“通过访问此url:授权此应用程序”的消息,后面是一条长
https://accounts.google.com/...URL。
- 在浏览器中授权:
- 从终端复制整个长URL。
- 将URL粘贴到web浏览器中,然后按Enter键。
- 使用登录 相同的Google帐户 您在步骤1.4中添加为测试用户。
- Google将显示一个屏幕,请求您的应用程序(“Claude Docs MCP Access”或类似程序)访问Google文档、表格和驱动器的权限。查看并单击“允许“或”授予".
- 获取授权码:
- 单击“允许”后,您的浏览器可能会尝试重定向到
http://localhost并显示a “无法访问此网站”错误. 这很正常! - 看 小心地 在浏览器地址栏中的URL处。它看起来像
http://localhost/?code=4/0Axxxxxxxxxxxxxx&scope=... - 复制长字符串 在...之间
code=和那个&scope部分。这是您的一次性授权码。
- 单击“允许”后,您的浏览器可能会尝试重定向到
- 将代码粘贴到终端: 返回到脚本正在等待的终端(“在此处输入该页面的代码:”)。粘贴你刚才复制的代码。
- 按Enter键。
- 成功! 脚本应打印:
- “身份验证成功!”
- “令牌存储到…/Token.json”
- 然后,它将完成启动,并可能打印“等待MCP客户端通过stdio连接…”或类似内容,然后退出(或者您可以按
Ctrl+C阻止它)。
- ✅ 检查: 现在,您应该看到一个名为的新文件
token.json在你的mcp-googledocs-server文件夹。 - ⚠️ 安全警告: 这
token.json该文件包含允许服务器访问您的Google帐户的密钥 没有 再次询问。像密码一样保护它。 请勿将其提交至GitHub。 包括.gitignore文件应自动阻止这种情况。
替代方案:具有域范围委派的服务帐户(企业)
对于需要跨域访问文档而无需单个用户OAuth流的Google Workspace组织,您可以使用具有域范围委派的服务帐户。
先决条件:
- Google Workspace管理员权限,用于配置域范围内的委派
- 启用了域范围委派的服务帐户
设置:
-
创建服务帐户 在谷歌云控制台中:
- 转到“API和服务”→ “凭据”→ “创建凭据”→ “服务帐户”
- 下载JSON密钥文件
-
启用全域委派 在Google工作区管理控制台中:
- 转到安全→ API控制→ 全域授权
- 添加具有所需作用域的服务帐户的客户端ID:
https://www.googleapis.com/auth/documentshttps://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/spreadsheets
-
配置环境变量:
# Path to your service account key file export SERVICE_ACCOUNT_PATH="/path/to/service-account-key.json" # Email of the user to impersonate (required for domain-wide delegation) export GOOGLE_IMPERSONATE_USER="user@yourdomain.com" -
更新Claude桌面配置 (添加环境变量):
{ "mcpServers": { "google-docs-mcp": { "command": "node", "args": ["/PATH/TO/mcp-googledocs-server/dist/server.js"], "env": { "SERVICE_ACCOUNT_PATH": "/path/to/service-account-key.json", "GOOGLE_IMPERSONATE_USER": "user@yourdomain.com" } } } }
当 GOOGLE_IMPERSONATE_USER 设置后,服务器在访问Google API时将模拟该用户,允许访问该用户的文档和驱动器。
步骤6:配置Claude桌面(可选)
如果你想在Claude Desktop上使用这个服务器,你需要告诉Claude如何运行它。
-
找到你的绝对路径: 您需要服务器代码的完整路径。
- 在您的终端中,确保您仍在
mcp-googledocs-server目录。 - 跑吧
pwd命令(在macOS/Linux上)或cd(在Windows上,仅显示路径)。 - 复制完整路径(例如。,
/Users/yourname/projects/mcp-googledocs-server或C:\Users\yourname\projects\mcp-googledocs-server).
- 在您的终端中,确保您仍在
-
定位
mcp_config.json: 查找Claude的配置文件:- macOS:
~/Library/Application Support/Claude/mcp_config.json(您可能需要使用Finder的“转到”->“转到文件夹…”菜单并粘贴~/Library/Application Support/Claude/) - 窗户:
%APPDATA%\Claude\mcp_config.json(粘贴%APPDATA%\Claude进入文件资源管理器的地址栏) - Linux:
~/.config/Claude/mcp_config.json - 如果
Claude文件夹或mcp_config.json文件不存在,请创建它们。
- macOS:
-
编辑
mcp_config.json: 在文本编辑器中打开文件。添加或修改mcpServers像这样的部分, 替换/PATH/TO/YOUR/CLONED/REPO使用您在步骤6.1中复制的实际绝对路径:{ "mcpServers": { "google-docs-mcp": { "command": "node", "args": [ "/PATH/TO/YOUR/CLONED/REPO/mcp-googledocs-server/dist/server.js" ], "env": {} } // Add commas here if you have other servers defined } // Other Claude settings might be here }- 确保路径正确
"args"是正确和绝对的! - 如果文件已经存在,请小心地将此条目合并到现有的
mcpServers对象。确保JSON有效(检查逗号!)。
- 确保路径正确
-
保存
mcp_config.json. -
重新启动克劳德桌面: 完全关闭克劳德并重新打开它。
使用Claude Desktop
配置后,您应该可以在与Claude的聊天中使用这些工具:
- “使用
google-docs-mcp服务器读取带有ID的文档YOUR_GOOGLE_DOC_ID." - “你能得到谷歌文档的内容吗
YOUR_GOOGLE_DOC_ID?" - 在文档中添加“这是克劳德添加的!”
YOUR_GOOGLE_DOC_ID使用google-docs-mcp工具。"
使用标签
Google Docs现在支持多标签文档。此MCP服务器完全支持使用选项卡:
列表选项卡:
- “列出文档中的所有选项卡
YOUR_GOOGLE_DOC_ID使用listDocumentTabs工具。" - “显示文档的带内容摘要的选项卡结构
YOUR_GOOGLE_DOC_ID."
阅读特定标签:
- “从选项卡读取内容
TAB_ID文件YOUR_GOOGLE_DOC_ID使用readGoogleDoc工具。" - “从选项卡获取降价内容
TAB_ID文件YOUR_GOOGLE_DOC_ID."
写入特定选项卡:
- “将“新内容”附加到选项卡
TAB_ID文件YOUR_GOOGLE_DOC_ID." - “在选项卡的索引100处插入文本
TAB_ID文件YOUR_GOOGLE_DOC_ID." - “删除选项卡中50-100范围内的内容
TAB_ID文件YOUR_GOOGLE_DOC_ID."
注: 以下工具支持可选 tabId 参数:
readGoogleDoc-从特定选项卡读取appendToGoogleDoc-附加到特定选项卡insertText-在特定选项卡中插入文本deleteRange-从特定选项卡中删除内容
当 tabId 如果未指定,操作将针对第一个选项卡(或没有选项卡的旧文档的旧文档正文)。
高级使用示例:
谷歌文档:
- 文本样式:“使用
applyTextStyle将文档中的“重要部分”文本加粗并标记为红色(#FF0000)YOUR_GOOGLE_DOC_ID." - 段落样式:“使用
applyParagraphStyle将文档中包含“标题在此处”的段落居中对齐YOUR_GOOGLE_DOC_ID." - 表格创建:“在文档索引500处插入一个3x4表格
YOUR_GOOGLE_DOC_ID使用insertTable工具。" - 图像插入:“使用
insertImageFromUrl从“”插入图像https://example.com/image.png'位于文档索引100处YOUR_GOOGLE_DOC_ID." - 本地图像上传:“使用
insertLocalImage上传“/path/to/image.jpg”并将其插入文档的索引200处YOUR_GOOGLE_DOC_ID." - 传统格式:“使用
formatMatchingText在文档中查找“Project Alpha”的第二个实例并将其设置为蓝色(#0000FF)YOUR_GOOGLE_DOC_ID."
谷歌表格:
- 读取数据:“从电子表格读取范围A1:B10
YOUR_SPREADSHEET_ID使用readSpreadsheet." - 写入数据:“将数据[[1,2],[3,4]]写入电子表格中的范围A1:B2
YOUR_SPREADSHEET_ID." - 添加行:“将行[[5,6]、[7,8]]添加到电子表格中
YOUR_SPREADSHEET_ID从A1开始” - 创建电子表格:“创建一个名为“销售数据”的新电子表格,其中包含初始数据[[名称,金额],[产品a,100]]。”
- 显示简介:“获取有关电子表格的信息
YOUR_SPREADSHEET_ID包括所有纸张。" - 添加工作表:“在电子表格中添加一个名为“摘要”的新工作表
YOUR_SPREADSHEET_ID." - 清晰范围:“清除电子表格中的范围A1:B10
YOUR_SPREADSHEET_ID." - 列出电子表格:“列出我在过去30天内修改过的所有谷歌电子表格。”
记得更换:
YOUR_GOOGLE_DOC_ID使用来自Google文档URL的实际ID(介于/d/和/edit)YOUR_SPREADSHEET_ID使用Google Sheet URL中的实际ID(介于两者之间的长字符串/d/和/edit)
Claude将在需要时使用您提供的命令在后台自动启动您的服务器。你做 不 需要奔跑 node ./dist/server.js 再也不用手动了。
图像插入
此服务器提供两种将图像插入Google文档的方法:
1.从公共URL插入(insertImageFromUrl)
直接从可公开访问的URL插入图像。图像URL必须无需身份验证即可访问。
参数:
documentId:谷歌文档IDimageUrl:可公开访问的URL(http://或https://)index:文档中的位置(基于1的索引)width(可选):图像宽度(以点为单位)height(可选):图像高度(以点为单位)
例子:
"Insert an image from https://example.com/logo.png at index 100 in document YOUR_DOC_ID"
2.上传本地图片(insertLocalImage)
将本地图像文件上传到Google Drive并将其插入文档中。这是一个两步过程:
- 将图像上传到Google云端硬盘(默认情况下,上传到与文档相同的文件夹)
- 使图像公开可读
- 使用其驱动器URL将图像插入文档中
参数:
documentId:谷歌文档IDlocalImagePath:本地映像文件的绝对路径index:文档中的位置(基于1的索引)width(可选):图像宽度(以点为单位)height(可选):图像高度(以点为单位)uploadToSameFolder(可选,默认值:true):如果为true,则上传到文档的文件夹;如果为false,则上传到驱动器根目录
支持的格式: .jpg、.jpeg、.png、.gif、.bmp、.webp、.svg
例子:
"Upload and insert the image at /Users/myname/Pictures/chart.png at index 200 in document YOUR_DOC_ID with width 400 and height 300"
注: 上传的图像将公开可读,以便在文档中显示。图像文件将保留在您的Google云端硬盘中,可以单独管理。
安全和令牌存储
.gitignore: 此存储库包括.gitignore该文件应防止您意外提交敏感信息credentials.json和token.json文件夹。 不要从以下位置删除这些线.gitignore.- 令牌存储: 此服务器存储Google授权令牌(
token.json)为了在安装过程中简单起见,直接在项目文件夹中。在生产环境或更安全的环境中,考虑更安全地存储此令牌,例如使用系统密钥链、加密文件或专用的秘密管理服务。
测试
多标签支持功能已经过彻底的测试和验证:
✅ 测试功能:
listDocumentTabs-列出所有带有ID、标题、职位和内容摘要的选项卡readGoogleDoc和tabId-读取特定选项卡;向后兼容,无tabIdappendToGoogleDoc和tabId-附加到特定选项卡而不影响其他选项卡insertText和tabId-在特定选项卡的特定位置插入文本deleteRange和tabId-从特定选项卡中单独删除内容- 多选项卡操作-不同选项卡上的顺序操作独立工作
- 错误处理-无效的选项卡ID返回清晰、有用的错误消息
- 向后兼容性-无操作
tabId默认为第一个选项卡(支持旧文档)
所有与标签页相关的功能都已通过包含多个标签页的真实谷歌文档验证,确认:
- 选项卡隔离(一个选项卡上的操作不会影响其他选项卡)
- 正确的选项卡ID验证和错误消息
- 每个选项卡的正确内容检索和操作
- 与单个选项卡和旧文档完全向后兼容
Google表格使用
A1符号
Google表格使用A1表示法指定范围。示例:
A1-单细胞A1:B10-范围从A1到B10Sheet1!A1:B10-名为“Sheet1”的特定工作表上的范围A:A-整个A列1:1-整行1
值输入选项
在将数据写入电子表格时,您可以选择如何解释值:
- 用户输入 (默认):解析值时,就像用户键入值一样(公式有效,日期可识别等)
- 原始数据:值完全按照提供的方式存储(无需解析)
工作流示例
# 1. Create a new spreadsheet
"Create a spreadsheet titled 'Monthly Report'"
# 2. Write headers
"Write [[Date, Sales, Expenses]] to range A1:C1 in spreadsheet YOUR_SPREADSHEET_ID"
# 3. Append data rows
"Append rows [[2024-01-01, 1000, 500], [2024-01-02, 1200, 600]] to spreadsheet YOUR_SPREADSHEET_ID starting at A2"
# 4. Read the data back
"Read range A1:C3 from spreadsheet YOUR_SPREADSHEET_ID"
# 5. Add a new sheet for analysis
"Add a new sheet named 'Analysis' to spreadsheet YOUR_SPREADSHEET_ID"
已知限制
虽然此MCP服务器提供全面的Google文档、表格和驱动器功能,但Google API本身也有一些限制:
评论锚定
程序化创建的评论没有锚定:通过创建的评论 addComment 该工具出现在“所有评论”列表中,但不明显地锚定在Google Docs UI中的特定文本上。它们将显示“原始内容已删除”,而不是突出显示预期的文本范围。这是Google Drive API v3在使用Google Docs文件时的限制。
- 变通方案:在Google Docs UI中手动创建的评论已正确锚定
- 其他操作:回复、删除和列表操作在所有注释上都能正常工作,无论它们是如何创建的
评论决议
已解决的状态可能不会持续:The resolveComment 该工具试图将注释标记为已解决,但Drive API v3并不完全支持Google Docs文件的此操作。已解决的状态可能不会持续存在,也不会在Google Docs UI中可见。
- 变通方案:在Google Docs web界面中手动解析评论
转换后的文档
对转换文档的支持有限:某些从其他格式转换而来的Google文档(尤其是Microsoft Word文档)可能不支持所有Docs API操作。在尝试读取或修改这些文件时,您可能会遇到诸如“此文档不支持此操作”之类的错误。
故障排除
- Claude显示“失败”或“无法附加”:
- 仔细检查中的绝对路径
mcp_config.json. - 确保你跑了
npm run build成功和dist文件夹已存在。 - 尝试从以下位置运行命令
mcp_config.json在您的终端中手动:node /PATH/TO/YOUR/CLONED/REPO/mcp-googledocs-server/dist/server.js。查找打印的任何错误。 - 检查Claude Desktop日志(请参阅官方MCP调试指南)。
- 确保所有
console.log服务器代码中的状态消息已更改为console.error.
- 仔细检查中的绝对路径
- Google授权错误:
- 确保启用了正确的API(文档、表格、驱动器)。
- 确保您在OAuth同意屏幕上将您的电子邮件添加为测试用户。
- 验证
credentials.json文件已正确放置在项目根目录中。 - 如果您从旧版本升级: 您可能需要删除现有的
token.json文件并重新验证以授予新的Sheets API作用域。
- 选项卡相关错误:
- 如果您收到“找不到ID的选项卡”,请使用
listDocumentTabs查看所有可用的选项卡ID - 确保使用正确的选项卡ID格式(通常是一个简短的字母数字字符串)
- 单选项卡文档不需要
tabId-操作自动在文档正文上工作
- 如果您收到“找不到ID的选项卡”,请使用
许可证
此项目根据MIT许可证获得许可-请参阅 LICENSE 文件以获取详细信息。(注意:您应该添加一个 LICENSE 将包含MIT许可证文本的文件发送到您的存储库)。
