15分钟搞定周报!手把手教你开发一个MCP驱动的智能周报生成器

4 阅读3分钟

还在为每周五下午绞尽脑汁写周报而焦虑?重复性高、内容琐碎、格式死板……别担心,借助 Model Context Protocol(MCP) 和大模型能力,你可以在15分钟内搭建一个专属的“周报自动生成器”——只需提供几条工作记录,AI就能为你输出结构清晰、语言得体、符合团队风格的周报。

本文将带你从零开始,快速构建一个基于MCP协议的周报生成工具,无需复杂部署,适合个人或小团队即刻上手。


一、什么是MCP?为什么用它做周报?

MCP(Model Context Protocol) 是一种新兴的标准化协议,用于定义AI模型与外部工具、数据源之间的交互方式。它让大模型能安全、可控地调用你的本地或云端服务,获取上下文并执行任务。

用MCP做周报的优势:

  • 私有数据安全:工作记录不上传公有云,仅在本地或内网处理;
  • 高度可定制:支持按团队模板、语气风格、汇报重点调整;
  • 一键集成:可嵌入钉钉、飞书、企业微信或本地脚本;
  • 低代码开发:核心逻辑不到100行代码。

二、15分钟实战:搭建你的周报MCP服务

💡 前提:已安装 Python 3.9+,并有一个可用的大模型API(如OpenAI、DeepSeek、Ollama等)

第1步:准备周报模板(1分钟)

创建 weekly_template.md

# 本周工作汇报({{date}})

## 🎯 核心目标进展
{{goals}}

## 🔧 日常任务
{{tasks}}

## 🚧 遇到的问题
{{blockers}}

## 📈 下周计划
{{next_week}}

第2步:编写MCP服务端(5分钟)

新建 mcp_weekly.py

from datetime import datetime
import json
from http.server import HTTPServer, BaseHTTPRequestHandler
import os

# 模拟你的工作日志(实际可从数据库/Notion/Excel读取)
WORK_LOG = {
    "goals": "- 完成用户中心重构\n- 推进AI技能平台POC",
    "tasks": "- 修复登录页兼容性问题\n- 编写MCP文档\n- 参与3次需求评审",
    "blockers": "- 第三方API响应慢,影响测试进度",
    "next_week": "- 上线用户中心v1.2\n- 启动周报自动化项目"
}

class WeeklyMCPHandler(BaseHTTPRequestHandler):
    def do_POST(self):
        if self.path == "/mcp/weekly_report":
            content_len = int(self.headers.get('Content-Length'))
            post_body = self.rfile.read(content_len)
            req = json.loads(post_body)

            # 渲染模板
            template = open("weekly_template.md").read()
            report = template \
                .replace("{{date}}", datetime.now().strftime("%Y年%m月%d日")) \
                .replace("{{goals}}", WORK_LOG["goals"]) \
                .replace("{{tasks}}", WORK_LOG["tasks"]) \
                .replace("{{blockers}}", WORK_LOG["blockers"]) \
                .replace("{{next_week}}", WORK_LOG["next_week"])

            self.send_response(200)
            self.send_header("Content-type", "application/json")
            self.end_headers()
            self.wfile.write(json.dumps({
                "content": report,
                "format": "markdown"
            }).encode())
        else:
            self.send_error(404)

if __name__ == "__main__":
    server = HTTPServer(("localhost", 8080), WeeklyMCPHandler)
    print("✅ 周报MCP服务已启动:http://localhost:8080/mcp/weekly_report")
    server.serve_forever()

第3步:连接大模型(可选增强,3分钟)

如果你希望AI润色语言或自动归纳日志,可在返回前调用LLM:

# 示例:使用Ollama本地模型润色
import requests
def polish(text):
    resp = requests.post("http://localhost:11434/api/generate", json={
        "model": "qwen:7b",
        "prompt": f"请将以下周报内容优化为专业、简洁的职场语言,保持原意:\n\n{text}",
        "stream": False
    })
    return resp.json()["response"]

然后将 report 替换为 polish(report)

第4步:启动服务 & 调用(1分钟)

终端运行:

python mcp_weekly.py

另开终端测试:

curl -X POST http://localhost:8080/mcp/weekly_report -d '{}'

你会立即看到格式完美的周报!

第5步:集成到日常工具(5分钟)

  • 飞书/钉钉机器人:配置 webhook 调用该MCP接口;
  • 快捷脚本:写个Shell或批处理一键生成并复制到剪贴板;
  • Obsidian插件:通过本地API插入周报到笔记中。

三、进阶玩法

  • 📥 自动同步日历事件:从Google Calendar提取会议记录作为“参与事项”;
  • 📊 关联Jira/Asana:自动抓取本周完成的工单;
  • 👥 多角色模板:产品经理、工程师、运营各有不同结构;
  • 🔐 企业级部署:结合OAuth验证用户身份,确保数据隔离。

四、结语:把时间还给创造,而不是填表

周报本应是复盘与规划的工具,不该成为负担。通过MCP协议,我们不仅实现了自动化,更构建了一个可扩展、可私有化、可智能演进的工作流底座。