Read-only MCP server for Piazza: catch up on courses, search posts, and read full threads from any MCP client.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add piazza --env PIAZZA_PASSWORD='<PIAZZA_PASSWORD>' -- uvx mcp-piazza~/.codex/config.toml
[mcp_servers.piazza]
command = "uvx"
args = ["mcp-piazza"]
env = { PIAZZA_PASSWORD = "<PIAZZA_PASSWORD>" }
# codex mcp add piazza --env PIAZZA_PASSWORD='<PIAZZA_PASSWORD>' -- uvx mcp-piazza~/.cursor/mcp.json
{
"mcpServers": {
"piazza": {
"command": "uvx",
"args": [
"mcp-piazza"
],
"env": {
"PIAZZA_PASSWORD": "<PIAZZA_PASSWORD>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"piazza": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-piazza"
],
"env": {
"PIAZZA_PASSWORD": "<PIAZZA_PASSWORD>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"piazza": {
"command": "uvx",
"args": [
"mcp-piazza"
],
"env": {
"PIAZZA_PASSWORD": "<PIAZZA_PASSWORD>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"piazza": {
"command": "uvx",
"args": [
"mcp-piazza"
],
"env": {
"PIAZZA_PASSWORD": "<PIAZZA_PASSWORD>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"piazza": {
"command": "uvx",
"args": [
"mcp-piazza"
],
"env": {
"PIAZZA_PASSWORD": "<PIAZZA_PASSWORD>"
}
}
}
}Environment variables
PIAZZA_PASSWORD
Replace the placeholders with your own credentials and keep them out of version control.