Token导航 LogoToken导航TokenDH.com
MCP Coding Test Reminder logo
日程管理stdio官方级别未说明来源级核验

MCP Coding Test Reminder

MCP Server

一个自动化管理编程竞赛日历的服务,支持从多个平台获取竞赛信息并同步到Google日历。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
Python日程管理自动化

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

grilled-swampert

提供方

grilled-swampert

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install fastmcp aiohttp google-auth-oauthlib google-api-python-client

详细介绍

竞赛日历MCP服务器-重构结构

项目结构

contest-calendar-mcp/
├── config.py              # Configuration settings and constants
├── utils.py               # Utility functions for time conversion
├── database.py            # Database management and queries
├── fetchers.py            # API fetchers for contest platforms
├── calendar_manager.py    # Google Calendar integration
├── tools.py               # MCP tool implementations
├── server.py              # Main MCP server entry point
├── requirements.txt       # Python dependencies
└── README.md              # Documentation

~/.contest_calendar/       # Data directory (auto-created)
├── contests.db            # SQLite database
├── token.pickle           # Google OAuth token
└── credentials.json       # Google OAuth credentials (user provided)

安装说明

1.安装依赖项

pip install fastmcp aiohttp google-auth-oauthlib google-api-python-client

或运行:

pip install -r requirements.txt

2.谷歌日历设置

  1. 首选 谷歌云控制台
  2. 创建新项目或选择现有项目
  3. 启用Google日历API
  4. 创建OAuth 2.0凭据(桌面应用程序)
  5. 下载凭据并另存为 ~/.contest_calendar/credentials.json

3.运行服务器

python server.py

首次运行时,它将打开一个浏览器进行谷歌身份验证。

调试指南

测试单个组件

测试数据库:

from database import ContestDatabase

db = ContestDatabase()
contests = db.get_upcoming_contests()
print(contests)

测试取件器:

import asyncio
from fetchers import ContestFetcher

async def test():
    contests = await ContestFetcher.fetch_codeforces()
    print(contests)

asyncio.run(test())

测试日历:

from calendar_manager import GoogleCalendarManager

cal = GoogleCalendarManager()
cal.authenticate()
events = cal.list_events()
print(events)

测试工具:

from datetime import datetime, timezone
from utils import to_ist, format_ist_time

now = datetime.now(timezone.utc)
print(format_ist_time(now))

添加新平台

要添加新的竞赛平台(例如AtCoder):

  1. config.py:添加API URL常量
  2. fetchers.py:添加 fetch_atcoder() 方法
  3. fetchers.py:更新 fetch_all() 包括新的提取器

例子:

# In config.py
ATCODER_API_URL = "https://atcoder.jp/contests/..."

# In fetchers.py
@staticmethod
async def fetch_atcoder():
    # Implementation here
    pass

@staticmethod
async def fetch_all():
    results = await asyncio.gather(
        ContestFetcher.fetch_codeforces(),
        ContestFetcher.fetch_leetcode(),
        ContestFetcher.fetch_codechef(),
        ContestFetcher.fetch_atcoder(),  # Add here
        return_exceptions=True
    )
    # Rest of the code...

在生产中运行

对于生产部署:

# Run with process manager
pm2 start server.py --interpreter python3 --name contest-calendar

目录标签

目录标签

Python日程管理自动化竞赛管理本地部署日历同步自动化工具编程竞赛Google日历集成

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP