Skip to main content
Glama
culstrup

Unanet GovCon ERP MCP Server

by culstrup

Server Quality Checklist

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

  • Disambiguation4/5

    Most tools are clearly distinct, such as timesheet and expense functions. However, the project-related get tools (get_projects, get_project_details, get_project_status, get_billing_status) overlap in purpose, though each targets a different aspect of a project, which could cause some initial confusion.

    Naming Consistency5/5

    All tools consistently follow the unanet_verb_noun pattern, using clear and predictable verbs like get, update, submit, create, approve, and generate. This uniform structure makes the tool set highly navigable.

    Tool Count5/5

    With 15 tools covering projects, timesheets, expenses, CRM, and billing, the count is well within the typical 3-15 range and each tool serves a specific purpose without bloat. The scope is appropriate for an ERP connector.

    Completeness3/5

    The tool set covers core workflows but has notable gaps: expenses only have submit (no get or approve), opportunities only have create, leads only have update, and there is no project creation or deletion. This uneven CRUD coverage means some operations are missing, though the core actions are present.

  • Average 2.8/5 across 15 of 15 tools scored.

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

  • This repository is archived. Archived repositories automatically receive an F maintenance tier.

  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior1/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It merely restates the tool's purpose ('update lead information') without revealing effects, permissions, idempotency, or any other behavioral traits.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness2/5

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

    The description is extremely short (one sentence), but it under-specifies rather than being concise. It provides no structural value beyond the tool name, so it is not appropriately sized.

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

    Completeness1/5

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

    With 5 parameters, no output schema, and no annotations, the description is severely incomplete. It gives no context about required fields, validation, return values, or side effects, making it inadequate for an agent to use confidently.

    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 adds no meaning to the parameters. It does not explain what 'value', 'probability', or 'notes' mean in the lead context, nor how they are used in an update.

    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 tool updates lead information in Unanet, using a specific verb ('update') and resource ('lead'). This distinguishes it from sibling tools like unanet_update_project_budget or unanet_create_opportunity.

    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 alternatives. It does not mention prerequisites, whether it is for existing leads only, or how it relates to create/read operations.

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

  • Behavior1/5

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

    The description merely restates the tool name with no additional behavioral disclosure. There are no annotations, so the description should explain side effects, permissions, duplicate handling, or required fields, but it does not.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

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

    The description is a single, concise sentence that is easy to parse, but it lacks any additional structure or useful detail. It is not a tautology but is minimally informative.

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

    Completeness1/5

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

    Given the tool has 7 parameters, no annotations, and no output schema, the description is far too sparse. An agent cannot determine required fields, potential errors, or expected response without more information.

    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 input schema has no descriptions for its seven parameters, and the description does not mention any parameter names or constraints. The agent must infer meaning from 'firstName', 'lastName', and 'email' without any added context.

    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 tool's function: creating a new contact in Unanet. It uses a specific verb ('Create') and names the resource ('contact'), which distinguishes it from sibling tools like updating leads or creating opportunities.

    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. There is no mention of prerequisites, whether this is for new contacts only, or how it differs from update operations.

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

  • Behavior1/5

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

    No annotations exist, so the description carries full responsibility for disclosure. It merely restates the tool's name ('Submit an expense report') without any details on side effects, required permissions, error states, or what happens after submission.

    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 sentence with no redundant words, making it concise and front-loaded. However, it is too brief to be fully useful, but for conciseness it's appropriate length.

    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 submit action with 6 parameters, no annotations, and no output schema, the description is severely underspecified. It fails to cover prerequisites, success/failure behavior, or parameter details, leaving the agent with too little context to invoke the tool 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?

    With only 33% schema description coverage, the description must compensate, but it mentions no parameters at all. It adds no value beyond the schema fields that have descriptions.

    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 the specific verb 'Submit' and names the resource 'an expense report', clearly indicating the action. It distinguishes from sibling 'unanet_submit_timesheet' by the resource type, though it doesn't explicitly contrast them.

    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?

    Provides no guidance on when to use this tool versus alternatives like unanet_submit_timesheet or unanet_update_project_budget. It only states the basic action, leaving the agent to infer usage from the name.

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

  • Behavior1/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure, but it says nothing about side effects, permissions, validation, or failure modes. This is a critical gap for a mutation 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/5

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

    The description is a single sentence that is front-loaded and free of fluff. It effectively communicates the tool's primary action without unnecessary detail.

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

    Completeness1/5

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

    For a creation tool with 8 parameters, no annotations, and no output schema, this description is far from complete. It omits required fields, constraints, and behavioral context, making it inadequate for an agent to invoke 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 description adds zero information about the 8 parameters. Schema description coverage is only 13%, so the agent must rely on parameter names alone, leaving ambiguous fields like 'stage' undefined.

    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 'Create' and the resource 'opportunity' within Unanet, distinguishing it from sibling tools like unanet_create_contact. It is specific and 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 on when to use this tool versus alternatives. It merely states the action without any context, exclusions, or mention of related tools like unanet_update_lead.

    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 indicates a read operation, but it claims to return 'all projects' while the schema includes a limit parameter defaulting to 50, implying potential truncation. It also does not mention how status filtering affects results or any pagination behavior, leaving key behaviors undisclosed.

    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 concise, only eight words, and front-loads the core action. It is efficient and free of fluff. However, it is under-specified for a tool with two optional parameters, but conciseness itself is strong and the sentence is structurally sound.

    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 lack of annotations, output schema, and the presence of optional parameters, the description is too sparse. It does not explain how to use the limit or status filters, what the return value looks like, or that 'all projects' may be limited. This leaves critical context missing for an agent to correctly invoke the tool beyond its basic purpose.

    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 schema description coverage is 0%, and the description does not mention the 'limit' or 'status' parameters at all. Since the schema already provides basic definitions (types, enum, defaults), the description adds no additional meaning. For a tool with low schema coverage, the description must compensate, but it fails to do so.

    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 the specific verb 'Get' and identifies the resource as 'a list of all projects' from Unanet, which clearly indicates a list operation. This distinguishes it from sibling tools like unanet_get_project_details and unanet_get_project_status, which target specific project details or statuses. However, it does not explicitly name alternatives, so it falls short of a perfect 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?

    The description provides no explicit guidance on when to use this tool versus alternatives. It simply states the action without mentioning contexts, exclusions, or comparing to the many sibling tools. The only implied usage is that it lists all projects, but no alternative scenarios are addressed.

    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 is the only source of behavioral transparency. It only says 'generate and retrieve' without disclosing side effects, whether the report generation is synchronous or asynchronous, required permissions, or data scope. This is insufficient for a tool that likely creates and returns reports.

    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, compact sentence with no redundant words. It is front-loaded and easy to parse, though it sacrifices detail for brevity. The conciseness itself is good, but it borders on under-specification.

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

    Completeness2/5

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

    Given the tool has 5 parameters (including 2 enums) and no output schema, the description is far too sparse to be complete. It does not explain the variants of financial reports, the meaning of format options, or what the return value looks like. This leaves significant gaps for an agent to select and invoke the tool correctly.

    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 input schema covers only 60% of parameters (endDate, projectId, startDate have descriptions, while format and reportType do not). The description adds no parameter-level meaning, such as what report types are available or how format affects the output. The agent must infer parameter semantics solely from the sparse 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 action ('generate and retrieve') and resource ('financial reports from Unanet'), which is specific enough to understand the basic purpose. However, it does not distinguish this tool from sibling tools like unanet_get_billing_status or unanet_generate_invoice, so it lacks 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 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 alternatives. It does not mention prerequisites, typical scenarios, or situations where a different tool would be more appropriate. This leaves the agent without contextual cues for tool selection.

    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 does not mention whether the operation is read-only, does not describe the return format, or any side effects. The generic 'Get' implies a read operation but provides no explicit safety or context.

    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 sentence with a clear verb and object, keeping it appropriately concise. It is front-loaded and easy to parse, with no wasted words.

    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 tool with no output schema and no annotations, the description should explain return values or usage context. It lacks information on what 'billing status and information' includes, and does not differentiate from sibling tools, making it incomplete for an agent to invoke correctly.

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

    Parameters3/5

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

    The schema already documents projectId with 100% coverage, so the description does not need to add parameter details. However, the description does not add any semantic context beyond the schema, such as examples or what constitutes a billing status.

    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 'Get' and resource 'billing status and information for a project', clearly indicating the tool's function. It is distinguishable from siblings like unanet_get_project_status by the billing focus, though it does not explicitly 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 provided on when to use this tool versus alternatives like unanet_get_project_status or unanet_get_project_details. The description only states what it does, leaving the choice implicit.

    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 for behavioral disclosure. It only says 'get' and gives no information about return format, permissions, side effects, error behavior, or whether the response includes contacts.

    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 concise sentence with no wasted words and front-loads the action. It is appropriately brief for the tool's apparent simplicity, though it omits useful detail that would make it more helpful.

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

    Completeness2/5

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

    With no output schema and no annotations, the description should provide more context about what 'detailed information' includes and how the includeContacts parameter affects results. It leaves significant gaps that an agent would need to infer.

    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 describes companyId but includeContacts is undocumented. The description adds no parameter-level meaning and does not compensate for the incomplete schema documentation, despite the schema coverage being only 50%.

    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 ('Get') and resource ('company'), which distinguishes it from sibling tools focused on projects, timesheets, and invoices. However, 'detailed information' is somewhat generic and does not specify what fields or scope are included.

    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 when to use the tool (when company details are needed) based on the resource name, but it provides no explicit alternatives, prerequisites, or exclusions. It does not mention when not to use it or how it compares to other tools.

    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 transparency burden. It only restates the function without clarifying read-only behavior, what 'detailed information' includes, or any potential side effects. This is a basic retrieval, but the description adds little beyond the tool name.

    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 with no filler, effectively front-loaded and concise.

    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 simple single-parameter retrieval tool, the description is too sparse. It lacks any context about return format, usage context, or differentiation from sibling tools, leaving the agent to infer when and how to invoke it correctly.

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

    Parameters3/5

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

    The input schema covers the single parameter (projectId) with a clear description, so schema coverage is 100%. The description does not add extra semantic detail, but the baseline of 3 is appropriate given the schema's completeness.

    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 (get) and the resource (detailed information about a specific project). It distinguishes itself from siblings like unanet_get_projects by focusing on a single project, though 'detailed' is 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 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 unanet_get_projects or unanet_get_project_status. The description does not mention exclusions or preferred scenarios.

    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?

    Annotations are absent, so the description carries the full burden. It indicates a read operation ('Get') but provides no behavioral detail such as response format, contained data fields, permission requirements, or whether the data is real-time or cached. The meaning of 'dashboard data' is left entirely undefined.

    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 that names the action and resource without fluff. However, the term 'dashboard data' is vague, slightly undermining clarity, but this is a conciseness and structure question, not a completeness issue.

    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?

    With no output schema, the description should clarify what 'current status and dashboard data' means, but it does not. The tool is also ambiguous against sibling unanet_get_project_details, and no usage context or return details are provided, making the description insufficient for an agent to confidently invoke the tool.

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

    Parameters3/5

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

    The schema fully documents the single parameter projectId with 'The ID of the project', and the description adds no extra semantic detail. Since schema coverage is 100%, the baseline of 3 applies; the description neither enhances nor clarifies 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 uses a specific verb ('Get') and identifies the resource ('project status' and 'dashboard data'), clearly conveying the tool's primary purpose. However, it does not distinguish itself from the sibling tool unanet_get_project_details, so the boundary is implicit rather than explicit.

    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 alternatives like unanet_get_project_details or unanet_get_billing_status. The description implies it is for retrieving status/dashboard information, but it neither states exclusive use cases nor mentions any 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?

    No annotations are provided, so the description carries the full burden. It only says 'Retrieve timesheets for a date range' — this is already implied by the tool name. It does not disclose default status behavior (e.g., whether 'All' is used), response format, pagination, or any read-only guarantees beyond the verb 'Retrieve' which is inferred.

    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 concise sentence with no fluff. It front-loads the action and resource. However, its brevity borders on under-specification, but that is a completeness issue, not conciseness.

    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 no output schema and no annotations, so the description should provide more context. It omits any mention of default status behavior, possible filters, response structure, or authentication requirements. For a 3-parameter tool, this is insufficient for confident 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 67%, but the description adds no meaning beyond the schema. It mentions 'date range' which aligns with startDate/endDate, but the schema already describes those. The status parameter, which is not covered in the description, is left entirely unexplained. The description does not compensate for the missing schema coverage.

    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 'Retrieve' and names the resource 'timesheets', with a date-range scope. This clearly distinguishes it from sibling tools like submit_timesheet or approve_timesheet, and it is not a tautology.

    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 does not state when to use this tool versus alternatives. There is no mention of exclusions, prerequisites, or related tools (e.g., when to use submit_timesheet instead). It only implies its purpose through the verb and resource.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. However, it merely says 'Submit time entries to Unanet' without revealing what happens upon submission, such as whether it is irreversible, requires prior approval, or affects existing records. This is a significant gap for a mutation tool, as the agent cannot assess potential side effects or required permissions.

    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 one short sentence with no unnecessary words. It is front-loaded with the action and resource, and the phrase 'to Unanet' reinforces the destination without being redundant. 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 the moderate complexity (an array of entries with nested fields) and absence of annotations or output schema, the description is insufficient. It does not clarify the submission workflow, expected outcomes, or any constraints. The agent lacks essential context to use the tool correctly beyond the bare schema.

    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 input schema has 0% description coverage, and the description does not compensate. It does not explain what 'entries' means or what fields are necessary (e.g., projectId, date, hours) beyond what the schema already shows. The agent gets no added semantic meaning from the description.

    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 ('Submit') and the resource ('time entries'), making it immediately clear what the tool does. It also distinguishes itself from sibling tools like unanet_submit_expense (expense submission) and unanet_get_timesheets (retrieval), correctly identifying its unique scope of submitting time entries.

    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 alternatives. It does not mention any prerequisites, exclusions, or conditions under which another sibling tool (e.g., unanet_approve_timesheet or unanet_get_timesheets) would be more appropriate. The only implied usage is that one would use it to submit time entries, which offers no strategic direction for an agent.

    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 must disclose side effects and consequences. 'Generate' is vague—it does not clarify whether this creates a draft, posts the invoice, triggers billing workflows, or requires specific permissions. The agent is left unaware of the tool's impact on project data or external systems.

    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 redundant wording. It is appropriately sized for the tool's simple purpose, containing no filler or unnecessary details.

    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 no output schema and no annotations, so the description must explain return values, side effects, and edge cases. It does none of this—there is no mention of what the agent can expect after calling the tool, such as invoice ID, status, or errors. This is a significant gap for an action with likely financial implications.

    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 covers descriptions for projectId, periodStart, and periodEnd, but notes and includeExpenses lack explanations. The description adds no meaning beyond 'for a project', which is already evident from the schema. With 60% schema coverage and zero additional parameter context, this dimension is weak.

    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 'generate' and the resource 'invoice for a project', making the tool's purpose unambiguous. It is distinct from sibling tools, none of which generate invoices, so it is easily distinguished.

    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 alternatives like unanet_get_billing_status or unanet_get_financial_report. It fails to mention prerequisites, such as needing billable project hours or a finalized timesheet, leaving the agent without context for selection.

    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 disclosing behavioral traits. It only indicates a write operation ('Update') without specifying whether the budget is overwritten, whether permissions are required, or what the response will look like.

    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 concise sentence that front-loads the core purpose. There is no redundant or unnecessary information.

    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 simple 3-parameter update tool with full schema coverage, the description is minimally viable. However, it lacks any mention of return values, error behavior, or side effects, and there is no output schema or annotations to compensate.

    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%, so the baseline is 3. The description mentions 'budget' and 'specific project' but adds no meaningful information beyond the schema, which already describes all three parameters adequately.

    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 ('Update') and the resource ('budget for a specific project'), distinguishing it from sibling tools like get_project_status or submit_timesheet. It is unambiguous and specific.

    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 (e.g., get_project_details for viewing budget). There are no prerequisites, exclusions, or context about when updating a budget 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 disclose behavioral traits, but it only states the action. It does not mention side effects (e.g., irreversible, sends notifications), required state of the timesheet, or response format. This is minimal beyond the name.

    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 concise sentence with no unnecessary words, front-loading the essential action.

    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 simple tool shape (2 params, no output schema), the absence of annotations means the description should supply context about the approval workflow, such as checking timesheet status or using get_timesheets first. It lacks this, leaving the agent under-informed.

    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 having clear descriptions (timesheetId and comments). The tool description adds no extra parameter meaning, so the baseline of 3 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 uses a specific verb 'Approve' with the resource 'timesheet', making the action clear. It is distinct from siblings like submit_timesheet and get_timesheets, which are different operations.

    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 it is used for approving timesheets but provides no explicit guidance on when to use it versus alternatives, nor any prerequisites like timesheet status or required permissions.

    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

unanet-mcp-server MCP server

Copy to your README.md:

Score Badge

unanet-mcp-server 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/culstrup/unanet-mcp-server'

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