bizprint-mcp-server
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation5/5
Each tool targets a distinct resource (printer, print job, station) and action (create, get, list). There is no overlap; for example, create_print_job is clearly for creating jobs, while get_print_job and list_print_jobs retrieve existing jobs.
Naming Consistency5/5All tools follow a consistent verb_noun pattern: create_print_job, get_printer, get_print_job, get_station, list_printers, list_print_jobs, list_stations. The pattern is uniform and predictable.
Tool Count5/5With 7 tools, the server covers three core resources (printer, print job, station) with create, get, and list operations for each, which feels well-scoped and appropriate for a print management MCP server.
Completeness4/5The server provides CRUD-like coverage for the main resources: create for print jobs, and read (get/list) for all three. Missing update and delete operations for printers and stations, but the core workflow of creating and tracking print jobs is complete.
Average 3.8/5 across 7 of 7 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- 0 of 1 community issues answered or closed in the last 6 months
- No commit activity data available
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
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.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?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description does not need to reiterate safety. The description adds value by listing the specific configuration fields returned, which is not in annotations. However, it does not disclose any edge-case behaviors (e.g., what if printerId does not exist? Does it return null or error? No rate limits or auth details mentioned, but these may be assumed from 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 a single, concise sentence clearly stating the purpose and listing the returned fields. No wasted words; front-loaded with the verb and resource.
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 only one parameter, no output schema, and good annotations, the description is fairly complete. It lists all returned fields, which compensates for the lack of output schema. However, it does not specify the format or structure of the returned data (e.g., nested objects), but since no nested objects exist, this is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with the printerId parameter already described clearly in the input schema (type number, min 1). The description adds no further semantic detail about the parameter itself. Baseline 3 is appropriate since the schema already does the heavy lifting.
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 it retrieves details for a specific printer by ID, listing exactly which configuration fields (title, enabled status, station, etc.) are returned. It distinguishes from sibling tools like list_printers (which lists all printers) and create_print_job (which creates, not retrieves). However, it could explicitly differentiate from get_print_job, which retrieves a print job, not a printer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need details of a specific printer, but does not explicitly state when to use this tool versus alternatives (e.g., list_printers for listing all, get_print_job for job details). No when-not-to-use or prerequisites are mentioned.
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?
Annotations already mark it as readOnlyHint: true and destructiveHint: false, so the description adds no additional behavioral context beyond those. The description does not mention any edge cases or constraints on the jobId parameter.
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 a single sentence with 15 words, efficiently conveying the purpose and what information is returned. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a simple fetch-by-ID interface with one parameter and no output schema. The description adequately states what is returned, but for a single-job retrieval, it is minimal and sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the only parameter jobId is documented in the schema with type and minimum. The description does not add further meaning beyond the schema's own description.
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 this tool returns details for a specific print job by ID, listing the key fields included. It is distinct from siblings like list_print_jobs which lists jobs without details, and create_print_job which creates a new job.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this is a lookup tool for a single job by ID, which contrasts with list_print_jobs for listing. However, it does not explicitly state when to use this vs alternatives or any prerequisites.
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?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not need to reiterate non-destructiveness. The description adds value by listing returned fields (title, status, version, domain, assigned printers), but it omits behavior such as error responses when stationId is invalid or whether partial data can be returned. With annotations already covering safety, a 3 is appropriate.
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 concise sentences with zero wasted words. It front-loads the purpose and then lists what is returned. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no nested objects, no output schema), the description is nearly complete. It explains what the tool returns, but could mention that the ID must correspond to an existing station and that it returns a single object. Still, it's sufficient for an agent to understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers 100% of parameters, with stationId described as 'The station ID' and a minimum constraint. The description adds context that the ID is used to get station details, but does not add meaning beyond the schema. Baseline 3 is correct.
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 it gets details for a specific print station by ID, listing exactly what configuration fields are returned (title, status, version, domain, assigned printers). This verb+resource structure is specific and distinguishes it from sibling tools like list_stations (which lists many) and get_printer (which retrieves a different resource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need details for a specific station by ID, which is standard for a get-by-ID tool. However, it provides no guidance on when to use alternatives like list_stations or get_printer, nor does it mention prerequisites such as the station needing to exist.
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?
Annotations already set readOnlyHint=true and destructiveHint=false, so the description's disclosure of it being a listing operation is consistent. The description adds value by specifying that the result includes printer details and the fields returned, but does not go beyond what annotations already convey about safety (no destructive action, 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: first states purpose and scope, second lists returned fields. No wasted words, essential information front-loaded.
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 is a simple list operation with no output schema and good parameter documentation, the description is complete enough. It explains what the tool returns and the scope. However, it could mention pagination behavior or the fact that it's a filtered list (if applicable).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description does not need to explain parameters. They are already documented with clear descriptions (page number, perPage with default and max). The description does not add additional meaning beyond the 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 starts with the verb 'List' and specifies the resource 'printers' with the scope 'all printers configured in BizPrint', and enumerates specific return fields (id, title, enabled status, station assignment, print settings), which clearly distinguishes from siblings like get_printer (single) or list_print_jobs (different resource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving a list of printers, but does not explicitly state when to use this tool versus alternatives like get_printer or list_stations. It provides no exclusion criteria or context for choosing among siblings.
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?
Annotations already indicate destructiveHint=true, so the tool is expected to have side effects. The description confirms the destructive nature but does not elaborate on what exactly is destroyed (e.g., printer queue capacity) or any irreversible consequences. No contradiction; annotations are aligned.
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, concise and front-loaded. First sentence states the purpose, second adds return info. No superfluous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters (1 nested), no output schema, and annotations with destructiveHint, the description covers basic purpose and result but lacks details such as expected side effects, error conditions (e.g., printer offline), or how the URL must be accessible. This is a moderate gap for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameter details are already documented. The description adds no further meaning beyond the schema, but given high coverage, the baseline is 3. The description slightly elevates by noting that 'printOption' is optional, matching the schema. However, it does not explain the nested object structure. Still, the schema suffices.
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 creates a new print job, specifies the action (sends document URL to printer), and identifies the resource (print job) and return value (id and status). It distinguishes from siblings like get_print_job (retrieve) and list_print_jobs (list).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (to create a print job) but provides no guidance on when not to use it or alternatives among siblings. No mention of prerequisites like printer existence or URL accessibility.
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?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows it's a safe read operation. The description adds the return fields but omits details like whether results are ordered, rate limits, or if filtering is possible.
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, concise and front-loaded with the main action and resource. It efficiently includes key return fields without unnecessary elaboration.
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 (2 params, no required params, no output schema), the description is adequate. It covers purpose, parameters, and return fields. Minor gap: no mention of sorting order or whether all print jobs are returned without filters.
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 description coverage is 100%, so the schema already explains both parameters (page, perPage). The description adds context by stating that 'page' and 'perPage' control pagination, and mentions defaults, which is helpful beyond the 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 clearly states the action ('List'), the resource ('print jobs'), and the scope ('BizPrint'). It also lists the return fields, distinguishing it from siblings like 'list_printers' or 'list_stations'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. While the purpose is clear, there is no guidance on when to prefer this over 'get_print_job' or how pagination might affect usage.
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?
The annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by listing the return fields (id, title, status, etc.) and indicating pagination support via schema parameters. However, it does not disclose potential performance implications, rate limits, or ordering behavior beyond what annotations cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core purpose ('List all print stations') and efficiently lists key return fields. Every element earns its place; there is no verbosity or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple schema with full coverage and no output schema, the description is complete for a paged listing tool. It covers the resource scope and return attributes. A minor gap is the absence of mentioning that results are paginated by default (perPage default is 50, but described only in schema), but overall it is adequate for an agent to understand behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema itself fully documents the two parameters ('page' and 'perPage') with inline descriptions. The tool description adds no further meaning beyond referencing pagination implicitly. Baseline 3 is appropriate as the schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List all') and resource ('print stations configured in BizPrint'), clearly distinguishing it from sibling tools like create_print_job or list_printers. It explicitly states the scope ('all print stations') and mentions key return fields, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for reading station configurations without modification, which aligns with the readOnlyHint annotation. However, it does not explicitly state when to use this vs. get_station (for a single station) or provide exclusions for specific scenarios. Clear context is provided but lacks explicit when-not 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
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/bizswoop-development/bizprint-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server