mtga-mcp
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation4/5
Most tools have distinct purposes, but search_cards with owned_only=true overlaps with owned_cards. Otherwise each tool targets a clear, separate function (searching, collection summary, deck import, gap analysis, etc.).
Naming Consistency3/5Names are readable and exclusively snake_case, but conventions vary: some are verb_noun (search_cards, import_deck, list_decks, delete_deck) while others are noun or adjective phrases (owned_cards, collection_summary, deck_gap, best_buildable_deck). No consistent pattern.
Tool Count5/511 tools is well-scoped for the MTGA collection and deck analysis domain. Each tool fills a distinct role without unnecessary bloat, and the count feels appropriate for the server's purpose.
Completeness3/5The set covers card search, collection overview, deck import/list/delete, and deck-building assistance, but lacks a tool to view a stored deck's full card list. This is a notable gap for analysis and verification workflows, though query_sql can partially address collection data if needed.
Average 4/5 across 11 of 11 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 22 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
Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.
If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.
MCP servers without a LICENSE cannot be installed.
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?
There are no annotations, so the description must convey behavioral traits. It implies a read-only overview with the listed data points, but does not explicitly state that it makes no modifications, nor does it mention authentication or rate limits. This leaves room for ambiguity, though the nature of a summary implies a safe query.
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 that succinctly lists the key content categories. Every word earns its place with no filler or redundancy.
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 parameterless tool with an output schema, the description is largely complete, covering the main summary dimensions. It could be improved by explicitly noting that no parameters are required and confirming the read-only nature, but these are minor omissions given the simplicity.
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 empty schema covers all inputs at 100% coverage. The description adds no parameter details, but they are not needed; a baseline of 4 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 identifies the resource (collection) and specifies the scope of the overview (distinct owned, total copies, per-rarity, wildcard/currency balances). It lacks an explicit verb and does not explicitly contrast with sibling tools like owned_cards, but the content clearly conveys a summary operation.
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 collection_summary versus sibling tools such as owned_cards or missing_from_set. The description only states what the tool returns, not the appropriate context for invoking it.
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 for behavioral disclosure. It does not mention that deletion is permanent/irreversible, any required permissions, or side effects on associated data, which is critical for a destructive tool.
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 redundant wording. Every word contributes to the meaning, making it highly efficient.
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?
While the description covers the core purpose and parameter semantics, it omits important context for a delete tool, such as irreversibility or behavior when the deck is not found. The presence of an output schema helps, but the destructive nature requires additional disclosure.
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 only the parameter name 'Deck' with type string and no description. The description adds meaning by clarifying that the deck can be identified by id or name, which is essential for using the parameter correctly.
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 action (delete) and the resource (stored deck), with the scoping detail 'by id or name.' This distinguishes it from sibling tools like list_decks and import_deck.
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, nor any prerequisites or exclusions. The description merely states what the tool does without contextual usage direction.
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?
With no annotations, the description carries the burden of explaining behavior. It discloses the core computation ('hasn't completed a playset (4)') and output shape ('needed count per card'), but it does not mention ordering, inclusion of zero-count cards, or behavior when the set is fully completed. These gaps leave some behavioral context unspecified.
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?
Two concise sentences convey purpose, output, and filtering capability. The description is front-loaded and every word adds value—no filler or redundancy.
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 simple filtered-query tool with an output schema (which covers return details), the description is mostly sufficient: it communicates the main operation, the output count, and the optional filter. It lacks explicit usage guidance and parameter format details, but given the low complexity, the coverage is good.
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 0%, so the description must compensate. It adds meaning to 'rarity' by calling it an 'Optional rarity filter', but it does not explain the format or allowed values for rarity, nor does it explicitly connect 'set_code' to the set identifier beyond the schema's property name. Partial compensation only.
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 identifies what the tool does: 'Cards in a set the player hasn't completed a playset (4) of' names the resource (set) and the specific filtering logic. It also states the output ('Returns a 'needed' count per card'), which distinguishes it from siblings like deck_gap (deck-focused) and search_cards (general card search).
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 context—finding cards needed to complete playsets in a given set—but does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or alternate tool recommendations. It is functional but lacks direct guidance.
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 of behavioral disclosure. It does disclose the default scope (all cards) and the effect of owned_only, as well as the WUBRG encoding. However, it omits details like result format, pagination, or authentication requirements, leaving significant behavioral gaps for a tool with no annotations.
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 concise, with two efficient sentences. The first sentence front-loads the core purpose, and the second adds essential format hints without unnecessary information. Every sentence earns its place.
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 the tool's complexity (7 parameters) and the presence of an output schema, the description is mostly complete. It covers the main search dimensions and provides key format hints. Minor gaps like the explicit meaning of 'type_contains' and the limit parameter are partially addressed by the schema's titles and defaults, making the description adequate overall.
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 0%, so the description must compensate. It adds crucial semantics for colors (WUBRG letters), set_code (3-letter set), and owned_only. However, it fails to explain limit and does not explicitly clarify the type_contains parameter, leaving some parameters underspecified.
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 identifies the tool as a card search with specific criteria (name, colors, rarity, set, type). It distinguishes itself from sibling tools like owned_cards by the inclusion of an owned_only filter, implying a broader default search scope.
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?
Usage is implied through the description of search filters and the owned_only option, but there is no explicit guidance on when to use this tool versus alternatives such as owned_cards or query_sql. The absence of alternative comparisons leaves the usage context somewhat implicit.
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, the description carries the full burden of behavioral disclosure. It explicitly states that basics are excluded and copies are capped at a playset of 4, which are important constraints not visible in the schema. It also clarifies the deck identifier can be by id or name. It doesn't mention error handling or read-only guarantees, but the core behavior is well covered.
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 sentence that front-loads the primary purpose and follows with two important constraints. There is no wasted wording, and all information contributes to understanding the tool's behavior.
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 the simple single-parameter schema and the existence of an output schema, the description covers the essential behavior and edge-case constraints (basics excluded, cap at 4). It does not address potential confusion with similar sibling tools like 'missing_from_set', but for its simplicity it is sufficiently 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 only has a 'deck' string with no description, so the description compensates by stating that the deck can be specified by id or name. This adds meaningful semantics to the otherwise opaque parameter. It doesn't provide formatting examples, but enough is given to understand the parameter's purpose.
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 what the tool returns: cards and wildcards needed to complete a deck. It distinguishes from siblings like 'missing_from_set' by focusing on decks rather than entire sets. However, it lacks an explicit action verb (e.g., 'calculates' or 'lists'), so it is not a perfect 5.
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 implied usage is to determine the missing cards for a given deck using the user's collection. It does not explicitly mention alternatives or when not to use it, but the purpose makes the primary use case clear. No exclusions or sibling comparisons are provided.
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 the 'owned count >= 1' filtering behavior, which is useful. However, it does not mention other traits like pagination, default limit behavior, or read-only nature beyond the implied 'List' action. It adds some context but not rich behavioral detail.
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, well-structured sentence that conveys the core purpose and a key filter reference. Every word is useful, with no 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?
Given the simple list operation and the presence of an output schema, the description covers the essential context: what is listed and the filter inheritance. It could be more complete by mentioning limit behavior or output formatting, but the schema and tool name fill in many gaps. Overall, it is sufficient for this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only says 'same optional filters as search_cards' without explaining any parameter or its semantics. The parameter names are self-explanatory, but the description adds minimal value for understanding their usage or constraints.
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 cards the player owns, with a specific condition (owned count >= 1) and references the same filters as search_cards. This distinguishes it from search_cards (which likely searches all cards) and conveys a concrete action on a specific resource.
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 implies when to use this tool (when you need owned cards) and references search_cards for filter behavior, providing context. However, it does not explicitly state when not to use it or name direct alternatives, so it falls short of a 5.
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?
With no annotations, the description must carry the behavioral disclosure burden. 'List' clearly implies a read-only operation, and the specified fields indicate what is returned. However, it does not disclose details such as ordering, potential pagination, or whether all stored decks are always included, leaving some behavioral aspects implicit.
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 sentence that states the action, the target, and the key attributes. Every word contributes meaning; there is no redundant or filler 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?
Given the tool's simplicity (zero parameters) and the presence of an output schema, the description adequately covers the essential context. It could mention that it lists all decks without filters, but for a straightforward list operation the current description is sufficiently 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 tool has zero parameters, and the schema coverage is 100% (empty properties). The description adds no parameter semantics, but none are needed. The baseline for 0 parameters is 4, and the description does not obstruct or complicate parameter understanding.
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 uses a specific verb ('List') with a clear resource ('stored decks') and enumerates the included attributes ('format, best_of, tier and source'). This clearly distinguishes it from sibling tools like 'search_cards' or 'owned_cards', which target different resources.
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 you need to see stored decks, but it does not explicitly state when to prefer this tool over alternatives like 'collection_summary' or 'query_sql'. There is no mention of exclusions or context, but the simple listing purpose is reasonably inferred.
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 burden. It clearly states 'read-only SELECT' (safe, non-mutating) and lists the tables and join key, which tells the agent what data can be accessed. It does not mention auth, rate limits, or query limitations, but the read-only disclosure plus table schemas is substantial.
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 core action ('Run an ad-hoc read-only SELECT') followed by the supported tables and join hint. No filler or repetition; every clause adds value.
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 tool is simple (2 params, output schema exists) and the description covers the purpose, safety, and data model. It could be improved by explaining the limit parameter and when to prefer this over siblings, but given the output schema and simple interface, it is sufficiently 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?
Schema description coverage is 0%, so the description compensates by documenting the target tables and columns (cards, collection(grp_id,count), wildcards(kind,count)) and showing the join relationship. It does not explicitly explain the 'limit' parameter or provide SQL syntax examples, but the table inventory gives meaningful context for constructing the 'sql' string.
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 uses a specific verb ('Run an ad-hoc read-only SELECT') and identifies the exact resource ('collection database') and tables (cards, collection, wildcards). This clearly distinguishes it from sibling tools like search_cards or collection_summary, which are purpose-built, whereas this is a generic SQL query tool.
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?
It provides clear context that this tool is for ad-hoc read-only SQL queries, which implies it should be used when the dedicated sibling tools do not cover a custom query. However, it does not explicitly state when not to use it or name alternatives, so it stops short of full exclusionary guidance.
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, the description discloses that the deck is stored, the return value (deck id and unmatched card names), and that scraping is unreliable. It doesn't mention side effects like duplicate handling or failure behavior, but it's reasonably transparent for an import operation.
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 four sentences, front-loaded with the main purpose, followed by param details and return value. Every sentence adds value with no 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 an import tool with 8 parameters and no annotations, the description covers the essential aspects: what, how, special cases, and expected output. It omits details on `name` and `format`, and doesn't discuss error scenarios, but it's adequate for a well-scoped tool.
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?
Schema coverage is 0%, so the description carries the burden. It explains most parameters: `text` (Arena/MTGO list), `url` (Archidekt/Moxfield), `best_of` (1 or 3), `meta_share` (0..1), `tier`, and `allow_scrape`. However, `name` and `format` are not described, leaving a small gap.
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 imports a decklist and stores it for buildability analysis, distinguishing it from siblings like list_decks and search_cards. The verb 'import' and resource 'decklist' are specific and the purpose is explicit.
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?
It provides clear usage context by specifying that exactly one of `text` or `url` must be provided, and explains when `allow_scrape` is appropriate (MTGGoldfish, though unreliable). However, it doesn't explicitly name alternative tools or say when not to use this tool.
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 burden. It discloses the two-step ranking logic and the optional format filter. It does not detail return structure, but an output schema exists, and the behavior described is consistent and non-mutating.
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 sentence that is direct, front-loaded, and free of filler. It earns its place by explaining the core behavior and ranking criteria.
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?
For a tool with one optional parameter and an output schema, the description fully explains what the tool does and how it prioritizes, making it complete for an agent to select and invoke 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 schema has only 'format' with no description, and coverage is 0%. The description clarifies that format is optional and restricts to one format, adding meaningful context beyond the bare schema.
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 uses a specific verb ('rank') and resource ('cards to craft') across stored decks, and clearly states the ranking criteria (unlock count, then need count). This distinguishes it from siblings like deck_gap or best_buildable_deck.
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?
It gives clear context: operates across all stored decks, optionally filtered by format. It does not explicitly name alternatives or exclusion cases, but the context is sufficient for most use cases.
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, the description carries the full burden of explaining behavior. It discloses the ranking mechanism and the max_wildcards filter's effect. While it doesn't mention side effects (likely none) or prerequisites like requiring a collection, the core behavior is transparent and not misleading.
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 three sentences, front-loaded with the main purpose, and every sentence contributes essential information. No redundant filler.
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 moderate complexity (3 optional params, output schema present), the description fully covers purpose, usage, and parameters. The output schema handles return values, so nothing critical is missing.
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?
Despite 0% schema coverage, the description explicitly explains all three parameters: best_of ('1 or 3'), format, and max_wildcards ('hides decks needing more than that many wildcards'). This fully compensates for the missing schema descriptions.
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's function: ranking stored decks by 'meta strength x buildability' given the user's cards and meta. This distinguishes it from sibling tools that search cards or manage decks.
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 provides clear context for use ('given your cards and the meta') and explains filter options, but it does not explicitly compare with alternatives like deck_gap or craft_priority. Usage is clear, but exclusions or when-not-to-use are absent.
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/fkadriver/mtga-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server