fgiscs-history-mcp
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Each tool targets a distinct purpose: listing datasets, showing version history, salary dynamics for a specific region, and regional ranking by salary growth. No two tools overlap in function, and the descriptions make their differences clear.
Naming Consistency4/5All names use lowercase snake_case with descriptive two-word compounds. While 'list_datasets' is verb-first, the others are noun phrases (dataset_versions, salary_history, salary_growth_ranking), but the style is uniform and predictable.
Tool Count5/5With only 4 tools, the server is well-scoped and focused on its purpose of providing historical data analysis. Each tool serves a distinct need, and the count is neither too thin nor excessive.
Completeness3/5The server covers listing, version history, and two specific salary analyses, but lacks a tool to retrieve the actual data content of a dataset version. This leaves a notable gap for users who need raw historical dataset values rather than derived salary insights.
Average 4.1/5 across 4 of 4 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
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavior. It explains the return fields (name, versions count, period, schema count) but does not explicitly state safety traits like read-only or mention potential side effects, rate limits, or permissions. For a simple listing, this is adequate but not exhaustive.
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 two sentences, front-loaded with the main action, and every sentence adds value. It avoids redundancy and is appropriately sized for a simple no-parameter listing tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description is complete: no parameters, an output schema exists, and the description explains the return semantics. It covers the essential information an agent needs to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema fully covers the input. Per the rubric, 0 params yields a baseline of 4. The description adds no parameter details but none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists open data sets of FGIS CS with history depth, using a specific verb and resource. It distinguishes from siblings like dataset_versions (which likely focuses on a specific dataset) by covering all datasets, making its purpose unambiguous.
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 alternatives such as dataset_versions or salary_history. The only context is the purpose itself; there are no explicit exclusions or cross-references to sibling tools.
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?
Since no annotations are provided, the description carries the full burden of behavioral disclosure. It notably reveals that the portal itself hides unchanged versions, while this tool marks them—critical context for interpreting results. It does not mention any side effects or read-only status, but for a version-history tool this is implied and not 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?
The description is concise and well-structured: it leads with the core purpose, highlights an important nuance, and ends with an argument reference. It avoids unnecessary details and is easy to scan, though the 'Args' section slightly overlaps with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter and the existence of an output schema, the description covers the essential context: what the tool does, how to call it, and a key interpretation detail about unchanged content. It does not explain return value structure, but that is presumably handled by the output schema, so overall it is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no description for the `dataset` parameter, so the tool description must compensate. It does so by giving a concrete example (7707082071-ksrms) and pointing to list_datasets for obtaining valid identifiers. This is sufficient for basic usage, though it could elaborate on format or constraints.
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 indicates the tool provides version history for a single dataset, including publication timing and content-change status. It distinguishes itself from sibling tools by focusing on version-level details rather than dataset listings or salary metrics. However, it lacks an explicit action verb like 'returns' or 'shows,' making it slightly less directive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly guides usage by requiring a dataset identifier and referencing list_datasets as the source for valid IDs. It also explains a unique scenario where the tool adds value (detecting versions with unchanged content), which helps the agent decide when to use it. It does not explicitly name alternatives, but the sibling tools are clearly distinct in purpose.
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 carries the full burden. It discloses that the tool returns rates for each data version since 2020 and notes that the source only has the latest snapshot, which is a useful behavioral trait. However, it does not mention output format, ordering, error behavior, or limitations such as potential missing versions.
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 compact and well-structured: a one-sentence summary, a clarification about the data source, and a clearly formatted Args section. Every sentence adds value without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with an output schema, the description covers the essential aspects: what the tool does, what parameter to provide, and a notable caveat about the source data. It does not explain the output structure, but the output schema presumably covers that. The only minor gap is the absence of guidance on handling missing subjects or unclear matches.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no descriptions (0% coverage), so the parameter explanation in the description is essential. It specifies 'subject' as a full or partial name of a Russian region with concrete examples ('Иркутская' or 'Москва'), clarifying the matching behavior. This adequately compensates for the missing schema metadata, though it could also mention case sensitivity or formatting nuances.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool shows the dynamics of average monthly wages for a 1st-category construction worker by region, with a specific verb 'Показывает' (shows) and a defined scope: rate per data version since 2020. This differentiates it from siblings like salary_growth_ranking and dataset_versions by focusing on historical version-over-version values.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that the source only contains the latest upload and that dynamics are not present there, indicating this tool is needed to see historical version data. However, it does not explicitly compare against alternatives like salary_growth_ranking or provide clear conditions for when to prefer one tool over another.
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?
With no annotations provided, the description carries the full transparency burden. It discloses a key behavioral trait—using 'entire available history'—and explains the effect of the ascending parameter on sorting. However, it does not state that the operation is read-only or describe the return format, though the output schema covers that.
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 two lines: a purpose statement followed by a concise Args section. Every element earns its place, and the parameter explanations are directly mapped. There is no verbose or redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose and both parameters, and the output schema is available to document the return structure. It is complete for a simple ranking tool, though it could mention potential edge cases like missing data. Overall, it leaves no major gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no descriptions for the parameters, but this description fully compensates by explaining 'limit' as the number of regions to show and 'ascending' as whether to start from smallest or largest growth. This adds clear semantic meaning beyond the bare type declarations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool ranks regions by salary growth in construction over all available history. This is specific and distinct from siblings like salary_history, which provides historical data for individual entities. The purpose is unambiguous despite using a noun phrase rather than a verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a ranking of regions by salary growth is needed, but it does not explicitly contrast this tool with sibling tools like salary_history or list_datasets. There are no exclusions or alternative recommendations, so usage guidance is only implicit.
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/elysosss/fgiscs-history-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server