Skip to main content
Glama
ctkadvisors

GraphQL MCP Server

by ctkadvisors

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation5/5

    Each tool has a clearly distinct purpose targeting a specific GraphQL query type (continent vs. continents, country vs. countries, language vs. languages), with no overlap or ambiguity in functionality. The singular/plural pairs are well-defined and intuitive for querying individual items versus lists.

    Naming Consistency5/5

    All tool names follow a perfectly consistent pattern using singular and plural nouns (e.g., continent/continents, country/countries, language/languages) with no deviations in style or convention. This uniformity makes the set predictable and easy to navigate.

    Tool Count4/5

    With 6 tools, the count is reasonable and well-scoped for a GraphQL server focused on geographic and linguistic data queries. It slightly leans toward being minimal but covers core query types effectively without feeling bloated or incomplete.

    Completeness3/5

    The tool set provides basic query capabilities for continents, countries, and languages, but lacks obvious operations like mutations (e.g., create, update, delete) or more advanced GraphQL features. While the query surface is coherent, it is limited to read-only operations, leaving gaps for full lifecycle management.

  • Average 2.2/5 across 6 of 6 tools scored.

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

    • No community issues in the last 6 months
    • 0 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

  • Behavior1/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. However, it only states it's a 'GraphQL continent query', which doesn't reveal any behavioral traits such as whether it's read-only, requires authentication, has rate limits, or what the response format might be. This is inadequate for a tool with no 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.

    Conciseness2/5

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

    The description is a single phrase 'GraphQL continent query', which is under-specified rather than concise. It lacks front-loaded information and doesn't earn its place by adding value; it's too brief to be helpful, failing to convey purpose or usage effectively.

    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's complexity (a query with one parameter), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., continent details), how to interpret the 'code' parameter, or behavioral aspects. For a tool with minimal structured data, more descriptive context is needed.

    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?

    The schema description coverage is 100%, with the single parameter 'code' documented as 'code parameter (ID)'. The description adds no additional meaning beyond what the schema provides, such as explaining what the code represents (e.g., continent code like 'AF' for Africa) or format details. Baseline 3 is appropriate since the schema does the heavy lifting.

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

    Purpose2/5

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

    The description 'GraphQL continent query' restates the tool name 'continent' and the generic concept of a query, making it tautological. It doesn't specify what the query actually does (e.g., retrieve continent details by code), nor does it distinguish from sibling tools like 'continents' (plural) which might list all continents. The purpose is vague beyond being a GraphQL operation.

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

    Usage Guidelines1/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. It doesn't mention when to use 'continent' (singular) versus 'continents' (plural), or how it relates to other sibling tools like 'countries' or 'languages'. There's no context or exclusions stated, leaving the agent with no usage direction.

    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. It only states it's a 'GraphQL countries query', which implies a read operation but doesn't clarify if it's safe, what data it returns, or any constraints like rate limits or authentication needs. For a query tool with zero annotation coverage, this is a significant gap in transparency.

    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 very concise with 'GraphQL countries query', which is efficient and front-loaded. However, it's overly brief to the point of under-specification, lacking necessary details for clarity. It earns a high score for conciseness but loses points for not providing enough substance to be truly helpful.

    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 complexity (1 parameter with nested object, no output schema, no annotations), the description is incomplete. It doesn't explain what the tool returns, how to use the filter, or differentiate from siblings. For a query tool with these contextual signals, more detail is needed to be considered adequately complete.

    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 description coverage is 100%, with the schema documenting the 'filter' parameter as an object of type 'CountryFilterInput'. The description adds no additional meaning beyond this, such as examples of filter criteria or usage context. With high schema coverage, the baseline score of 3 is appropriate, as the schema does the heavy lifting for parameter documentation.

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

    Purpose2/5

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

    The description 'GraphQL countries query' restates the tool name 'countries' and adds only the generic term 'GraphQL query', which is tautological. It doesn't specify what the query actually does (e.g., retrieve, list, search countries) or distinguish it from sibling tools like 'country' (singular) or 'continent' tools. The purpose remains vague beyond being a GraphQL operation.

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

    Usage Guidelines1/5

    Does 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. It doesn't mention sibling tools like 'country' (likely for a single country) or 'continents', nor does it provide any context for usage scenarios (e.g., filtering, listing all countries). The description lacks any indication of prerequisites 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?

    With no annotations provided, the description carries full burden for behavioral disclosure but provides minimal information. 'GraphQL language query' suggests a read operation but doesn't specify if it's safe, what permissions might be required, what format the response takes, or any rate limits. It doesn't disclose whether this queries language data or executes GraphQL operations, leaving significant behavioral uncertainty.

    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 extremely concise at just three words, which could be appropriate if it were more informative. However, the brevity comes at the cost of clarity - it's under-specified rather than efficiently informative. The structure is simple but doesn't effectively front-load the most critical information.

    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 no annotations, no output schema, and a minimal description, the contextual information is insufficient. For a tool with one required parameter that presumably returns language data (based on sibling tools), the description should explain what the tool returns, how it relates to the 'languages' sibling, and what the 'code' parameter represents beyond just being an ID.

    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?

    The schema has 100% description coverage, with the single parameter 'code' documented as 'code parameter (ID)'. The description adds no additional parameter information beyond what's in the schema. According to scoring rules, when schema_description_coverage is high (>80%), the baseline is 3 even with no param info in description, which applies here.

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

    Purpose2/5

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

    The description 'GraphQL language query' is tautological - it essentially restates the tool name 'language' with the addition of 'GraphQL query'. It doesn't specify what the tool actually does (e.g., retrieves language information, validates language codes, etc.) or what resource it operates on. While it mentions 'GraphQL', it doesn't clarify if this executes a GraphQL query or returns GraphQL schema information about languages.

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

    Usage Guidelines1/5

    Does 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 its siblings (continent, continents, countries, country, languages). There's no indication of what differentiates this language tool from the 'languages' sibling tool, nor any context about appropriate use cases, prerequisites, 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?

    No annotations are provided, so the description carries full burden. It only states this is a 'GraphQL continents query', implying a read-only operation, but doesn't disclose behavioral traits like what data is returned, error conditions, rate limits, or authentication needs. For a tool with no annotations, this is insufficient.

    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 a single, efficient phrase with zero wasted words. It's appropriately sized for a simple query tool, though the brevity contributes to its lack of helpfulness.

    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 no annotations, no output schema, and a nested object parameter, the description is incomplete. It doesn't explain what the tool returns, how filtering works, or provide any context beyond the basic query nature. For a tool with potential complexity (nested filter), this is inadequate.

    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 description coverage is 100% (the 'filter' parameter is documented as 'filter - Input type: ContinentFilterInput'), so the baseline is 3. The description adds no parameter semantics beyond what the schema provides, but doesn't contradict it either.

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

    Purpose2/5

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

    The description 'GraphQL continents query' restates the tool name 'continents' and adds 'GraphQL query' which is tautological for a query tool. It doesn't specify what the tool actually does (e.g., 'Retrieve continent data with optional filtering'), nor does it distinguish from sibling tools like 'continent' (singular).

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

    Usage Guidelines1/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 'continent' (singular) or 'countries'. The description provides no context about use cases, prerequisites, or exclusions, leaving the agent with no usage direction.

    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 but provides almost none. 'GraphQL languages query' implies a read operation but doesn't specify what data is returned, whether there are rate limits, authentication requirements, pagination behavior, or any other operational characteristics. The description adds minimal value beyond the implied query nature.

    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 at just three words with zero wasted language. While it's under-specified, it's not verbose or poorly structured - it's front-loaded with the essential information that this is a GraphQL query for languages.

    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 a tool with 1 parameter (including a nested object), no annotations, no output schema, and multiple sibling tools, the description is severely incomplete. It doesn't explain what the tool returns, how it differs from similar tools, what the filter parameter actually does, or provide any operational context needed for effective use.

    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 description coverage is 100% (the single 'filter' parameter has a description), so the baseline is 3. The tool description doesn't add any meaningful information about parameters beyond what's already in the schema - it doesn't explain what LanguageFilterInput contains, what filtering capabilities exist, or provide examples of filter usage.

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

    Purpose2/5

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

    The description 'GraphQL languages query' is a tautology that essentially restates the tool name 'languages' with the addition of 'GraphQL query' - it doesn't specify what the tool actually does beyond being a query. It doesn't distinguish this from sibling tools like 'language' (singular) or explain what 'languages' refers to in this context.

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

    Usage Guidelines1/5

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

    There is absolutely no guidance about when to use this tool versus alternatives. The description provides no context about when this query should be used instead of sibling tools like 'language', 'countries', or 'continents', nor does it mention any prerequisites or constraints for usage.

    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. It mentions 'GraphQL' and 'query', implying a read-only operation, but doesn't disclose behavioral traits like error handling, rate limits, authentication needs, or what happens if the code is invalid. Minimal context beyond the basic operation.

    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 very concise with two words, but it's under-specified rather than efficiently informative. It's front-loaded but lacks necessary detail, making it borderline between conciseness and insufficiency.

    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 no annotations, no output schema, and a single parameter with full schema coverage, the description is incomplete. It doesn't explain what the query returns, error conditions, or how it differs from sibling tools, leaving significant gaps for an AI agent.

    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 description coverage is 100% with one parameter 'code' documented as 'code parameter (ID)'. The description adds no additional meaning beyond what the schema provides, such as format examples or constraints. Baseline 3 is appropriate since the schema does the heavy lifting.

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

    Purpose2/5

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

    The description 'GraphQL country query' states the technology and resource but lacks a specific verb and doesn't distinguish from siblings like 'countries' or 'language'. It's vague about what the query actually does (fetch by code vs general query).

    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 siblings like 'countries' (plural) or 'language'. The description implies it's for querying countries via GraphQL, but doesn't specify use cases, prerequisites, or alternatives.

    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

graphql-mcp MCP server

Copy to your README.md:

Score Badge

graphql-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/ctkadvisors/graphql-mcp'

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