Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool has a clearly distinct role: two loading tools differ by input source, and the query tools cleanly separate listing, fetching, and traversing dependencies in either direction. There is no meaningful overlap between any pair of tools.

    Naming Consistency4/5

    Most tools follow a consistent verb_noun snake_case pattern: load_paper, load_arxiv_paper, list_theorems, get_theorem, get_dependencies. The exception is where_used, which is a common idiom but breaks the verb_noun pattern slightly.

    Tool Count5/5

    Six tools is well-scoped for a theorem-graph browser: two loaders, one listing operation, one detail retrieval, and two graph traversal operations. Each tool earns its place without redundancy or bloat.

    Completeness5/5

    The tool surface fully covers the apparent read-only workflow: load a paper from local or arXiv source, enumerate its theorem-like nodes, retrieve node details, and traverse references in both directions. No critical operation is missing for the stated purpose.

  • Average 3.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
    • 26 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 must disclose behavior itself. It reveals persistence but not what opening or initializing does: whether it creates files, changes state, is idempotent, or modifies an existing directory. For a tool that may initialize (write) a workspace, this is a substantial 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 one concise sentence with the action front-loaded and no filler. It could earn a 5 if it added crucial path/behavior details without padding, but as written it is brief rather than optimally informative.

    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?

    Despite the tool's low parameter complexity, the complete absence of parameter documentation, annotation coverage, and output schema means the description must carry the full context. It omits return behavior, path semantics, and side effects of 'initialize,' leaving an agent with only a vague idea of how to invoke it correctly.

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

    Parameters1/5

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

    The single required parameter 'path' has zero schema description coverage, and the description never mentions it. The agent cannot infer whether path is a directory, a file, a repository, or a remote reference, or what constraints apply.

    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 uses a clear verb ('Open or initialize') and identifies the resource type ('persistent multi-paper workspace'), which separates it from sibling paper-level tools like load_paper and workspace_add_*. It is slightly vague about whether initialization creates a new artifact or opens an existing one, but the core purpose is recognizable.

    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 indicates when to call this tool versus the many workspace_* and paper-loading siblings. The phrase 'Open or initialize' implies it should precede paper operations, but the description never states this precondition or mentions any alternative.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the full burden of behavioral disclosure. It reveals that the tool depends on already-loaded state ('currently loaded paper'), but it does not describe what happens when no paper is loaded, whether the list has a defined order, or any other behavioral side effects. The return format is covered by an output schema, but behavioral context remains thin.

    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 with no filler words. Every phrase earns its place, and it is appropriately sized for a simple listing tool.

    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?

    The tool has one optional parameter, no annotations, and no parameter documentation, yet the description only explains the core action. It leaves unresolved important operational context: what 'kind' means, how to use it, whether a paper must be loaded, and how this tool relates to the other theorem-oriented siblings. The existence of an output schema reduces the need to describe return values, but significant gaps remain.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description makes no mention of the 'kind' parameter at all. An agent cannot tell what values 'kind' accepts, how it filters the results, or whether it is intended to distinguish theorem, lemma, corollary, or other environments. The description completely fails to compensate for the schema's lack of parameter documentation.

    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 uses a specific verb, 'List', and names the resource, 'theorem-like environments in the currently loaded paper.' It is clear what the tool does at a high level and is distinguishable from the sibling get_theorem, though it does not explicitly contrast itself with any sibling.

    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 given about when to use this tool versus alternatives like get_theorem, where_used, or get_dependencies. The phrase 'currently loaded paper' only implies that a paper must be loaded first, but this prerequisite is not made explicit and no exclusions or alternative routes are provided.

    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 exist, so the description carries the full burden of behavioral disclosure. It only states that metadata and counts are returned, but doesn't disclose error behavior (e.g., what happens if paper_id is invalid), whether the operation is read-only, or what 'counts' refer to (e.g., citations, downloads). The description is not misleading but is minimal.

    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 filler. It conveys the core purpose efficiently. However, it might be slightly too sparse for a tool with no annotations, but the conciseness itself is appropriate.

    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 is simple with one parameter and no output schema, the description could be sufficient if comprehensive. Yet it omits critical context: whether the workspace must be open (suggested by sibling open_workspace), what the return structure looks like (metadata fields, count types), and how missing IDs are handled. An agent cannot fully anticipate the tool's behavior from this description alone.

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

    Parameters2/5

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

    The schema has 0% description coverage for paper_id; only its name and type are provided. The description adds only that it refers to 'one stored paper', which clarifies the paper is in the workspace but doesn't explain ID format, how to obtain it, or any constraints. With minimal schema help and minimal description compensation, the parameter semantics are weak.

    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 states a clear verb ('Return') and a specific resource ('metadata and counts for one stored paper'). It is unambiguous about what is retrieved, though it does not explicitly distinguish itself from siblings like load_paper or workspace_get_dependencies. Implicitly, the 'metadata and counts' scope sets it apart, but the description doesn't name alternatives.

    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 given on when to use this tool versus its siblings. It doesn't mention prerequisites (e.g., needing to open the workspace first, which is implied by the open_workspace sibling), nor does it specify scenarios where this tool is preferred over others. The usage context is left entirely to inference.

    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 burden of behavioral disclosure. It communicates a read-only lookup, but says nothing about whether results are direct dependencies only, how the recursive flag affects traversal, or what the output nodes contain. These are meaningful behavioral details an agent would need.

    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 filler or redundancy. It is appropriately concise, though it sacrifices useful detail for brevity.

    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 core invocation is clear: provide a theorem_id and get referenced theorem-like nodes. The output schema likely covers return shape, and the schema defines the recursive parameter's type and default. However, the description lacks contextual guidance about recursion, the boundary between direct and transitive dependencies, and when to choose a sibling tool.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate for parameter documentation. It implicitly maps 'given theorem' to theorem_id, but the recursive parameter is completely unexplained in both the description and schema descriptions. The agent has to guess its semantics from the parameter name alone.

    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 uses a specific verb ('Return') with a clear resource ('theorem-like nodes referenced by the given theorem'), and the directional wording distinguishes it from the likely inverse sibling where_used. However, 'theorem-like nodes' is somewhat vague and the description does not explicitly call out the sibling distinction.

    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 prefer get_dependencies over alternatives such as where_used or get_theorem. The description implies dependency lookup, but does not state when recursive should be used or how this differs from reverse-reference lookup.

    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 the action and object; it does not explain recursive behavior, prerequisites, error cases, or side effects. The read-only nature is implied but not explicitly disclosed.

    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?

    A single sentence, front-loaded with the operation, with no filler or redundant wording. It is efficiently structured given the tool's apparent simplicity.

    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?

    Although an output schema exists, the description leaves key invocation details unexplained: the recursive parameter's meaning, workspace prerequisites, and how this differs from sibling tools. With no annotations and no parameter descriptions in the schema, this is insufficient for confident correct use.

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

    Parameters2/5

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

    Schema description coverage is 0%. The description hints at 'globally identified' mapping to global_theorem_id, but it says nothing about the recursive parameter or how it changes the result. An agent cannot determine whether recursive is necessary or what it controls.

    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 states a specific verb and object: 'Return dependencies of a globally identified stored theorem.' It clearly identifies the resource, but it does not explicitly distinguish itself from similar siblings like get_dependencies or where_used.

    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 about when to use this tool versus alternatives such as get_dependencies or where_used. The phrase 'globally identified stored theorem' implies a workspace/global context, but no exclusions or conditions are provided.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries the full burden. It reveals the high-level behavior (downloading and building a graph) but does not disclose important behavioral traits like network requirements, caching semantics, whether existing graphs are overwritten, or the meaning of the refresh and main_file parameters. This leaves an agent guessing about side effects.

    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 with no filler. Both the action and the expected outcome are present, and every word contributes to the purpose.

    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 three parameters, no annotations, and no output schema, the description is too thin to be complete. It omits usage context, parameter semantics, side effects, and what the returned theorem graph looks like, leaving too much implicit for an agent to safely invoke the tool.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate, but it does not explain any parameter. The word 'arXiv' hints that arxiv_id is the paper identifier, but there is no guidance on refresh semantics or main_file's role in choosing a file from the source project.

    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 states a concrete action ('Download an arXiv source project') and a concrete result ('build its theorem graph'), so an agent can tell what the tool does. It does not explicitly contrast itself with the sibling load_paper, which appears to serve a similar loading purpose, so it misses full sibling differentiation.

    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 described purpose implies when to use it: when an arXiv source project needs to be unpacked and its theorem graph constructed. However, it gives no explicit conditions, prerequisites, or exclusions, and it does not guide the agent on choosing between load_arxiv_paper and the sibling load_paper.

    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. It does disclose the response nature (full text and metadata for one node), but it does not mention error behavior, identifier requirements, side effects, or how the node is located. For a simple getter, this is modest but incomplete coverage.

    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 with no filler. Every word contributes to the core contract, making it easy to parse and remember.

    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?

    For a one-parameter getter with no output schema and no annotations, the description conveys the essential operation and return content. It leaves the agent to infer where to obtain a theorem_id (likely from list_theorems) and lacks error-case handling, but the simplicity of the tool keeps it mostly complete.

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

    Parameters2/5

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

    Schema coverage is 0% and the description adds no explanation of theorem_id beyond its name. It does not specify where the ID comes from, its format, or how it relates to other tools. The parameter name is suggestive, but the description itself provides almost no semantic value beyond the schema.

    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 states a clear verb (Return) and resource (full text and metadata for one theorem-like node), which distinguishes it from list_theorems and dependency/usage tools. The phrase 'theorem-like node' is slightly vague, but the intent is 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/5

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

    No guidance is given for when to choose this tool over siblings like list_theorems or get_dependencies. The agent must infer the appropriate context from the tool name and the required theorem_id. There is no explicit statement of prerequisites, alternatives, 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?

    'Add or replace' does disclose that this operation can mutate and potentially replace an existing project, which is valuable given no annotations. But it does not explain what replacement destroys, whether an active workspace is required, what happens if the project already exists, or any side effects. With no annotations, the description carries the full safety burden and misses critical details.

    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 with no filler or redundancy. It clearly communicates the core operation and object in a compact way, which is appropriate for this dimension.

    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?

    This is a mutating tool with no annotations and no output schema, yet the description omits prerequisites, the meaning of refresh, the role of main_file, and the consequences of replacement. The one-sentence description is insufficient for an agent to safely and correctly invoke this tool in varied situations.

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

    Parameters2/5

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

    The description provides no per-parameter detail for arxiv_id, refresh, or main_file, and schema description coverage is 0%. The words 'arXiv' and 'LaTeX project' add domain context, but the agent still has to guess how refresh behaves and what main_file means. This does not adequately compensate for the absent schema descriptions.

    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 states a specific verb ('Add or replace'), a concrete resource ('arXiv LaTeX project'), and a clear location ('active workspace'). It distinguishes itself from siblings like workspace_add_local_paper and load_arxiv_paper by specifying the arXiv/LaTeX domain and the workspace target.

    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 phrase 'in the active workspace' implies this tool should be used when the agent intends to add or replace an arXiv project in the currently open workspace. However, it does not explicitly state prerequisites, when to choose this over load_arxiv_paper or workspace_add_local_paper, or when replacement is appropriate.

    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 must carry the full burden of disclosing behavior. It does reveal that the tool can replace an existing project, which hints at destructive/upsert behavior, but it does not explain what replacement affects, whether an active workspace is required, or any side effects.

    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, focused sentence with no filler. The core action and scope are front-loaded, and every word adds meaning.

    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?

    For a mutating tool with no annotations, no output schema, and two required parameters, this is incomplete. An agent cannot tell whether 'path' is a directory or file, where 'paper_id' comes from, or what happens when the project already exists. The prerequisite of having an active workspace is also left implicit.

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

    Parameters2/5

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

    Schema coverage is 0% and the description does not explain what 'path' or 'paper_id' mean, their formats, or how they relate to the LaTeX project. The description adds minimal context but does not compensate for the missing parameter documentation.

    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 names a specific action ('add or replace'), a clear resource ('a local LaTeX project'), and a scope ('in the active workspace'). The 'local' qualifier distinguishes it from the arxiv-based sibling tool.

    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 this is for local LaTeX projects, which contrasts with workspace_add_arxiv_paper, but it never explicitly names the alternative or states when not to use this tool. The usage context is reasonably clear but not fully explicit.

    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 behavioral burden. 'Return' strongly implies a read-only operation and 'stored paper' signals a prerequisite, but the description does not explain the meaning or behavior of include_unresolved or what happens when citations are missing.

    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 entire description is one compact sentence with no filler. The core action and key directional choice are front-loaded, and every word contributes to meaning.

    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 tool is simple and has an output schema, so return-value details are not required. However, the description omits the meaning of include_unresolved and provides no routing guidance among the citation-related sibling tools, leaving moderate gaps for an agent deciding how to call it.

    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 0%, so the description must compensate. It adds useful semantics for paper_id ('stored paper') and direction ('incoming or outgoing'), but it leaves include_unresolved undefined even though it is a parameter with a default.

    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 uses a specific verb ('Return'), a specific resource ('citation evidence'), and clarifies the two possible directions ('incoming or outgoing') for a stored paper. It is clear, though it does not explicitly contrast itself with sibling tools such as workspace_get_dependencies or where_used.

    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 the other citation/dependency-related siblings. The phrase 'for a stored paper' implies a prerequisite, but no explicit context, exclusions, or alternatives are 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?

    No annotations are provided, so the description carries the full behavioral burden. It usefully discloses that only the active workspace is searched and that both titles and bodies are matched. However, it does not mention whether an active workspace must already be open, whether the operation is read-only, or how optional filters like paper_id and kind affect the search.

    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 with no filler or redundancy. Every word contributes meaning about the tool's scope and search target.

    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 description is contextually adequate for a straightforward search tool and benefits from having an output schema. However, with no annotations and no parameter clarification, an agent must guess at the semantics of kind and paper_id and whether a workspace must already be loaded. The description is minimally viable but has clear gaps.

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

    Parameters2/5

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

    Schema description coverage is 0%, and the description does not name or explain any of the four parameters. It adds some meaning for 'query' by saying titles and bodies are searched, but kind, limit, and paper_id are left entirely to inference 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 uses a specific verb ('Search'), a concrete resource ('theorem titles and bodies'), and a clear scope ('across the active workspace'). It distinguishes itself from sibling tools like list_theorems (listing) and get_theorem (fetching a specific theorem) by emphasizing query-based text search.

    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 implies a text-search use case but gives no explicit guidance on when to use this tool versus alternatives such as list_theorems or get_theorem. It does not state any conditions, exclusions, or prerequisites like 'use when you have a textual query' or 'use list_theorems to browse without a query.'

    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 provided, the description carries the full burden of behavioral disclosure. It communicates that this is a read-only query returning referencing nodes, but does not state whether references are direct or transitive, nor how results are ordered or limited.

    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?

    A single 10-word sentence that front-loads the verb and contains no filler. Every word earns its place.

    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?

    For a one-parameter read tool with an output schema covering return shape, the description is nearly complete. The remaining gaps — direct vs transitive reference semantics and what 'theorem-like nodes' includes — are modest but would help an agent set correct expectations.

    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 0%, so the description must compensate. 'the given theorem' ties the sole required parameter (theorem_id) to the query semantics, but adds no detail on ID format or provenance (e.g., that IDs come from list_theorems or get_theorem).

    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 uses a specific verb ('Return') and identifies the resource ('theorem-like nodes that reference the given theorem'), making the reverse-reference-lookup intent clear. It implicitly contrasts with the sibling get_dependencies (forward dependency lookup), though it never names a sibling and 'theorem-like' leaves the exact node types somewhat vague.

    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 usage case is implied: given a theorem_id, find what references it. However, there is no explicit when-to-use guidance, no exclusions, and no mention of get_dependencies as the forward-direction alternative.

    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 states the action and outcome but does not disclose whether the graph is returned or stored, whether a previous loaded paper is replaced, whether there are side effects, or any other operational consequences. An agent is left to guess what happens after invocation.

    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?

    A single sentence that is front-loaded with the action and resource and contains no filler or redundant phrasing. Every word contributes to meaning.

    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?

    For a one-parameter tool with low complexity, the core purpose is conveyed clearly. However, there is no output schema and no annotations, so the description should ideally explain what the tool returns or what state it creates for subsequent sibling tools like list_theorems and get_theorem. This leaves the post-conditions somewhat ambiguous.

    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 schema only defines a bare 'path' string with 0% description coverage. The description adds that this path should point to a local LaTeX paper, which is essential disambiguation, especially against load_arxiv_paper. It could add constraints like file extension or path type, but the one-parameter case is well served.

    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 states a specific verb 'load' and a specific resource 'local LaTeX paper', plus the outcome 'build its theorem graph'. The word 'local' distinguishes this from the sibling load_arxiv_paper, so an agent can tell them apart without additional context.

    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 word 'local' implies this tool is for local LaTeX files rather than arXiv papers, but the description never explicitly says when to use this tool vs load_arxiv_paper or names the alternative. Usage guidance is thus only implied, not stated.

    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 behavioral disclosure. 'List all papers' conveys a read-only enumeration operation, but it does not mention what happens when no workspace is active, nor ordering or pagination. These are not severe for a zero-parameter list, but the state dependency is only implied.

    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?

    A single concise sentence, front-loaded with the action and resource. No filler, no repetition of the tool name, and every word adds meaning.

    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?

    For a zero-parameter list tool with an output schema, the description supplies the essential context: scope ('active workspace') and operation ('list all'). It is complete enough for the common case, though it could explicitly tie to open_workspace as a prerequisite.

    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, so the input schema is empty. The description has no parameter semantics to add; the baseline of 4 applies.

    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 names a concrete action ('List'), the object ('papers'), and the scope ('active workspace'). It clearly distinguishes from sibling tools like workspace_get_paper (single paper) and workspace_add_* (adding papers) without needing to inspect schemas.

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

    Usage Guidelines4/5

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

    It provides clear context: the operation targets the active workspace, implying it should be used after a workspace is open and for enumerating all papers. It does not explicitly name alternatives or say when not to use it, so it stops short of full routing guidance.

    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

papergraph-mcp MCP server

Copy to your README.md:

Score Badge

papergraph-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/lotchuazzz-crypto/papergraph-mcp'

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