VenuVidya — Carnatic Flute Study Guide
Kannada/English Carnatic flute KSGMS syllabus — search lessons, log practice, ask a RAG guru.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"venuvidya": {
"url": "https://venuvidya-backend-production.up.railway.app/api/mcp/"
}
}
}Remote endpoints
https://venuvidya-backend-production.up.railway.app/api/mcp/streamable-httpWhat it can do
Tool inventory
Tools (7)
🟢search_syllabus(query, k, level)
Keyword (BM25) search across all Carnatic flute lessons. Args: query: Natural-language question or keywords (English or Kannada). k: Number of top results to return (1-10, default 4). level: Optional filter — 'junior', 'senior' or 'vidwat'.
Input Schema
{
"type": "object",
"properties": {
"query": {
"title": "Query",
"type": "string"
},
"k": {
"default": 4,
"title": "K",
"type": "integer"
},
"level": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Level"
}
},
"required": [
"query"
],
"title": "search_syllabusArguments"
}🟢get_lesson(lesson_id)
Fetch the full study content of a single lesson. Args: lesson_id: Lesson identifier, e.g. 'junior-theory-1-4'.
Input Schema
{
"type": "object",
"properties": {
"lesson_id": {
"title": "Lesson Id",
"type": "string"
}
},
"required": [
"lesson_id"
],
"title": "get_lessonArguments"
}🟢list_lessons(level, category)
List lesson metadata. Filter by level/category. Args: level: 'junior' | 'senior' | 'vidwat'. category: e.g. 'theory-1', 'practical-1', etc.
Input Schema
{
"type": "object",
"properties": {
"level": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Level"
},
"category": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Category"
}
},
"title": "list_lessonsArguments"
}🟢list_classes(mcp_token, level, limit)
List recent class journal entries (date descending) for YOUR account. Args: mcp_token: Your personal VenuVidya token — GET /api/auth/mcp-token while signed in to the app. Scopes results to your journal only. level: optional level filter. limit: max number of classes (1-100, default 20).
Input Schema
{
"type": "object",
"properties": {
"mcp_token": {
"title": "Mcp Token",
"type": "string"
},
"level": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Level"
},
"limit": {
"default": 20,
"title": "Limit",
"type": "integer"
}
},
"required": [
"mcp_token"
],
"title": "list_classesArguments"
}🟢get_class(class_id, mcp_token)
Fetch a single class journal entry with its items and practice log. Only returns it if it belongs to your account (mcp_token). Args: class_id: The class to fetch. mcp_token: Your personal VenuVidya token — GET /api/auth/mcp-token.
Input Schema
{
"type": "object",
"properties": {
"class_id": {
"title": "Class Id",
"type": "string"
},
"mcp_token": {
"title": "Mcp Token",
"type": "string"
}
},
"required": [
"class_id",
"mcp_token"
],
"title": "get_classArguments"
}⚪ask_venuvidya(question, level, language)
Ask VenuVidya — the in-app RAG chatbot. Returns a grounded answer + citations. Args: question: Student question (2-1500 chars). level: Optional level filter for retrieval ('junior' | 'senior' | 'vidwat'). language: 'en', 'kn' or 'auto'.
Input Schema
{
"type": "object",
"properties": {
"question": {
"title": "Question",
"type": "string"
},
"level": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Level"
},
"language": {
"default": "auto",
"title": "Language",
"type": "string"
}
},
"required": [
"question"
],
"title": "ask_venuvidyaArguments"
}🟢log_practice_session(class_id, item_id, practiced_on, mcp_token, duration_min, ...)
Log a practice session against a class item in YOUR journal. Args: class_id: Parent class id. item_id: Item id inside the class (kriti/varna/etc.). practiced_on: Date in YYYY-MM-DD. mcp_token: Your personal VenuVidya token — GET /api/auth/mcp-token. Only ever writes into a class this account owns. duration_min: Duration in minutes. notes: Free-text notes. rating: Self-rating 1-5.
Input Schema
{
"type": "object",
"properties": {
"class_id": {
"title": "Class Id",
"type": "string"
},
"item_id": {
"title": "Item Id",
"type": "string"
},
"practiced_on": {
"title": "Practiced On",
"type": "string"
},
"mcp_token": {
"title": "Mcp Token",
"type": "string"
},
"duration_min": {
"default": 0,
"title": "Duration Min",
"type": "integer"
},
"notes": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Notes"
},
"rating": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Rating"
}
},
"required": [
"class_id",
"item_id",
"practiced_on",
"mcp_token"
],
"title": "log_practice_sessionArguments"
}Community
Evidence