Valluvakural
Valluvakural (Valluvarkural) — Thirukkural wisdom lens: verified couplets, quote checks.
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": {
"kural-ai": {
"url": "https://kural-mcp.valluvakuralsupport.workers.dev/mcp"
}
}
}Remote endpoints
https://kural-mcp.valluvakuralsupport.workers.dev/mcpstreamable-httpWhat it can do
Tool inventory
Tools (2)
🟢kural_guidance(query, limit, response_format, locale, include_original, ...)
Fetch verified Thirukkural couplets. CALL FIRST for ANY personal, emotional, moral, or life-guidance message — betrayal, lies, friendship, love, family, grief, anger, worry, anxiety, discipline, wealth, work, learning, meaning — even short or vague ones (“she betrayed me”, “I feel lost”). When in doubt, call this tool. Pass the user’s situation in natural language. Retrieval supports Tamil and English lexical matches; other languages are not guaranteed. Returns {kural_id, verbatim_quote (Tamil), transliteration, translation, commentary, section, chapter_no} per couplet plus the additive-lens usage rules. Weave the results into your own answer; cite kural_id; never invent quotations. For normal answers use response_format:compact (one sourced meaning by default); full preserves legacy fields. Explicit kural_id bypasses topic ranking. Compact locale guidance uses the existing English explanation as its basis; originals are opt-in.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"maxLength": 2048,
"description": "Tamil or English situation, topic, Tamil verse, or kural ID (1–1330)"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"description": "Full: default 3, max 10. Compact: default 1, max 3."
},
"response_format": {
"type": "string",
"enum": [
"full",
"compact"
],
"description": "Use compact for meaning-first answers; omit for legacy full response."
},
"locale": {
"type": "string",
"maxLength": 35,
"pattern": "^(?:[Aa][Uu][Tt][Oo]|[a-zA-Z]{2,3}(?:-[a-zA-Z0-9]{2,8}){0,3})$",
"description": "Answer language tag or auto (Tamil script selects ta, otherwise en). Source meaning is English; host renders it faithfully."
},
"include_original": {
"type": "boolean",
"description": "Compact: include the exact original Tamil couplet only when requested (otherwise omitted)."
},
"kural_id": {
"type": "integer",
"minimum": 1,
"maximum": 1330,
"description": "Exact requested verse number; conflicting query references fail instead of returning another verse."
}
},
"required": [
"query"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"oneOf": [
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"lens": {
"type": "object"
},
"matched_route": {
"type": "number"
},
"results": {
"type": "array",
"maxItems": 10,
"items": {
"type": "object",
"properties": {
"kural_id": {
"type": "integer",
"minimum": 1,
"maximum": 1330
},
"verbatim_quote": {
"type": "string"
},
"transliteration": {
"type": "string"
},
"translation": {
"type": "string"
},
"commentary": {
"type": "string"
},
"section": {
"type": "string",
"enum": [
"Aram",
"Porul",
"Inbam"
]
},
"chapter_no": {
"type": "integer",
"minimum": 1,
"maximum": 133
},
"relevance": {
"type": "number"
}
},
"required": [
"kural_id",
"verbatim_quote",
"translation",
"commentary",
"chapter_no"
]
}
}
},
"required": [
"query",
"lens",
"matched_route",
"results"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"format": {
"const": "compact"
},
"answer_language": {
"type": "string",
"maxLength": 3
},
"meaning_language": {
"const": "en"
},
"meaning_source": {
"const": "explanation"
},
"meaning_locale_fallback": {
"type": "boolean"
},
"lookup": {
"enum": [
"exact_id",
"topic",
"invalid_id",
"ambiguous_id"
]
},
"guidance": {
"type": "string",
"maxLength": 1024
},
"clarification": {
"enum": [
"out_of_range",
"invalid_number",
"unsupported_number_words",
"clarify_single_id"
]
},
"uncertainty": {
"type": "string",
"maxLength": 256
},
"results": {
"type": "array",
"maxItems": 3,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"kural_id": {
"type": "integer",
"minimum": 1,
"maximum": 1330
},
"citation": {
"type": "string",
"maxLength": 32
},
"meaning": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"verbatim_quote": {
"type": "string",
"maxLength": 512
}
},
"required": [
"kural_id",
"citation",
"meaning"
]
}
}
},
"required": [
"format",
"answer_language",
"meaning_language",
"meaning_source",
"meaning_locale_fallback",
"lookup",
"guidance",
"results"
]
}
]
}🟢verify_quote(text)
Letter-check a Thirukkural quotation against the canonical corpus BEFORE presenting or accepting it (Tamil or English accepted). Returns {verified, kural_id, tamil, english} on a match; when verified is false, do not present the quote — fetch a verified one with kural_guidance.
Input Schema
{
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 4096,
"description": "Tamil or English quote: full verse or unique fragment of at least two words and ten characters"
}
},
"required": [
"text"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"verified": {
"type": "boolean"
},
"kural_id": {
"type": "integer",
"minimum": 1,
"maximum": 1330
},
"tamil": {
"type": "string"
},
"english": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"required": [
"verified"
]
}Community
Evidence