Piazza MCP服务器

一个MCP(模型上下文协议)服务器,允许Claude Code与Piazza交互,直接从终端获取帖子和课程信息。

  • by clarsbyte
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 clarsbyte/piazza-mcp

使用说明

广场MCP服务器

MCP(模型上下文协议)服务器,允许Claude Code与Piazza交互,使您能够直接从终端获取帖子和课程信息。

先决条件

  • Python 3.10+
  • Piazza账户
  • 克劳德代码CLI

安装

  1. 克隆或下载此存储库

  2. 创建虚拟环境并安装依赖项:

    python -m venv env
    
    # Windows
    env\Scripts\activate
    
    # macOS/Linux
    source env/bin/activate
    
    pip install -r requirements.txt
    

配置

获取您的课程ID

要查找课程ID:

  1. 在浏览器中登录Piazza
  2. 导航到要添加的课程
  3. 看看URL,它看起来像: https://piazza.com/class/abc123xyz
  4. 课程ID是以下部分 /class/ (例如。, abc123xyz)

设置Claude代码

创建或编辑 .mcp.json 项目目录中的文件:

{
  "mcpServers": {
    "piazza": {
      "command": "/path/to/your/env/bin/python",
      "args": ["/path/to/piazza-mcp/main.py"],
      "env": {
        "PIAZZA_EMAIL": "your-email@example.com",
        "PIAZZA_PASSWORD": "your-piazza-password",
        "PIAZZA_COURSES": "{\"course_id_1\":\"Course Name 1\",\"course_id_2\":\"Course Name 2\"}"
      }
    }
  }
}

Windows示例:

{
  "mcpServers": {
    "piazza": {
      "command": "C:\\path\\to\\env\\Scripts\\python.exe",
      "args": ["C:\\path\\to\\piazza-mcp\\main.py"],
      "env": {
        "PIAZZA_EMAIL": "student@university.edu",
        "PIAZZA_PASSWORD": "yourpassword",
        "PIAZZA_COURSES": "{\"mjz1kp056nb6t3\":\"CSE 12\",\"mk06sxvpt521xv\":\"ECON 1\"}"
      }
    }
  }
}

macOS/Linux示例:

{
  "mcpServers": {
    "piazza": {
      "command": "/home/user/piazza-mcp/env/bin/python",
      "args": ["/home/user/piazza-mcp/main.py"],
      "env": {
        "PIAZZA_EMAIL": "student@university.edu",
        "PIAZZA_PASSWORD": "yourpassword",
        "PIAZZA_COURSES": "{\"mjz1kp056nb6t3\":\"CSE 12\",\"mk06sxvpt521xv\":\"ECON 1\"}"
      }
    }
  }
}

环境变量

变量 描述
PIAZZA_EMAIL 您的Piazza帐户电子邮件
PIAZZA_PASSWORD 您的Piazza帐户密码
PIAZZA_COURSES JSON对象将课程ID映射到课程名称

可用工具

配置后,Claude Code将可以访问这些工具:

list_courses

返回已配置课程的列表。

Claude Code中的示例用法:

"What courses do I have configured?"
"List my Piazza courses"

fetch_posts

从指定课程中获取最近的帖子。

参数:

  • course_id (必填):广场球场ID
  • n (可选):要获取的帖子数量(默认值:10)

Claude Code中的示例用法:

"Show me the last 5 posts from CSE 12"
"What are the recent questions on ECON 1?"
"Check the latest 3 posts on my physics class"

使用示例

配置后,只需在以下目录中启动Claude Code .mcp.json 文件:

claude

然后你可以问自然语言问题,比如:

  • “我的广场课程是什么?”
  • “显示ECON 1上的最后3篇帖子”
  • “CSE 12期中考试有什么新问题吗?”
  • “PHYS 2A的最新讲师答案是什么?”