Skip to content

plyght/studentvue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StudentVue Monorepo

A comprehensive StudentVue API implementation providing both a Rust library and a Model Context Protocol (MCP) server. Access student information, grades, attendance, messages, and more through native Rust or AI-powered applications.

Packages

StudentVue Rust API

A type-safe Rust client library for the StudentVue SOAP API.

Location: packages/studentvue-api/

Features:

  • Type-safe data models with proper error handling
  • Async/await support via Tokio runtime
  • Automatic SOAP envelope construction and XML parsing
  • 15+ fully implemented API endpoints
  • Production-ready with comprehensive test coverage

StudentVue MCP Server

A Model Context Protocol server enabling AI applications like Claude to access StudentVue data.

Location: packages/studentvue-mcp/

Features:

  • 15+ StudentVue API endpoints exposed as MCP tools
  • Built with the official MCP TypeScript SDK
  • Seamless integration with Claude Desktop and other MCP clients
  • Secure credential handling via environment variables

Quick Start

Rust API

cd packages/studentvue-api
cargo build --release

Add to your Cargo.toml:

[dependencies]
studenvue = "0.1.0"
tokio = { version = "1.35", features = ["full"] }

Example usage:

use studenvue::{StudentVueClient, Result};

#[tokio::main]
async fn main() -> Result<()> {
    let client = StudentVueClient::new(portal, username, password);
    let info = client.get_student_info().await?;
    println!("Student: {} (Grade {})", info.name, info.grade);
    Ok(())
}

MCP Server

Quick Install for Cursor

Install MCP Server

Manual Installation

cd packages/studentvue-mcp
bun install
bun run build

See packages/studentvue-mcp/INSTALL.md for complete installation instructions for Claude Desktop, Cursor, and other MCP clients.

Available API Methods

Both packages provide access to the following StudentVue features:

Student Information

  • Get student profile (name, grade, school, contact info)
  • Get school information (principal, address, phone)

Academic Records

  • Get gradebook (grades, assignments, course info)
  • Get class schedule (periods, teachers, rooms)
  • Get calendar events
  • Get homework notes (district-dependent)

Attendance

  • Get attendance records (absences, tardies, reasons)

Communication

  • Get messages from teachers/administrators
  • Mark messages as read

Documents

  • List available documents
  • Download specific documents
  • List and download report cards

Health Records

  • Get student health information (conditions, visits, immunizations)

Utilities

  • Search for school districts by ZIP code

Development

Workspace Commands

make build          # Build all packages
make test           # Run all tests
make format         # Format all code
make lint           # Run all linters
make typecheck      # Run type checking
make quality-gates  # Run all quality checks
make clean          # Clean build artifacts
make install        # Install dependencies

Per-Package Development

Rust API:

cd packages/studentvue-api
cargo build && cargo test

MCP Server:

cd packages/studentvue-mcp
bun install && bun run build && bun test

Project Structure

studentvue/
├── packages/
│   ├── studentvue-api/      # Rust API library
│   │   ├── src/             # Source code
│   │   ├── tests/           # Integration tests
│   │   └── examples/        # Usage examples
│   └── studentvue-mcp/      # MCP server
│       ├── src/             # TypeScript source
│       └── dist/            # Built artifacts
├── docs/                    # Documentation
├── Cargo.toml               # Rust workspace config
├── Makefile                 # Build automation
└── README.md                # This file

Configuration

Both packages require StudentVue credentials via environment variables:

STUDENTVUE_PORTAL=https://your-district.edupoint.com
STUDENTVUE_USERNAME=your_username
STUDENTVUE_PASSWORD=your_password

Security: Never commit credentials to version control. Always use environment variables or .env files (gitignored by default).

Documentation

Testing

Both packages include comprehensive test suites:

cd packages/studentvue-api && cargo test
cd packages/studentvue-mcp && bun test

Set up test credentials in .env files before running tests.

Contributing

Contributions are welcome. Please see our Contributing Guide for details.

All contributions must:

  • Be formatted properly (rustfmt for Rust, Prettier for TypeScript)
  • Pass all lints (clippy for Rust, ESLint for TypeScript)
  • Pass all tests
  • Include tests for new features

Use Cases

For Developers (Rust API)

  • Build custom StudentVue integrations
  • Create mobile apps with native performance
  • Automate grade monitoring and notifications
  • Integrate with school management systems

For AI Applications (MCP Server)

  • Enable Claude to answer questions about grades
  • Get natural language summaries of attendance
  • Ask about upcoming assignments and events
  • Retrieve and explain report cards

License

MIT

Acknowledgments

Based on reverse-engineering and documentation of the StudentVue SOAP API by the community.

About

StudentVUE API/MCP

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published