Skip to main content
Glama
README.md
# tbank-edu-mcp

MCP server for [edu.tbank.ru](https://edu.tbank.ru) — connect your AI assistant to T-Bank Education.

Built with TypeScript on [Cloudflare Workers](https://workers.cloudflare.com/). Uses the [Model Context Protocol](https://modelcontextprotocol.io) so Claude Desktop, Cursor, and other MCP clients can access your courses, timetable, and deadlines.

[![Deploy to Cloudflare Workers](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/mollyvita/tbank-edu-mcp)

> Python API client: [mollyvita/tbank-edu-api](https://github.com/mollyvita/tbank-edu-api)

## What It Does

| Tool | What you get |
|------|-------------|
| `get_timetable` | Upcoming events — meetups, deadlines, course starts |
| `get_my_courses` | Your enrolled courses and activities |
| `get_deadlines` | Deadlines with progress tracking |
| `get_completed_activities` | Finished courses |
| `search_catalogue` | Search all available courses |
| `get_selections` | Exam selections and applications |
| `get_notifications` | Notification count |
| `get_favorites` | Your favorited courses |
| `get_streams` | Available programs and streams |
| `get_user_info` | Your profile — name, email, roles |
| `login` / `logout` / `refresh_session` | Session management |

## Quick Start

### 1. Deploy

Click the button above, or deploy manually:

```bash
git clone https://github.com/mollyvita/tbank-edu-mcp.git
cd tbank-edu-mcp
npm install
npx wrangler login
npm run deploy
```

### 2. Add Your Credentials

```bash
npx wrangler secret put TBANK_EMAIL
npx wrangler secret put TBANK_PASSWORD
```

This lets the server auto-login. Without secrets, you'd call the `login` tool manually each session.

### 3. Connect Your AI Client

Add to Claude Desktop or Cursor MCP config:

```json
{
  "mcpServers": {
    "tbank-edu": {
      "url": "https://tbank-edu-mcp.<your-subdomain>.workers.dev/mcp"
    }
  }
}
```

That's it. Ask your AI about your courses, deadlines, or timetable.

## Local Dev

```bash
npm install
npm run dev          # http://localhost:8787/mcp
npm run typecheck    # tsc --noEmit
```

For local testing, point your MCP client at `http://localhost:8787/mcp`.

## Environment Variables

| Variable | Default | Description |
|----------|---------|-------------|
| `TBANK_BASE_URL` | `https://edu.tbank.ru` | API base URL |
| `TBANK_EMAIL` | — | Auto-login email (Cloudflare secret) |
| `TBANK_PASSWORD` | — | Auto-login password (Cloudflare secret) |

## How It Works

```
src/
├── index.ts        # Worker entry point + routing
├── api-client.ts   # HTTP client — handles CSRF tokens + cookies
└── tools.ts        # MCP tool definitions
```

- Uses `@modelcontextprotocol/sdk` with Streamable HTTP transport (SSE)
- CSRF token extracted from `x-edu-csrf-token` response header
- Auth via JWT cookies from `/api/auth/signin/v8`
- Stateless per request — authenticates fresh using stored secrets

## License

MIT