Valluvakural

Valluvakural (Valluvarkural) — Thirukkural wisdom lens: verified couplets, quote checks.

Should I use this

Quality & Safety

A
Description quality
90%
Schema completeness
100%
Naming quality
90%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,122Tokens (tool definitions)
~4.7 KBTypical response size
Moderate attention impact (0.88% of 128k context)

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-http

What it can do

Tool inventory

Tools (2)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded2 tools
verifiedversion not recorded2 tools