io.github.CSOAI-ORG/fishkeeper-ai-mcp
MCP server for fishkeeper ai. Features analyze water params, identify fish, check compatibil...
Versions
1.0.1latest1.0.4Tools 6
analyze_water_params Analyze aquarium water parameters and return health assessment. Compares readings against safe ranges for the tank type and provides specific actionable advice for any parameters out of range. Args: ph: pH level (0-14 scale). ammonia_ppm: Ammonia in parts per million (NH3/NH4+). nitrite_ppm: Nitrite in parts per million (NO2-). nitrate_ppm: Nitrate in parts per million (NO3-). temperature_c: Water temperature in Celsius. gh_dgh: General hardness in degrees (optional). kh_dgh: Carbonate hardness in degrees (optional). tank_type: One of: freshwater_tropical, freshwater_coldwater, marine_reef, marine_fowlr, brackish. Returns: Health assessment with parameter-by-parameter analysis and recommendations. Behavior: This tool is read-only and stateless — it produces analysis output without modifying any external systems, databases, or files. Safe to call repeatedly with identical inputs (idempotent). Free tier: 10/day rate limit. Pro tier: unlimited. No authentication required for basic usage. When to use: Use this tool when you need structured analysis or classification of inputs against established frameworks or standards. When NOT to use: Not suitable for real-time production decision-making without human review of results. Behavioral Transparency: - Side Effects: This tool is read-only and produces no side effects. It does not modify any external state, databases, or files. All output is computed in-memory and returned directly to the caller. - Authentication: No authentication required for basic usage. Pro/Enterprise tiers require a valid MEOK API key passed via the MEOK_API_KEY environment variable. - Rate Limits: Free tier: 10 calls/day. Pro tier: unlimited. Rate limit headers are included in responses (X-RateLimit-Remaining, X-RateLimit-Reset). - Error Handling: Returns structured error objects with 'error' key on failure. Never raises unhandled exceptions. Invalid inputs return descriptive validation errors. - Idempotency: Fully idempotent — calling with the same inputs always produces the same output. Safe to retry on timeout or transient failure. - Data Privacy: No input data is stored, logged, or transmitted to external services. All processing happens locally within the MCP server process.
identify_fish Identify fish species and return detailed care requirements. Search by common name, scientific name, or physical description. Args: description: Physical description or partial name to search for. species_name: Known species name (common or scientific). Returns: Species details including care requirements, water parameters, compatibility. Behavior: This tool is read-only and stateless — it produces analysis output without modifying any external systems, databases, or files. Safe to call repeatedly with identical inputs (idempotent). Free tier: 10/day rate limit. Pro tier: unlimited. No authentication required for basic usage. When to use: Use this tool when you need structured analysis or classification of inputs against established frameworks or standards. When NOT to use: Not suitable for real-time production decision-making without human review of results. Behavioral Transparency: - Side Effects: This tool is read-only and produces no side effects. It does not modify any external state, databases, or files. All output is computed in-memory and returned directly to the caller. - Authentication: No authentication required for basic usage. Pro/Enterprise tiers require a valid MEOK API key passed via the MEOK_API_KEY environment variable. - Rate Limits: Free tier: 10 calls/day. Pro tier: unlimited. Rate limit headers are included in responses (X-RateLimit-Remaining, X-RateLimit-Reset). - Error Handling: Returns structured error objects with 'error' key on failure. Never raises unhandled exceptions. Invalid inputs return descriptive validation errors. - Idempotency: Fully idempotent — calling with the same inputs always produces the same output. Safe to retry on timeout or transient failure. - Data Privacy: No input data is stored, logged, or transmitted to external services. All processing happens locally within the MCP server process.
check_compatibility Check if multiple fish species are compatible in the same tank. Analyzes temperament, water parameter overlap, size differences, and known compatibility issues. Args: species_list: List of species IDs or common names to check together. Returns: Compatibility matrix with warnings and recommended tank parameters. Behavior: This tool is read-only and stateless — it produces analysis output without modifying any external systems, databases, or files. Safe to call repeatedly with identical inputs (idempotent). Free tier: 10/day rate limit. Pro tier: unlimited. No authentication required for basic usage. When to use: Use this tool when you need structured analysis or classification of inputs against established frameworks or standards. When NOT to use: Not suitable for real-time production decision-making without human review of results. Behavioral Transparency: - Side Effects: This tool is read-only and produces no side effects. It does not modify any external state, databases, or files. All output is computed in-memory and returned directly to the caller. - Authentication: No authentication required for basic usage. Pro/Enterprise tiers require a valid MEOK API key passed via the MEOK_API_KEY environment variable. - Rate Limits: Free tier: 10 calls/day. Pro tier: unlimited. Rate limit headers are included in responses (X-RateLimit-Remaining, X-RateLimit-Reset). - Error Handling: Returns structured error objects with 'error' key on failure. Never raises unhandled exceptions. Invalid inputs return descriptive validation errors. - Idempotency: Fully idempotent — calling with the same inputs always produces the same output. Safe to retry on timeout or transient failure. - Data Privacy: No input data is stored, logged, or transmitted to external services. All processing happens locally within the MCP server process.
diagnose_disease Diagnose fish disease from symptoms and suggest treatments. Matches symptoms against a database of common aquarium diseases and provides treatment protocols. Args: symptoms: List of observed symptoms (e.g. ["white spots", "flashing", "loss of appetite"]). species: Affected species name (for species-specific advice). water_params: Optional dict with current water parameters (ph, ammonia_ppm, etc). Returns: Possible diagnoses ranked by symptom match, with treatment plans. Behavior: This tool is read-only and stateless — it produces analysis output without modifying any external systems, databases, or files. Safe to call repeatedly with identical inputs (idempotent). Free tier: 10/day rate limit. Pro tier: unlimited. No authentication required for basic usage. When to use: Use this tool when you need structured analysis or classification of inputs against established frameworks or standards. When NOT to use: Not suitable for real-time production decision-making without human review of results.
calculate_stocking Calculate maximum fish stocking for a tank. Uses a combination of inch-per-gallon baseline, bioload weighting, swimming space requirements, and filtration capacity. Args: tank_litres: Tank volume in litres. tank_length_cm: Tank length in cm (important for active swimmers). species_list: List of dicts with "species_id" and "count" keys. filtration_quality: One of "minimal", "standard", "excellent", "over-filtered". planted: Whether tank has live plants (improves capacity slightly). Returns: Stocking assessment with bioload percentage and recommendations. Behavior: This tool is read-only and stateless — it produces analysis output without modifying any external systems, databases, or files. Safe to call repeatedly with identical inputs (idempotent). Free tier: 10/day rate limit. Pro tier: unlimited. No authentication required for basic usage. When to use: Use this tool when you need structured analysis or classification of inputs against established frameworks or standards. When NOT to use: Not suitable for real-time production decision-making without human review of results.
get_feeding_schedule Generate a feeding schedule based on species mix. Creates a practical daily/weekly feeding plan accounting for different dietary needs, swim levels, and feeding behaviors. Args: species_list: List of species IDs or common names in the tank. tank_type: Tank type for context (freshwater_tropical, freshwater_coldwater, marine_reef). Returns: Detailed feeding schedule with food types, amounts, and timing. Behavior: This tool generates structured output without modifying external systems. Output is deterministic for identical inputs. No side effects. Free tier: 10/day rate limit. Pro tier: unlimited. No authentication required for basic usage. When to use: Use this tool when you need structured analysis or classification of inputs against established frameworks or standards. When NOT to use: Not suitable for real-time production decision-making without human review of results. Behavioral Transparency: - Side Effects: This tool is read-only and produces no side effects. It does not modify any external state, databases, or files. All output is computed in-memory and returned directly to the caller. - Authentication: No authentication required for basic usage. Pro/Enterprise tiers require a valid MEOK API key passed via the MEOK_API_KEY environment variable. - Rate Limits: Free tier: 10 calls/day. Pro tier: unlimited. Rate limit headers are included in responses (X-RateLimit-Remaining, X-RateLimit-Reset). - Error Handling: Returns structured error objects with 'error' key on failure. Never raises unhandled exceptions. Invalid inputs return descriptive validation errors. - Idempotency: Fully idempotent — calling with the same inputs always produces the same output. Safe to retry on timeout or transient failure. - Data Privacy: No input data is stored, logged, or transmitted to external services. All processing happens locally within the MCP server process.
Permissions 3
network medium filesystem low env_vars low