@theyahia/kontur-focus-mcp
Server Quality Checklist
Latest release: v3.0.1
- Disambiguation5/5
Each tool targets a distinct resource type: search, company brief, EGRUL details, financials, court cases, bankruptcy, licenses, and related companies. No two tools overlap in purpose.
Naming Consistency5/5All tools follow a consistent get_<entity> pattern except search_company, which still uses the same verb-first convention. Naming is uniform and predictable.
Tool Count5/58 tools is well-scoped for a company data lookup server. Each tool covers a meaningful aspect of the domain without unnecessary bloat or redundancy.
Completeness4/5The tool set covers search, detailed company data, financials, legal risk indicators, and relationships. Minor gaps exist, such as direct founder/officer lookup or sanctions screening, but the core workflows are well covered.
Average 2.9/5 across 8 of 8 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 1 commit 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.jsonto 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?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action and filter, offering no information about return format, pagination, error conditions, or any side effects. This is barely more informative than a tautology.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with zero filler. It efficiently communicates the core purpose without waste, making it appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although the tool is simple (one parameter, no output schema), the description does not explain what the returned data looks like, whether it is a list, if there are limits, or any other operational details. Given the absence of annotations and an output schema, this is a significant gap that leaves an agent guessing about the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully covers the single parameter with a description ('INN of the company'), and the description merely repeats it as 'by INN.' Since coverage is 100%, the baseline is 3, and the description adds no new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('arbitration court cases') with a clear filter ('by INN'). It is distinct from sibling tools like financial statements or licenses, but it does not explicitly name or compare to any sibling, so it falls short of the highest clarity score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. No mention of prerequisites, common use cases, or situations where this tool is inappropriate. The description implies via its name that it is for arbitration cases, but it does not articulate any decision logic.
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?
With no annotations provided, the description must carry the full behavioral burden. It implies a read-only operation but does not disclose what specific information is returned, error behavior for invalid or missing INN, rate limits, or any side effects. The description is minimal and leaves significant ambiguity about the tool's exact 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It is appropriately concise for a simple retrieval tool, though it could include a bit more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema and no annotations, the description is overly vague. It does not clarify what 'bankruptcy proceedings info' encompasses (e.g., current status, case history, court decisions), nor does it distinguish itself from get_arbitration_cases. An agent might call the wrong sibling without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes the single parameter `inn` with the same wording ('INN of the company'), so schema description coverage is 100%. The description adds no additional meaning beyond the schema, meeting the baseline of 3 but not exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get') and a specific resource ('bankruptcy proceedings info') with a key parameter ('by INN'). It is unambiguous about what the tool does and is easily distinguishable from siblings like get_company_details or get_arbitration_cases, though it does not explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 the sibling tools. The description only states the basic operation; there is no mention of conditions that would make it preferable (e.g., needing bankruptcy-specific data rather than general arbitration cases), nor any exclusions or alternatives.
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?
Annotations are absent, so the description carries the full burden of behavioral disclosure. It does not mention safety (e.g., read-only), authentication requirements, rate limits, or what the actual output contains beyond 'risk summary'. The term 'brief' is vague and does not clarify whether it returns structured data, a text summary, or any side effects. The description adds minimal behavioral context beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It efficiently conveys the action, object, and key qualifier ('brief' and 'risk summary') in under 10 words. This is exemplary conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description must set expectations for the agent. It does not clarify what a 'brief company report' includes (e.g., whether it contains financial health, legal risks, or key metrics), nor the response format. Given the existence of several sibling tools with overlapping functions, more detail is needed to help an agent choose correctly and interpret the result. The description is too thin for the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully describes the only parameter 'inn' as 'INN of the company' (100% coverage). The description does not add any extra meaning, such as format examples, validation rules, or additional context about the INN. Since the schema is complete, the baseline is 3; the description neither improves nor hinders parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get'), the resource ('brief company report'), the key identifier ('by INN'), and the content nature ('risk summary'). It differentiates from siblings like 'get_company_details' by specifying 'brief' and 'risk summary', which implies a lighter-weight report. However, it doesn't explicitly compare to siblings, so it's clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description implies it's for a quick risk overview, but does not state when NOT to use it or name other tools such as 'get_company_details' for more comprehensive data. An agent would have to infer usage from the 'brief' and 'risk summary' wording.
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 the full burden of behavioral disclosure. The verb 'Get' implies read-only, but the description discloses nothing about return format, the size of a full EGRUL extract, error behavior for invalid INNs, or any rate/token constraints. For an un-annotated tool this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the action and resource front-loaded and zero filler. It is efficient, though the domain term 'EGRUL' is left undefined, so a reader unfamiliar with Russian business registers gains little from the wording beyond the action itself.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complexity is low (one fully-covered parameter, no output schema, no nested objects), so the minimum bar is modest. However, with no annotations or output schema, the description should clarify what a 'full EGRUL extract' contains or how it differs from get_company_brief; that differentiation is missing, leaving the agent to guess at scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (the inn parameter is already described as 'INN of the company for full EGRUL extract'). The description's 'by INN' reinforces the lookup key but adds no format detail (e.g., 10 vs 12 digits, digit-only validation). Baseline 3 is appropriate since the schema carries the payload.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb (Get), a specific resource (full EGRUL extract), and an identifier (by INN). The qualifier 'full' hints at a contrast with the sibling get_company_brief, but it does not name that distinction explicitly, so it stops short of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this over alternatives. It does not state that this is the comprehensive variant versus get_company_brief, nor does it mention any exclusions (e.g., individuals vs legal entities). The agent must infer usage from the 'full' qualifier and sibling names.
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 must carry the full burden of behavior disclosure. It only says 'Get' which implies a read operation, but it does not disclose any potential limitations, errors, authentication needs, or return structure. This is minimal and insufficient for a tool with zero annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that states the purpose and the key parameter. It is front-loaded and contains no redundant wording. It could be slightly more informative, but it earns its place without unnecessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter, no output schema), and the description conveys the primary purpose and content. However, it lacks detail on what the actual output looks like (e.g., structure of balance sheet and P&L data) and any edge cases. Given the lack of annotations and output schema, the description is barely adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the sole parameter 'inn' with description 'INN of the company', and schema coverage is 100%. The description's 'by INN' adds no new meaning beyond the schema, so the baseline of 3 applies. No additional format or validity constraints are mentioned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a clear resource ('financial statements'), and specifies the content ('balance sheet, P&L') and the key parameter ('by INN'). It is clear and distinct from sibling tools, though it does not explicitly name alternatives. This is better than vague but not perfect differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. The description only says 'by INN' but does not mention prerequisites (e.g., need a valid INN from search_company) or when to prefer other tools like get_company_details. There is no explicit context or exclusion, so the agent must infer usage on its own.
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?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Get', implying a read operation, but provides no information about return format, error behavior, permissions, or edge cases. This is a minimal disclosure that barely goes beyond the tool's name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with zero wasted words. It is appropriately sized for a simple retrieval tool and gets straight to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema and annotations, the description is incomplete. It does not clarify what the tool returns (e.g., a list, an object), nor does it address potential failures or nuances. For a one-parameter getter, more context would be expected to make it fully usable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% as the parameter 'inn' is described as 'INN of the company' in the schema. The description adds no additional meaning beyond what the schema already documents, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('company licenses') with an input method ('by INN'). It is clear and unambiguous, though it does not explicitly differentiate from sibling tools beyond the resource name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. The description is purely declarative and does not mention conditions, prerequisites, or exclusions, leaving the agent to infer usage from the tool name alone.
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?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only mentions that related companies are retrieved, but without stating the response format (e.g., a list), possible empty results, or any additional side effects. This is minimal and leaves an agent uncertain about what to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of a single efficient sentence that is front-loaded with the action and key resource. It is appropriately concise and avoids unnecessary verbosity, though it sacrifices depth for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The absence of an output schema and annotations means the description must explain the expected output and any nuances. It does not mention whether the result is a list, the potential size, or any additional context like whether the tool returns only Russian companies. For a tool with a single parameter, it is still incomplete for an agent to call it correctly and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the 'inn' parameter with a clear description ('INN of the company'), achieving 100% coverage. The tool description essentially repeats this by saying 'by INN' without adding new semantic meaning, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action (get) and resource (affiliated/related companies) with a required identifier (INN). It is distinguishable from sibling tools like search_company or get_company_details, though it does not explicitly name those alternatives. The phrasing is specific enough for an agent to understand the tool's core function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the siblings, no prerequisites, and no exclusions. It only states the operation without contextual placement. An agent targeting a specific company would lack direction on choosing this over get_company_details.
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 the full burden. It only says 'Search' without disclosing potential behaviors like returning multiple matches, requiring exact vs. fuzzy matching, authentication requirements, or whether the search is read-only. The description is underspecified for a tool with zero annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no filler. It front-loads the action and criteria, making it easy to scan. It earns full marks for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool that likely returns a list of companies or identifiers, the description omits crucial context: what the output looks like, how to interpret multiple results, and how this feeds into the get_* sibling tools. With no output schema and no annotations, the description is incomplete for successful invocation and chaining.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (inn, name, ogrn) having a brief description. The tool description adds the context that these are search criteria, but it doesn't clarify whether they can be combined or if at least one is required. Since the schema fully documents the parameters, the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search') and resource ('company') along with the search criteria (INN, OGRN, or name) and the data source (Kontur.Focus). It distinguishes from the get_* siblings by implying a search-and-locate function rather than a direct fetch, though it doesn't explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells what it does but gives no guidance on when to use it versus the get_* siblings. It doesn't mention that this is typically a first step to obtain an identifier for subsequent get_* calls, nor any prerequisites or exclusions.
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
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/theYahia/kontur-focus-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server