MCPサーバー

VenuVidya — Carnatic Flute Study Guide

io.github.pradeep-anantha/venuvidya
教育 公開・接続可能 MCP 2025-11-25

このMCPでできること

Provides Carnatic flute lessons, syllabus search, grounded study answers, class journals, and practice-session logging.

ask_venuvidya
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'.
入力スキーマ
{'type': 'object', 'title': 'ask_venuvidyaArguments', 'required': ['question'], 'properties': {'level': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Level', 'default': None}, 'language': {'type': 'string', 'title': 'Language', 'default': 'auto'}, 'question': {'type': 'string', 'title': 'Question'}}}
get_class
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.
入力スキーマ
{'type': 'object', 'title': 'get_classArguments', 'required': ['class_id', 'mcp_token'], 'properties': {'class_id': {'type': 'string', 'title': 'Class Id'}, 'mcp_token': {'type': 'string', 'title': 'Mcp Token'}}}
get_lesson
Fetch the full study content of a single lesson. Args: lesson_id: Lesson identifier, e.g. 'junior-theory-1-4'.
入力スキーマ
{'type': 'object', 'title': 'get_lessonArguments', 'required': ['lesson_id'], 'properties': {'lesson_id': {'type': 'string', 'title': 'Lesson Id'}}}
list_classes
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).
入力スキーマ
{'type': 'object', 'title': 'list_classesArguments', 'required': ['mcp_token'], 'properties': {'level': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Level', 'default': None}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 20}, 'mcp_token': {'type': 'string', 'title': 'Mcp Token'}}}
list_lessons
List lesson metadata. Filter by level/category. Args: level: 'junior' | 'senior' | 'vidwat'. category: e.g. 'theory-1', 'practical-1', etc.
入力スキーマ
{'type': 'object', 'title': 'list_lessonsArguments', 'properties': {'level': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Level', 'default': None}, 'category': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Category', 'default': None}}}
log_practice_session
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.
入力スキーマ
{'type': 'object', 'title': 'log_practice_sessionArguments', 'required': ['class_id', 'item_id', 'practiced_on', 'mcp_token'], 'properties': {'notes': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Notes', 'default': None}, 'rating': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Rating', 'default': None}, 'item_id': {'type': 'string', 'title': 'Item Id'}, 'class_id': {'type': 'string', 'title': 'Class Id'}, 'mcp_token': {'type': 'string', 'title': 'Mcp Token'}, 'duration_min': {'type': 'integer', 'title': 'Duration Min', 'default': 0}, 'practiced_on': {'type': 'string', 'title': 'Practiced On'}}}
search_syllabus
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'.
入力スキーマ
{'type': 'object', 'title': 'search_syllabusArguments', 'required': ['query'], 'properties': {'k': {'type': 'integer', 'title': 'K', 'default': 4}, 'level': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Level', 'default': None}, 'query': {'type': 'string', 'title': 'Query'}}}
追加
log_practice_session
2026年9月17日12:49
追加
ask_venuvidya
2026年9月17日12:49
追加
get_class
2026年9月17日12:49
追加
list_classes
2026年9月17日12:49
追加
list_lessons
2026年9月17日12:49
追加
get_lesson
2026年9月17日12:49
追加
search_syllabus
2026年9月17日12:49