return-billing-mcp-server
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation4/5
Each tool has a generally distinct purpose, but lookup_order and get_billing_status both return order/billing information and could be confused. The descriptions clarify that lookup_order is for order details while get_billing_status focuses on billing status and payment instructions, but some overlap remains.
Naming Consistency5/5All tool names follow a consistent verb_noun pattern with snake_case (lookup_order, check_return_eligibility, process_return, get_billing_status, escalate_to_human). The verbs vary but the pattern is uniform, making it easy to predict tool names.
Tool Count5/5Five tools is well-scoped for a return/billing MCP server, covering the main customer service actions without unnecessary bloat. Each tool earns its place, and the count is within the ideal 3-15 range.
Completeness4/5The tool surface covers the core return and billing workflows: order lookup, eligibility check, return processing, billing status, and escalation. Minor gaps exist, such as no tool to view or update a return after processing, but the main user journey is complete.
Average 4.2/5 across 5 of 5 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 10 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
- 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 indicates the operation is a read (取得する) and details the response contents, including the list of statuses and the inclusion of payment_instructions for unpaid orders. It does not mention error conditions or permissions, but covers the core behavior well.
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, front-loaded with the action, and contains no filler. Every clause adds value, specifying the input (user ID), what is retrieved (billing statuses), and the special case of unpaid orders (payment instructions).
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 simple one-parameter read tool with no output schema, the description adequately explains the return value (list of statuses) and the conditional inclusion of payment instructions. It does not cover error cases or edge situations (e.g., missing user), but for this level of complexity, it is reasonably complete.
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?
The schema already provides 100% coverage for the single parameter, describing user_id as the registered email address. The description repeats the email reference but adds no new semantic information beyond what the schema offers, so the baseline of 3 is appropriate.
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 retrieves a list of billing statuses (unpaid/paid) for all orders of a given user, using a specific verb (取得する) and resource (billing status list). It distinguishes from siblings like lookup_order or process_return by focusing on billing status, not order details or returns.
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 billing status inquiries and provides clear context, but it does not explicitly state when to use this tool versus alternatives or mention any exclusions. No reference to sibling tools is made, so the guidance is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool is used for identity confirmation and lists the output fields, but does not describe error behavior, permissions, or any side effects. For a lookup tool, this is moderate but not rich disclosure.
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, front-loaded with the action, input, and output. Every word earns its place, with no unnecessary detail.
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 simple one-parameter lookup tool with no annotations and no output schema, the description covers input, output fields, and usage context. It lacks error/edge-case details, but the field list is provided, making it reasonably complete for the tool's simplicity.
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?
The sole parameter user_id is fully described in the schema as an email address, and the description repeats this without adding new meaning. Since schema coverage is 100%, the description does not compensate or enhance parameter understanding 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 tool retrieves a user's order list (product name, quantity, order date, billing status) based on user ID (email). It uses a specific verb (取得する) and resource (注文一覧), and is distinct from sibling tools like check_return_eligibility or get_billing_status.
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 frames the tool as the first step in handling an inquiry, also serving to confirm user identity. This provides clear context for when to use it, though it does not explicitly mention when not to use alternatives or name them as exclusions.
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 takes on the full burden of behavioral disclosure. It notably explains that expired or already-returned orders yield a normal response with eligible=false rather than an error, which is crucial non-obvious behavior. It does not cover all edge cases (e.g., invalid order ID), but the disclosed behavior is valuable.
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 exactly two sentences: the first states the primary function, and the second clarifies the non-error response behavior. Every word earns its place, with no redundancy or fluff.
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 (1 parameter, no output schema), the description sufficiently covers the main logic and the key edge case. It could be more explicit about the response format (e.g., type of eligible field), but it provides enough for an agent to understand and invoke the tool correctly.
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?
The schema already provides full documentation for the single parameter order_id, including type, minLength, and an example. The description merely references '注文ID' without adding new semantic details, so credit is limited to the schema's full coverage.
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: given an order ID, it determines return eligibility based on whether the order date is within one month. This distinct verb-resource pairing (判定する + 返品可否) sets it apart from siblings like process_return or lookup_order.
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 when to use the tool (when you need to check return eligibility) and clearly differentiates it from alternatives like process_return by focusing on the determination step. However, it does not explicitly state when not to use it or mention alternative tools by name.
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 discloses that the tool sends a return acceptance email (simulated) and returns an error for ineligible orders. It doesn't detail idempotency, return response structure, or other side effects, but the key behaviors are well covered.
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 concise, consisting of two sentences. It front-loads the core action in the first sentence and adds important side effects and error handling in the second. No superfluous information is present.
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 absence of an output schema, the description adequately covers the prerequisite, the main action, the email side effect, and the error condition. It doesn't specify the exact success response format, but for a sample tool it is sufficiently complete for an agent to invoke it correctly.
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% for both required parameters, so the baseline is 3. The description adds minimal meaning beyond the schema (e.g., 'receives return reason' is essentially the same as the schema's description). No additional parameter details are provided.
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: confirming return processing for orders already judged returnable by check_return_eligibility. It also distinguishes itself from siblings by referencing this prerequisite and by specifying the action (confirming the return) and the side effect (sending notification email).
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 provides explicit usage context: it should be used for orders that have passed check_return_eligibility. It also warns that calling it on non-eligible orders results in RETURN_NOT_ELIGIBLE error, implying when not to use it. However, it doesn't explicitly mention alternatives or when to choose other tools like escalate_to_human.
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 behavioral burden. It discloses server-side turn management, status transitions at 5 turns (end confirmation) and 10 turns (forced termination with request to create a separate inquiry), and that it does not generate reply text. However, it omits details about session creation, error handling, or full response structure, so some ambiguity remains.
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 three sentences with no fluff: first sentence defines scope, second gives invocation frequency, third explains turn limits and the lack of response generation. It is well-structured and 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?
The tool has no output schema, so the description compensates by mentioning the status field and turn limits, but it does not enumerate all possible status values or other response fields. It also doesn't explain how to start a session if session_id is new. Still, for a simple 2-param tool, it provides enough to use it correctly in most cases.
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?
Both parameters are fully described in the schema (100% coverage), so the baseline is 3. The description does not add parameter-specific semantics beyond what the schema already provides; it only reiterates that the tool is called per utterance.
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 manages conversation sessions with a human operator for inquiries that do not fall under returns or billing ('返品にも請求にも該当しない問い合わせについて'). This explicitly scopes the tool's purpose and distinguishes it from sibling tools like lookup_order, process_return, and get_billing_status.
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?
It gives explicit usage guidance: 'ユーザーの発言1回ごとに呼び出すこと' (call it for each user utterance) and excludes returns/billing cases, implying when to use alternatives. It also instructs that the tool does not generate operator replies, so the calling agent must craft responses, providing clear context for correct invocation.
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/GT5041/gt_20260811'
If you have feedback or need assistance with the MCP directory API, please join our Discord server