远程Model Context Protocol (MCP) 服务器for kintone via OAuth on Cloudflare Workers

这是Cloudflare Workers 作为deploy可能的 金色调 使用 模型上下文协议(MCP) 服务器示例代码。
不需要在本地设置程序Web浏览Claude 屋脊ChatGPT 中所述修改相应参数的值。
OAuth通过认证API安全,无需在本地保存密钥等机密信息kintone的总和。 部署一次就一样cybozu.com所有使用域的用户都可以共享。
🚀 已确认支持的平台
- 克劳德·韦伯版
- 克劳德桌面 (macOS/Windows)
- 邮递员
- Cloudflare AI游乐场
- ChatGPT Web版
2025年9月11日现在 ChatGPT Web版 在…方面ChatGPT 的,之Pro 在工作空间的边缘Plus 通过在账户上设定→连接器→详细设定→开发者模式的有效,可以作为贝塔版使用。
📋 所需环境
- Cloudflare帐户
- cybozu.com域管理员权限(用于创建OAuth客户端)
- Node.js 18以上
- 牧马人CLI
🔧 安装过程
1. cybozu.com通用管理OAuth创建客户端
Cybozu公式文档按照…;按照OAuth添加客户端。
设定项目:
- 客户端名称:容易理解的名称(例如“kintone MCP Server”)
- 重定向端点:暂时
https://localhost:8788/callback的规格化距离的幂函数 - 范围:选择
- k:app_record:read -记录读取 - k:app_record:write -记录写入 - k:app_settings:read -读取应用程序设置 - k:app_settings:write -应用程序设置写入 - k:file:read -文件读取 - k:file:write -文件写入
- 保存后显示的客户端ID」和“客户端密码”。
- OAuth在客户端的“用户设置”中MCP Server 中所述修改相应参数的值。
2.项目设置
# リポジトリのクローン
git clone https://github.com/r3-yamauchi/kintone-oauth-mcp-server-cfw.git
cd kintone-oauth-mcp-server-cfw
# 依存関係のインストール
npm install3.设置环境变量
- OAuth创建客户端时保留的值Wrangler的配置文件(
wrangler.jsonc)中填写。:
"vars": {
"CYBOZU_CLIENT_ID": "",
"CYBOZU_CLIENT_SECRET": "",
"CYBOZU_SUBDOMAIN": "", # your cybozu.com subdomain
"COOKIE_ENCRYPTION_KEY": "", # add any random string here e.g. openssl rand -hex 32
"WORKER_URL": ""
},4. KV创建命名空间
- wrangler CLI 执行以下操作:KV创建命名空间。:
wrangler kv:namespace create "OAUTH_KV"
- Wrangler在动态输入提示中单击 `` 栏的“字体”框中的字体)的可选字体名称KV 的,之ID 来修改标记元素的显示属性。
- 执行以下命令Cloudflare Workers 打开和保存文件deploy 来修改标记元素的显示属性。
wrangler deploy
- deploy 完成后Workers 的,之URL 打开cybozu.com公共管理画面OAuth设置在客户端的“重定向端点”栏中,在末尾
/callback来修改标记元素的显示属性。https://.workers.dev/callback的双曲正切值。
Claude Web从应用程序远程MCP访问服务器
单击“添加集成”。
- “合作名称”是MCP Server 进行动态观察时的轴心点。
- “协作URL」在…之上
https://.workers.dev/sse来修改标记元素的显示属性。
- 单击“追加”按钮后,单击“协作/协作”。 OAuth的确认画面,单击“Approve”“许可”。
- Claude Web从应用程序远程MCP服务器可用。
Claude Desktop从远程MCP访问服务器
Claude Desktop在工作空间的边缘Settings -> Developer -> Edit Config打开,添加以下设置。Claude Desktop重新启动时OAuth显示登录画面,完成认证流程后Claude表示MCP现在可以访问服务器了。
{
"mcpServers": {
"kintone": {
"command": "npx",
"args": [
"mcp-remote",
"https://.workers.dev/sse"
]
}
}
}解说
🎯 这是干什么
AI助手(Claude等)kintone的,之API中所述修改相应参数的值。
Cloudflare Workers在上面动作,不在本地保存认证信息OAuth通过认证kintone的总和。
🔧 主要功能
1.可用工具(共28个工具)
记录操作
- getRecords - 获取记录列表
- getRecord - 获取单个记录
- addRecord - 添加记录
- addRecords - 成批添加多个记录
- updateRecord - 更新记录
- getRecordComments - 获取记录注释
- addRecordComment - 向记录发表评论
- evaluateRecordsAcl - 评估记录的访问权限
应用程序设置
- getApp - 获取应用程序基本信息
- getAppFields - 获取字段列表
- searchApps - 搜索应用程序
- getAppSettings - 获取应用程序的一般设置
- getFormLayout - 获取窗体布局
- getViews - 获取列表(视图)设置
- getProcessManagement - 获取流程管理设置
- getAppReports - 获取图表设置
- getAppCustomize - JavaScript/CSS获取自定义设置
- getAppActions - 获取操作设置
文件操作
- uploadFile - 文件上传
- downloadFile - 文件下载
访问权限
- getAppAcl - 获取应用程序访问权限
- getRecordAcl - 获取记录的权限设置
- getFieldAcl - 获取字段访问权限
通知设定
- getAppNotificationsGeneral - 获取应用程序的条件通知
- getAppNotificationsPerRecord - 获取记录的条件通知
- getAppNotificationsReminder - 获取提醒通知
部署管理
- updateAppCustomize - JavaScript/CSS更新自定义
- deployApp - 将应用程序设置反映到运行环境中
2.二重OAuth认证
- MCP客户端身份验证
- kintone/Cybozu验证帐户
3.认证流程
- MCP客户端连接
- 允许用户在批准屏幕上
- kintone的,之OAuth重定向至屏幕
- kintone中的认证完成后,获取访问令牌
- 建立安全连接
🏗️ 体系结构
- Cloudflare Workers - 无服务器可扩展
- KV存储-OAuth状態の永続化
- 加密Cookie - 存储批准的客户端
💡 优点
- 安全-API无需共享密钥
- 多用户-多个用户可在一个部署中使用
- 浏览器/台式机支持-Claude Web屋脊Claude Desktop可利用
- 成本效益-仅在无服务器的情况下运行
此项目包括:GitHub的,之OAuth在动态输入提示中单击kintone专门定制的真正的MCP服务器实施。
这个项目的由来
这个项目原本是Cloudflare的,之GitHub OAuth使用模板创建:
npm create cloudflare@latest -- kintone-oauth-mcp-server-cfw --template=cloudflare/ai/demos/remote-mcp-github-oauth单击功能区上云耀の远程MCP服务器ガイド中所述的工具,调整墙的布局和几何形状OAuth认证MCP提供服务器的构建基础。在本项目中,将此模板Cybozu/kintone OAuth 改建Cybozu的,之OAuth 2.0实现了与实施相对应的认证流程。
原始模板的主要更改
GitHub OAuth创建模板kintone为了应对,进行了以下变更:
- OAuth处理程序:
src/cybozu-handler.ts创建新的kintone的,之OAuth处理流程(github-handler.ts),模板名称将采用不同的格式 - OAuth端点: Cybozu OAuth更改为端点:
- 认可: https://{subdomain}.cybozu.com/oauth2/authorization - 标记: https://{subdomain}.cybozu.com/oauth2/token
- 认证方式: kintone的,之OAuth 2.0符合规格(在请求主体中包括凭证)
- 环境变数: GitHub因为有事kintone更改为:
- GITHUB_CLIENT_ID → CYBOZU_CLIENT_ID - GITHUB_CLIENT_SECRET → CYBOZU_CLIENT_SECRET - CYBOZU_SUBDOMAIN 添加(用于kintone子域)
- 范围: kintone API使用的作用域
- k:app_record:read -记录读取权限 - k:app_record:write -记录写入权限 - k:app_settings:read -应用程序设置读取权限 - k:app_settings:write -应用程序设置写入权限(自定义更新用) - k:file:read -文件读取权限 - k:file:write -文件写入权限
本地开发和测试
HTTPS启用启动服务器:
wrangler dev --local-protocol httpsInspector单击功能区上 https://localhost:8788/sse 中所述修改相应参数的值。
注意:首次访问时,您必须在浏览器中接受自签名证书警告。
OAuth配置故障排除
401发生错误时
请确认以下几点:
- Cybozu开发者网络での設定
- 重定向URI进行动态观察时的轴心点 - 本番環境: https://.workers.dev/callback - 开発环境: https://localhost:8788/callback - OAuth应用程序已启用 - client_id打开client_secret已正确复制 - 已设置所需的作用域: k:app_record:read k:app_record:write k:app_settings:read k:app_settings:write k:file:read k:file:write
- 确认环境变量
# .dev.varsファイルまたはwrangler secretsで以下を確認
CYBOZU_CLIENT_ID=
CYBOZU_CLIENT_SECRET=
CYBOZU_SUBDOMAIN=
COOKIE_ENCRYPTION_KEY=- 检查日志
在开发服务器启动时的控制台上查看:
- OAuth Callback Received -是否收到正确的回调 - Starting Token Exchange -是否已启动令牌交换 - 错误响应的详细内容
- kintone OAuth仕様
- 授权端点: https://{subdomain}.cybozu.com/oauth2/authorization - 标记端点: https://{subdomain}.cybozu.com/oauth2/token - 认证方式:请求主体client_id打开client_secret包括 - 响应格式:JSON
- 调试模式
要查看详细日志,您可以启动并运行开发服务器:
npm run dev结构概述
OAuth供应商
OAuth Provider在动态输入提示中单击Cloudflare Workers面向OAuth 2.1服务器实现。 这个程序库OAuth负责整个流程(令牌提交、验证和管理)。具体为:
- MCP客户端验证
- kintone OAuth服务连接管理
- KV安全存储令牌身份验证状态
MCP远程
MCP Remote库允许服务器向客户端提供工具:
- 定义客户端和服务器之间的通信协议
- 提供工具的定义方法
- 管理请求/响应的序列化细化
- 在客户端和服务器之间Server-Sent Events (SSE)保持连接
MCP Server 使用的风险
由他人制作、实施的MCP server 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。
「kintone」是赛博股份有限公司的注册商标。
此处描述的内容旨在提供信息,不能提供单独的支持。 关于设定内容的问题和在自己的环境中不动作的咨询也不能对应,请谅解。
