modelscope·@deciduus/calendar-mcp
暂无描述。
本项目实现了一个基于 Python 的 MCP(模型上下文协议)服务器,作为大型语言模型(LLMs)与 Google 日历 API 之间的接口。它使 LLMs 能够通过自然语言请求执行日历操作。
mcp_google_calendar_list_calendars)。mcp_google_calendar_create_calendar)。mcp_google_calendar_find_events)。mcp_google_calendar_create_event)。mcp_google_calendar_quick_add_event)。mcp_google_calendar_update_event)。mcp_google_calendar_delete_event)。mcp_google_calendar_add_attendee)。mcp_google_calendar_check_attendee_status)。mcp_google_calendar_query_free_busy)。mcp_google_calendar_schedule_mutual)。mcp_google_calendar_analyze_busyness)。mcp_sdk 库通过标准输入输出提供与 MCP 兼容的工具。先决条件:
克隆仓库: bash git clone <repository-url> # 替换为你的仓库 URL cd <repository-directory>
Google Cloud 设置(OAuth 凭证):
.env 文件中需要它们。您不需要下载其他应用程序类型提供的 JSON 文件。calendar,添加 .../auth/calendar 范围(读/写权限)。点击“更新”。http://localhost:8080/oauth2callback。点击“保存”。(如果您更改了 .env 中的 OAUTH_CALLBACK_PORT,请相应调整端口)。环境配置(.env 文件):
在项目的根目录中,复制 env.example 文件并将副本重命名为 .env。
打开 .env 文件并粘贴从 Google Cloud 获取的 客户端 ID 和 客户端密钥:
dotenv
GOOGLE_CLIENT_ID= YOUR_GOOGLE_CLIENT_ID_HERE GOOGLE_CLIENT_SECRET= YOUR_GOOGLE_CLIENT_SECRET_HERE
TOKEN_FILE_PATH= .gcp-saved-tokens.json
OAUTH_CALLBACK_PORT=8080
CALENDAR_SCOPES= https://www.googleapis.com/auth/calendar* 确保 TOKEN_FILE_PATH 指向应用程序可以写入 token 文件的位置(通常是根目录下的默认文件 .gcp-saved-tokens.json)。此文件会自动添加到 .gitignore 中。
安装依赖项:
在终端中导航到项目目录。
安装所需的 Python 包: bash pip install -r requirements.txt
(建议使用 Python 虚拟环境,但非必需)
您只需手动运行一次服务器以完成初始的 Google OAuth 身份验证流程。之后,您的 MCP 客户端将根据配置中的命令自动启动服务器。
首次运行(身份验证):
从终端运行服务器脚本: bash python run_server.py
脚本会检查保存的 token(.gcp-saved-tokens.json)。由于这些 token 尚不存在,它将:
http://localhost:8080/oauth2callback)。.env 文件中指定的位置(.gcp-saved-tokens.json)。一旦 token 保存成功,脚本通常会启动 FastAPI 服务器(例如,在 http://localhost:8000 上)。在看到 token 已保存或服务器已启动的确认信息后,您可以停止它(Ctrl+C)。
可选:直接测试服务器:
curl 或 Postman 发送 HTTP 请求),可以再次运行 python run_server.py。它将加载保存的 token 并启动服务器,而无需浏览器身份验证。注意: 对于常规使用 MCP 客户端的情况,在初始身份验证后,您不需要手动运行 python run_server.py。客户端会处理其启动。
要将此服务器作为工具在 MCP 客户端中使用,您需要配置客户端以运行 run_server.py 脚本。这通常在一个 JSON 设置文件中完成。
示例 mcp.json 条目:
json { "tools": { "google_calendar": { "command": "python", "args": [ "C:/path/to/your/calendar-mcp/run_server.py" ] } } }
配置详情:
google_calendar: 您为 MCP 客户端内的此工具实例选择的唯一名称。command: 如果 python 在系统的 PATH 中,则设置为 python。否则,请提供 python.exe 或 python 可执行文件的完整绝对路径(例如,/path/to/your/venv/bin/python 或 C:/path/to/your/venv/Scripts/python.exe)。args: 提供项目目录中 run_server.py 脚本的完整绝对路径。将占位符 /path/to/your/calendar-mcp/run_server.py 替换为您系统中的实际路径。api: 某些客户端可能仍需要 api 字段来指向底层的 FastAPI 服务器(例如,"api": "http://localhost:8000"),以便进行模式发现,尽管通信是通过 stdio 进行的。timeout: 您可以添加超时时间(例如,"timeout": 30000 表示 30 秒)。工作原理: 当 MCP 客户端调用此工具时,它会使用指定的 command 和 args 执行。run_server.py 脚本会检测到它是通过管道化的 stdin/stdout 运行的,并自动启动 MCP 通信桥接,而不是仅启动 HTTP 服务器。
重要提示:
.env 文件中,不在 MCP 客户端配置中。* 请参阅您特定的MCP客户端文档,以获取确切的配置文件位置和所需字段。run_server.py:主入口点,处理服务器启动和MCP检测。src/server.py:FastAPI应用程序定义,HTTP端点。src/calendar_actions.py:与Google Calendar API交互的核心逻辑。src/analysis.py:高级分析功能。src/auth.py:处理OAuth 2.0认证流程和令牌管理。src/models.py:用于请求/响应数据结构的Pydantic模型。src/mcp_bridge.py:使用mcp_sdk实现MCP工具定义,并委托给FastAPI服务器。calendar_mcp.log文件中。本项目采用双许可模式,以支持开源协作和可持续发展:
GNU Affero通用公共许可证v3.0 (AGPL-3.0):
商业许可证:
VariFlight航班信息服务的模型上下文协议(MCP)服务器实现方案。该服务器提供了多种工具,支持查询航班信息、天气数据及航班舒适度指标。
快递100 MCP Server提供快递信息查询、快递运费预估比价、快递时效查询(含发货前时效查询与在途动态时效查询)等功能。
实时时间获取函数,可根据指定时区获取当前时间(默认中国时间),并以格式化文本返回详尽的时间信息。 可获取的详尽时间信息包括:时区、时区缩写、当前时间、星期、日期、具体时间、年份、月份、日期、小时、分钟、秒钟、 一年中的第几天、一年中的第几周、是否为夏令时、客户端IP、与UTC的偏移、与UTC的时差描述等。
现已支持5个核心API接口和MCP协议的对接, 涵盖询价、发单、查询详情等,是国内首家兼容MCP协议的配送服务商。
RollingGo-Flight-MCP 是一款 MCP 原生的全球机票服务插件,完美适配 Claude 、Cursor、Codex等AI Agent 和主流 MCP 客户端。 基于道旅官方供应链,内置机场智能识别与航班多维检索两大核心工具,整合 RollingGo 全球 500 + 合作航司、覆盖 200 + 国家和地区的千万级航线资源,支持实时价格查询、舱等筛选、行程匹配等专业功能,具备企业级高并发稳定性与 7×24 小时服务保障,帮助企业和个人开发者零成本构建具备机票交易能力的 AI 应用。
基于 arXiv 的开放 API 进行论文搜索的