Skip to main content
Glama

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.1

  • Disambiguation5/5

    Each tool targets a distinct function: ontology graph query, statistics, precedent relations, precedent semantic search, statute derivation from precedent, statute-to-precedent lookup, and direct statute search. Descriptions clearly differentiate them and recommend specific workflows, avoiding ambiguity.

    Naming Consistency4/5

    All tools share the 'lawink_' prefix and generally follow an 'entity_operation' pattern (e.g., 'ontology_graph', 'precedent_semantic_search'). 'statute_by_precedent' deviates by using a preposition, and 'statute_precedents' uses a different construction, but the overall naming is clear and mostly consistent.

    Tool Count5/5

    With 7 tools, the server covers ontology exploration, precedent searching, and statute analysis without being overwhelming or sparse. Each tool has a clear purpose, and the count is well-scoped for the legal research domain.

    Completeness4/5

    The tool set covers key legal research workflows: finding precedents from facts, deriving statutes from precedents, exploring ontology relations, and tracing statute citations. Minor gaps exist (e.g., direct precedent detail retrieval), but the ontology graph tool may fill that. Overall, the surface is fairly complete.

  • Average 3.8/5 across 7 of 7 tools scored. Lowest: 2.8/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 16 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries the full burden. It lists the relationship types but does not disclose whether the operation is read-only, performance implications, or if the results are direct only or include nested objects. The depth and structure of the response are unclear.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is extremely concise: two sentences that directly state the tool's purpose and the required parameter. Every word adds value; no redundancy or fluff.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the absence of an output schema and a single parameter, the description should explain the return format (e.g., list of objects with relation types and target IDs) and error handling. The current description only hints at the content without specifying the structure.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    With 0% schema coverage, the description should add meaning. It mentions 'precedent_id=판례 UUID' but does not explain how to obtain the UUID or its format. No description of other possible parameters or optional filters, even though only one exists.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states that the tool retrieves all ontology relationships (citations, similar precedents, references, event type, court) for a specific precedent. It identifies the required parameter 'precedent_id' and its format. However, it does not differentiate this tool from siblings like 'lawink_ontology_graph' which may also retrieve relations.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No guidance is provided on when to use this tool versus alternatives such as 'lawink_precedent_semantic_search' or 'lawink_ontology_graph'. The context implies usage for a single precedent's relations, but there are no explicit conditions or exclusions.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries full burden for behavioral disclosure. It only states it returns a list of precedents but does not mention pagination behavior, performance implications, read-only nature, or any other side effects. This is minimal for a data retrieval tool.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is two sentences long, front-loading the purpose and then clarifying the key parameter. It is concise and avoids redundancy, but could be slightly more structured with explicit parameter explanations.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool has 3 parameters and no output schema or annotations, the description is too sparse. It omits details about pagination, ordering, return format, and error conditions. For an agent to correctly invoke the tool, more contextual information is needed.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 0% (no descriptions in schema). The description explains the meaning of 'statute_id' (UUID of statutory provision) but does not explain 'skip' and 'limit' parameters, which are pagination controls. With 3 parameters and 1 explained, the description only partially compensates for the lack of schema descriptions.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool lists precedents citing a specific statutory provision, using a specific verb ('목록' as list) and resource ('판례' precedents). It distinguishes itself from sibling tools like 'lawink_statute_by_precedent' which does the reverse mapping, ensuring the agent knows when to select this tool.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides implied usage context by labeling it a 'core lawyer function — statute→precedent tracking', but does not explicitly state when to use vs alternatives or when not to use. No alternative tool names are mentioned in the description.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations provided, so description carries full burden. It discloses that it returns counts and sync time, and notes scale (2.3M+ relations), which adds context. However, it does not specify if the statistics are real-time or cached, or any other behavioral traits.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Two sentences, clearly front-loaded with key information. Every word is relevant with no redundancy.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given no parameters or output schema, the description adequately explains what stats are provided (counts by type, sync time, overall scale). It could mention whether data is live or cached, but overall sufficient for a simple statistics tool.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Zero parameters with 100% schema coverage; schema does not add meaning. Description adds value by explaining the purpose (statistics by entity/relation type, sync time, overall size). Baseline is 4 for no parameters, and description meets that.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    Description clearly indicates it provides ontology graph statistics (counts, sync time) and distinguishes from sibling tools like ontology graph or precedent search. However, it lacks an explicit action verb like 'get' or 'retrieve'.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No guidance on when to use this tool versus alternatives like lawink_ontology_graph or lawink_precedent_relations. The description mentions overall size but fails to specify use cases or exclusions.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description must carry full burden. It discloses that only public data is exposed and client case info is blocked, which is a key behavioral trait. However, it does not explain the depth parameter's effect, rate limits, or output size constraints.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is extremely concise: two sentences. The first sentence front-loads the main purpose and key examples. Every word earns its place, with no redundancy.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Without an output schema, the description should explain the return format in more detail. It only says 'nodes+edges' but does not specify fields, pagination, or how the depth parameter affects results. Given the tool's complexity (3 parameters, graph query), the description is incomplete.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 0%, so the description must compensate. It adds meaning by listing possible values for entity_type (precedent, statute, etc.) and that entity_id is a UUID. However, the depth parameter is only mentioned in the schema with a default of 1, and the description provides no explanation of its meaning.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool queries a knowledge graph for legal entities (precedent, statute, etc.) and gives concrete examples of relationships. It distinguishes from sibling tools by being a general graph query for any entity type, whereas siblings are more specific.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description says it's used for reasoning and lists entity types, but it does not explicitly guide the agent when to use this tool versus the more specific siblings like lawink_precedent_relations. Usage context is implied but not explicit.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations provided, so the description carries the full burden. It discloses that the tool is public, requires no authentication, uses embedding-based search, and is a verified strength tool for ranking leading cases. However, it does not detail rate limits, pagination, or result sorting behavior.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, information-dense paragraph that front-loads the main purpose and includes a key recommendation with a star symbol. It could be slightly more concise, but every sentence adds value.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    No output schema exists, but the description implies the result includes precedent_id and guides how to use it with lawink_precedent_relations. It also contrasts with sibling tools. Missing explicit return format details, but adequate for a search tool.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, but the description explains that query is a natural language phrase (자연어 사안/질의) and mentions that limit exists with a default of 10. It does not explicitly describe limit's purpose, but the context implies it controls result count.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description specifies semantic search on 160,000 precedents using embedding-based retrieval with natural language queries. It distinguishes itself from sibling tools like lawink_statute_semantic_search by stating this tool searches precedents by meaning, not statutes.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Explicitly advises when to use this tool over alternatives, recommending a workflow: first find similar precedents here, then use lawink_precedent_relations to derive cited statutes. It also warns against directly using lawink_statute_semantic_search for statute citation discovery.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries the full burden. It explains the three-step process: find similar precedents, aggregate cited statutes by frequency, and return results. However, it does not detail potential edge cases (e.g., no results found) or rate limiting.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is front-loaded with emoji and bold, structured with bullet points. It is concise despite covering multiple aspects (purpose, usage, process, validation). A minor improvement could be to shorten the validation example.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the complexity (precedent search, citation aggregation, ranking) and lack of output schema, the description provides sufficient context: it explains the process, what the result includes (statutes with source precedents), and its advantage over a sibling tool. It is complete enough for an agent to decide when to use it.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, so the description must add meaning. It explains that 'query' is a natural language case/question. The 'limit' parameter is implied by the default value but not explicitly described. The description adds value beyond the schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's purpose: deriving legal statutes from a natural language case by finding similar precedents and returning the cited statutes ranked by frequency. It distinguishes itself from sibling tools like lawink_statute_semantic_search by highlighting the avoidance of lexical bias.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Explicitly instructs to use this tool first when needing legal basis (근거 법령 도출). It contrasts with lawink_statute_semantic_search, explains why this tool is more accurate, and provides a validation example (임대차 → 민법 제618·615·654조).

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Discloses known biases (lexical matching bias), unreliability of similarity_score (0.84-0.89 range), and potential for irrelevant top results. Also notes that statute_id can be used for expansion via lawink_statute_precedents.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Description is informative and front-loaded with caution, but slightly verbose. Every sentence adds value, but could be more structured.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    No output schema, but description explains key result elements (similarity_score, statute_id) and integration with other tools. Covers limitations and usage context well, though missing explicit return field documentation.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 0%, but description explains query parameter as natural language ('query=자연어 사안/질의'). However, limit parameter is only mentioned as having default 10 without additional meaning. Partial compensation for low coverage.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    Description clearly states the tool does direct semantic search of statute provisions ('법령 조문 직접 시맨틱 검색') and distinguishes it from the sibling tool lawink_statute_by_precedent by advising to use that sibling first. The warning about being supplementary/experimental further clarifies its specific role.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Provides explicit when-to-use (supplementary when primary path fails), when-not-to-use (not as primary lawyer tool), and an alternative (use lawink_statute_by_precedent first). Also specifies query format as natural language.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

lawink-mcp MCP server

Copy to your README.md:

Score Badge

lawink-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ntriq/lawink-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server