Skip to main content

EssenceStudy Teacher MCP

Run an EssenceStudy course from your terminal — create assignments, attach documents, write rubrics, enrol students, read and grade submissions, publish grades, and watch token spend — through any MCP client (Claude Code, Claude Desktop, or your own agent).

Install

Published on PyPI — nothing to clone. With uv installed, uvx runs it directly:

# Claude Code:
claude mcp add essencestudy-teacher -- uvx essencestudy-teacher-mcp

Configure

Claude Desktop / any MCP client (no credentials in config files):

{
  "mcpServers": {
    "essencestudy-teacher": {
      "command": "uvx",
      "args": ["essencestudy-teacher-mcp"]
    }
  }
}

You need a teacher account on EssenceStudy — students cannot approve a terminal key.

The first time you use it, run authorize_terminal. It returns a link and a short code straight away:

Open this link: https://study.essencescholar.com/?device=XXXX-XXXX Code: XXXX-XXXX

Open the link in the browser where you are already signed in to EssenceStudy, check the code matches, and press Approve. Then call finish_authorization to collect the key — it is written to ~/.essencestudy/credentials (mode 600) and reused from then on.

Two steps rather than one on purpose: a single blocking call cannot show you the code, because an MCP server's stdout is the protocol channel to the client, not your screen.

Revoke it whenever you like — from your profile in the web app, or with revoke_terminal_access. A revoked key stops working immediately.

Optional environment

  • ESSENCESTUDY_API_URL — defaults to production. Point at http://127.0.0.1:8004 for nightly; keys are stored per backend URL, so both can be authorised at once. Note nightly shares the production database, so writes there are real.
  • ESSENCESTUDY_API_KEY — supply a key directly and skip the browser step. For CI, where nobody can click Approve.

What you can say

  • "List my courses, then show me the assignments in Entrepreneurial Finance."
  • "Create a draft assignment in course 6 called 'Variance analysis', restrict the canvas to retriever and agent, and attach ~/cases/board-pack.pdf."
  • "Write a four-criterion rubric for assignment 34 weighted 30/30/25/15."
  • "Enrol these twelve students and tell me which ones were newly created."
  • "Who hasn't started assignment 34? Who is graded but not published?"
  • "Publish all graded submissions for assignment 34."
  • "What did assignment 34 cost, and which student used the most tokens?"

Two things worth knowing

Draft vs published. create_assignment makes a draft. publish_assignment is the noisy step: it makes the assignment visible, warms its documents, and emails every enrolled student. Keep them separate deliberately.

Saved vs published grades. grade_submission saves a grade; the student sees nothing until publish_grades runs. That gap is the most common reason a student reports their work was never marked — list_submissions shows "graded, NOT published" precisely so you can spot it.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

essencestudy_teacher_mcp-0.3.2.tar.gz (12.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

essencestudy_teacher_mcp-0.3.2-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file essencestudy_teacher_mcp-0.3.2.tar.gz.

File metadata

File hashes

Hashes for essencestudy_teacher_mcp-0.3.2.tar.gz
Algorithm Hash digest
SHA256 9a583acfb19e1c8f0597c9c2bbd7ea6f88460d37f439f3f0ed273e5cec9b7c82
MD5 9b0488d7df97cfd0a7669d95de28fa99
BLAKE2b-256 31a47032002777d0317700fdd94d63d2c9ef075cc64bc19d78a9b7c912f12deb

See more details on using hashes here.

File details

Details for the file essencestudy_teacher_mcp-0.3.2-py3-none-any.whl.

File metadata

File hashes

Hashes for essencestudy_teacher_mcp-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2f385fafa306ff7eceb24bc98d8f025c23d24b2c8266e5d93c4c9db91a5beeb6
MD5 cac56a70ec3ea162c62b69f32051bd74
BLAKE2b-256 6f9f5e339785cd7a0638ea94155902fee0443a76ace5c4b56503704823e78a64

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3.2 This release

2 files

0.3.1

2 files

0.3.0

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page