[
  {
    "serverName": "memory",
    "name": "create_entities",
    "description": "Create multiple new entities in the knowledge graph",
    "inputSchema": {
      "type": "object",
      "properties": {
        "entities": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "The name of the entity"
              },
              "entityType": {
                "type": "string",
                "description": "The type of the entity"
              },
              "observations": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "An array of observation contents associated with the entity"
              }
            },
            "required": [
              "name",
              "entityType",
              "observations"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "entities"
      ],
      "additionalProperties": false
    }
  },
  {
    "serverName": "memory",
    "name": "create_relations",
    "description": "Create multiple new relations between entities in the knowledge graph. Relations should be in active voice",
    "inputSchema": {
      "type": "object",
      "properties": {
        "relations": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "from": {
                "type": "string",
                "description": "The name of the entity where the relation starts"
              },
              "to": {
                "type": "string",
                "description": "The name of the entity where the relation ends"
              },
              "relationType": {
                "type": "string",
                "description": "The type of the relation"
              }
            },
            "required": [
              "from",
              "to",
              "relationType"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "relations"
      ],
      "additionalProperties": false
    }
  },
  {
    "serverName": "memory",
    "name": "add_observations",
    "description": "Add new observations to existing entities in the knowledge graph",
    "inputSchema": {
      "type": "object",
      "properties": {
        "observations": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "entityName": {
                "type": "string",
                "description": "The name of the entity to add the observations to"
              },
              "contents": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "An array of observation contents to add"
              }
            },
            "required": [
              "entityName",
              "contents"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "observations"
      ],
      "additionalProperties": false
    }
  },
  {
    "serverName": "memory",
    "name": "delete_entities",
    "description": "Delete multiple entities and their associated relations from the knowledge graph",
    "inputSchema": {
      "type": "object",
      "properties": {
        "entityNames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of entity names to delete"
        }
      },
      "required": [
        "entityNames"
      ],
      "additionalProperties": false
    }
  },
  {
    "serverName": "memory",
    "name": "delete_observations",
    "description": "Delete specific observations from entities in the knowledge graph",
    "inputSchema": {
      "type": "object",
      "properties": {
        "deletions": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "entityName": {
                "type": "string",
                "description": "The name of the entity containing the observations"
              },
              "observations": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "An array of observations to delete"
              }
            },
            "required": [
              "entityName",
              "observations"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "deletions"
      ],
      "additionalProperties": false
    }
  },
  {
    "serverName": "memory",
    "name": "delete_relations",
    "description": "Delete multiple relations from the knowledge graph",
    "inputSchema": {
      "type": "object",
      "properties": {
        "relations": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "from": {
                "type": "string",
                "description": "The name of the entity where the relation starts"
              },
              "to": {
                "type": "string",
                "description": "The name of the entity where the relation ends"
              },
              "relationType": {
                "type": "string",
                "description": "The type of the relation"
              }
            },
            "required": [
              "from",
              "to",
              "relationType"
            ],
            "additionalProperties": false
          },
          "description": "An array of relations to delete"
        }
      },
      "required": [
        "relations"
      ],
      "additionalProperties": false
    }
  },
  {
    "serverName": "memory",
    "name": "read_graph",
    "description": "Read the entire knowledge graph",
    "inputSchema": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
  },
  {
    "serverName": "memory",
    "name": "search_nodes",
    "description": "Search for nodes in the knowledge graph based on a query",
    "inputSchema": {
      "type": "object",
      "properties": {
        "query": {
          "type": "string",
          "description": "The search query to match against entity names, types, and observation content"
        }
      },
      "required": [
        "query"
      ],
      "additionalProperties": false
    }
  },
  {
    "serverName": "memory",
    "name": "open_nodes",
    "description": "Open specific nodes in the knowledge graph by their names",
    "inputSchema": {
      "type": "object",
      "properties": {
        "names": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of entity names to retrieve"
        }
      },
      "required": [
        "names"
      ],
      "additionalProperties": false
    }
  },
  {
    "serverName": "sequential-thinking",
    "name": "sequentialthinking",
    "description": "A detailed tool for dynamic and reflective problem-solving through thoughts.\nThis tool helps analyze problems through a flexible thinking process that can adapt and evolve.\nEach thought can build on, question, or revise previous insights as understanding deepens.\n\nWhen to use this tool:\n- Breaking down complex problems into steps\n- Planning and design with room for revision\n- Analysis that might need course correction\n- Problems where the full scope might not be clear initially\n- Problems that require a multi-step solution\n- Tasks that need to maintain context over multiple steps\n- Situations where irrelevant information needs to be filtered out\n\nKey features:\n- You can adjust total_thoughts up or down as you progress\n- You can question or revise previous thoughts\n- You can add more thoughts even after reaching what seemed like the end\n- You can express uncertainty and explore alternative approaches\n- Not every thought needs to build linearly - you can branch or backtrack\n- Generates a solution hypothesis\n- Verifies the hypothesis based on the Chain of Thought steps\n- Repeats the process until satisfied\n- Provides a correct answer\n\nParameters explained:\n- thought: Your current thinking step, which can include:\n* Regular analytical steps\n* Revisions of previous thoughts\n* Questions about previous decisions\n* Realizations about needing more analysis\n* Changes in approach\n* Hypothesis generation\n* Hypothesis verification\n- next_thought_needed: True if you need more thinking, even if at what seemed like the end\n- thought_number: Current number in sequence (can go beyond initial total if needed)\n- total_thoughts: Current estimate of thoughts needed (can be adjusted up/down)\n- is_revision: A boolean indicating if this thought revises previous thinking\n- revises_thought: If is_revision is true, which thought number is being reconsidered\n- branch_from_thought: If branching, which thought number is the branching point\n- branch_id: Identifier for the current branch (if any)\n- needs_more_thoughts: If reaching end but realizing more thoughts needed\n\nYou should:\n1. Start with an initial estimate of needed thoughts, but be ready to adjust\n2. Feel free to question or revise previous thoughts\n3. Don't hesitate to add more thoughts if needed, even at the \"end\"\n4. Express uncertainty when present\n5. Mark thoughts that revise previous thinking or branch into new paths\n6. Ignore information that is irrelevant to the current step\n7. Generate a solution hypothesis when appropriate\n8. Verify the hypothesis based on the Chain of Thought steps\n9. Repeat the process until satisfied with the solution\n10. Provide a single, ideally correct answer as the final output\n11. Only set next_thought_needed to false when truly done and a satisfactory answer is reached",
    "inputSchema": {
      "type": "object",
      "properties": {
        "thought": {
          "type": "string",
          "description": "Your current thinking step"
        },
        "nextThoughtNeeded": {
          "type": "boolean",
          "description": "Whether another thought step is needed"
        },
        "thoughtNumber": {
          "type": "integer",
          "description": "Current thought number",
          "minimum": 1
        },
        "totalThoughts": {
          "type": "integer",
          "description": "Estimated total thoughts needed",
          "minimum": 1
        },
        "isRevision": {
          "type": "boolean",
          "description": "Whether this revises previous thinking"
        },
        "revisesThought": {
          "type": "integer",
          "description": "Which thought is being reconsidered",
          "minimum": 1
        },
        "branchFromThought": {
          "type": "integer",
          "description": "Branching point thought number",
          "minimum": 1
        },
        "branchId": {
          "type": "string",
          "description": "Branch identifier"
        },
        "needsMoreThoughts": {
          "type": "boolean",
          "description": "If more thoughts are needed"
        }
      },
      "required": [
        "thought",
        "nextThoughtNeeded",
        "thoughtNumber",
        "totalThoughts"
      ]
    }
  },
  {
    "serverName": "context7",
    "name": "resolve-library-id",
    "description": "Resolves a package/product name to a Context7-compatible library ID and returns a list of matching libraries.\n\nYou MUST call this function before 'get-library-docs' to obtain a valid Context7-compatible library ID UNLESS the user explicitly provides a library ID in the format '/org/project' or '/org/project/version' in their query.\n\nSelection Process:\n1. Analyze the query to understand what library/package the user is looking for\n2. Return the most relevant match based on:\n- Name similarity to the query (exact matches prioritized)\n- Description relevance to the query's intent\n- Documentation coverage (prioritize libraries with higher Code Snippet counts)\n- Trust score (consider libraries with scores of 7-10 more authoritative)\n\nResponse Format:\n- Return the selected library ID in a clearly marked section\n- Provide a brief explanation for why this library was chosen\n- If multiple good matches exist, acknowledge this but proceed with the most relevant one\n- If no good matches exist, clearly state this and suggest query refinements\n\nFor ambiguous queries, request clarification before proceeding with a best-guess match.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "libraryName": {
          "type": "string",
          "description": "Library name to search for and retrieve a Context7-compatible library ID."
        }
      },
      "required": [
        "libraryName"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "context7",
    "name": "get-library-docs",
    "description": "Fetches up-to-date documentation for a library. You must call 'resolve-library-id' first to obtain the exact Context7-compatible library ID required to use this tool, UNLESS the user explicitly provides a library ID in the format '/org/project' or '/org/project/version' in their query.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "context7CompatibleLibraryID": {
          "type": "string",
          "description": "Exact Context7-compatible library ID (e.g., '/mongodb/docs', '/vercel/next.js', '/supabase/supabase', '/vercel/next.js/v14.3.0-canary.87') retrieved from 'resolve-library-id' or directly from user query in the format '/org/project' or '/org/project/version'."
        },
        "topic": {
          "type": "string",
          "description": "Topic to focus documentation on (e.g., 'hooks', 'routing')."
        },
        "tokens": {
          "type": "number",
          "description": "Maximum number of tokens of documentation to retrieve (default: 5000). Higher values provide more context but consume more tokens."
        }
      },
      "required": [
        "context7CompatibleLibraryID"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "eyes_analyze",
    "description": "Understand images, videos, and GIFs with AI vision",
    "inputSchema": {
      "type": "object",
      "properties": {
        "source": {
          "type": "string",
          "description": "File path, URL, or image to analyze"
        },
        "focus": {
          "type": "string",
          "description": "What to focus on in the analysis"
        },
        "detail": {
          "type": "string",
          "enum": [
            "quick",
            "detailed"
          ],
          "default": "detailed",
          "description": "Analysis depth"
        }
      },
      "required": [
        "source"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "eyes_compare",
    "description": "Find differences between images",
    "inputSchema": {
      "type": "object",
      "properties": {
        "image1": {
          "type": "string",
          "description": "First image path or URL"
        },
        "image2": {
          "type": "string",
          "description": "Second image path or URL"
        },
        "focus": {
          "type": "string",
          "enum": [
            "differences",
            "similarities",
            "layout",
            "content"
          ],
          "default": "differences",
          "description": "What to compare"
        }
      },
      "required": [
        "image1",
        "image2"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "eyes_read_document",
    "description": "Extract text and data from documents",
    "inputSchema": {
      "type": "object",
      "properties": {
        "document": {
          "type": "string",
          "description": "Document path or URL"
        },
        "pages": {
          "type": "string",
          "default": "all",
          "description": "Page range (e.g., '1-5' or 'all')"
        },
        "extract": {
          "type": "string",
          "enum": [
            "text",
            "tables",
            "both"
          ],
          "default": "both",
          "description": "What to extract"
        }
      },
      "required": [
        "document"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "eyes_summarize_document",
    "description": "Create summaries from documents",
    "inputSchema": {
      "type": "object",
      "properties": {
        "document": {
          "type": "string",
          "description": "Document path or URL"
        },
        "length": {
          "type": "string",
          "enum": [
            "brief",
            "medium",
            "detailed"
          ],
          "default": "medium",
          "description": "Summary length"
        },
        "focus": {
          "type": "string",
          "description": "Specific topics to focus on"
        }
      },
      "required": [
        "document"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "gemini_gen_image",
    "description": "Generate images from text descriptions using Gemini Imagen API",
    "inputSchema": {
      "type": "object",
      "properties": {
        "prompt": {
          "type": "string",
          "description": "Text description of the image to generate"
        },
        "model": {
          "type": "string",
          "enum": [
            "gemini-2.5-flash-image-preview"
          ],
          "default": "gemini-2.5-flash-image-preview",
          "description": "Image generation model"
        },
        "output_format": {
          "type": "string",
          "enum": [
            "base64",
            "url"
          ],
          "default": "base64",
          "description": "Output format for the generated image"
        },
        "negative_prompt": {
          "type": "string",
          "description": "Text describing what should NOT be in the image"
        },
        "style": {
          "type": "string",
          "enum": [
            "photorealistic",
            "artistic",
            "cartoon",
            "sketch",
            "digital_art"
          ],
          "description": "Style of the generated image"
        },
        "aspect_ratio": {
          "type": "string",
          "enum": [
            "1:1",
            "16:9",
            "9:16",
            "4:3",
            "3:4"
          ],
          "default": "1:1",
          "description": "Aspect ratio of the generated image"
        },
        "seed": {
          "type": "number",
          "description": "Random seed for reproducible generation"
        }
      },
      "required": [
        "prompt"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "gemini_gen_video",
    "description": "Generate videos from text descriptions using Gemini Veo 3.0 API",
    "inputSchema": {
      "type": "object",
      "properties": {
        "prompt": {
          "type": "string",
          "description": "Text description of the video to generate"
        },
        "model": {
          "type": "string",
          "enum": [
            "veo-3.0-generate-001"
          ],
          "default": "veo-3.0-generate-001",
          "description": "Video generation model"
        },
        "duration": {
          "type": "string",
          "enum": [
            "4s",
            "8s",
            "12s"
          ],
          "default": "4s",
          "description": "Duration of the generated video"
        },
        "output_format": {
          "type": "string",
          "enum": [
            "mp4",
            "webm"
          ],
          "default": "mp4",
          "description": "Output format for the generated video"
        },
        "aspect_ratio": {
          "type": "string",
          "enum": [
            "1:1",
            "16:9",
            "9:16",
            "4:3",
            "3:4"
          ],
          "default": "16:9",
          "description": "Aspect ratio of the generated video"
        },
        "fps": {
          "type": "integer",
          "minimum": 1,
          "maximum": 60,
          "default": 24,
          "description": "Frames per second"
        },
        "image_input": {
          "type": "string",
          "description": "Base64 encoded image or image URL to use as starting frame"
        },
        "style": {
          "type": "string",
          "enum": [
            "realistic",
            "cinematic",
            "artistic",
            "cartoon",
            "animation"
          ],
          "description": "Style of the generated video"
        },
        "camera_movement": {
          "type": "string",
          "enum": [
            "static",
            "pan_left",
            "pan_right",
            "zoom_in",
            "zoom_out",
            "dolly_forward",
            "dolly_backward"
          ],
          "description": "Camera movement type"
        },
        "seed": {
          "type": "number",
          "description": "Random seed for reproducible generation"
        }
      },
      "required": [
        "prompt"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "gemini_image_to_video",
    "description": "Generate videos from images and text descriptions using Gemini Imagen + Veo 3.0 APIs",
    "inputSchema": {
      "type": "object",
      "properties": {
        "prompt": {
          "type": "string",
          "description": "Text description of the video animation"
        },
        "image_input": {
          "type": "string",
          "description": "Base64 encoded image or image URL to use as starting frame"
        },
        "model": {
          "type": "string",
          "enum": [
            "veo-3.0-generate-001"
          ],
          "default": "veo-3.0-generate-001",
          "description": "Video generation model"
        },
        "duration": {
          "type": "string",
          "enum": [
            "4s",
            "8s",
            "12s"
          ],
          "default": "4s",
          "description": "Duration of the generated video"
        },
        "output_format": {
          "type": "string",
          "enum": [
            "mp4",
            "webm"
          ],
          "default": "mp4",
          "description": "Output format for the generated video"
        },
        "aspect_ratio": {
          "type": "string",
          "enum": [
            "1:1",
            "16:9",
            "9:16",
            "4:3",
            "3:4"
          ],
          "default": "16:9",
          "description": "Aspect ratio of the generated video"
        },
        "fps": {
          "type": "integer",
          "minimum": 1,
          "maximum": 60,
          "default": 24,
          "description": "Frames per second"
        },
        "style": {
          "type": "string",
          "enum": [
            "realistic",
            "cinematic",
            "artistic",
            "cartoon",
            "animation"
          ],
          "description": "Style of the generated video"
        },
        "camera_movement": {
          "type": "string",
          "enum": [
            "static",
            "pan_left",
            "pan_right",
            "zoom_in",
            "zoom_out",
            "dolly_forward",
            "dolly_backward"
          ],
          "description": "Camera movement type"
        },
        "seed": {
          "type": "number",
          "description": "Random seed for reproducible generation"
        }
      },
      "required": [
        "prompt",
        "image_input"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "gemini_edit_image",
    "description": "Edit images using AI with text-based instructions for inpainting, outpainting, style transfer, object manipulation, and composition. No masks required - just describe what you want to change.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "inpaint",
            "outpaint",
            "style_transfer",
            "object_manipulation",
            "multi_image_compose"
          ],
          "description": "Type of image editing operation to perform"
        },
        "input_image": {
          "type": "string",
          "description": "Base64 encoded image or file path to the input image"
        },
        "prompt": {
          "type": "string",
          "minLength": 1,
          "description": "Text description of the desired edit"
        },
        "mask_image": {
          "type": "string",
          "description": "Base64 encoded mask image for inpainting (white = edit area, black = keep)"
        },
        "mask_prompt": {
          "type": "string",
          "description": "Text description of the area to mask for editing"
        },
        "expand_direction": {
          "type": "string",
          "enum": [
            "all",
            "left",
            "right",
            "top",
            "bottom",
            "horizontal",
            "vertical"
          ],
          "description": "Direction to expand the image"
        },
        "expansion_ratio": {
          "type": "number",
          "minimum": 0.1,
          "maximum": 3,
          "default": 1.5,
          "description": "How much to expand the image (1.0 = no expansion)"
        },
        "style_image": {
          "type": "string",
          "description": "Base64 encoded reference image for style transfer"
        },
        "style_strength": {
          "type": "number",
          "minimum": 0.1,
          "maximum": 1,
          "default": 0.7,
          "description": "Strength of style application"
        },
        "target_object": {
          "type": "string",
          "description": "Description of the object to manipulate"
        },
        "manipulation_type": {
          "type": "string",
          "enum": [
            "move",
            "resize",
            "remove",
            "replace",
            "duplicate"
          ],
          "description": "Type of object manipulation"
        },
        "target_position": {
          "type": "string",
          "description": "New position for the object (e.g., 'center', 'top-left')"
        },
        "secondary_images": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Array of base64 encoded images for composition"
        },
        "composition_layout": {
          "type": "string",
          "enum": [
            "blend",
            "collage",
            "overlay",
            "side_by_side"
          ],
          "description": "How to combine multiple images"
        },
        "blend_mode": {
          "type": "string",
          "enum": [
            "normal",
            "multiply",
            "screen",
            "overlay",
            "soft_light"
          ],
          "description": "Blending mode for image composition"
        },
        "negative_prompt": {
          "type": "string",
          "description": "What to avoid in the edited image"
        },
        "strength": {
          "type": "number",
          "minimum": 0.1,
          "maximum": 1,
          "default": 0.8,
          "description": "Strength of the editing effect"
        },
        "guidance_scale": {
          "type": "number",
          "minimum": 1,
          "maximum": 20,
          "default": 7.5,
          "description": "How closely to follow the prompt"
        },
        "seed": {
          "type": "integer",
          "minimum": 0,
          "description": "Random seed for reproducible results"
        },
        "output_format": {
          "type": "string",
          "enum": [
            "base64",
            "url"
          ],
          "default": "base64",
          "description": "Output format for the edited image"
        },
        "quality": {
          "type": "string",
          "enum": [
            "draft",
            "standard",
            "high"
          ],
          "default": "standard",
          "description": "Quality level of the editing"
        }
      },
      "required": [
        "operation",
        "input_image",
        "prompt"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "gemini_inpaint_image",
    "description": "Add or modify specific areas of an image using natural language descriptions. No mask required - just describe what to change and where.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "input_image": {
          "type": "string",
          "description": "Base64 encoded image or file path to the input image"
        },
        "prompt": {
          "type": "string",
          "minLength": 1,
          "description": "Text description of what to add or change in the image"
        },
        "mask_image": {
          "type": "string",
          "description": "(Optional) Base64 encoded mask image - not used by Gemini but kept for compatibility"
        },
        "mask_prompt": {
          "type": "string",
          "description": "Text description of WHERE in the image to make changes (e.g., 'the empty space beside the cat', 'the top-left corner')"
        },
        "negative_prompt": {
          "type": "string",
          "description": "What to avoid in the edited area"
        },
        "strength": {
          "type": "number",
          "minimum": 0.1,
          "maximum": 1,
          "default": 0.8,
          "description": "Strength of the editing effect"
        },
        "guidance_scale": {
          "type": "number",
          "minimum": 1,
          "maximum": 20,
          "default": 7.5,
          "description": "How closely to follow the prompt"
        },
        "seed": {
          "type": "integer",
          "minimum": 0,
          "description": "Random seed for reproducible results"
        },
        "output_format": {
          "type": "string",
          "enum": [
            "base64",
            "url"
          ],
          "default": "base64",
          "description": "Output format"
        },
        "quality": {
          "type": "string",
          "enum": [
            "draft",
            "standard",
            "high"
          ],
          "default": "standard",
          "description": "Quality level"
        }
      },
      "required": [
        "input_image",
        "prompt"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "gemini_outpaint_image",
    "description": "Expand an image beyond its original borders in specified directions",
    "inputSchema": {
      "type": "object",
      "properties": {
        "input_image": {
          "type": "string",
          "description": "Base64 encoded image or file path to the input image"
        },
        "prompt": {
          "type": "string",
          "minLength": 1,
          "description": "Text description of what to add in the expanded areas"
        },
        "expand_direction": {
          "type": "string",
          "enum": [
            "all",
            "left",
            "right",
            "top",
            "bottom",
            "horizontal",
            "vertical"
          ],
          "default": "all",
          "description": "Direction to expand the image"
        },
        "expansion_ratio": {
          "type": "number",
          "minimum": 0.1,
          "maximum": 3,
          "default": 1.5,
          "description": "How much to expand the image (1.0 = no expansion)"
        },
        "negative_prompt": {
          "type": "string",
          "description": "What to avoid in the expanded areas"
        },
        "strength": {
          "type": "number",
          "minimum": 0.1,
          "maximum": 1,
          "default": 0.8,
          "description": "Strength of the editing effect"
        },
        "guidance_scale": {
          "type": "number",
          "minimum": 1,
          "maximum": 20,
          "default": 7.5,
          "description": "How closely to follow the prompt"
        },
        "seed": {
          "type": "integer",
          "minimum": 0,
          "description": "Random seed for reproducible results"
        },
        "output_format": {
          "type": "string",
          "enum": [
            "base64",
            "url"
          ],
          "default": "base64",
          "description": "Output format"
        },
        "quality": {
          "type": "string",
          "enum": [
            "draft",
            "standard",
            "high"
          ],
          "default": "standard",
          "description": "Quality level"
        }
      },
      "required": [
        "input_image",
        "prompt"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "gemini_style_transfer_image",
    "description": "Transfer the style from one image to another using AI",
    "inputSchema": {
      "type": "object",
      "properties": {
        "input_image": {
          "type": "string",
          "description": "Base64 encoded image or file path to the input image"
        },
        "prompt": {
          "type": "string",
          "minLength": 1,
          "description": "Text description of the desired style"
        },
        "style_image": {
          "type": "string",
          "description": "Base64 encoded reference image for style transfer"
        },
        "style_strength": {
          "type": "number",
          "minimum": 0.1,
          "maximum": 1,
          "default": 0.7,
          "description": "Strength of style application"
        },
        "negative_prompt": {
          "type": "string",
          "description": "What style elements to avoid"
        },
        "guidance_scale": {
          "type": "number",
          "minimum": 1,
          "maximum": 20,
          "default": 7.5,
          "description": "How closely to follow the prompt"
        },
        "seed": {
          "type": "integer",
          "minimum": 0,
          "description": "Random seed for reproducible results"
        },
        "output_format": {
          "type": "string",
          "enum": [
            "base64",
            "url"
          ],
          "default": "base64",
          "description": "Output format"
        },
        "quality": {
          "type": "string",
          "enum": [
            "draft",
            "standard",
            "high"
          ],
          "default": "standard",
          "description": "Quality level"
        }
      },
      "required": [
        "input_image",
        "prompt"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "gemini_compose_images",
    "description": "Combine multiple images into a single composition using AI",
    "inputSchema": {
      "type": "object",
      "properties": {
        "input_image": {
          "type": "string",
          "description": "Base64 encoded primary image"
        },
        "secondary_images": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Array of base64 encoded secondary images to compose"
        },
        "prompt": {
          "type": "string",
          "minLength": 1,
          "description": "Text description of how to compose the images"
        },
        "composition_layout": {
          "type": "string",
          "enum": [
            "blend",
            "collage",
            "overlay",
            "side_by_side"
          ],
          "default": "blend",
          "description": "How to combine the images"
        },
        "blend_mode": {
          "type": "string",
          "enum": [
            "normal",
            "multiply",
            "screen",
            "overlay",
            "soft_light"
          ],
          "default": "normal",
          "description": "Blending mode for image composition"
        },
        "negative_prompt": {
          "type": "string",
          "description": "What to avoid in the composition"
        },
        "strength": {
          "type": "number",
          "minimum": 0.1,
          "maximum": 1,
          "default": 0.8,
          "description": "Strength of the composition effect"
        },
        "guidance_scale": {
          "type": "number",
          "minimum": 1,
          "maximum": 20,
          "default": 7.5,
          "description": "How closely to follow the prompt"
        },
        "seed": {
          "type": "integer",
          "minimum": 0,
          "description": "Random seed for reproducible results"
        },
        "output_format": {
          "type": "string",
          "enum": [
            "base64",
            "url"
          ],
          "default": "base64",
          "description": "Output format"
        },
        "quality": {
          "type": "string",
          "enum": [
            "draft",
            "standard",
            "high"
          ],
          "default": "standard",
          "description": "Quality level"
        }
      },
      "required": [
        "input_image",
        "secondary_images",
        "prompt"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "jimp_crop_image",
    "description": "Crop an image using Jimp with various modes (manual, center, aspect ratio, etc.)",
    "inputSchema": {
      "type": "object",
      "properties": {
        "input_image": {
          "type": "string",
          "description": "Input image - supports file paths, URLs, or base64 data URIs"
        },
        "mode": {
          "type": "string",
          "enum": [
            "manual",
            "center",
            "top_left",
            "top_right",
            "bottom_left",
            "bottom_right",
            "aspect_ratio"
          ],
          "default": "manual",
          "description": "Crop mode"
        },
        "x": {
          "type": "integer",
          "minimum": 0,
          "description": "X coordinate for crop start (manual mode)"
        },
        "y": {
          "type": "integer",
          "minimum": 0,
          "description": "Y coordinate for crop start (manual mode)"
        },
        "width": {
          "type": "integer",
          "minimum": 1,
          "description": "Width of crop region"
        },
        "height": {
          "type": "integer",
          "minimum": 1,
          "description": "Height of crop region"
        },
        "aspect_ratio": {
          "type": "string",
          "description": "Aspect ratio (e.g., '16:9', '4:3')"
        },
        "output_format": {
          "type": "string",
          "enum": [
            "png",
            "jpeg",
            "bmp"
          ],
          "default": "png",
          "description": "Output image format"
        },
        "quality": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100,
          "description": "JPEG quality (0-100)"
        }
      },
      "required": [
        "input_image"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "jimp_resize_image",
    "description": "Resize an image using Jimp with various algorithms and options",
    "inputSchema": {
      "type": "object",
      "properties": {
        "input_image": {
          "type": "string",
          "description": "Input image - supports file paths, URLs, or base64 data URIs"
        },
        "width": {
          "type": "integer",
          "minimum": 1,
          "description": "Target width in pixels"
        },
        "height": {
          "type": "integer",
          "minimum": 1,
          "description": "Target height in pixels"
        },
        "scale": {
          "type": "number",
          "minimum": 0.01,
          "maximum": 10,
          "description": "Scale factor (e.g., 0.5 for 50%, 2.0 for 200%)"
        },
        "maintain_aspect_ratio": {
          "type": "boolean",
          "default": true,
          "description": "Maintain aspect ratio when resizing"
        },
        "algorithm": {
          "type": "string",
          "enum": [
            "nearestNeighbor",
            "bilinear",
            "bicubic",
            "hermite",
            "bezier"
          ],
          "default": "bilinear",
          "description": "Resize algorithm"
        },
        "output_format": {
          "type": "string",
          "enum": [
            "png",
            "jpeg",
            "bmp"
          ],
          "default": "png",
          "description": "Output image format"
        },
        "quality": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100,
          "description": "JPEG quality (0-100)"
        }
      },
      "required": [
        "input_image"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "jimp_rotate_image",
    "description": "Rotate an image using Jimp by any angle",
    "inputSchema": {
      "type": "object",
      "properties": {
        "input_image": {
          "type": "string",
          "description": "Input image - supports file paths, URLs, or base64 data URIs"
        },
        "angle": {
          "type": "number",
          "description": "Rotation angle in degrees (positive = clockwise, negative = counter-clockwise)"
        },
        "background_color": {
          "type": "string",
          "description": "Background color for areas outside the rotated image (CSS color format, e.g., '#ffffff', 'white')"
        },
        "output_format": {
          "type": "string",
          "enum": [
            "png",
            "jpeg",
            "bmp"
          ],
          "default": "png",
          "description": "Output image format"
        },
        "quality": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100,
          "description": "JPEG quality (0-100)"
        }
      },
      "required": [
        "input_image",
        "angle"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "jimp_mask_image",
    "description": "Apply a grayscale alpha mask to an image using Jimp (black pixels = transparent, white pixels = opaque)",
    "inputSchema": {
      "type": "object",
      "properties": {
        "input_image": {
          "type": "string",
          "description": "Input image to apply mask to - supports file paths, URLs, or base64 data URIs"
        },
        "mask_image": {
          "type": "string",
          "description": "Grayscale mask image (black = transparent, white = opaque) - supports file paths, URLs, or base64 data URIs"
        },
        "output_format": {
          "type": "string",
          "enum": [
            "png",
            "jpeg",
            "bmp"
          ],
          "default": "png",
          "description": "Output image format"
        },
        "quality": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100,
          "description": "JPEG quality (0-100)"
        }
      },
      "required": [
        "input_image",
        "mask_image"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "rmbg_remove_background",
    "description": "Remove background from an image using AI-powered background removal",
    "inputSchema": {
      "type": "object",
      "properties": {
        "input_image": {
          "type": "string",
          "description": "Input image - supports file paths, URLs, or base64 data URIs"
        },
        "quality": {
          "type": "string",
          "enum": [
            "fast",
            "balanced",
            "high"
          ],
          "default": "balanced",
          "description": "Processing quality (fast = quick but less accurate, high = slower but more accurate)"
        },
        "output_format": {
          "type": "string",
          "enum": [
            "png",
            "jpeg"
          ],
          "default": "png",
          "description": "Output image format (PNG preserves transparency, JPEG requires background color)"
        },
        "background_color": {
          "type": "string",
          "description": "Background color for JPEG output (CSS color format, e.g., '#ffffff', 'white')"
        },
        "jpeg_quality": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100,
          "default": 85,
          "description": "JPEG quality (0-100)"
        }
      },
      "required": [
        "input_image"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "playwright_screenshot_fullpage",
    "description": "Capture full page screenshot including scrollable content using Playwright",
    "inputSchema": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "format": "uri",
          "description": "URL of the webpage to capture"
        },
        "format": {
          "type": "string",
          "enum": [
            "png",
            "jpeg"
          ],
          "default": "png",
          "description": "Screenshot format"
        },
        "quality": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100,
          "description": "JPEG quality (0-100), only applicable for jpeg format"
        },
        "timeout": {
          "type": "integer",
          "minimum": 1000,
          "maximum": 120000,
          "default": 30000,
          "description": "Navigation timeout in milliseconds"
        },
        "wait_until": {
          "type": "string",
          "enum": [
            "load",
            "domcontentloaded",
            "networkidle"
          ],
          "default": "networkidle",
          "description": "When to consider navigation successful"
        },
        "viewport": {
          "type": "object",
          "properties": {
            "width": {
              "type": "integer",
              "minimum": 320,
              "maximum": 3840,
              "default": 1920
            },
            "height": {
              "type": "integer",
              "minimum": 240,
              "maximum": 2160,
              "default": 1080
            }
          },
          "additionalProperties": false,
          "description": "Viewport dimensions"
        }
      },
      "required": [
        "url"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "playwright_screenshot_viewport",
    "description": "Capture viewport screenshot (visible area only) using Playwright",
    "inputSchema": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "format": "uri",
          "description": "URL of the webpage to capture"
        },
        "format": {
          "type": "string",
          "enum": [
            "png",
            "jpeg"
          ],
          "default": "png",
          "description": "Screenshot format"
        },
        "quality": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100,
          "description": "JPEG quality (0-100), only applicable for jpeg format"
        },
        "timeout": {
          "type": "integer",
          "minimum": 1000,
          "maximum": 120000,
          "default": 30000,
          "description": "Navigation timeout in milliseconds"
        },
        "wait_until": {
          "type": "string",
          "enum": [
            "load",
            "domcontentloaded",
            "networkidle"
          ],
          "default": "networkidle",
          "description": "When to consider navigation successful"
        },
        "viewport": {
          "type": "object",
          "properties": {
            "width": {
              "type": "integer",
              "minimum": 320,
              "maximum": 3840,
              "default": 1920
            },
            "height": {
              "type": "integer",
              "minimum": 240,
              "maximum": 2160,
              "default": 1080
            }
          },
          "additionalProperties": false,
          "description": "Viewport dimensions"
        }
      },
      "required": [
        "url"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "playwright_screenshot_element",
    "description": "Capture screenshot of specific element using Playwright",
    "inputSchema": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "format": "uri",
          "description": "URL of the webpage to capture"
        },
        "selector": {
          "type": "string",
          "minLength": 1,
          "description": "CSS selector, text content, or role of the element to capture"
        },
        "selector_type": {
          "type": "string",
          "enum": [
            "css",
            "text",
            "role"
          ],
          "default": "css",
          "description": "Type of selector (css, text, or role)"
        },
        "format": {
          "type": "string",
          "enum": [
            "png",
            "jpeg"
          ],
          "default": "png",
          "description": "Screenshot format"
        },
        "quality": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100,
          "description": "JPEG quality (0-100), only applicable for jpeg format"
        },
        "timeout": {
          "type": "integer",
          "minimum": 1000,
          "maximum": 120000,
          "default": 30000,
          "description": "Navigation and element wait timeout in milliseconds"
        },
        "wait_until": {
          "type": "string",
          "enum": [
            "load",
            "domcontentloaded",
            "networkidle"
          ],
          "default": "networkidle",
          "description": "When to consider navigation successful"
        },
        "viewport": {
          "type": "object",
          "properties": {
            "width": {
              "type": "integer",
              "minimum": 320,
              "maximum": 3840,
              "default": 1920
            },
            "height": {
              "type": "integer",
              "minimum": 240,
              "maximum": 2160,
              "default": 1080
            }
          },
          "additionalProperties": false,
          "description": "Viewport dimensions"
        },
        "wait_for_selector": {
          "type": "boolean",
          "default": true,
          "description": "Wait for the selector to be visible before capturing"
        }
      },
      "required": [
        "url",
        "selector"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "mouth_speak",
    "description": "Generate speech from text using Gemini Speech Generation API with voice customization",
    "inputSchema": {
      "type": "object",
      "properties": {
        "text": {
          "type": "string",
          "minLength": 1,
          "maxLength": 32000,
          "description": "Text to convert to speech (max 32k tokens)"
        },
        "voice": {
          "type": "string",
          "enum": [
            "Astrid",
            "Charon",
            "Fenrir",
            "Kore",
            "Odin",
            "Puck",
            "Sage",
            "Vox",
            "Zephyr",
            "Aoede",
            "Apollo",
            "Elektra",
            "Iris",
            "Nemesis",
            "Perseus",
            "Selene",
            "Thalia",
            "Argus",
            "Ares",
            "Demeter",
            "Dione",
            "Echo",
            "Eros",
            "Hephaestus",
            "Hermes",
            "Hyperion",
            "Iapetus",
            "Kronos",
            "Leto",
            "Maia",
            "Mnemosyne"
          ],
          "default": "Zephyr",
          "description": "Voice to use for speech generation"
        },
        "model": {
          "type": "string",
          "enum": [
            "gemini-2.5-flash-preview-tts",
            "gemini-2.5-pro-preview-tts"
          ],
          "default": "gemini-2.5-flash-preview-tts",
          "description": "Speech generation model"
        },
        "language": {
          "type": "string",
          "enum": [
            "ar-EG",
            "de-DE",
            "en-US",
            "es-US",
            "fr-FR",
            "hi-IN",
            "id-ID",
            "it-IT",
            "ja-JP",
            "ko-KR",
            "pt-BR",
            "ru-RU",
            "nl-NL",
            "pl-PL",
            "th-TH",
            "tr-TR",
            "vi-VN",
            "ro-RO",
            "uk-UA",
            "bn-BD",
            "en-IN",
            "mr-IN",
            "ta-IN",
            "te-IN"
          ],
          "default": "en-US",
          "description": "Language for speech generation"
        },
        "output_format": {
          "type": "string",
          "enum": [
            "wav",
            "base64",
            "url"
          ],
          "default": "base64",
          "description": "Output format for generated audio"
        },
        "style_prompt": {
          "type": "string",
          "description": "Natural language prompt to control speaking style"
        }
      },
      "required": [
        "text"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "mouth_narrate",
    "description": "Generate narration for long-form content with chapter breaks and style control",
    "inputSchema": {
      "type": "object",
      "properties": {
        "content": {
          "type": "string",
          "minLength": 1,
          "description": "Long-form content to narrate"
        },
        "voice": {
          "type": "string",
          "enum": [
            "Astrid",
            "Charon",
            "Fenrir",
            "Kore",
            "Odin",
            "Puck",
            "Sage",
            "Vox",
            "Zephyr",
            "Aoede",
            "Apollo",
            "Elektra",
            "Iris",
            "Nemesis",
            "Perseus",
            "Selene",
            "Thalia",
            "Argus",
            "Ares",
            "Demeter",
            "Dione",
            "Echo",
            "Eros",
            "Hephaestus",
            "Hermes",
            "Hyperion",
            "Iapetus",
            "Kronos",
            "Leto",
            "Maia",
            "Mnemosyne"
          ],
          "default": "Sage",
          "description": "Voice to use for narration"
        },
        "model": {
          "type": "string",
          "enum": [
            "gemini-2.5-flash-preview-tts",
            "gemini-2.5-pro-preview-tts"
          ],
          "default": "gemini-2.5-pro-preview-tts",
          "description": "Speech generation model"
        },
        "language": {
          "type": "string",
          "enum": [
            "ar-EG",
            "de-DE",
            "en-US",
            "es-US",
            "fr-FR",
            "hi-IN",
            "id-ID",
            "it-IT",
            "ja-JP",
            "ko-KR",
            "pt-BR",
            "ru-RU",
            "nl-NL",
            "pl-PL",
            "th-TH",
            "tr-TR",
            "vi-VN",
            "ro-RO",
            "uk-UA",
            "bn-BD",
            "en-IN",
            "mr-IN",
            "ta-IN",
            "te-IN"
          ],
          "default": "en-US",
          "description": "Language for narration"
        },
        "output_format": {
          "type": "string",
          "enum": [
            "wav",
            "base64",
            "url"
          ],
          "default": "base64",
          "description": "Output format for generated audio"
        },
        "narration_style": {
          "type": "string",
          "enum": [
            "professional",
            "casual",
            "educational",
            "storytelling"
          ],
          "default": "professional",
          "description": "Narration style"
        },
        "chapter_breaks": {
          "type": "boolean",
          "default": false,
          "description": "Add pauses between chapters/sections"
        },
        "max_chunk_size": {
          "type": "number",
          "default": 8000,
          "description": "Maximum characters per audio chunk"
        }
      },
      "required": [
        "content"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "mouth_explain",
    "description": "Generate spoken explanations of code with technical analysis",
    "inputSchema": {
      "type": "object",
      "properties": {
        "code": {
          "type": "string",
          "minLength": 1,
          "description": "Code to explain"
        },
        "language": {
          "type": "string",
          "enum": [
            "ar-EG",
            "de-DE",
            "en-US",
            "es-US",
            "fr-FR",
            "hi-IN",
            "id-ID",
            "it-IT",
            "ja-JP",
            "ko-KR",
            "pt-BR",
            "ru-RU",
            "nl-NL",
            "pl-PL",
            "th-TH",
            "tr-TR",
            "vi-VN",
            "ro-RO",
            "uk-UA",
            "bn-BD",
            "en-IN",
            "mr-IN",
            "ta-IN",
            "te-IN"
          ],
          "default": "en-US",
          "description": "Language for explanation"
        },
        "programming_language": {
          "type": "string",
          "description": "Programming language of the code"
        },
        "voice": {
          "type": "string",
          "enum": [
            "Astrid",
            "Charon",
            "Fenrir",
            "Kore",
            "Odin",
            "Puck",
            "Sage",
            "Vox",
            "Zephyr",
            "Aoede",
            "Apollo",
            "Elektra",
            "Iris",
            "Nemesis",
            "Perseus",
            "Selene",
            "Thalia",
            "Argus",
            "Ares",
            "Demeter",
            "Dione",
            "Echo",
            "Eros",
            "Hephaestus",
            "Hermes",
            "Hyperion",
            "Iapetus",
            "Kronos",
            "Leto",
            "Maia",
            "Mnemosyne"
          ],
          "default": "Apollo",
          "description": "Voice to use for explanation"
        },
        "model": {
          "type": "string",
          "enum": [
            "gemini-2.5-flash-preview-tts",
            "gemini-2.5-pro-preview-tts"
          ],
          "default": "gemini-2.5-pro-preview-tts",
          "description": "Speech generation model"
        },
        "output_format": {
          "type": "string",
          "enum": [
            "wav",
            "base64",
            "url"
          ],
          "default": "base64",
          "description": "Output format for generated audio"
        },
        "explanation_level": {
          "type": "string",
          "enum": [
            "beginner",
            "intermediate",
            "advanced"
          ],
          "default": "intermediate",
          "description": "Technical level of explanation"
        },
        "include_examples": {
          "type": "boolean",
          "default": true,
          "description": "Include examples in explanation"
        }
      },
      "required": [
        "code"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "mouth_customize",
    "description": "Test different voices and styles to find the best fit for your content",
    "inputSchema": {
      "type": "object",
      "properties": {
        "text": {
          "type": "string",
          "minLength": 1,
          "maxLength": 1000,
          "description": "Sample text to test voice customization"
        },
        "voice": {
          "type": "string",
          "enum": [
            "Astrid",
            "Charon",
            "Fenrir",
            "Kore",
            "Odin",
            "Puck",
            "Sage",
            "Vox",
            "Zephyr",
            "Aoede",
            "Apollo",
            "Elektra",
            "Iris",
            "Nemesis",
            "Perseus",
            "Selene",
            "Thalia",
            "Argus",
            "Ares",
            "Demeter",
            "Dione",
            "Echo",
            "Eros",
            "Hephaestus",
            "Hermes",
            "Hyperion",
            "Iapetus",
            "Kronos",
            "Leto",
            "Maia",
            "Mnemosyne"
          ],
          "description": "Base voice to customize"
        },
        "model": {
          "type": "string",
          "enum": [
            "gemini-2.5-flash-preview-tts",
            "gemini-2.5-pro-preview-tts"
          ],
          "default": "gemini-2.5-flash-preview-tts",
          "description": "Speech generation model"
        },
        "language": {
          "type": "string",
          "enum": [
            "ar-EG",
            "de-DE",
            "en-US",
            "es-US",
            "fr-FR",
            "hi-IN",
            "id-ID",
            "it-IT",
            "ja-JP",
            "ko-KR",
            "pt-BR",
            "ru-RU",
            "nl-NL",
            "pl-PL",
            "th-TH",
            "tr-TR",
            "vi-VN",
            "ro-RO",
            "uk-UA",
            "bn-BD",
            "en-IN",
            "mr-IN",
            "ta-IN",
            "te-IN"
          ],
          "default": "en-US",
          "description": "Language for speech generation"
        },
        "output_format": {
          "type": "string",
          "enum": [
            "wav",
            "base64",
            "url"
          ],
          "default": "base64",
          "description": "Output format for generated audio"
        },
        "style_variations": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Array of different style prompts to test"
        },
        "compare_voices": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "Astrid",
              "Charon",
              "Fenrir",
              "Kore",
              "Odin",
              "Puck",
              "Sage",
              "Vox",
              "Zephyr",
              "Aoede",
              "Apollo",
              "Elektra",
              "Iris",
              "Nemesis",
              "Perseus",
              "Selene",
              "Thalia",
              "Argus",
              "Ares",
              "Demeter",
              "Dione",
              "Echo",
              "Eros",
              "Hephaestus",
              "Hermes",
              "Hyperion",
              "Iapetus",
              "Kronos",
              "Leto",
              "Maia",
              "Mnemosyne"
            ]
          },
          "description": "Additional voices to compare with the main voice"
        }
      },
      "required": [
        "text",
        "voice"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "mcp__reasoning__sequentialthinking",
    "description": "Advanced sequential thinking for complex problems with thought revision and branching",
    "inputSchema": {
      "type": "object",
      "properties": {
        "thought": {
          "type": "string",
          "description": "Your current thinking step"
        },
        "nextThoughtNeeded": {
          "type": "boolean",
          "description": "Whether another thought step is needed"
        },
        "thoughtNumber": {
          "type": "integer",
          "minimum": 1,
          "description": "Current thought number"
        },
        "totalThoughts": {
          "type": "integer",
          "minimum": 1,
          "description": "Estimated total thoughts needed"
        },
        "sessionId": {
          "type": "string",
          "description": "Thinking session ID (auto-generated if not provided)"
        },
        "problem": {
          "type": "string",
          "description": "The problem to think through (required for new sessions)"
        },
        "isRevision": {
          "type": "boolean",
          "default": false,
          "description": "Whether this revises previous thinking"
        },
        "revisesThought": {
          "type": "integer",
          "minimum": 1,
          "description": "Which thought is being reconsidered"
        },
        "branchId": {
          "type": "string",
          "description": "Branch identifier"
        },
        "branchFromThought": {
          "type": "integer",
          "minimum": 1,
          "description": "Branching point thought number"
        }
      },
      "required": [
        "thought",
        "nextThoughtNeeded",
        "thoughtNumber",
        "totalThoughts"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "brain_analyze_simple",
    "description": "Fast pattern-based analysis using proven frameworks",
    "inputSchema": {
      "type": "object",
      "properties": {
        "problem": {
          "type": "string",
          "description": "The problem or situation to analyze"
        },
        "pattern": {
          "type": "string",
          "enum": [
            "problem_solving",
            "root_cause",
            "pros_cons",
            "swot",
            "cause_effect"
          ],
          "description": "Analysis framework to use"
        },
        "context": {
          "type": "string",
          "description": "Additional context or background information"
        }
      },
      "required": [
        "problem",
        "pattern"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "brain_patterns_info",
    "description": "List available reasoning patterns and their descriptions",
    "inputSchema": {
      "type": "object",
      "properties": {
        "pattern": {
          "type": "string",
          "description": "Specific pattern to get info about (optional)"
        }
      },
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "human-mcp",
    "name": "brain_reflect_enhanced",
    "description": "AI-powered reflection for complex analysis improvement",
    "inputSchema": {
      "type": "object",
      "properties": {
        "originalAnalysis": {
          "type": "string",
          "minLength": 50,
          "maxLength": 5000,
          "description": "The analysis or reasoning to reflect on"
        },
        "focusAreas": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "assumptions",
              "logic_gaps",
              "alternative_approaches",
              "evidence_quality",
              "bias_detection",
              "completeness"
            ]
          },
          "minItems": 1,
          "maxItems": 3,
          "description": "Specific aspects to focus reflection on"
        },
        "improvementGoal": {
          "type": "string",
          "description": "Primary goal for improvement"
        },
        "detailLevel": {
          "type": "string",
          "enum": [
            "concise",
            "detailed"
          ],
          "default": "detailed",
          "description": "Level of analysis detail"
        }
      },
      "required": [
        "originalAnalysis",
        "focusAreas"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "click",
    "description": "Clicks on the provided element",
    "inputSchema": {
      "type": "object",
      "properties": {
        "uid": {
          "type": "string",
          "description": "The uid of an element on the page from the page content snapshot"
        },
        "dblClick": {
          "type": "boolean",
          "description": "Set to true for double clicks. Default is false."
        }
      },
      "required": [
        "uid"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "close_page",
    "description": "Closes the page by its index. The last open page cannot be closed.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "pageIdx": {
          "type": "number",
          "description": "The index of the page to close. Call list_pages to list pages."
        }
      },
      "required": [
        "pageIdx"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "drag",
    "description": "Drag an element onto another element",
    "inputSchema": {
      "type": "object",
      "properties": {
        "from_uid": {
          "type": "string",
          "description": "The uid of the element to drag"
        },
        "to_uid": {
          "type": "string",
          "description": "The uid of the element to drop into"
        }
      },
      "required": [
        "from_uid",
        "to_uid"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "emulate",
    "description": "Emulates various features on the selected page.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "networkConditions": {
          "type": "string",
          "enum": [
            "No emulation",
            "Offline",
            "Slow 3G",
            "Fast 3G",
            "Slow 4G",
            "Fast 4G"
          ],
          "description": "Throttle network. Set to \"No emulation\" to disable. If omitted, conditions remain unchanged."
        },
        "cpuThrottlingRate": {
          "type": "number",
          "minimum": 1,
          "maximum": 20,
          "description": "Represents the CPU slowdown factor. Set the rate to 1 to disable throttling. If omitted, throttling remains unchanged."
        }
      },
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "evaluate_script",
    "description": "Evaluate a JavaScript function inside the currently selected page. Returns the response as JSON\nso returned values have to JSON-serializable.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "function": {
          "type": "string",
          "description": "A JavaScript function declaration to be executed by the tool in the currently selected page.\nExample without arguments: `() => {\n  return document.title\n}` or `async () => {\n  return await fetch(\"example.com\")\n}`.\nExample with arguments: `(el) => {\n  return el.innerText;\n}`\n"
        },
        "args": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "uid": {
                "type": "string",
                "description": "The uid of an element on the page from the page content snapshot"
              }
            },
            "required": [
              "uid"
            ],
            "additionalProperties": false
          },
          "description": "An optional list of arguments to pass to the function."
        }
      },
      "required": [
        "function"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "fill",
    "description": "Type text into a input, text area or select an option from a <select> element.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "uid": {
          "type": "string",
          "description": "The uid of an element on the page from the page content snapshot"
        },
        "value": {
          "type": "string",
          "description": "The value to fill in"
        }
      },
      "required": [
        "uid",
        "value"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "fill_form",
    "description": "Fill out multiple form elements at once",
    "inputSchema": {
      "type": "object",
      "properties": {
        "elements": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "uid": {
                "type": "string",
                "description": "The uid of the element to fill out"
              },
              "value": {
                "type": "string",
                "description": "Value for the element"
              }
            },
            "required": [
              "uid",
              "value"
            ],
            "additionalProperties": false
          },
          "description": "Elements from snapshot to fill out."
        }
      },
      "required": [
        "elements"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "get_console_message",
    "description": "Gets a console message by its ID. You can get all messages by calling list_console_messages.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "msgid": {
          "type": "number",
          "description": "The msgid of a console message on the page from the listed console messages"
        }
      },
      "required": [
        "msgid"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "get_network_request",
    "description": "Gets a network request by an optional reqid, if omitted returns the currently selected request in the DevTools Network panel.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "reqid": {
          "type": "number",
          "description": "The reqid of the network request. If omitted returns the currently selected request in the DevTools Network panel."
        }
      },
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "handle_dialog",
    "description": "If a browser dialog was opened, use this command to handle it",
    "inputSchema": {
      "type": "object",
      "properties": {
        "action": {
          "type": "string",
          "enum": [
            "accept",
            "dismiss"
          ],
          "description": "Whether to dismiss or accept the dialog"
        },
        "promptText": {
          "type": "string",
          "description": "Optional prompt text to enter into the dialog."
        }
      },
      "required": [
        "action"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "hover",
    "description": "Hover over the provided element",
    "inputSchema": {
      "type": "object",
      "properties": {
        "uid": {
          "type": "string",
          "description": "The uid of an element on the page from the page content snapshot"
        }
      },
      "required": [
        "uid"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "list_console_messages",
    "description": "List all console messages for the currently selected page since the last navigation.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "pageSize": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "description": "Maximum number of messages to return. When omitted, returns all requests."
        },
        "pageIdx": {
          "type": "integer",
          "minimum": 0,
          "description": "Page number to return (0-based). When omitted, returns the first page."
        },
        "types": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "log",
              "debug",
              "info",
              "error",
              "warn",
              "dir",
              "dirxml",
              "table",
              "trace",
              "clear",
              "startGroup",
              "startGroupCollapsed",
              "endGroup",
              "assert",
              "profile",
              "profileEnd",
              "count",
              "timeEnd",
              "verbose"
            ]
          },
          "description": "Filter messages to only return messages of the specified resource types. When omitted or empty, returns all messages."
        },
        "includePreservedMessages": {
          "type": "boolean",
          "default": false,
          "description": "Set to true to return the preserved messages over the last 3 navigations."
        }
      },
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "list_network_requests",
    "description": "List all requests for the currently selected page since the last navigation.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "pageSize": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "description": "Maximum number of requests to return. When omitted, returns all requests."
        },
        "pageIdx": {
          "type": "integer",
          "minimum": 0,
          "description": "Page number to return (0-based). When omitted, returns the first page."
        },
        "resourceTypes": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "document",
              "stylesheet",
              "image",
              "media",
              "font",
              "script",
              "texttrack",
              "xhr",
              "fetch",
              "prefetch",
              "eventsource",
              "websocket",
              "manifest",
              "signedexchange",
              "ping",
              "cspviolationreport",
              "preflight",
              "fedcm",
              "other"
            ]
          },
          "description": "Filter requests to only return requests of the specified resource types. When omitted or empty, returns all requests."
        },
        "includePreservedRequests": {
          "type": "boolean",
          "default": false,
          "description": "Set to true to return the preserved requests over the last 3 navigations."
        }
      },
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "list_pages",
    "description": "Get a list of pages open in the browser.",
    "inputSchema": {
      "type": "object",
      "properties": {},
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "navigate_page",
    "description": "Navigates the currently selected page to a URL.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "url",
            "back",
            "forward",
            "reload"
          ],
          "description": "Navigate the page by URL, back or forward in history, or reload."
        },
        "url": {
          "type": "string",
          "description": "Target URL (only type=url)"
        },
        "ignoreCache": {
          "type": "boolean",
          "description": "Whether to ignore cache on reload."
        },
        "timeout": {
          "type": "integer",
          "description": "Maximum wait time in milliseconds. If set to 0, the default timeout will be used."
        }
      },
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "new_page",
    "description": "Creates a new page",
    "inputSchema": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "description": "URL to load in a new page."
        },
        "timeout": {
          "type": "integer",
          "description": "Maximum wait time in milliseconds. If set to 0, the default timeout will be used."
        }
      },
      "required": [
        "url"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "performance_analyze_insight",
    "description": "Provides more detailed information on a specific Performance Insight of an insight set that was highlighted in the results of a trace recording.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "insightSetId": {
          "type": "string",
          "description": "The id for the specific insight set. Only use the ids given in the \"Available insight sets\" list."
        },
        "insightName": {
          "type": "string",
          "description": "The name of the Insight you want more information on. For example: \"DocumentLatency\" or \"LCPBreakdown\""
        }
      },
      "required": [
        "insightSetId",
        "insightName"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "performance_start_trace",
    "description": "Starts a performance trace recording on the selected page. This can be used to look for performance problems and insights to improve the performance of the page. It will also report Core Web Vital (CWV) scores for the page.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "reload": {
          "type": "boolean",
          "description": "Determines if, once tracing has started, the page should be automatically reloaded."
        },
        "autoStop": {
          "type": "boolean",
          "description": "Determines if the trace recording should be automatically stopped."
        }
      },
      "required": [
        "reload",
        "autoStop"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "performance_stop_trace",
    "description": "Stops the active performance trace recording on the selected page.",
    "inputSchema": {
      "type": "object",
      "properties": {},
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "press_key",
    "description": "Press a key or key combination. Use this when other input methods like fill() cannot be used (e.g., keyboard shortcuts, navigation keys, or special key combinations).",
    "inputSchema": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string",
          "description": "A key or a combination (e.g., \"Enter\", \"Control+A\", \"Control++\", \"Control+Shift+R\"). Modifiers: Control, Shift, Alt, Meta"
        }
      },
      "required": [
        "key"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "resize_page",
    "description": "Resizes the selected page's window so that the page has specified dimension",
    "inputSchema": {
      "type": "object",
      "properties": {
        "width": {
          "type": "number",
          "description": "Page width"
        },
        "height": {
          "type": "number",
          "description": "Page height"
        }
      },
      "required": [
        "width",
        "height"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "select_page",
    "description": "Select a page as a context for future tool calls.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "pageIdx": {
          "type": "number",
          "description": "The index of the page to select. Call list_pages to list pages."
        }
      },
      "required": [
        "pageIdx"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "take_screenshot",
    "description": "Take a screenshot of the page or element.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "format": {
          "type": "string",
          "enum": [
            "png",
            "jpeg",
            "webp"
          ],
          "default": "png",
          "description": "Type of format to save the screenshot as. Default is \"png\""
        },
        "quality": {
          "type": "number",
          "minimum": 0,
          "maximum": 100,
          "description": "Compression quality for JPEG and WebP formats (0-100). Higher values mean better quality but larger file sizes. Ignored for PNG format."
        },
        "uid": {
          "type": "string",
          "description": "The uid of an element on the page from the page content snapshot. If omitted takes a pages screenshot."
        },
        "fullPage": {
          "type": "boolean",
          "description": "If set to true takes a screenshot of the full page instead of the currently visible viewport. Incompatible with uid."
        },
        "filePath": {
          "type": "string",
          "description": "The absolute path, or a path relative to the current working directory, to save the screenshot to instead of attaching it to the response."
        }
      },
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "take_snapshot",
    "description": "Take a text snapshot of the currently selected page based on the a11y tree. The snapshot lists page elements along with a unique\nidentifier (uid). Always use the latest snapshot. Prefer taking a snapshot over taking a screenshot. The snapshot indicates the element selected\nin the DevTools Elements panel (if any).",
    "inputSchema": {
      "type": "object",
      "properties": {
        "verbose": {
          "type": "boolean",
          "description": "Whether to include all possible information available in the full a11y tree. Default is false."
        },
        "filePath": {
          "type": "string",
          "description": "The absolute path, or a path relative to the current working directory, to save the snapshot to instead of attaching it to the response."
        }
      },
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "upload_file",
    "description": "Upload a file through a provided element.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "uid": {
          "type": "string",
          "description": "The uid of the file input element or an element that will open file chooser on the page from the page content snapshot"
        },
        "filePath": {
          "type": "string",
          "description": "The local path of the file to upload"
        }
      },
      "required": [
        "uid",
        "filePath"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  },
  {
    "serverName": "chrome-devtools",
    "name": "wait_for",
    "description": "Wait for the specified text to appear on the selected page.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "text": {
          "type": "string",
          "description": "Text to appear on the page"
        },
        "timeout": {
          "type": "integer",
          "description": "Maximum wait time in milliseconds. If set to 0, the default timeout will be used."
        }
      },
      "required": [
        "text"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  }
]