Is the Makeupar Creators MCP server down?

mcp-registry/com.makeupar/creators · v1.0.1

healthy
Last checked 2026-10-22 01:54 UTC · handshake 55ms

As of 2026-10-22 01:54 UTC, the Makeupar Creators MCP server is up with a Glimind reliability score of 77/100 (grade B). Over the last 30 days it answered 99.4% of Glimind's liveness checks. It had 44 outages in 90 days, with a median recovery of 6 minutes.

uptime (30d checks)
99.4%
checks observed
4,231
outages (90d)
44
tools
37

Provides YouCam API for AI image and video editing and generation.

Install Makeupar Creators MCP server

Add to Cursor Add to VS Code

Claude Code

claude mcp add --transport http makeupar-creators-mcp-server https://mcp-api-01.makeupar.com/mcp/creators

Claude Desktop · Windsurf · Cline (mcpServers JSON)

{
  "mcpServers": {
    "makeupar-creators-mcp-server": {
      "type": "http",
      "url": "https://mcp-api-01.makeupar.com/mcp/creators"
    }
  }
}

Third-party server, listed as discovered. Review its source before installing.

Agent-readiness: C (74/100)

C (74/100): 0 error(s), 3 warning(s) across 37 tool(s); ~21,986 tokens of tool definitions.
Scores higher than 9% of 15,507 MCP servers Glimind has audited.
Its tool list costs an agent ~21,986 tokens per session — more than 95% of servers.
74 → 74 since 2026-10-17
no tool-poisoning patterns
Schemas100
Descriptions25
Safety hints86
Token cost46
Client compatibility100
Protocol100
Reliability100
Stability84

What to fix (7)

3 tool definition(s) exceed ~1,200 tokens each (largest: AI-Face-Swap, ~2,294).

Move long reference material out of descriptions (link a doc or expose a resource), drop repeated examples, and collapse large enums. Trimming these to ~600 tokens saves ~3,817 tokens every session. How to fix →

Tools: AI-Face-Swap, AI-Image-Generator-Image-to-Image, AI-Image-Extender · saves ~3,817 tokens/session

29 parameter(s) across 28 tool(s) have no description.

Add a "description" to each parameter with its format and an example ("ISO 8601 date, e.g. 2026-10-17"). This is the commonest cause of wrong arguments on the first call. How to fix →

Tools: AI-Avatar-Generator, AI-Color-Correction, AI-Face-Swap, AI-Face-Swap-Face-Detection, AI-Headshot-Generator and 23 more

Loading this server's tool list costs an agent ~21,986 tokens before any work — more than 95% of MCP servers.

Split rarely-used tools into a separate server or a toolset the client can enable, or expose one "search tools" entry point. Many agents load every connected server's tools into every request. How to fix →

8 tools share an identical description with another tool on this server.

Make each description say how the tool differs from its siblings, or the model will pick between them at random. How to fix →

Tools: AI-Avatar-Generator-Templates, AI-Headshot-Generator-Templates, AI-Image-Generator-Image-to-Image, AI-Image-Generator-Text-to-Image, AI-Studio-Generator-Templates and 3 more

Contains zero-width characters; usually a copy-paste artefact, occasionally used to hide text. Example (AI-Face-Swap, description): "…ap for hyper-realistic effect with multiple faces supported.<U+200B> Our face swap artificial intelligence supports swapping one or multiple faces.…"

Declare destructiveHint/readOnlyHint on these tools and say plainly in the description what runs, where, and with what limits. How to fix →

Tools: AI-Face-Swap, AI-Replace, AI-Studio-Generator

2 of 37 tool(s) carry no readOnlyHint/destructiveHint annotations.

Annotate read-only tools with {"readOnlyHint": true}. Agents and gateways can then run them without a confirmation prompt, and route around destructive ones. How to fix →

Tools: File-Upload, upload_file

In the last 30 days: 0 tool(s) removed and 4 schema change(s).

Add new tools or optional parameters instead of renaming or removing; deprecate first (say so in the description) and remove later. Agents cache tool contracts. How to fix →

Auto-fix: 5 corrected tool definitions

Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. 28 tool(s) still need parameter descriptions written by someone who knows the API. All of them as JSON: /v1/readiness/mcp-registry%2Fcom.makeupar%2Fcreators/fixes

AI-Face-Swap 1 change
{
  "name": "AI-Face-Swap",
  "description": "Using AI Face Swap for hyper-realistic effect with multiple faces supported. Our face swap artificial intelligence supports swapping one or multiple faces. Either for creating funny pictures of faces, or need a professional tool, we've got you covered.",
  "inputSchema": {
    "type": "object",
    "required": [
      "request"
    ],
    "properties": {
      "polling": {
        "type": "boolean",
        "default": true,
        "description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish."
      },
      "request": {
        "anyOf": [
          {
            "type": "object",
            "required": [
              "face_mapping",
              "src_file_url",
              "ref_file_urls"
            ],
            "properties": {
              "face_mapping": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "index": {
                      "anyOf": [
                        {
                          "type": "integer"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "The index of reference image"
                    },
                    "position": {
                      "anyOf": [
                        {
                          "type": "integer"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "The index of face on the target image. The index is from faces of detection result."
                    }
                  }
                },
                "description": "The designated ref image id and face position information to be swapped for each detected face on target image.\n\nLogic Rules\n  1.  Index Mapping: The `index` maps directly to the order of images provided in your reference list.\n  2.  Skipping Swaps: To skip swapping a specific face detected in the source, set both `index` and `position` to `-1`.\n  3.  Array Order: The order of objects in the array should match based on `position`.\n\n\nExample Use Case\n\nScenario:\n  Reference List: 2 images provided (Image A, Image B).\n  Source Image: Contains 3 faces detected (Face 0, Face 1, Face 2).\n\n\nGoal:\n  Swap Face 0 (Source) with Image 1 (Reference).\n  Skip swapping Face 1 (Source).\n  Swap Face 2 (Source) with Image 0 (Reference).\n\n\nConfiguration:\n  \"face_mapping\": [\n      {\n          \"index\": 1,  // Use the second reference image\n          \"position\": 0 // Apply to the first detected face in source\n      },\n      {\n          \"index\": -1, // Skip swapping\n          \"position\": -1 // Skip swapping\n      },\n      {\n          \"index\": 0,  // Use the first reference image\n          \"position\": 2 // Apply to the third detected face in source\n      }\n  ]\n"
              },
              "src_file_url": {
                "type": "string",
                "examples": [
                  "https://example.com/selfie.jpg"
                ],
                "description": "Url of the file to run task. The url should be publicly accessible."
              },
              "ref_file_urls": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "minItems": 1
              }
            }
          },
          {
            "type": "object",
            "required": [
              "face_mapping",
              "src_file_url",
              "ref_file_ids"
            ],
            "properties": {
              "face_mapping": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "index": {
                      "anyOf": [
                        {
                          "type": "integer"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "The index of reference image"
                    },
                    "position": {
                      "anyOf": [
                        {
                          "type": "integer"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "The index of face on the target image. The index is from faces of detection result."
                    }
                  }
                },
                "description": "The designated ref image id and face position information to be swapped for each detected face on target image.\n\nLogic Rules\n  1.  Index Mapping: The `index` maps directly to the order of images provided in your reference list.\n  2.  Skipping Swaps: To skip swapping a specific face detected in the source, set both `index` and `position` to `-1`.\n  3.  Array Order: The order of objects in the array should match based on `position`.\n\n\nExample Use Case\n\nScenario:\n  Reference List: 2 images provided (Image A, Image B).\n  Source Image: Contains 3 faces detected (Face 0, Face 1, Face 2).\n\n\nGoal:\n  Swap Face 0 (Source) with Image 1 (Reference).\n  Skip swapping Face 1 (Source).\n  Swap Face 2 (Source) with Image 0 (Reference).\n\n\nConfiguration:\n  \"face_mapping\": [\n      {\n          \"index\": 1,  // Use the second reference image\n          \"position\": 0 // Apply to the first detected face in source\n      },\n      {\n          \"index\": -1, // Skip swapping\n          \"position\": -1 // Skip swapping\n      },\n      {\n          \"index\": 0,  // Use the first reference image\n          \"position\": 2 // Apply to the third detected face in source\n      }\n  ]\n"
              },
              "ref_file_ids": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "minItems": 1
              },
              "src_file_url": {
                "type": "string",
                "examples": [
                  "https://example.com/selfie.jpg"
                ],
                "description": "Url of the file to run task. The url should be publicly accessible."
              }
            }
          },
          {
            "type": "object",
            "required": [
              "face_mapping",
              "src_file_id",
              "ref_file_urls"
            ],
            "properties": {
              "src_file_id": {
                "type": "string",
                "examples": [
                  "pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
                ],
                "description": "ID of file to run task. File ID from upload file API."
              },
              "face_mapping": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "index": {
                      "anyOf": [
                        {
                          "type": "integer"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "The index of reference image"
                    },
                    "position": {
                      "anyOf": [
                        {
                          "type": "integer"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "The index of face on the target image. The index is from faces of detection result."
                    }
                  }
                },
                "description": "The designated ref image id and face position information to be swapped for each detected face on target image.\n\nLogic Rules\n  1.  Index Mapping: The `index` maps directly to the order of images provided in your reference list.\n  2.  Skipping Swaps: To skip swapping a specific face detected in the source, set both `index` and `position` to `-1`.\n  3.  Array Order: The order of objects in the array should match based on `position`.\n\n\nExample Use Case\n\nScenario:\n  Reference List: 2 images provided (Image A, Image B).\n  Source Image: Contains 3 faces detected (Face 0, Face 1, Face 2).\n\n\nGoal:\n  Swap Face 0 (Source) with Image 1 (Reference).\n  Skip swapping Face 1 (Source).\n  Swap Face 2 (Source) with Image 0 (Reference).\n\n\nConfiguration:\n  \"face_mapping\": [\n      {\n          \"index\": 1,  // Use the second reference image\n          \"position\": 0 // Apply to the first detected face in source\n      },\n      {\n          \"index\": -1, // Skip swapping\n          \"position\": -1 // Skip swapping\n      },\n      {\n          \"index\": 0,  // Use the first reference image\n          \"position\": 2 // Apply to the third detected face in source\n      }\n  ]\n"
              },
              "ref_file_urls": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "minItems": 1
              }
            }
          },
          {
            "type": "object",
            "required": [
              "face_mapping",
              "src_file_id",
              "ref_file_ids"
            ],
            "properties": {
              "src_file_id": {
                "type": "string",
                "examples": [
                  "pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
                ],
                "description": "ID of file to run task. File ID from upload file API."
              },
              "face_mapping": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "index": {
                      "anyOf": [
                        {
                          "type": "integer"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "The index of reference image"
                    },
                    "position": {
                      "anyOf": [
                        {
                          "type": "integer"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "The index of face on the target image. The index is from faces of detection result."
                    }
                  }
                },
                "description": "The designated ref image id and face position information to be swapped for each detected face on target image.\n\nLogic Rules\n  1.  Index Mapping: The `index` maps directly to the order of images provided in your reference list.\n  2.  Skipping Swaps: To skip swapping a specific face detected in the source, set both `index` and `position` to `-1`.\n  3.  Array Order: The order of objects in the array should match based on `position`.\n\n\nExample Use Case\n\nScenario:\n  Reference List: 2 images provided (Image A, Image B).\n  Source Image: Contains 3 faces detected (Face 0, Face 1, Face 2).\n\n\nGoal:\n  Swap Face 0 (Source) with Image 1 (Reference).\n  Skip swapping Face 1 (Source).\n  Swap Face 2 (Source) with Image 0 (Reference).\n\n\nConfiguration:\n  \"face_mapping\": [\n      {\n          \"index\": 1,  // Use the second reference image\n          \"position\": 0 // Apply to the first detected face in source\n      },\n      {\n          \"index\": -1, // Skip swapping\n          \"position\": -1 // Skip swapping\n      },\n      {\n          \"index\": 0,  // Use the first reference image\n          \"position\": 2 // Apply to the third detected face in source\n      }\n  ]\n"
              },
              "ref_file_ids": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "minItems": 1
              }
            }
          }
        ]
      }
    },
    "additionalProperties": false
  },
  "annotations": {
    "readOnlyHint": false,
    "openWorldHint": true,
    "idempotentHint": false,
    "destructiveHint": false
  },
  "title": "Ai Face Swap"
}
AI-Replace 1 change
{
  "name": "AI-Replace",
  "description": "Replace unwanted elements with new objects using AI Replace. By using this API, you can instantly remove unwanted object from your photo and replace it with a new one just by using text. Eliminate anything from bags to cars and beyond.\nSample:\nFor content creators aiming to perfect their social media presence, AI Replace offers a hassle-free way to polish travel photos or promotional images. Remove and replace elements with ease, ensuring your content stands out.\nCreate stunning room mockups wi",
  "inputSchema": {
    "type": "object",
    "required": [
      "request"
    ],
    "properties": {
      "polling": {
        "type": "boolean",
        "default": true,
        "description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish."
      },
      "request": {
        "anyOf": [
          {
            "type": "object",
            "required": [
              "prompt",
              "src_file_url",
              "msk_file_url"
            ],
            "properties": {
              "prompt": {
                "type": "string",
                "examples": [
                  "a cute cat"
                ],
                "description": "Prompt for generating objects in the masked area."
              },
              "msk_file_url": {
                "type": "string",
                "examples": [
                  "https://example.com/mask.jpg"
                ],
                "description": "URL of the mask file. This should be a grey scale mask image with the exact same width and height with the input source file where white pixels indicate foreground and black pixels represent background. The URL should be publicly accessible."
              },
              "src_file_url": {
                "type": "string",
                "examples": [
                  "https://example.com/selfie.jpg"
                ],
                "description": "Url of the file to run task. The url should be publicly accessible."
              }
            }
          },
          {
            "type": "object",
            "required": [
              "prompt",
              "src_file_url",
              "msk_file_id"
            ],
            "properties": {
              "prompt": {
                "type": "string",
                "examples": [
                  "a cute cat"
                ],
                "description": "Prompt for generating objects in the masked area."
              },
              "msk_file_id": {
                "type": "string",
                "examples": [
                  "eA1CCL3kG4w2s0kpbo2pkah59VfxzIjxahJD2wWm7zw="
                ],
                "description": "ID of the mask file. This should be a grey scale mask image with the exact same width and height with the input source file where white pixels indicate foreground and black pixels represent background. File ID from upload file API."
              },
              "src_file_url": {
                "type": "string",
                "examples": [
                  "https://example.com/selfie.jpg"
                ],
                "description": "Url of the file to run task. The url should be publicly accessible."
              }
            }
          },
          {
            "type": "object",
            "required": [
              "prompt",
              "src_file_id",
              "msk_file_url"
            ],
            "properties": {
              "prompt": {
                "type": "string",
                "examples": [
                  "a cute cat"
                ],
                "description": "Prompt for generating objects in the masked area."
              },
              "src_file_id": {
                "type": "string",
                "examples": [
                  "pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
                ],
                "description": "ID of file to run task. File ID from upload file API."
              },
              "msk_file_url": {
                "type": "string",
                "examples": [
                  "https://example.com/mask.jpg"
                ],
                "description": "URL of the mask file. This should be a grey scale mask image with the exact same width and height with the input source file where white pixels indicate foreground and black pixels represent background. The URL should be publicly accessible."
              }
            }
          },
          {
            "type": "object",
            "required": [
              "prompt",
              "src_file_id",
              "msk_file_id"
            ],
            "properties": {
              "prompt": {
                "type": "string",
                "examples": [
                  "a cute cat"
                ],
                "description": "Prompt for generating objects in the masked area."
              },
              "msk_file_id": {
                "type": "string",
                "examples": [
                  "eA1CCL3kG4w2s0kpbo2pkah59VfxzIjxahJD2wWm7zw="
                ],
                "description": "ID of the mask file. This should be a grey scale mask image with the exact same width and height with the input source file where white pixels indicate foreground and black pixels represent background. File ID from upload file API."
              },
              "src_file_id": {
                "type": "string",
                "examples": [
                  "pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
                ],
                "description": "ID of file to run task. File ID from upload file API."
              }
            }
          }
        ]
      }
    },
    "additionalProperties": false
  },
  "annotations": {
    "readOnlyHint": false,
    "openWorldHint": true,
    "idempotentHint": false,
    "destructiveHint": false
  },
  "title": "Ai Replace"
}
AI-Studio-Generator 1 change
{
  "name": "AI-Studio-Generator",
  "description": "Embrace the excellence of studio kike AI Portrait Generator. Transform your selfie into a studio-quality portrait in a flash.\n* Studio-Free Convenience: No need for a photographer or studio visits—create studio-quality artistic photos anytime, anywhere\n* Quick Photo Transformation: Fast processing for instant high-quality artistic photo results, ideal for quick updates\n* High-Quality Artistic Output: Delivers professional-standard artistic photos with clear details, perfect lighting, just like",
  "inputSchema": {
    "type": "object",
    "required": [
      "request"
    ],
    "properties": {
      "polling": {
        "type": "boolean",
        "default": true,
        "description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish."
      },
      "request": {
        "anyOf": [
          {
            "type": "object",
            "required": [
              "template_id",
              "output_count",
              "src_file_url"
            ],
            "properties": {
              "template_id": {
                "type": "string",
                "examples": [
                  "good_template_001"
                ],
                "description": "ID of the template. List predefined templates first, and use the id of a template."
              },
              "output_count": {
                "type": "integer",
                "maximum": 200,
                "minimum": 1,
                "examples": [
                  20
                ],
                "description": "The number of generated images. It must be between 1 to 200."
              },
              "src_file_url": {
                "type": "string",
                "examples": [
                  "https://example.com/selfie.jpg"
                ],
                "description": "Url of the file to run task. The url should be publicly accessible."
              }
            }
          },
          {
            "type": "object",
            "required": [
              "template_id",
              "output_count",
              "src_file_id"
            ],
            "properties": {
              "src_file_id": {
                "type": "string",
                "examples": [
                  "pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
                ],
                "description": "ID of file to run task. File ID from upload file API."
              },
              "template_id": {
                "type": "string",
                "examples": [
                  "good_template_001"
                ],
                "description": "ID of the template. List predefined templates first, and use the id of a template."
              },
              "output_count": {
                "type": "integer",
                "maximum": 200,
                "minimum": 1,
                "examples": [
                  20
                ],
                "description": "The number of generated images. It must be between 1 to 200."
              }
            }
          }
        ]
      }
    },
    "additionalProperties": false
  },
  "annotations": {
    "readOnlyHint": false,
    "openWorldHint": true,
    "idempotentHint": false,
    "destructiveHint": false
  },
  "title": "Ai Studio Generator"
}

Get alerted

Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:

curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/com.makeupar/creators"],"email":"[email protected]"}'

Agents: watch_tool({"toolId": "mcp-registry/com.makeupar/creators"}) over MCP.

Passed

Largest tool definitions

Static checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).

Operator? Fix these, then re-check live. Embed the readiness badge:

Markdown
[![MCP agent-readiness](https://glimind.com/v1/readiness/badge/mcp-registry%2Fcom.makeupar%2Fcreators.svg)](https://glimind.com/server/mcp-registry%2Fcom.makeupar%2Fcreators?ref=badge)
HTML
<a href="https://glimind.com/server/mcp-registry%2Fcom.makeupar%2Fcreators?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fcom.makeupar%2Fcreators.svg" alt="MCP agent-readiness"></a>
reStructuredText
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fcom.makeupar%2Fcreators.svg
   :target: https://glimind.com/server/mcp-registry%2Fcom.makeupar%2Fcreators?ref=badge
   :alt: MCP agent-readiness

Tool-definition log

Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:df20f7ef8bb074cb…, first seen 2026-10-17, included at leaf 14189 of 42,814. Version history · verify what your client received.

Tools (37)

Compare: most reliable media servers · most reliable files servers · most reliable other servers · most reliable finance servers

Know before your agent calls it

Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.

Add Glimind — free, no signup:

Add to Cursor Add to VS Code

Claude Code

claude mcp add --transport http glimind https://glimind.com/mcp

Claude Desktop · Windsurf · Cline (mcpServers JSON)

{
  "mcpServers": {
    "glimind": {
      "type": "http",
      "url": "https://glimind.com/mcp"
    }
  }
}

FAQ

Is the Makeupar Creators MCP server down right now?

As of 2026-10-22 01:54 UTC, the Makeupar Creators MCP server is up with a Glimind reliability score of 77/100 (grade B). Over the last 30 days it answered 99.4% of Glimind's liveness checks. It had 44 outages in 90 days, with a median recovery of 6 minutes.

How many tools does Makeupar Creators MCP server provide?

Makeupar Creators MCP server advertises 37 tools, including AI-Avatar-Generator, AI-Avatar-Generator-Templates, AI-Color-Correction, AI-Face-Swap, AI-Face-Swap-Face-Detection.

How do I install Makeupar Creators MCP server?

Point your MCP client at this streamable-http endpoint: https://mcp-api-01.makeupar.com/mcp/creators

Is the Makeupar Creators MCP server safe to connect to an AI agent?

Glimind scanned all 37 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.

Operator of Makeupar Creators MCP server?

Status page: 90-day uptime, every outage and how long it lasted.

Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.

Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.

Feedback
Help us improve