HomeStock
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Each tool has a distinct purpose: querying stock estimates, voiding events, logging ingestion runs, accessing raw events, recording purchases, and generating reorder suggestions. There is no overlap or ambiguity between them.
Naming Consistency4/5Most tools follow a clear verb_noun convention (get_stock, void_event, record_ingest_run, get_events, add_items), but what_should_i_order breaks the pattern as a sentence-style question, creating a minor inconsistency.
Tool Count5/5With 6 tools, the set is well-scoped for a home stock management server—enough to cover core operations without being bloated or too thin.
Completeness5/5The tool set provides full lifecycle coverage for event-based stock estimation: adding purchases, voiding corrections, reading raw events, querying estimates, and receiving reorder recommendations. No obvious gaps or dead ends exist for the stated domain.
Average 4.4/5 across 6 of 6 tools scored. Lowest: 3.7/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 1 commit in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.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 explicitly states 'Read-only' (key safety trait) and adds a behavioral quirk: 'Includes voided rows, flagged.' This goes beyond the name and gives useful transparency, though it does not detail result format or edge cases.
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 with a parenthetical, front-loaded with the key phrase 'Read-only raw event access'. No wasted words; every clause adds information about purpose or behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives purpose and some behavior but omits any explanation of the item and since parameters, which are critical for effective invocation. An output schema exists for return values, so this is the main gap. The tool is simple enough that with parameter docs it would be complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 2 parameters (item, since) with 0% description coverage. The description does not mention either parameter, leaving their meaning and usage entirely unspecified. The agent cannot correctly filter events without additional guessing.
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 'Read-only raw event access', which clearly identifies the tool as providing raw event data for explainability. It also distinguishes from siblings like void_event (write) and get_stock (stock data) by its read-only and event-specific nature.
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 clear context: use this tool for raw events when explainability (recomputing estimates) is needed. It implies read-only use cases but does not explicitly name alternatives or exclusions, so it does not reach a 5.
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, and it delivers: it discloses the exact filtering conditions (>=3 distinct purchase dates, days_since >= median), the exclusion rule (past 3x median, presumed discontinued), and the sort order (overshoot ratio descending). This goes beyond a simple 'returns items that need reordering' and provides actionable logic.
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?
One dense sentence contains all essential information: criteria, exclusions, and ordering. No filler or redundancy. Every clause earns its place, making it an excellent example of concise, information-dense writing.
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?
The tool has no parameters, the description explains the core behavior comprehensively, and an output schema exists to define the return value. The description is complete for an agent to decide when and how to invoke this 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?
The tool has zero parameters, so the input schema is fully covered (100%) and there is nothing for the description to add. The description does not attempt to explain parameters, which is appropriate. Baseline of 4 is warranted for a no-parameter tool.
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 identifies the resource (items past repurchase interval) and provides precise criteria, but it lacks an explicit verb like 'list' or 'recommend'. The tool name implies the purpose, and the description's specificity distinguishes it from siblings like get_stock or get_events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given on when to use this tool versus alternatives. It describes the algorithm but not the business context or prerequisites (e.g., needing purchase history). A sentence about using this for replenishment decisions would have helped.
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 discloses key behavioral traits: it's a heartbeat/audit, must be called even if nothing written, returns the backfill cursor, and skipped is for unparseable items. This is thorough and goes beyond a simple operation description.
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 and front-loaded, with the core purpose stated first, followed by the key guidance on skipped and the return value. Every sentence earns its place and there is no 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?
The description covers purpose, usage, skipping rules, and return value, which is sufficient for an ingestion audit tool. It could mention idempotence or failure behavior, but given the tool's simplicity and no output schema, 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?
Schema coverage is 0%, so the description must compensate. It does explain the 'skipped' parameter's structure and purpose, but provides no additional meaning for window_start, window_end, emails_seen, or events_written. The names are self-explanatory, but not fully elaborated.
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 records an ingestion run (heartbeat and audit) after every pass, with a specific verb and resource. It distinguishes itself from siblings like get_stock or void_event by focusing on ingestion plumbing.
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 timing ('after every ingestion pass, even one that wrote nothing') and guidance for the skipped parameter ('never guess — skip and log'). It doesn't explicitly name alternatives, but the sibling set makes its unique role 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 provided, the description carries full responsibility for behavioral disclosure. It discloses idempotency per (source_ref, line_no), source-specific defaults, collision handling with '+':2' suffix, and the exact return shape {inserted, ignored, rejected: [{line_no, reason}]}.
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 dense and front-loaded with the primary purpose. It uses compact structured examples and line breaks to convey a lot of information efficiently. It is somewhat long, but every sentence contributes meaningful constraints or behavior.
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 no annotations and no output schema, the description is exceptionally complete: it covers input parameters, defaults, idempotency, return values, edge cases, and even instructs to consult get_stock() first. Only the 'location' parameter is omitted, but the overall tool behavior is well specified.
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 0%, so the description must compensate, and it largely does. It explains items structure, source values, source_ref patterns, and purchased_at defaults. However, the 'location' parameter is not mentioned at all, leaving one of five parameters unexplained.
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 'Record a purchase (one receipt)', which is a specific verb and resource. It clearly distinguishes the tool from siblings by covering source types, idempotency, and interaction with get_stock().
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 guidance on when to use the tool ('Record a purchase'), and even instructs to 'Call get_stock() first and reuse existing item names exactly.' It does not explicitly state when not to use it, but the context around source/ref handling makes usage clear.
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 full burden. It discloses that the estimate is a 'naive-baseline' with 'raw provenance' and that estimated_state is 'unknown' below 2 distinct purchase dates. This adds meaningful behavioral context beyond a simple 'get stock' description, though it doesn't explicitly state read-only safety or other caveats.
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?
Three sentences, front-loaded with the core purpose, and each sentence adds distinct value: purpose, no-arg behavior, and item-specific behavior. No redundancy or filler.
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?
The tool is simple (one optional parameter, output schema present). The description covers both invocation modes, provides usage context (before add_items), and includes a behavioral nuance about provenance. There is no obvious missing information for an agent to select and invoke this tool 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?
The schema has zero description coverage and only lists a nullable item parameter. The description fully compensates by explaining the two modes: omitting item returns all items, providing item returns a baseline estimate. It also hints at the required name format ('reuse exact names'), adding value beyond the bare 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 what the tool does: provides a current stock estimate, with explicit behavior for both no-argument (list all items) and with-item (get estimate) modes. It distinguishes itself from siblings like add_items by including a cross-reference to call it before adding items.
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?
Explicit guidance is given: call before add_items to reuse exact names, and the two invocation modes (no arg vs. item name) are clearly described. This tells the agent exactly when and how to use the tool, including a relationship to a sibling.
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 provided, the description carries full responsibility and covers key behavioral traits: voided rows are excluded from estimates, re-insertion works for the same (source_ref, line_no), return shape is {voided: n}, and zero matches is a no-op not an error. This is excellent transparency 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, front-loaded with the action 'void', and every sentence adds value: scope, behavioral consequence, return format, and edge case. There is no redundance or filler.
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 only 2 parameters, no annotations, and no output schema, the description fully compensates by covering the purpose, parameter behavior, return value, and an important edge case. It is self-sufficient for an agent to decide when to use this tool and what to expect.
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 explain parameters, and it does. It states that line_no omitted means all lines are voided, and that source_ref and line_no together form the key for re-insertion. This adds substantial meaning beyond the raw 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 uses the specific verb 'void' with resource 'matching event lines', and clarifies scope (all lines if line_no omitted). It clearly distinguishes this from sibling tools like add_items or get_events by framing it as a 'Correction path'.
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 clear context by labeling this a correction path, implying it is for fixing previously recorded events. However, it does not explicitly mention when not to use this tool or name an alternative, so it stops short of full exclusion 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/Thomaspeel6/HomeStock'
If you have feedback or need assistance with the MCP directory API, please join our Discord server