使用说明
谷歌工作区代码MCP
重要提示:这是一个替代实验,不是我的主要设置
如果你正在寻找我日常使用的Google Workspace集成,请使用以下技能:
- 主要技能: https://github.com/mitsuhiko/agent-stuff/tree/main/skills/google-workspace
此存储库是 替代代码优先MCP实验 围绕一个 execute 工具。
它有意与以下想法保持一致:
- 你的MCP不需要30个工具:它需要代码 — https://lucumr.pocoo.org/2025/8/18/code-mcps/
这篇文章探讨了代码支持/代码优先的MCP设计(更少的固定工具,更多的可编程能力)。
本地JavaScript/TypeScript MCP服务器 单一工具: execute.
execute 运行JavaScript(或带有类型剥离的TypeScript),并赋予该代码对Google Workspace API的身份验证访问权限。
此服务器的功能
- 暴露 一个MCP工具:
execute - 运行用户提供的JavaScript/TypeScript(异步函数体;去除TS类型)
- 首次使用时自动执行OAuth登录(浏览器流)
- 在后续调用中重复使用存储的令牌
- 在执行代码中提供小型运行时API:
auth--谷歌OAuth客户端google—googleapisSDK根目录workspace--辅助方法(call,service,whoAmI)state--跨调用的持久可变对象
这遵循了一种代码模式设计:一个灵活的执行工具,而不是许多固定的工具。
需求
- Node.js 20+
- 初始OAuth登录的本地桌面/浏览器访问权限
安装
npm install
跑
npm start
或者:
node src/server.js
MCP配置
此回购已包含 .mcp.json:
{
"mcpServers": {
"google-workspace-code": {
"type": "stdio",
"command": "node",
"args": [
"/Users/mitsuhiko/Development/workspace-mcp/src/server.js"
],
"env": {
"GOOGLE_WORKSPACE_AUTH_MODE": "cloud"
}
}
}
}
如果移动项目,请更新 args 路径。
工具合同
工具名称
execute
输入架构
script(string,必填):JavaScript/TypeScript异步函数体(TS类型语法在执行前被剥离)timeoutMs(数字,可选):执行超时(毫秒)(默认值30000,最大值300000)scopes(string[],可选):覆盖调用的OAuth作用域resetState(布尔值,可选):清除持久值state执行前
执行环境
您的脚本作为异步函数体运行,其作用域中包含以下变量:
authgoogleworkspacestate
返回值被序列化并作为工具输出发回。
示例脚本
1) 我是谁+列出驱动器文件
const me = await workspace.whoAmI();
const files = await workspace.call('drive', 'files.list', {
pageSize: 5,
fields: 'files(id,name,mimeType)'
});
state.lastEmail = me.email;
return {
user: me,
files: files.files,
remembered: state.lastEmail
};
2) 列出今天的日历事件
const start = new Date();
start.setHours(0, 0, 0, 0);
const end = new Date(start);
end.setDate(end.getDate() + 1);
return await workspace.call('calendar', 'events.list', {
calendarId: 'primary',
timeMin: start.toISOString(),
timeMax: end.toISOString(),
singleEvents: true,
orderBy: 'startTime'
});
OAuth和令牌存储
- 首次无令牌调用会自动触发浏览器登录
- 默认配置目录:
~/.pi/google-workspace - 默认令牌路径:
~/.pi/google-workspace/token.json - 默认身份验证模式:
cloud(除非被覆盖)
环境变量
GOOGLE_WORKSPACE_CONFIG_DIRGOOGLE_WORKSPACE_CREDENTIALSGOOGLE_WORKSPACE_TOKENGOOGLE_WORKSPACE_AUTH_MODE(cloud或local)GOOGLE_WORKSPACE_CLIENT_IDGOOGLE_WORKSPACE_CLOUD_FUNCTION_URLGOOGLE_WORKSPACE_CALLBACK_HOST
安全说明
- 使用节点
vm为了便于执行, 不是一个坚固的沙箱. - 将其视为值得信赖的本地工具。
- 不要将此服务器暴露给不受信任的用户或网络。