Skip to main content
Glama

Score two people

score_compatibility
Read-onlyIdempotent

Score how two people work (or relate) together, 0-100, with a visual score card, sub-scores (communication, values, conflict and more), why the score landed where it did, and practical tips. Use for one pair; use score_team for three or more. Decision-support only, never the sole basis for hiring, promotion or termination. Read-only; costs 1 unit.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
contextNoRelationship context that sets framework weighting. 'business' (default) is work-safe and withholds personal-life signals (love language, attachment style, date of birth); the other contexts include them.business
person_aYesFirst person. Accepts a profile id, an exact email, or a full name. If a name matches more than one person the tool asks which one instead of guessing.
person_bYesSecond person. Accepts a profile id, an exact email, or a full name. If a name matches more than one person the tool asks which one instead of guessing.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dosNoThings to do with this person.
dontsNoThings to avoid with this person.
driversNoFrameworks that moved the score most.
strengthsNoWhere the pair works well together.
subscoresNoScore per dimension, 0-100.
disclaimerNoDecision-support disclaimer.
overall_scoreNoOverall compatibility score, 0-100.
frameworks_usedNoFrameworks with data for both people.
friction_pointsNoWhere the pair is likely to clash.
frameworks_totalNoTotal frameworks considered.
subscore_reasonsNoWhy each dimension scored as it did, with a tip.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "disclaimer": {
      +      "description": "Decision-support disclaimer.",
      +      "type": "string"
      +    },
      +    "donts": {
      +      "description": "Things to avoid with this person.",
      +      "items": {
      +        "$ref": "#/properties/strengths/items"
      +      },
      +      "type": "array"
      +    },
      +    "dos": {
      +      "description": "Things to do with this person.",
      +      "items": {
      +        "$ref": "#/properties/strengths/items"
      +      },
      +      "type": "array"
      +    },
      +    "drivers": {
      +      "description": "Frameworks that moved the score most.",
      +      "items": {
      +        "$ref": "#/properties/subscore_reasons/items"
      +      },
      +      "type": "array"
      +    },
      +    "frameworks_total": {
      +      "description": "Total frameworks considered.",
      +      "type": "number"
      +    },
      +    "frameworks_used": {
      +      "description": "Frameworks with data for both people.",
      +      "type": "number"
      +    },
      +    "friction_points": {
      +      "description": "Where the pair is likely to clash.",
      +      "items": {
      +        "$ref": "#/properties/strengths/items"
      +      },
      +      "type": "array"
      +    },
      +    "overall_score": {
      +      "description": "Overall compatibility score, 0-100.",
      +      "type": "number"
      +    },
      +    "strengths": {
      +      "description": "Where the pair works well together.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "subscore_reasons": {
      +      "description": "Why each dimension scored as it did, with a tip.",
      +      "items": {
      +        "additionalProperties": {
      +          "$ref": "#/properties/subscores/additionalProperties"
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "subscores": {
      +      "additionalProperties": {},
      +      "description": "Score per dimension, 0-100.",
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
  2. Changed5 schema fields changed
    • addedInput schema / properties / context / default
      Added value: +"business"
    • addedInput schema / properties / context / description
      Added value: +"Relationship context that sets framework weighting. 'business' (default) is work-safe and withholds personal-life signals (love language, attachment style, date of birth); the other contexts include them."
    • addedInput schema / properties / context / enum
      Added value: +[
      +  "business",
      +  "romantic",
      +  "friendship",
      +  "coparenting"
      +]
    • addedInput schema / properties / person_a / description
      Added value: +"First person. Accepts a profile id, an exact email, or a full name. If a name matches more than one person the tool asks which one instead of guessing."
    • addedInput schema / properties / person_b / description
      Added value: +"Second person. Accepts a profile id, an exact email, or a full name. If a name matches more than one person the tool asks which one instead of guessing."
  3. First observed

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered; the description's 'Read-only' is redundant. What it does add beyond structured data is the cost ('costs 1 unit'), which an agent needs before invoking, and confirmation that the output is explanatory (rationale + tips) rather than a bare number.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each load-bearing: what you get, which sibling to use instead, then the governance/billing caveat. The output detail is front-loaded and nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be re-explained, and annotations carry the safety profile. The description still covers the remaining agent-facing unknowns: pair-size routing, cost, and the decision-support limitation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so person_a/person_b resolution rules (id, email, or full name; disambiguation instead of guessing) and the context enum weighting are already documented. The description adds no further parameter meaning, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (score two people's working/relating compatibility) plus the concrete output shape: 0-100 score, visual card, sub-scores, rationale, tips. It explicitly distinguishes itself from the sibling score_team by pair size, so an agent can route without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the exact selection condition ('Use for one pair; use score_team for three or more') and adds a governance constraint ('never the sole basis for hiring, promotion or termination'). Both when-to-use and when-not-to-rely-on-it are stated rather than inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources