Skip to main content
Glama

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.3.1

  • Disambiguation5/5

    Each tool has a clear, distinct purpose: one runs the filter, three retrieve specific EFF resources, two manage BibTeX listings, and one searches citations. No two tools overlap in functionality.

    Naming Consistency4/5

    Most tool names follow a verb_noun pattern (list_eff_resources, get_skill_instructions, search_citations), but 'ethics_filter' deviates by omitting a verb prefix, making it slightly inconsistent.

    Tool Count5/5

    Seven tools is a reasonable number for a server that provides both an ethics filter framework (with supporting resources) and a citation search utility. It is neither sparse nor bloated.

    Completeness4/5

    The EFF workflow is fully covered: run the filter, fetch instructions, rubric, and examples. The BibTeX side lacks explicit get-by-id or management operations, but list and search are sufficient for read-only citation lookup.

  • Average 3.6/5 across 7 of 7 tools scored. Lowest: 2.9/5.

    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
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • 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

  • 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 merely says 'Run' without explaining what the framework does, whether it is a safe read operation, what side effects occur, or what output to expect. This is a significant transparency 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/5

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

    The description is a single, front-loaded sentence with no fluff. It conveys the core action and input efficiently. While brief, it avoids verbosity and earns its place as a concise summary.

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

    Completeness3/5

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

    The presence of an output schema reduces the need to describe return values. However, the description still lacks context about the framework's purpose, when to invoke it, and what the user should expect. It is adequate for a simple trigger but leaves gaps for an unfamiliar 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 both parameters documented. The description adds no extra parameter semantics, but the schema already provides adequate meaning. Baseline of 3 is appropriate since the description does not need to compensate.

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

    Purpose4/5

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

    The description clearly states the action ('Run') and the resource ('Ethics Filter Framework') on a specific input ('a user story'). This distinguishes it from sibling tools that list resources or provide instructions. However, it does not explicitly contrast with siblings, so it misses the top 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/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 like get_dimensions_rubric or get_examples. There is no mention of prerequisites, the intended workflow, or situations where this tool is preferred. This leaves the agent without directional context.

    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 burden of behavioral disclosure. It implies a read-only listing operation, but does not specify response format, access requirements, or any constraints. This is a minimal disclosure that lacks rich behavioral context.

    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, well-structured sentence that front-loads the action and clearly specifies the object. Every word contributes to the meaning, achieving maximum conciseness without sacrificing clarity.

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

    Completeness3/5

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

    Given the tool's simplicity (0 params, output schema exists), the description is minimally adequate. However, it lacks any context about what 'EFF' stands for or when this listing is appropriate versus other resource listing tools, so it is not fully complete for an agent unfamiliar with the domain.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The tool takes 0 parameters, so the schema is trivially complete with 100% coverage. The baseline score for 0 params is 4, and the description adds no parameter-specific semantics because none are needed. It neither enhances nor detracts from the schema.

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

    Purpose5/5

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

    The description clearly states the action ('List') and the resource ('available EFF MCP resources'), including that descriptions are returned. This distinguishes it from the sibling tool 'list_bib_resources' by specifying 'EFF' resources.

    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?

    There is no guidance on when to use this tool versus alternatives such as 'list_bib_resources'. The description does not mention any conditions, exclusions, or alternative tools, leaving the agent to infer usage from the resource 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 disclosing behavioral traits. It only states that the tool returns minimal metadata, but does not reveal whether the operation is read-only, whether permissions are required, or what side effects (if any) exist. This is insufficient for transparent behavior.

    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 two sentences long, front-loaded with the core purpose, and contains no unnecessary words. It efficiently conveys what the tool does and what it returns.

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

    Completeness3/5

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

    Given the simplicity of the tool (one parameter, no annotations), the description is mostly sufficient but lacks context on how it differs from sibling tools like list_bib_resources. The phrase 'minimal metadata' is vague, and without an explanation of limitations or return structure, the agent may not fully understand the tool's scope.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema has only a 'query' string parameter with no description, so schema coverage is 0%. The description compensates by explaining that the query is a string searched in any field, adding meaningful semantics beyond the schema. It does not specify format or syntax details, but provides the essential meaning.

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

    Purpose5/5

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

    The description clearly states that the tool searches BibTeX entries for a query string in any field, which specifies the action (search), the resource (BibTeX entries), and the scope (any field). This distinguishes it from sibling tools like list_bib_resources, which likely lists all resources rather than searching.

    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 is provided on when to use this tool versus alternatives such as list_bib_resources. The description does not mention any preconditions, exclusions, or alternative tools, leaving the agent to infer usage context.

    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 bears full responsibility for disclosing behavioral traits. It states the tool 'returns' data, implying a read-only operation, but does not mention any side effects, authentication requirements, or limitations. It adds no context beyond the basic action.

    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, front-loaded sentence that directly states the tool's function. Every word contributes 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/5

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

    Given the tool has no parameters, no annotations, and an output schema already exists, the description adequately covers what the tool does. It could add context about what 'EFF' means or when to prefer this over list_eff_resources, but the core functionality is clear and complete for a simple getter.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The tool accepts zero parameters, and the baseline for 0 params is 4. The description correctly omits parameter details since none exist, and the schema with empty properties and 100% coverage confirms this, so no additional semantics are needed.

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

    Purpose5/5

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

    The description uses a specific verb ('Return') and clearly identifies the resource ('EFF skill instructions and workflow') with a URI scheme reference. It distinguishes itself from sibling tools like list_eff_resources by focusing on instructions/workflow rather than resource listing.

    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?

    The description provides no guidance on when to use this tool versus siblings. It does not state any prerequisites, exclusions, or alternative tools. Sibling names imply different purposes, but no explicit direction is given.

    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 full burden. It states the action ('Return') and the resource (eff://examples), which implies a non-destructive read. However, it does not disclose any additional behavioral details such as return format nuances, performance considerations, or whether it returns a list or single item. For a simple getter, this is adequate but not rich.

    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, front-loaded sentence that directly states the tool's action and resource. No wasted words or redundant information.

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

    Completeness4/5

    Given 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 is adequately complete. It clearly states what is returned. However, it could benefit from a brief note on how this differs from list_eff_resources or when to prefer this tool, but that is not strictly necessary for a getter with no inputs.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The tool has zero parameters, so the baseline is 4. The description does not need to explain parameters; it adds the context that the resource is located at 'eff://examples', which is helpful but not required.

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

    Purpose5/5

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

    The description uses the specific verb 'Return' and clearly identifies the resource as 'EFF worked examples and templates' with an explicit path 'eff://examples'. This distinguishes it from sibling tools like list_eff_resources or get_skill_instructions.

    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 usage context is provided. The description does not mention when to use this tool versus alternatives, nor does it state any exclusions or prerequisites. For a tool with zero parameters, some implicit usage might be inferred, but there is no explicit 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. It states a read-only 'Return' operation and identifies the resource, but it does not disclose any additional behavioral traits (e.g., what the output contains, whether special permissions are needed, or any side effects). For a zero-parameter getter this is adequate but minimal.

    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, front-loaded sentence that conveys the essential action and target resource without any wasted words.

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

    Completeness4/5

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

    Given the tool's simplicity (zero parameters, output schema present), the description sufficiently identifies what is returned. It loses one point because it does not explain the acronym EFF or how this rubric relates to sibling tools, which would help an agent in a broader workflow.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The tool has zero parameters and the input schema is empty with 100% schema coverage, so the description need not elaborate on parameter semantics. The baseline for zero parameters is 4.

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

    Purpose5/5

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

    The description uses a specific verb 'Return' with a precise resource: 'EFF rubric and dimension definitions' plus the protocol URI (eff://dimensions). This clearly distinguishes it from siblings like list_eff_resources, which lists resources rather than returning the rubric definitions.

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

    Usage Guidelines3/5

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

    The description implies the tool should be used when an agent needs the EFF rubric/dimension definitions, but it provides no explicit when-to-use guidance, exclusions, or references to alternative sibling tools. The URI hint adds context but doesn't fully clarify when to choose this over list_eff_resources.

    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 transparency burden. It discloses that it lists all entries (no filtering) and returns only minimal metadata, which is useful. However, it does not mention pagination, limits, or read-only nature explicitly, though 'list' implies a safe read 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/5

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

    The description is a single sentence, front-loaded with the verb and resource, and every word adds value. No unnecessary details.

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

    Completeness5/5

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

    The tool is simple (no params, read-only list), and an output schema exists so return values are defined. The description sufficiently explains the scope ('all') and output nature ('minimal metadata', 'MCP resources'), making it complete for this simple tool.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    There are zero parameters, and schema description coverage is trivially 100%. The baseline for 0 params is 4, and the description adds no conflicting or extra param details, which is appropriate.

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

    Purpose5/5

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

    The description clearly states the verb 'List' and the resource 'BibTeX entries', with the output format 'as MCP resources'. It distinguishes from sibling tools like list_eff_resources by specifying BibTeX entries specifically.

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

    Usage Guidelines3/5

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

    The description implies usage when all BibTeX entries are needed, but it does not explicitly mention alternatives or exclusions. There is no comparison to sibling tools like search_citations, leaving the 'when to use' slightly 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

eff-mcp MCP server

Copy to your README.md:

Score Badge

eff-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/vs3kulic/eff-mcp'

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