Skip to main content
Glama
WilliamSuiself

Remote MCP Server on Cloudflare

Remote MCP 服务器

这是一个基于Cloudflare Worker的MCP (Model Context Protocol) 服务器,用于提供各种工具API,包括Gmail、Google Calendar等功能。该项目使用TypeScript开发,并使用@remote-mcp/server库来简化MCP服务器的实现。

功能特点

  • 基于 Cloudflare Workers 的无服务器架构

  • 提供Gmail邮件发送和读取功能

  • 提供Google Calendar事件创建和列表功能

  • 集成OAuth2认证

  • 使用Durable Objects进行状态管理

Related MCP server: Remote MCP Server on Cloudflare

安装

# 克隆仓库 git clone https://github.com/yourusername/remote-mcp-server.git cd remote-mcp-server # 安装依赖 npm install

配置

OAuth 配置

  1. Google Cloud Console 创建一个项目

  2. 启用 Gmail API 和 Google Calendar API

  3. 创建 OAuth 客户端ID和密钥

  4. 修改 src/config.ts 文件中的 OAuth 配置

export const GOOGLE_OAUTH_CONFIG = { clientId: '你的客户端ID', clientSecret: '你的客户端密钥', redirectUri: 'https://your-worker.your-subdomain.workers.dev/oauth/gmail/callback', scopes: [ 'https://www.googleapis.com/auth/gmail.send', 'https://www.googleapis.com/auth/gmail.readonly', 'https://www.googleapis.com/auth/calendar', 'https://www.googleapis.com/auth/calendar.events' ] };

Cloudflare KV 命名空间配置

对于生产环境,你需要配置KV命名空间来存储OAuth令牌:

  1. 在Cloudflare Dashboard创建KV命名空间

  2. 获取KV命名空间ID

  3. 取消注释wrangler.jsonc中的KV配置部分,并添加你的命名空间ID:

"kv_namespaces": [ { "binding": "OAUTH_KV", "id": "你的KV命名空间ID" } ]

构建和部署

本地开发

# 运行开发服务器 npm run dev

部署到Cloudflare Workers

# 构建并部署 npm run deploy

项目结构

remote-mcp-server/ ├── src/ # 源代码 │ ├── index.ts # 主入口文件 │ ├── config.ts # 配置文件 │ ├── services/ # 服务实现 │ │ └── google.ts # Google服务(Gmail, Calendar) │ └── utils.ts # 工具函数 ├── dist/ # 编译后的文件 ├── static/ # 静态资源 ├── build.js # 构建脚本 └── wrangler.jsonc # Cloudflare Workers配置

API端点

  • /tools - 获取可用工具列表

  • /api/mcp - MCP API端点

  • /oauth/gmail - Gmail OAuth认证

  • /oauth/gmail/callback - Gmail OAuth回调

故障排除

常见问题

  • 部署错误 - KV命名空间无效: 确保在wrangler.jsonc中配置了正确的KV命名空间ID,或者暂时注释掉KV配置部分进行测试部署

  • OAuth错误: 检查重定向URI是否正确配置在Google Cloud Console和项目配置中

  • 编译错误: 确保TypeScript配置中noEmit设置为false,允许生成JavaScript文件

日志和调试

使用Cloudflare Workers控制台查看日志和调试信息。

贡献指南

  1. Fork仓库

  2. 创建功能分支 (git checkout -b feature/amazing-feature)

  3. 提交更改 (git commit -m 'Add some amazing feature')

  4. 推送到分支 (git push origin feature/amazing-feature)

  5. 创建Pull Request

许可证

MIT

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/WilliamSuiself/remote-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server