网页爬取与日历管理服务器

一个基于Python的服务器,集成了网页爬取和Google日历管理功能,适用于自动化数据收集和日程管理。

  • by Ravishanker-sharma
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ravishanker-sharma/mcp_server

使用说明

通用MCP服务器


项目结构和组成部分

该项目由几个Python脚本组成,这些脚本协同工作,使用 FastMCP.

  • .gitignore:此文件指定Git应忽略的文件和目录,如字节编译文件、IDE特定设置(.idea/, *.iml),环境文件夹(venv/, env/),以及日志文件。

  • yahoosearchengine.py:

    • 目的:实现自定义雅虎搜索客户端。
    • 关键功能:
      • extract_real_url(yahoo_url):从雅虎搜索结果链接中解码并提取实际URL。
      • yahoo_search(query):在雅虎上执行搜索,并从结果中返回URL列表。
  • genralscraper.py:

    • 目的:一个多线程web scraper,使用 yahoosearchengine.py 获取URL,然后从中抓取内容。
    • 关键功能:
      • extract_image_url(soup, domain):提取特定域的图像URL,如 hindustantimes.com 和 indianexpress.com.
      • smart_scrape(url, section=None):使用以下命令从给定的URL中抓取标题、段落和图像 BeautifulSoup 以及用户代理的轮换列表。
      • get_data(querry):协调搜索和抓取过程的主要功能,使用线程进行并行抓取。
  • fastscraper.py:

    • 目的:一个使用 crawl4ai 用于高速抓取的库。
    • 关键功能:
      • scraper(urls)一 async 该函数同时抓取URL列表,并根据预定义的标题、段落和文章块的CSS模式提取数据。
  • googlecal.py:

    • 目的:提供与Google日历API交互的功能。
    • 依赖项:需要 pydantic 为了数据验证, google.auth,以及 google-api-python-client.
    • 关键功能:
      • calendar_details():检索主日历的详细信息。
      • list_events(time, maxresults):获取即将到来的日历事件列表。
      • create_event(event):在日历中创建新事件。
  • server.py:

    • 目的:使用构建的主服务器应用程序 FastMCP,将项目的功能作为工具公开。
    • 外露工具:
      • search(query: str):执行网络搜索并使用抓取内容 fastscraper.py.
      • get_current_time():返回当前日期和时间。
      • get_calendar_events(time, maxresults):列出Google日历中的事件。
      • create_event_in_calendar(event):创建新的日历事件。
      • get_calendar_details():检索日历详细信息。

入门指南

要运行此项目,您需要安装必要的Python依赖项并配置Google Calendar API凭据。

1.安装依赖项:

pip install requests beautifulsoup4 crawl4ai fastmcp google-api-python-client google-auth-oauthlib pydantic langchain