MCP server/communication

Piazza MCP Server

Interact with Piazza to fetch posts and course information via Claude

★ 3clarsbyte/piazza-mcp ↗by clarsbyteupdated
Manual setup required. The maintainer's config contains paths only you know - edit the placeholders below before adding it to Claude Code.
1

Prepare the server locally

Run this once before adding it to Claude Code.

pip install -r requirements.txt
2

Register it in Claude Code

claude mcp add -e "PIAZZA_EMAIL=${PIAZZA_EMAIL}" -e "PIAZZA_PASSWORD=${PIAZZA_PASSWORD}" -e "PIAZZA_COURSES=${PIAZZA_COURSES}" piazza-mcp-ff0d -- /path/to/your/env/bin/python /path/to/piazza-mcp/main.py

Replace any placeholder paths in the command with the real path on your machine.

Required:PIAZZA_EMAILPIAZZA_PASSWORDPIAZZA_COURSES
3

Make your agent remember this setup

piazza-mcp-ff0d's config, env vars, and the gotchas you hit — recalled in every future Claude Code, Cursor, and Codex session.

npx conare@latest

Free · one command · indexes the sessions already on disk. Set up in the browser instead →

What it does

  • List configured Piazza courses
  • Fetch recent posts from specific courses
  • Natural language interaction with course content
  • Configurable post retrieval count

Tools 2

list_coursesReturns the list of configured courses.
fetch_postsFetches recent posts from a specified course.

Environment Variables

PIAZZA_EMAILrequiredYour Piazza account email
PIAZZA_PASSWORDrequiredYour Piazza account password
PIAZZA_COURSESrequiredJSON object mapping course IDs to course names

Try it

What courses do I have configured?
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
What's the latest instructor answer on PHYS 2A?
Original README from clarsbyte/piazza-mcp

Piazza MCP Server

An MCP (Model Context Protocol) server that allows Claude Code to interact with Piazza, enabling you to fetch posts and course information directly from your terminal.

Prerequisites

  • Python 3.10+
  • A Piazza account
  • Claude Code CLI

Installation

  1. Clone or download this repository

  2. Create a virtual environment and install dependencies:

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

Configuration

Getting Your Course IDs

To find a course ID:

  1. Log in to Piazza in your browser
  2. Navigate to the course you want to add
  3. Look at the URL - it will look like: https://piazza.com/class/abc123xyz
  4. The course ID is the part after /class/ (e.g., abc123xyz)

Setting Up Claude Code

Create or edit the .mcp.json file in your project directory:

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

Windows example:

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

macOS/Linux example:

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

Environment Variables

Variable Description
PIAZZA_EMAIL Your Piazza account email
PIAZZA_PASSWORD Your Piazza account password
PIAZZA_COURSES JSON object mapping course IDs to course names

Available Tools

Once configured, Claude Code will have access to these tools:

`list_courses`

Returns the list of configured courses.

Example usage in Claude Code:

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

`fetch_posts`

Fetches recent posts from a specified course.

Parameters:

  • course_id (required): The Piazza course ID
  • n (optional): Number of posts to fetch (default: 10)

Example usage in 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"

Usage Examples

After configuration, simply start Claude Code in a directory with the .mcp.json file:

claude

Then you can ask natural language questions like:

  • "What are my Piazza courses?"
  • "Show me the last 3 posts on ECON 1"
  • "Are there any new questions about the midterm in CSE 12?"
  • "What's the latest instructor answer on PHYS 2A?"

Frequently Asked Questions

What are the key features of Piazza MCP Server?

List configured Piazza courses. Fetch recent posts from specific courses. Natural language interaction with course content. Configurable post retrieval count.

What can I use Piazza MCP Server for?

Quickly checking for new questions or announcements in university courses. Summarizing recent class discussions without leaving the terminal. Monitoring specific course threads for instructor answers. Managing multiple course feeds through a single interface.

How do I install Piazza MCP Server?

Install Piazza MCP Server by running: pip install -r requirements.txt

What MCP clients work with Piazza MCP Server?

Piazza MCP Server works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Conare · memory for coding agents

Turn this server into reusable context

Keep Piazza MCP Server docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Set up free$npx conare@latest