@bowlly/mcp-server
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@bowlly/mcp-serverFind low-carb wet cat foods with fish"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Bowlly MCP Server
MCP (Model Context Protocol) server for Bowlly cat food product search and ingredient analysis. Enables Claude Desktop to search, analyze, and compare cat food products.
Prerequisites
Node.js 22+ - Required for running the MCP server
Claude Desktop - Download here if not installed
Related MCP server: Open Food Facts MCP Server
Quick Start
Option 1: One-Command Setup (Recommended)
npx @bowlly/mcp-server --setupAfter running, restart Claude Desktop and you're ready to go!
Option 2: Manual Configuration
Edit your Claude Desktop config at the appropriate path for your OS:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%/Claude/claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Add the Bowlly server configuration:
{
"mcpServers": {
"bowlly": {
"command": "npx",
"args": ["-y", "@bowlly/mcp-server"]
}
}
}Save the file and restart Claude Desktop
Available Tools
Tool | Description |
| Search by ingredients, conditions, form |
| Full product info with ingredients |
| Side-by-side comparison |
| Ingredient breakdown & carb analysis |
| Best-of category recommendations |
Example Natural Language Queries
"Find grain-free dry cat foods"
"Show me wet foods without chicken"
"Analyze the nutrition of Blue Buffalo Wilderness"
"Compare Orijen and Acana cat foods"
"What are the best low-carb options?"
"Show me foods for cats with sensitive stomachs"Configuration
Config File Locations by Platform
Platform | Path |
macOS |
|
Windows |
|
Linux |
|
Verification
To confirm the MCP server is working:
Restart Claude Desktop (required after configuration changes)
Open the tools menu - Look for the hammer icon in the bottom left
Verify Bowlly tools appear - You should see 5 tools listed
Test with a query: Try asking "Find grain-free dry cat foods"
Troubleshooting
Tools not showing in Claude?
Restart Claude Desktop - Configuration changes require a restart
Check the config file path - Ensure you're editing the correct file for your OS
Verify JSON syntax - Use a JSON validator if unsure
Check Claude Desktop logs:
macOS:
~/Library/Logs/Claude/Windows:
%APPDATA%/Claude/Logs/Linux:
~/.config/Claude/Logs/
"Command not found" errors?
Ensure Node.js 22+ is installed:
node --versionTry with npx:
npx @bowlly/mcp-server --setupGlobal install fallback:
npm install -g @bowlly/mcp-server
Configuration not persisting?
Check file permissions - Ensure you have write access to the config directory
Use absolute paths - Relative paths may not resolve correctly
Validate JSON format - Missing commas or brackets are common issues
License
MIT
Available Tools
6 toolsanalyze_nutritionA
Analyzes the nutritional content of a cat food product by productId. Returns ingredient breakdown, DMB conversion, carb estimation, and nutritional context. Use when user asks about nutrition, ingredients, or carb content of a specific product.
| Name | Required | Description | Default |
|---|---|---|---|
| productId | Yes | The product ID to analyze |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses returns (ingredient breakdown, DMB conversion, carb estimation, nutritional context), which is transparent. It does not mention error handling or permissions, but the read-only nature is implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: action, returns, usage. It is front-loaded and efficient with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of a single parameter and no output schema, the description adequately covers purpose and usage. It lists returns, which compensates for lack of output schema. Could mention product existence constraints, but overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a description for productId. The tool description adds context that productId identifies a cat food product, enhancing meaning beyond the schema alone. Baseline 3 is raised due to this added context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes nutritional content of a cat food product by productId, listing specific returns like ingredient breakdown and carb estimation. It distinguishes itself from siblings like get_product_detail (general details) and search_products (search).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use when user asks about nutrition, ingredients, or carb content of a specific product', providing clear context. It does not mention alternatives or when not to use, but the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_productsA
Compare 2-3 cat food products side-by-side on nutrition and ingredients. Pass product IDs from search_products results. Returns raw comparison data — interpret and explain the differences to the user.
| Name | Required | Description | Default |
|---|---|---|---|
| productIds | Yes | 2-3 product IDs to compare |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries the burden. It discloses that the output is raw and needs interpretation. Does not mention side effects or auth needs, but should for a comparison tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose, second gives usage and output guidance. No wasted words, front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given only one parameter and no annotations or output schema, the description fully covers input origin, output nature (raw, needs interpretation), and usage. Complete for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of the single parameter with a description. The tool description adds value by specifying that IDs come from search_products, providing provenance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool compares 2-3 cat food products on nutrition and ingredients, with a specific verb and resource. It distinguishes from siblings by mentioning product IDs from search_products.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent to pass product IDs from search_products results. It also instructs to interpret and explain differences to the user. Lacks explicit when-not-to-use, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_curation_listA
Retrieve curated best-of category data by slug. Returns summary by default with opt-in extended content.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The curation page slug (e.g., 'low-carb-cat-food') | |
| includeSections | No | Include extended content sections (opt-in) | |
| includeFaq | No | Include FAQ section (opt-in) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description discloses default behavior (summary) and opt-in extensions, but lacks details on error handling, data freshness, or permissions. It is sufficient for a read-only retrieval tool but could be more thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences efficiently convey purpose and default behavior with no redundant words. The key action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description does not specify return format or structure, which is notable given no output schema. It mentions 'curated best-of category data' but leaves expectations vague. Adequate but could be improved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 add much. It reiterates 'summary by default' and 'opt-in,' which aligns with schema descriptions but adds minimal new information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Retrieve curated best-of category data by slug,' specifying the verb and resource. It distinguishes this tool from siblings like 'analyze_nutrition' or 'search_products' by focusing on curated lists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions returns summary by default with opt-in content, which implies usage context but does not explicitly state when to use this tool versus alternatives or provide exclusion criteria. The sibling tools are clearly different, so the implied differentiation is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_healthA
Check MCP server connectivity and rate limit status. Use this when experiencing connection issues or before batch operations. Returns server status, version, session ID, and rate limit information.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that the tool returns status, version, session ID, and rate limit info. As a health check, it is implicitly read-only and non-destructive, but the description could add clarity on side effects or authorization needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: first states purpose and output, second gives usage guidance. No wasted words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description provides a solid overview of what the tool returns and when to use it. It could be slightly more detailed about the exact format of the output, but is sufficient for a simple health check.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema coverage is 100%. Per guidelines, baseline is 4 for no parameters. The description does not need to add parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks MCP server connectivity and rate limit status, and lists specific returned information (server status, version, session ID, rate limit info). It is distinct from sibling tools which focus on nutrition and products.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this when experiencing connection issues or before batch operations,' providing clear context for when to use. It does not mention explicit alternatives, but given the unrelated sibling tools, this guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_product_detailA
Get complete information about a specific cat food product including full ingredient list, nutrition facts, calorie density, and health condition tags. Requires a product ID from search_products results.
| Name | Required | Description | Default |
|---|---|---|---|
| productId | Yes | Product ID (from search_products results) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It discloses that the tool returns complete information including specified fields, which implies a read operation. However, it does not mention any side effects, permissions needed, or limitations. Adequate but not detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core purpose, no wasted words. Efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one parameter, no output schema, no annotations), the description covers the essential: what it does, what input it needs, and what data it returns. It could mention the response is for a single product, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the productId parameter already described. The description reinforces that the ID comes from search_products results but adds no new semantic detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves complete information about a specific cat food product, listing specific data included (ingredient list, nutrition facts, etc.). It distinguishes itself from siblings like search_products (which returns a list) and compare_products (which compares multiple products).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states it requires a product ID from search_products results, indicating when to use this tool (after searching). While it doesn't state when not to use it, the source of the input is clearly specified, providing useful context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_productsA
Search Bowlly's cat food database by ingredients, health conditions, or food form. Use this when the user asks to find, filter, or recommend cat foods. Returns a summary list — use get_product_detail for full information about specific products.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Search by product name, brand, or ingredient | |
| form | No | Food form: dry kibble or wet canned food | |
| conditions | No | Comma-separated health conditions: sensitive, urinary, hairball, diet, indoor | |
| includeIngredients | No | Comma-separated ingredients that MUST be present (e.g., 'chicken,tuna'). Note: searches ingredients preview (top 5), may miss ingredients beyond 5th position | |
| excludeIngredients | No | Comma-separated ingredients to EXCLUDE (e.g., 'corn,wheat'). Note: searches ingredients preview (top 5), may miss ingredients beyond 5th position | |
| minProtein | No | Minimum crude protein percentage (e.g., 35) | |
| maxCarbs | No | Maximum estimated carbs percentage (e.g., 10) | |
| sortBy | No | Sort by nutritional metric | |
| limit | No | Results per page (default 10, max 20) | |
| cursor | No | Pagination offset (0 for first page) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states it returns a summary list and mentions the scope (Bowlly's cat food database). However, with no annotations provided, the description carries full burden for behavioral disclosure. It does not mention important behaviors such as partial matching, error handling, performance limits, or that it might miss ingredients beyond the 5th position in the ingredient list (which is only noted in parameter descriptions). The transparency is moderate but lacks depth beyond basic output type.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences. The first sentence states what the tool does, and the second provides usage guidance and links to a sibling. Every word serves a purpose, no redundancy or fluff. It is front-loaded and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters and no output schema, the description is quite minimal. It does not explain how pagination (cursor/limit) works, how sorting (sortBy) affects results, or how to interpret the summary list (e.g., what fields are returned). While the input schema is thorough, the description alone lacks context for an agent to understand the full workflow flow, such as that search results are paginated or that ingredient searches have limitations. It is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage with helpful details like enum values, max length, default values, and notes about limitations (e.g., ingredient preview). The description itself does not add additional meaning beyond listing the search dimensions (ingredients, health conditions, food form). Since the schema is already rich, a score of 3 is appropriate as the description does not need to compensate but also does not add extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches Bowlly's cat food database by ingredients, health conditions, or food form. It explicitly says when to use it ('when the user asks to find, filter, or recommend cat foods') and distinguishes itself from the sibling tool get_product_detail, which provides full details. The verb 'search' and resource 'cat food database' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Use this when the user asks to find, filter, or recommend cat foods.' It also tells when not to use this tool by directing to get_product_detail for full information about specific products. This clearly differentiates from the sibling tool, though it does not address other siblings like compare_products or analyze_nutrition, the guidance is sufficient for the primary decision point.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v0.1.9- First observed
analyze_nutrition - First observed
compare_products - First observed
get_curation_list - First observed
get_health - First observed
get_product_detail - First observed
search_products
TDQS
Each tool has a clearly distinct purpose: searching, getting detail, nutritional analysis, comparison, curated lists, and health check. No overlapping functionality.
All tool names follow a consistent verb_noun pattern using snake_case, e.g., search_products, get_product_detail, analyze_nutrition.
Six tools cover the core operations for a cat food database without being excessive or insufficient.
The tool set covers search, detail, nutrition analysis, comparison, and curated lists. Missing a tool to list all brands or categories, but search handles that indirectly.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
AI-agent product catalog: search, lookup & purchase routing over verified merchant data.
Routes natural-language shopping queries to merchant storefronts, returns normalized results.
Query your SEO data in plain language: rankings, audits, backlinks, competitors and AI visibility.
Barcode lookup, nutrition search, and product comparison for 3M+ crowd-sourced food products.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides grocery price and nutritional information search capabilities, allowing AI agents to search for food products, compare prices, and analyze nutritional content across different grocery stores.1-
- AlicenseAqualityDmaintenanceEnables AI assistants to access the Open Food Facts database to query detailed food product information, nutritional data, and environmental scores. Supports product lookup by barcode, smart search with filtering, nutritional analysis, product comparison, and dietary recommendations to help users make informed food choices.51MIT
- AlicenseBqualityCmaintenanceEnables AI assistants to search for recipes, get nutritional information, find ingredients, and more through the Spoonacular Food API using natural language.6145ISC
- FlicenseBqualityCmaintenanceEnables AI assistants to access food product information, providing nutritional analysis, product comparisons, and recipe suggestions using the Open Food Facts database.21-
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/bowlly-net/bowlly-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server