Skip to main content
Glama
art22017

СДАМ ГИА MCP Server

by art22017

Search Problems by Condition Text (Fuzzy Match)

sdamgia_search_by_text
Read-onlyIdempotent

Search for problems by fuzzy matching full condition text to find duplicates, similar problems, or problems from a text excerpt.

Instructions

Finds problems by matching against their full condition text using fuzzy text similarity algorithms.

When to use:

  • You have a problem's exact condition text but don't know its ID

  • You're looking for problems similar to one you've seen before

  • You want to find problems with nearly identical wording

  • You need to detect duplicate or similar problems across the database

  • You have partial problem text and want to find the closest matches

How it works:

  1. Performs a broad search to find candidate problems

  2. Fetches the full condition text for each candidate

  3. Applies fuzzy text matching to calculate similarity scores

  4. Returns problems that exceed the similarity threshold

Parameters:

  • subject (required): Subject code to search within

  • condition_text (required): The problem condition text to match against (10-1000 characters). Provide as much of the original problem text as possible for best results.

  • threshold (optional): Similarity threshold from 0.0 to 1.0 (default: 0.6). Higher values = stricter matching. Recommended: 0.5-0.7 for approximate matches, 0.8+ for exact matches.

  • limit (optional): Maximum number of matches to return (1-50, default: 20)

  • response_format (optional): 'markdown' (default) or 'json'

Returns:

  • matches: Array of matching problems, each containing:

    • problem_id: The matched problem's ID

    • similarity: Score from 0-1 indicating how closely the text matches (higher = better match)

  • total: Number of matches found

Similarity scores:

  • 1.0: Exact match (identical text)

  • 0.8-0.99: Very close match (minor differences in wording)

  • 0.6-0.79: Similar problem (same concept, different phrasing)

  • 0.4-0.59: Somewhat related (loosely connected)

  • <0.4: Poor match (not recommended)

Example usage:

{
  "subject": "math",
  "condition_text": "Find the area of a triangle with sides 3, 4, and 5 units.",
  "threshold": 0.7,
  "limit": 5,
  "response_format": "markdown"
}

Best practices:

  • Include the complete problem condition for best matching

  • For exact duplicates, set threshold to 0.9 or higher

  • For similar problems, use threshold around 0.6-0.7

  • If you get too many results, increase the threshold

  • If you get no results, decrease the threshold

Notes:

  • Condition text must be at least 10 characters

  • Fuzzy matching is computationally intensive - results may take longer

  • Searches broader than the limit, then applies fuzzy filtering

  • Some results may have lower similarity than expected due to formatting differences

  • For keyword-based searches, use sdamgia_search_problems instead

  • Follow up with sdamgia_get_problem to see full problem details

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
subjectYesSubject code to search in
condition_textYesProblem condition text to search for (supports fuzzy matching)
thresholdNoSimilarity threshold for fuzzy matching (0-1, higher = stricter)
limitNoMaximum number of results to return
response_formatNomarkdown
Behavior5/5

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

Annotations (readOnlyHint, destructiveHint, idempotentHint) already declare non-destructive behavior. The description adds process details (broad search, fuzzy matching), mentions computational intensity, and notes potential lower similarity due to formatting—no contradictions.

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 well-structured with sections, bullet points, and an example. While thorough, it is not overly verbose; every section adds value, though slight trimming could improve conciseness.

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

Completeness5/5

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

Given no output schema, the description fully explains the return format (matches, similarity, total), similarity score ranges, best practices, notes, and process. It is complete for a complex search tool with 5 parameters.

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 80%, baseline 3. The description adds meaningful guidance: character range for condition_text, recommended threshold ranges, limit bounds, and response_format defaults, exceeding schema details.

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 finds problems by matching condition text using fuzzy similarity algorithms, distinguishing it from sibling tools like sdamgia_search_problems (keyword-based) and sdamgia_get_problem (fetch by ID).

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?

The 'When to use' section lists specific scenarios, and the notes explicitly mention using sdamgia_search_problems for keyword-based searches, providing clear guidance on when to use this tool vs alternatives.

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

Install Server

Other Tools

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/art22017/sdamgia-mcp-server'

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