proposal-generator-mcp
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Each tool has a clearly distinct purpose: retrieving mandatory sections, listing templates, fetching company profile, querying rate cards, verifying countries, creating/validating project rate cards, and generating the final proposal. Even the three rate-card-related tools are well separated: get_rate_card fetches rates, list_rate_card_countries enumerates available countries, and resolve_rate_card_country previews selection. No two tools overlap in function.
Naming Consistency5/5All tool names follow a consistent snake_case verb_noun pattern with clear verbs (get, list, resolve, create, validate_and_reload, generate). Rate-card tools share the descriptive 'rate_card' suffix, and the overall naming is predictable and scannable. Deviations are none—even the longer validate_and_reload_project_rate_card is internally consistent.
Tool Count5/5With 9 tools, the server is well-scoped for its purpose of generating branded proposals. Each tool earns its place in a logical pipeline—from fetching requirements to creating and validating a project-specific rate card to producing the final document. The count is within the ideal 3-15 range and neither feels sparse nor bloated.
Completeness5/5The tool surface covers the full proposal-generation lifecycle: mandatory section structure, template selection, company profile retrieval, rate card lookup and creation, validation, and final generation. There are no obvious dead ends—every step required to produce a proposal is supported, and the workflow is clearly documented via tool descriptions and stage markers.
Average 4.4/5 across 9 of 9 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 8 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.
If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.
MCP servers without a LICENSE cannot be installed.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description itself must convey behavior. It states 'returns' implying a read-only operation, and 'condensed summary' indicates the output is a digest. However, it does not explicitly state safety, side effects, or any prerequisites. The description is sufficient for a simple getter but lacks explicit assurance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the action and result, efficiently conveying both what it returns and its intended use. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema exists, the description is complete. It explains the content and purpose sufficiently for an agent to decide when to call it. No missing essential information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the baseline is 4. The description does not need to explain parameters. Schema coverage is 100% trivially, and no additional meaning is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a condensed summary of the company's services, capabilities, and differentiators, with a specific use case for executive sections. It is a distinct resource but does not explicitly differentiate from siblings; however the resource type 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 Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear context for use: 'to be used for writing the Executive Summary and Understanding sections.' This gives a specific scenario but does not mention when not to use it or name alternative tools. It is clear enough for an agent to know the intended purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses key behaviors: country aliases are resolved safely ('never uses an ambiguous substring match'), fallback to Constants sheet occurs when no country sheet exists ('clearly identified as USD day-rate fallback'), and it states the return format ('compact JSON with the selected country sheet/fallback metadata and the exact quote rows'). The read-only nature is implied by 'look up' but not explicit; still, it provides solid behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured as a docstring with clear sections: a one-line purpose, Args bullet points with concise explanations, and a Returns note. It is front-loaded with the main purpose and every sentence adds value. Slightly verbose due to parameter details, but efficiently organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read/lookup tool with three parameters and an output schema, the description covers all critical aspects: parameter semantics, fallback behavior, and return format. It does not discuss error handling for invalid countries or authentication, but these are minor for a read-only tool. The description is complete enough for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does so thoroughly: country explains expected format ('verified country') and alias resolution; roles explains it's optional, provides an example, and states omission yields all roles; level explains exact seniority filter with examples ('Junior', 'Mid Senior', 'Senior'). This adds meaning beyond the bare schema properties.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Look up quote-ready manpower rates for the verified client country.' This is a specific verb and resource (look up rates for a country). It does not explicitly name alternative tools, so it doesn't fully distinguish from siblings like list_rate_card_countries, but the purpose is unambiguous enough for an agent to select it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied: the tool is used when needing rates for a verified country. It does not explicitly state when NOT to use it or mention alternative tools (e.g., list_rate_card_countries for listing countries, create_project_rate_card for creation). There are no exclusions or comparisons, so guidance is minimal but not misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the operation returns a list of countries/sheets, implying a read-only, side-effect-free action. However, it does not explicitly state safety (e.g., that it makes no changes) or any potential caveats like pagination or response structure. For a simple listing tool, the disclosure is adequate but not rich; it does not contradict any hooks since none exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no waste. The main action ('Returns which countries/sheets exist') is front-loaded, and the use-case clause ('in case the exact country name needs to be confirmed...') provides context without redundancy. Ideal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter listing tool with an available output schema, the description covers the core function and the scenario in which it should be used. It doesn't describe output formatting, but that is presumably handled by the output schema. The description is complete enough for an agent to decide when to call it and what to expect in general terms.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema coverage is effectively 100% (no parameters to document). With 0 parameters, the baseline is 4. The description correctly implies that no inputs are needed, and nothing is missing from the parameter side.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Returns') and resource ('countries/sheets in the rate card'), and explicitly ties it to a downstream purpose ('before calling get_rate_card'). It differentiates itself from at least one sibling by indicating this is the pre-step for confirming exact names, making its role unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear usage condition: use this when the exact country name needs to be confirmed before calling get_rate_card. This implicitly tells the agent when it is appropriate (when names might be uncertain) and when it might be unnecessary (if names are already known). It does not mention alternatives like resolve_rate_card_country, but the guidance is explicit enough for a zero-parameter listing tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It adds useful behavioral context: the list is fixed, mandatory, and must be used first. It also gives content guidelines (no inventing facts, etc.). However, it does not explicitly disclose read-only status, authentication requirements, or error behavior, which would be expected for a tool with no annotation support. The content guidance is more about the downstream generate_proposal, so it adds some but not complete behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, with the core purpose in the first sentence and usage guidance in the second. It is front-loaded, contains zero fluff, and every sentence contributes actionable information. This is a model of concise tool description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, output schema exists), the description covers the essential context: what is returned, its mandatory nature, and the usage workflow. It also adds valuable content guidelines. It could mention error conditions or output format details, but an output schema presumably covers the latter. Overall, it is complete for an agent to call this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so per the baseline rule the score is 4. The description adds meaning beyond the empty schema by clarifying the return value's structure (fixed list and order), which is the only semantic content needed. No parameter explanations are necessary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Returns') and resource ('the fixed list and order of sections every proposal MUST contain'), clearly distinguishing it from siblings like list_templates or get_company_profile. It precisely defines the tool's scope without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to 'Call this first' and lays out the workflow: draft sections from client brief and tool results, then make one generate_proposal call. This provides clear when-to-use context and differentiates from the generate_proposal sibling by sequencing the calls.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states this is a preview operation with no side effects, returns either the exact sheet or a clearly marked fallback, and explicitly discloses that it does not guess company names—a key behavioral constraint. It could add details about error handling or authentication, but the core behavior is well-covered for a simple preview tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short paragraphs, front-loaded with the primary purpose in the first sentence. Each sentence adds necessary information: purpose, return behavior, input guidance, and a rationale for not guessing. There is no filler or redundancy—every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one parameter and an output schema exists (though not shown), the description sufficiently covers the essential context: what the tool does, what it returns, and how to supply input. It could mention edge cases (e.g., unknown countries not in the fallback) or authentication requirements, but for a straightforward preview resolver with a clear fallback mechanism, it is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero description coverage for the 'country' parameter, so the description must compensate and does so excellently. It clarifies that 'country' means a geographical country, not a company name, and provides sourcing guidance (from the brief or trusted research). It also explains why a company name is insufficient, adding semantic depth beyond the schema's bare type definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Preview'), a specific resource ('rate-card selection'), and a context ('before creating a proposal'). It distinguishes from sibling tools by explaining it resolves which rate card applies to a country, rather than simply listing or fetching rate cards. The return type (exact sheet or fallback) is also specified, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance on what input to pass ('client's country as supplied in the brief or confirmed by trusted company research') and what not to pass ('A company name alone is intentionally not guessed'), which is strong usage direction. It also frames the tool as a pre-proposal step ('before creating a proposal'), implying when to use it. However, it does not explicitly name alternative tools for when this tool is not appropriate, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses that the tool reads a file and returns parsed JSON, and explains the purpose (ensuring the actual generated workbook is used). It does not detail validation checks or error handling, but the read-only nature is clear from the context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a stage label, a brief rationale, argument explanation, and return type. Every sentence earns its place with no redundancy, and the purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter and an output schema exists, the description adequately covers the why, what, parameter, and return. It provides enough context for an agent to use it correctly without needing additional details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain the parameter. It clearly states 'local_path: Path to the generated project rate card .xlsx file', adding meaning beyond the schema's bare 'Local Path' label. It could include more format details, but it is sufficient for correct usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('reads the generated .xlsx file back into memory') and a clear resource (project rate card from disk). It distinguishes itself from siblings by explicitly tying it to Stage 1b and ensuring Stage 2 uses the actual generated workbook, differentiating it from get_rate_card or create_project_rate_card.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context on when to use: after generation and before proposal generation, to load the generated workbook as source of truth. However, it does not explicitly mention alternatives or conditions when not to use it, leaving slight inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It details the entire workflow (reads master, analyzes requirements, creates 5-sheet workbook, validates, saves locally, uploads to Drive, returns JSON) and states the consequential outcome that the rate card becomes the authoritative source for costing. It does not mention permissions, reversibility, or error conditions, but for a create operation this level of transparency is strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy but well-structured with stages and numbered steps, and every sentence adds value (process, parameters, return, and impact). It could be slightly tighter, but the structure aids readability and the detail is necessary for a complex tool with 7 parameters and no schema descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 required parameters, no schema descriptions, no annotations, and a return value explained in the description, the information is fairly complete. It covers the process, inputs with examples, output (JSON path, Drive link, validation status), and its relationship to generate_proposal. Minor gaps like error handling or rate limits are not critical given the tool's role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does so admirably by listing every parameter with type hints and examples, including the nested required_roles structure with a concrete array of objects. This adds significant semantic meaning beyond the bare schema and ensures an agent understands how to format the input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Create a project-specific rate card from the master rate card,' which states a specific verb and resource. It also clearly distinguishes this tool from siblings by explicitly stating 'This tool MUST be called BEFORE generate_proposal,' and the stage label 'STAGE 1' reinforces its unique role in the proposal workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage guidance: 'This tool MUST be called BEFORE generate_proposal.' It also establishes the context of being stage 1 of a process, and the detailed steps explain when it is appropriate to invoke. No alternatives are mentioned, but the explicit precondition and sequencing make usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the .docx generation, Drive upload, failure condition (missing mandatory sections), return of the Drive link, and detailed authoring standards. It also specifies structural requirements like the workflow section placement. This is exceptional transparency exceeding typical tool descriptions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long, but each section earns its place: purpose, JSON shape, authoring standard, workflow requirements, and failure condition. It is structured with headings and code blocks, making it scannable. Slightly verbose, but the complexity of the input justifies the length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single-parameter tool with a complex input shape, the description is thoroughly complete. It covers input structure, optional fields, standards, mandatory sections, and return behavior. An output schema exists (per signal), so not explaining return format is acceptable. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must fully compensate. It provides a complete JSON shape with field names, types, optional markers, and examples for every block type and chart. This far exceeds what any schema description would provide and gives the agent everything needed to construct valid input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Generates the final branded proposal .docx and uploads it to the Output Drive folder' – a specific verb, resource, and outcome. It also positions itself as 'the LAST step, called once per proposal,' distinguishing it from sibling tools that retrieve or validate data (e.g., get_mandatory_sections, list_templates).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says this is the final step used once per proposal and references get_mandatory_sections with the requirement that all 9 sections be present. It doesn't name alternatives to exclude, but given the siblings are supporting tools, the usage context is clear. It could have explicitly instructed to call get_mandatory_sections first, but the reference is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits. It clearly implies a read-only listing operation, but does not explicitly state it is non-destructive or free of side effects. Given the tool's simplicity, the description sufficiently covers expected behavior, though it could be more explicit about being read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The purpose is front-loaded, and the usage hint is succinctly included in the second sentence. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless list tool with an output schema, the description covers the essential purpose, usage timing, and examples. Nothing an agent needs to call it correctly is missing. The empty schema and output schema cover the rest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description adds value by showing example template names, which helps agents anticipate the output format and understand what 'available' means. This is a bonus beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('available proposal templates') with concrete examples ('default', 'rfp', 'sow'). It is clearly distinct from siblings like generate_proposal, which is the only related tool that consumes template_id.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: 'Call this before generate_proposal if you're unsure which template_id to use.' This directly tells an agent when to invoke this tool instead of guessing, making the usage context unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Shiva-Matangulu/proposal-generator-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server