Gravitate

Free bilingual dating guides, fictional profile examples, photo plans and observation scoring.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
93%
Naming quality
97%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,598Tokens (tool definitions)
~1.9 KBTypical response size
Moderate attention impact (1.25% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "gravitate": {
      "url": "https://joingravitate.com/mcp"
    }
  }
}

Remote endpoints

https://joingravitate.com/mcpstreamable-http

What it can do

Tool inventory

Tools (6)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_photo_guidance(topic, locale)

Free; no account, payment or Gravitate credits. Use when choosing dating-profile photos, understanding the Gravitate rubric, or asking about authentic image improvements. Retrieves published English/French guidance with a source URL. Choose methodology before supplying ranks. Does not inspect images or provide general relationship/reconciliation advice.

Input Schema

{
  "type": "object",
  "properties": {
    "topic": {
      "type": "string",
      "enum": [
        "rating",
        "methodology",
        "example",
        "attractiveness",
        "principles",
        "developers"
      ]
    },
    "locale": {
      "default": "en",
      "description": "Response language: English or French.",
      "type": "string",
      "enum": [
        "en",
        "fr"
      ]
    }
  },
  "required": [
    "topic"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢build_photo_shoot_plan(locale, persona, minutes, setting, photographer)

Free; no account, payment or Gravitate credits. Use when a user wants a practical 15, 30 or 60 minute dating-photo shoot plan. Tailors curated advice to stated single-dad/returning-to-dating context, setting and photographer. No image generation, bookings, or inference about the user's identity.

Input Schema

{
  "type": "object",
  "properties": {
    "locale": {
      "default": "en",
      "description": "Response language: English or French.",
      "type": "string",
      "enum": [
        "en",
        "fr"
      ]
    },
    "persona": {
      "type": "string",
      "enum": [
        "single_dad",
        "returning_to_dating",
        "general"
      ],
      "description": "Choose only a context the user has stated; do not infer parental status or age from an image."
    },
    "minutes": {
      "type": "string",
      "enum": [
        "15",
        "30",
        "60"
      ],
      "description": "Available shoot time in minutes."
    },
    "setting": {
      "type": "string",
      "enum": [
        "home",
        "outdoors",
        "both"
      ]
    },
    "photographer": {
      "type": "string",
      "enum": [
        "friend",
        "self_timer"
      ]
    }
  },
  "required": [
    "persona",
    "minutes",
    "setting",
    "photographer"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢score_photo_observations(locale, observation_source, photos)

Free; no account, payment or Gravitate credits. Use only with explicitly supplied 1–4 ranks for craft, face visibility/expression, pose, setting and signal, after reading the methodology. Calculates gravitate-v1 totals and caps for 1–6 anonymous observations. Accepts no images/URLs; performs no vision or AI inference. Does not measure beauty, age, identity, attraction percentiles or match probability. Never invent ranks from a request without observations.

Input Schema

{
  "type": "object",
  "properties": {
    "locale": {
      "default": "en",
      "description": "Response language: English or French.",
      "type": "string",
      "enum": [
        "en",
        "fr"
      ]
    },
    "observation_source": {
      "type": "string",
      "enum": [
        "human",
        "assistant",
        "illustrative"
      ],
      "description": "Who assigned these ranks. Assistant observations are the calling assistant's judgment, not Gravitate image analysis."
    },
    "photos": {
      "minItems": 1,
      "maxItems": 6,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string",
            "pattern": "^[A-F]$",
            "description": "An anonymous label A–F, never a name, URL or identifier."
          },
          "ranks": {
            "type": "object",
            "properties": {
              "craft": {
                "type": "integer",
                "minimum": 1,
                "maximum": 4
              },
              "face": {
                "type": "integer",
                "minimum": 1,
                "maximum": 4
              },
              "pose": {
                "type": "integer",
                "minimum": 1,
                "maximum": 4
              },
              "setting": {
                "type": "integer",
                "minimum": 1,
                "maximum": 4
              },
              "signal": {
                "type": "integer",
                "minimum": 1,
                "maximum": 4
              }
            },
            "required": [
              "craft",
              "face",
              "pose",
              "setting",
              "signal"
            ],
            "additionalProperties": false,
            "description": "Use the published rubric: 1 poor, 2 usable, 3 good, 4 excellent. Rank face visibility/expression, never facial beauty."
          },
          "subject_present": {
            "type": "boolean",
            "description": "Whether the profile owner is visible; false caps the score at 25."
          },
          "visual_defect": {
            "type": "boolean",
            "description": "A clearly visible rendering/artifact defect; true caps the score at 60."
          }
        },
        "required": [
          "label",
          "ranks",
          "subject_present",
          "visual_defect"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "observation_source",
    "photos"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢get_service_status(locale)

Free; no account, payment or Gravitate credits. Use when checking whether Gravitate can analyze photos, generate images, accept payments, or provide guidance. Returns actual enabled capabilities, free pricing and current limits. Does not enable paused services.

Input Schema

{
  "type": "object",
  "properties": {
    "locale": {
      "default": "en",
      "description": "Response language: English or French.",
      "type": "string",
      "enum": [
        "en",
        "fr"
      ]
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢get_dating_guide(locale, topic)

Free; no account, payment or Gravitate credits. Retrieve published English/French coaching articles for single dads, dating after 40 or divorce, and deciding whether to reconnect with an ex. Start with topic=catalog to choose a guide. Returns complete editorial content, update dates and canonical sources. General guidance only: no personalized diagnosis, guaranteed reconciliation or tactics to bypass someone's boundaries.

Input Schema

{
  "type": "object",
  "properties": {
    "locale": {
      "default": "en",
      "description": "Response language: English or French.",
      "type": "string",
      "enum": [
        "en",
        "fr"
      ]
    },
    "topic": {
      "default": "catalog",
      "description": "Start with catalog to choose a published guide. Fixed topics only; no private stories or profile text.",
      "type": "string",
      "enum": [
        "catalog",
        "single-dad-dating",
        "single-dad-profile",
        "single-dad-time",
        "single-dad-disclosure",
        "dating-after-40",
        "dating-after-divorce",
        "dating-profile-photos",
        "first-date-again",
        "get-your-ex-back",
        "should-reconcile",
        "no-contact",
        "text-your-ex"
      ]
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢get_profile_example(locale, persona)

Free; no account, payment or Gravitate credits. Use when asked for an example bio and photo lineup for a single dad or someone returning to dating. Retrieves a clearly fictional, annotated example in English or French from a published article. It is not a real customer, personalized profile, image analysis or evidence of improved matches. Choose only the persona requested by the user.

Input Schema

{
  "type": "object",
  "properties": {
    "locale": {
      "default": "en",
      "description": "Response language: English or French.",
      "type": "string",
      "enum": [
        "en",
        "fr"
      ]
    },
    "persona": {
      "type": "string",
      "enum": [
        "single_dad",
        "returning_to_dating"
      ],
      "description": "Choose the example the user asks for; never infer parental status or relationship history from appearance."
    }
  },
  "required": [
    "persona"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded6 tools