Search / io.github.jadenpxrk/mcp-piazza
mcp-piazza
L0· runs locallyRead-only Piazza access: activity, search, unread posts, full threads, and course info
v0.1.0 · active · repository · descriptor JSON · versions
Search / io.github.jadenpxrk/mcp-piazza
L0· runs locallyRead-only Piazza access: activity, search, unread posts, full threads, and course info
v0.1.0 · active · repository · descriptor JSON · versions
{
"mcpServers": {
"mcp-piazza": {
"command": "uvx",
"args": [
"mcp-piazza==0.1.0"
],
"env": {
"PIAZZA_PASSWORD": "${PIAZZA_PASSWORD}",
"PIAZZA_COOKIE_FILE": "~/.config/mcp-piazza/cookies.json",
"PIAZZA_ANONYMIZE_STUDENTS": "false",
"PIAZZA_FENCE_CONTENT": "true",
"PIAZZA_MIN_INTERVAL": "0.5",
"PIAZZA_CACHE_TTL": "60"
}
}
}
}claude mcp add mcp-piazza -e "PIAZZA_PASSWORD=${PIAZZA_PASSWORD}" -e "PIAZZA_COOKIE_FILE=~/.config/mcp-piazza/cookies.json" -e "PIAZZA_ANONYMIZE_STUDENTS=false" -e "PIAZZA_FENCE_CONTENT=true" -e "PIAZZA_MIN_INTERVAL=0.5" -e "PIAZZA_CACHE_TTL=60" -- uvx mcp-piazza==0.1.0[mcp_servers.mcp-piazza]
command = "uvx"
args = ["mcp-piazza==0.1.0"]
env = { "PIAZZA_PASSWORD" = "${PIAZZA_PASSWORD}", "PIAZZA_COOKIE_FILE" = "~/.config/mcp-piazza/cookies.json", "PIAZZA_ANONYMIZE_STUDENTS" = "false", "PIAZZA_FENCE_CONTENT" = "true", "PIAZZA_MIN_INTERVAL" = "0.5", "PIAZZA_CACHE_TTL" = "60" }
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"mcp-piazza": {
"type": "local",
"command": [
"uvx",
"mcp-piazza==0.1.0"
],
"enabled": true,
"environment": {
"PIAZZA_PASSWORD": "{env:PIAZZA_PASSWORD}",
"PIAZZA_COOKIE_FILE": "~/.config/mcp-piazza/cookies.json",
"PIAZZA_ANONYMIZE_STUDENTS": "false",
"PIAZZA_FENCE_CONTENT": "true",
"PIAZZA_MIN_INTERVAL": "0.5",
"PIAZZA_CACHE_TTL": "60"
}
}
}
}{
"mcpServers": {
"mcp-piazza": {
"command": "uvx",
"args": [
"mcp-piazza==0.1.0"
],
"env": {
"PIAZZA_PASSWORD": "${PIAZZA_PASSWORD}",
"PIAZZA_COOKIE_FILE": "~/.config/mcp-piazza/cookies.json",
"PIAZZA_ANONYMIZE_STUDENTS": "false",
"PIAZZA_FENCE_CONTENT": "true",
"PIAZZA_MIN_INTERVAL": "0.5",
"PIAZZA_CACHE_TTL": "60"
}
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=mcp-piazza&config=eyJjb21tYW5kIjoidXZ4IiwiYXJncyI6WyJtY3AtcGlhenphPT0wLjEuMCJdLCJlbnYiOnsiUElBWlpBX1BBU1NXT1JEIjoiJHtQSUFaWkFfUEFTU1dPUkR9IiwiUElBWlpBX0NPT0tJRV9GSUxFIjoifi8uY29uZmlnL21jcC1waWF6emEvY29va2llcy5qc29uIiwiUElBWlpBX0FOT05ZTUlaRV9TVFVERU5UUyI6ImZhbHNlIiwiUElBWlpBX0ZFTkNFX0NPTlRFTlQiOiJ0cnVlIiwiUElBWlpBX01JTl9JTlRFUlZBTCI6IjAuNSIsIlBJQVpaQV9DQUNIRV9UVEwiOiI2MCJ9fQ%3D%3D"
}{
"servers": {
"mcp-piazza": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-piazza==0.1.0"
],
"env": {
"PIAZZA_PASSWORD": "${PIAZZA_PASSWORD}",
"PIAZZA_COOKIE_FILE": "~/.config/mcp-piazza/cookies.json",
"PIAZZA_ANONYMIZE_STUDENTS": "false",
"PIAZZA_FENCE_CONTENT": "true",
"PIAZZA_MIN_INTERVAL": "0.5",
"PIAZZA_CACHE_TTL": "60"
}
}
}
}{
"mcpServers": {
"mcp-piazza": {
"command": "uvx",
"args": [
"mcp-piazza==0.1.0"
],
"env": {
"PIAZZA_PASSWORD": "${PIAZZA_PASSWORD}",
"PIAZZA_COOKIE_FILE": "~/.config/mcp-piazza/cookies.json",
"PIAZZA_ANONYMIZE_STUDENTS": "false",
"PIAZZA_FENCE_CONTENT": "true",
"PIAZZA_MIN_INTERVAL": "0.5",
"PIAZZA_CACHE_TTL": "60"
}
}
}
}extensions:
"mcp-piazza":
enabled: true
name: "mcp-piazza"
type: stdio
cmd: "uvx"
args:
- "mcp-piazza==0.1.0"
envs:
"PIAZZA_PASSWORD": "${PIAZZA_PASSWORD}"
"PIAZZA_COOKIE_FILE": "~/.config/mcp-piazza/cookies.json"
"PIAZZA_ANONYMIZE_STUDENTS": "false"
"PIAZZA_FENCE_CONTENT": "true"
"PIAZZA_MIN_INTERVAL": "0.5"
"PIAZZA_CACHE_TTL": "60"
timeout: 300
Placeholders to fill from your own secret store: ${PIAZZA_PASSWORD}. The registry never accepts secret values.
This is a local package: the command runs on your machine.
Not scored: fewer than three checks apply, usually because no remote answered a credential-free probe or the server is a local package.
protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlno remote answered a protocol handshake (not probed yet, unreachable, or local-only)auth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptions, tools.description_length, tools.schemas, tools.annotations, tools.directory_hints, tools.token_cost, tools.api_dumptool list unknown (behind auth, not probed, or empty)stability.changes, stability.rug_pulltool list unknownNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo ~liveness-unmeasured +updated-5d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
[email protected] PyPIthis version is not known to the dependency resolver
Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
mcp-piazza | pypi | 0.1.0 | – | PIAZZA_PASSWORD |
No tools observed. Local packages are never executed by the registry.
Schemas: list_tools.
{
"name": "io.github.jadenpxrk/mcp-piazza",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"version": "0.1.0",
"packages": [
{
"version": "0.1.0",
"transport": {
"type": "stdio"
},
"identifier": "mcp-piazza",
"registryType": "pypi",
"environmentVariables": [
{
"name": "PIAZZA_EMAIL",
"description": "Piazza account email. Not needed after 'mcp-piazza login'."
},
{
"name": "PIAZZA_PASSWORD",
"isSecret": true,
"description": "Piazza account password. Not needed after 'mcp-piazza login'."
},
{
"name": "PIAZZA_COOKIE_FILE",
"default": "~/.config/mcp-piazza/cookies.json",
"description": "Path of the saved session file."
},
{
"name": "PIAZZA_ANONYMIZE_STUDENTS",
"default": "false",
"description": "Replace student names with pseudonyms."
},
{
"name": "PIAZZA_FENCE_CONTENT",
"default": "true",
"description": "Mark post text as untrusted data."
},
{
"name": "PIAZZA_MIN_INTERVAL",
"default": "0.5",
"description": "Minimum seconds between Piazza requests."
},
{
"name": "PIAZZA_CACHE_TTL",
"default": "60",
"description": "Seconds to keep feeds and posts in memory."
}
]
}
],
"repository": {
"url": "https://github.com/jadenpxrk/mcp-piazza",
"source": "github"
},
"description": "Read-only Piazza access: activity, search, unread posts, full threads, and course info"
}