Skip to main content
Glama

Server Details

EQIQs: 21-framework personality and compatibility for coaching, communication, and team development.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 60 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

A4.1/5.0

Scored across 16 tools

Disambiguation5/5

Each tool has a distinct target or workflow: self-profile vs. saved profiles, single-pair vs. team scoring, notes vs. invites, and assessment start vs. submit are all clearly separated. The closest overlap is between prep_meeting and suggest_lead, but their stated purposes are different enough to avoid misselection.

Naming Consistency5/5

All tool names use a consistent snake_case verb_noun pattern, such as add_note, get_profile, list_invites, score_compatibility, and submit_assessment. There are no mixed camelCase or vague nominal names.

Tool Count4/5

With 16 tools, the surface is slightly above the typical 3-15 range, but each tool maps to a real workflow in a rich assessment/team workspace. It is not bloated with redundant operations, though a few tools could potentially be consolidated.

Completeness4/5

The server covers profiles, notes, invites, assessments, compatibility scoring, team scoring, meeting prep, leadership discussion, and narratives. Minor lifecycle gaps exist, such as no update/delete for profiles or notes and no invite revocation, but core workflows are well supported.

Available Tools

16 tools
add_noteAdd a noteAInspect

Save a private note or check-in on one person in the user's workspace; it appears on their EQIQs profile. Use after 1:1s or when the user asks to remember something about someone. Costs 1 unit.

NameRequiredDescriptionDefault
noteYesNote text (up to 4,000 characters).
personYesWho the note is about. 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

NameRequiredDescription
personNoWho the note is about.
note_idNoId of the saved note.
created_atNoWhen the note was saved (ISO 8601).
profile_idNoProfile id of that person.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations cover the safety profile (not read-only, not destructive, not idempotent), and the description adds genuinely new context beyond them: the note is private, it surfaces on the person's profile, and the call costs 1 unit. It does not say whether notes can later be edited or removed, so it is strong but not exhaustive.

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?

Two sentences, front-loaded with what is saved and where it appears, followed by the trigger and the cost. No filler and no repetition of schema content.

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

Completeness4/5

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

For a two-parameter mutation tool with an output schema and full annotation coverage, the description supplies what structured fields cannot: visibility, cost, and invocation timing. Only the post-write lifecycle (editing or deleting the note) is left unstated.

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% and the schema already explains that person accepts an id, exact email, or full name and that ambiguous names trigger a disambiguation prompt. The description adds nothing further about either parameter, so the baseline 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 (save), resource (note/check-in), scope (one person in the workspace) and the observable effect (appears on their EQIQs profile). The word 'save' cleanly separates it from the sibling list_notes, which only reads notes.

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

Usage Guidelines4/5

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

Gives two concrete triggers — after 1:1s, or when the user asks to remember something about someone — which is real usage context rather than an implied one. It stops short of naming when-not to use it or pointing at an alternative such as list_notes for retrieval.

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

create_profileAdd a personAInspect

Add a new person to the user's workspace with a name and, optionally, type labels the person has shared themselves (MBTI, DISC, Enneagram). Birthdate, attachment style and scores are never saved here — use invite_person so the person answers for themselves. Returns the new profile id. Costs 1 unit.

NameRequiredDescriptionDefault
nameYesFull name (required).
emailNoOptional email; used to match results if they later take the assessment.
eq_scoreNoIgnored and never saved — scores come only from the person's own assessment.
disc_typeNoOptional DISC style (D, I, S, C or a blend), only if the person shared it themselves.
mbti_typeNoOptional four-letter MBTI type, only if the person shared it themselves.
departmentNoOptional team or department, used by score_team, prep_meeting and suggest_lead.
date_of_birthNoIgnored and never saved — the person adds this themselves via invite_person.
enneagram_typeNoOptional Enneagram type 1-9, only if the person shared it themselves.
attachment_styleNoIgnored and never saved — the person adds this themselves via invite_person.

Output Schema

NameRequiredDescription
profileNoThe newly created profile.

TDQS

A4.9/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses that certain accepted parameters are silently ignored and discarded, states the return value (new profile id), and gives a cost of 1 unit. The silent-drop behavior is a non-obvious trait an agent could easily get wrong.

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?

Four short sentences, front-loaded with the action and its allowed fields, then the exclusion rule, then return value and cost. Every sentence carries decision-relevant information with no padding.

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?

With an output schema present, return details need not be expanded, and the description still summarizes the id. For a non-idempotent create with 9 parameters, it covers creation scope, exclusions, alternative tool, cost and result — nothing essential is missing.

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

Parameters4/5

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

Schema coverage is already 100%, so the baseline is 3; the description earns a notch more by grouping the accepted type labels (MBTI, DISC, Enneagram) and flagging the trap parameters that are accepted but never persisted. It leaves email and department unmentioned, though the schema covers them.

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?

Names a specific verb and resource ('Add a new person to the user's workspace') and immediately scopes what can and cannot be set. It also names the sibling it is not (invite_person), so an agent can distinguish the two without reading schemas.

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?

Explicitly states the negative case — birthdate, attachment style and scores are never saved here — and points to invite_person as the correct alternative when the person must self-report. That is a clear when-to-use/when-not-to-use routing rule.

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

generate_narrativeWrite a coaching narrativeA
Read-only
Inspect

Premium: write a plain-language coaching narrative for one person, or for a pair when compare_with is given, synthesized from all 21 frameworks. Business context stays on working behavior only. Slower than other tools. Costs 5 units.

NameRequiredDescriptionDefault
focusNoOptional topic to emphasize, e.g. 'giving feedback'.
lengthNoApproximate length of the narrative.standard
personYesWho the narrative is about. 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.
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
audienceNoWho will read it. Hiring or candidate-screening audiences are intentionally not supported.manager
compare_withNoOptional second person for a pair narrative. 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.
confirm_costNoSet true only after the user explicitly approves the five-unit cost. False returns a no-charge confirmation prompt.

Output Schema

NameRequiredDescription
unitsNoTool-call units this narrative costs.
billingNoUnits billed.
contextNoRelationship context for pair narratives.
scoringNoScores the narrative is based on.
subjectNoPerson the narrative is about.
audienceNoWho the narrative is written for.
sectionsNoNarrative split into sections.
narrativeNoThe written coaching narrative.
disclaimerNoDecision-support disclaimer.
guardrailsNoSafety check results.
action_itemsNoAction items pulled from the narrative.
compared_withNoSecond person, for pair narratives.
requires_confirmationNoTrue when the price must be confirmed before running.

TDQS

A4.2/5.0
Behavior4/5

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

Beyond the readOnly/destructive/idempotent annotations, the description discloses pricing, latency relative to siblings, and a privacy behavior ('withholds personal-life signals' under business context). It does not explain the non-idempotent behavior hinted at by idempotentHint=false, leaving a small gap.

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?

Four short sentences, front-loaded with the premium label and the core action, then the pair condition, then the privacy constraint, then the cost/latency caveat. No filler; every sentence carries information.

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

Completeness4/5

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

With an output schema present, return values need not be described, and the description covers cost, latency, privacy scope, and ambiguity handling. It is nearly complete, though it leaves the audience restriction's rationale to the schema rather than stating it for the agent's decision-making.

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 coverage is 100%, so the schema already documents focus, length, person, context, audience, compare_with, and confirm_cost in detail. The description only adds the pair-mode framing for compare_with, which is largely duplicative, so the baseline 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 and artifact ('write a plain-language coaching narrative'), the scope ('for one person, or for a pair when compare_with is given'), and the synthesis basis ('all 21 frameworks'). This is clearly distinct from siblings like get_profile, prep_meeting, or score_compatibility.

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

Usage Guidelines4/5

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

Gives clear selection context: single vs pair mode via compare_with, context gating ('Business context stays on working behavior only'), and a trade-off warning ('Slower than other tools. Costs 5 units'). It does not explicitly name a cheaper alternative tool to use instead when speed or cost matters, so it stops short of 5.

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

get_my_profileGet my profileA
Read-onlyIdempotent
Inspect

Return the signed-in user's own EQIQs profile: results across the 21-framework battery (MBTI, Big Five, Enneagram, DISC, EQ and more), plain-language labels, and which frameworks are still missing. Use when the user asks about themselves, e.g. 'what is my Enneagram type?' or 'how do I come across at work?'. Read-only; costs 1 unit.

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

Output Schema

NameRequiredDescription
contextNoRelationship context the profile was filtered for.
profileNoThe person's profile fields that are visible in this context.
matched_byNoHow the signed-in user's own profile was found.
label_meaningsNoPlain-language meanings for the framework labels on the profile.
frameworks_totalNoTotal frameworks EQIQs uses (21).
framework_coverageNoHow many of the 21 frameworks have data.
frameworks_withheldNoHow many frameworks are hidden in this context (e.g. personal-life signals at work).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds genuinely new behavioral context beyond annotations: the 1-unit cost and the fact that non-business contexts surface otherwise-withheld signals. It doesn't add rate-limit or failure behavior, but the added context is meaningful.

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 tight sentences: resource first, usage examples second, operational note last. No filler and front-loaded with the most important information.

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

Completeness4/5

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

An output schema exists and annotations cover the safety profile, so return format and side-effect details are already handled. Cost and context-dependent withholding are disclosed; the only thin spot is the absence of explicit sibling routing given the large cluster of profile-related tools.

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% and the single 'context' enum is fully documented in the schema, including what each value includes or withholds. The description does not restate or extend parameter semantics, so baseline 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 (return) and resource (the signed-in user's own EQIQs profile) and enumerates the payload contents (21-framework battery, labels, missing frameworks). The 'own'/signed-in qualifier implicitly distinguishes it from the sibling get_profile.

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

Usage Guidelines4/5

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

Gives concrete trigger examples ('what is my Enneagram type?', 'how do I come across at work?') that map user intent to this tool. It does not explicitly name a sibling alternative (e.g., how it differs from get_profile for another person), so it stops short of full when/when-not routing.

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

get_profileGet a person's profileA
Read-onlyIdempotent
Inspect

Return the full 21-framework read for one saved person: results per framework with plain-language labels, strengths, and working-style notes. Provide exactly one of profile_id, email or name. Read-only; costs 1 unit.

NameRequiredDescriptionDefault
nameNoFull name. Ambiguous names return a list to choose from rather than a guess.
emailNoThe person's exact email.
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
profile_idNoProfile id from list_profiles (preferred).

Output Schema

NameRequiredDescription
contextNoRelationship context the profile was filtered for.
profileNoThe person's profile fields that are visible in this context.
label_meaningsNoPlain-language meanings for the framework labels on the profile.
frameworks_totalNoTotal frameworks EQIQs uses (21).
framework_coverageNoHow many of the 21 frameworks have data.
frameworks_withheldNoHow many frameworks are hidden in this context (e.g. personal-life signals at work).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered; the description still adds non-structured behavior by disclosing the cost ('costs 1 unit') and the one-identifier-at-a-time constraint. It does not describe error behavior for missing profiles or ambiguous names, keeping it short of a 5.

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?

Two sentences, no filler, with the core behavior front-loaded and the invocation constraint plus cost placed immediately after. Every clause carries information an agent needs.

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

Completeness4/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-value detail is unnecessary, and the description covers scope, identifier constraint, read-only nature and cost. The only real omission is guidance on how the context parameter alters results, but that is documented in the schema itself.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds the exclusivity rule ('exactly one of profile_id, email or name') that the schema does not encode since required is 0. That constraint meaningfully extends the parameter documentation beyond what the structured fields provide.

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 and resource ('Return the full 21-framework read for one saved person') and even enumerates what the payload contains (per-framework results, plain-language labels, strengths, working-style notes). This clearly distinguishes it from siblings like list_profiles and get_my_profile.

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

Usage Guidelines3/5

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

The description tells the agent it must supply exactly one of profile_id, email or name, which is useful invocation guidance, but it never states when to reach for this tool versus get_my_profile, list_profiles, or prep_meeting. Usage is implied by the resource rather than explained.

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

invite_personInvite someone to compareAInspect

Create a private invite link for someone to take the EQIQs assessment and compare with the user. Finishing the assessment is their consent to share results. Optionally emailed by EQIQs; otherwise the link is returned to hand over. Limited to 10 invites per hour; no self-invites or opted-out addresses. Costs 1 unit.

NameRequiredDescriptionDefault
nameNoInvitee's name, shown in the invite.
emailNoInvitee's email, when they are not saved yet.
personNoExisting saved person to invite (optional if email is given). 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.
send_emailNotrue: EQIQs emails the link. false: only return the link.

Output Schema

NameRequiredDescription
linkNoPrivate invite link.
statusNoInvite status.
emailedNoWhether EQIQs emailed the invite.
inviteeNoWho was invited.

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing the rate limit (10 invites per hour), the consent semantics ('Finishing the assessment is their consent to share results'), the cost ('Costs 1 unit'), and the self-invite/opt-out restrictions. The mutation profile it describes is consistent with readOnlyHint=false and idempotentHint=false.

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?

Four tight sentences, front-loaded with what the tool does, followed by email behavior, constraints, and cost with no filler. Every sentence carries operational information.

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?

For a mutation tool with an output schema present, the description supplies everything an agent needs before calling: mechanics, delivery behavior, limits, exclusions, and cost. Return-value details are correctly left to the output schema.

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 all four parameters are already documented in the schema. The description's note that the link is returned when not emailed mirrors the schema's send_email description rather than adding new meaning. Baseline 3 is appropriate.

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 and resource ('Create a private invite link') and immediately scopes it to a defined outcome (invitee takes the EQIQs assessment and compares with the user). This clearly separates it from sibling tools like create_profile, start_assessment, and list_invites.

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

Usage Guidelines4/5

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

Explains the two operational modes (EQIQs emails the link vs. the link is returned to hand over) and gives explicit exclusions ('no self-invites or opted-out addresses'). It stops short of naming sibling alternatives such as list_invites to check existing invites, but the when-to-use context is clear.

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

list_invitesList invitesA
Read-onlyIdempotent
Inspect

List comparison invites the user has sent and each one's status: pending, clicked, started or completed. Read-only; costs 1 unit.

NameRequiredDescriptionDefault
limitNoMaximum rows to return (1-50, default 20).
statusNoFilter by status.all

Output Schema

NameRequiredDescription
invitesNoSent invites with status (sent, opened, started, finished).

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered; the description adds genuinely new context by disclosing a cost of 1 unit per call. It does not, however, mention pagination or result-size behavior for the limit parameter.

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?

Two tight sentences: the resource and scope come first, then the status set, then the read-only/cost note. Nothing redundant and no filler.

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

Completeness4/5

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

Purpose, status semantics, cost and read-only nature are all covered, and a rich output schema plus full parameter descriptions relieve the description of return-value and parameter explanation. Only minor gaps remain, such as any hint about result ordering or pagination.

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 coverage is 100% and both parameters (limit, status enum with default) are fully documented in the schema. The description's mention of statuses repeats the enum values rather than adding filtering or format semantics, 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 and resource (list invites) scoped to invites the user has sent, and enumerates the status values. No sibling tool deals with invites, so the agent can distinguish this from list_profiles, list_notes and list_relationships without opening any schema.

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

Usage Guidelines3/5

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

The description implies when the tool applies (checking sent comparison invites and their status) but gives no explicit when-to-use vs when-not, nor any pointer to invite_person as the creating counterpart. Usage is inferable from the name and description rather than stated.

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

list_notesList notesA
Read-onlyIdempotent
Inspect

Read the user's saved notes and check-ins on one person, newest first. Use before a 1:1 or with prep_meeting. Read-only; costs 1 unit.

NameRequiredDescriptionDefault
limitNoMaximum rows to return (1-100, default 20).
personYesWhose notes to read. 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

NameRequiredDescription
notesNoNotes, newest first.
personNoWho the notes are about.
profile_idNoProfile id of that person.

TDQS

A4.3/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 safety is covered. The description adds value the annotations cannot: a cost signal ('costs 1 unit') and deterministic ordering ('newest first'), both of which matter for planning and budgeting calls.

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?

Two sentences with zero filler, front-loading the resource, scope, and ordering before the usage hint. Every clause earns its place.

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 shape needs no explanation, and the description covers scope, ordering, cost, and usage context. Nothing an agent needs in order to call this correctly is missing.

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 the schema already documents 'person' (id/email/name plus disambiguation behavior) and 'limit' (1-100, default 20). The description only echoes the person scoping and ordering, adding no syntax or format detail beyond the schema; baseline 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 and resource ('Read the user's saved notes and check-ins'), scopes it to one person, and specifies ordering ('newest first'). An agent can distinguish this from siblings like prep_meeting or add_note without opening any schema.

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

Usage Guidelines4/5

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

Gives explicit context ('Use before a 1:1') and names a companion tool ('with prep_meeting'), which tells the agent when this belongs in a workflow. It does not state when-not to use it or name a competing alternative, so it falls short of a 5.

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

list_profilesList peopleA
Read-onlyIdempotent
Inspect

List the people saved in the signed-in user's EQIQs workspace (id, name, department, how many of 21 frameworks are complete). Use to find someone before calling get_profile, score_compatibility or score_team. Read-only; costs 1 unit.

NameRequiredDescriptionDefault
limitNoMaximum rows to return (1-100, default 25).
searchNoOptional case-insensitive filter on name or email.
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

Output Schema

NameRequiredDescription
profilesNoMatching profiles.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive behavior, but the description adds genuinely new operational context: it is read-only and 'costs 1 unit', a billing detail no structured field provides. It doesn't discuss pagination behavior beyond the limit param, keeping it from a 5.

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?

Two tightly packed sentences with zero filler: the resource and returned fields come first, followed by routing guidance and the cost note. Every clause earns its place.

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?

For a 3-param, zero-required listing tool with full schema coverage, complete annotations, and an output schema to cover return values, the description supplies everything an agent needs: scope, routing to siblings, and cost.

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 all three parameters (including the context enum's business/romantic/friendship/coparenting weighting) are already documented in the schema. The description adds no parameter-level meaning beyond that, which is the expected baseline when the schema does the work.

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 (List) plus resource (people in the signed-in user's EQIQs workspace) and even previews the returned fields (id, name, department, framework completion count). This clearly separates it from get_my_profile or get_profile, which fetch a single person.

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

Usage Guidelines4/5

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

Explicitly says to use it to find someone before calling get_profile, score_compatibility or score_team, giving a clear selection condition and naming the downstream alternatives. It doesn't state exclusions (e.g., when to prefer list_relationships or get_my_profile for a single known person), so it falls just short of a full 5.

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

list_relationshipsList saved pairingsA
Read-onlyIdempotent
Inspect

List compatibility pairings the user has already saved, with each pair's score and the context it was scored in. Use to recall earlier comparisons without re-scoring. Read-only; costs 1 unit.

NameRequiredDescriptionDefault
limitNoMaximum rows to return (1-100, default 25).
contextNoOptional filter: only pairings scored in this context.

Output Schema

NameRequiredDescription
relationshipsNoSaved pairings with their context.

TDQS

A4.1/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 safety is covered. The description adds genuinely new operational context the annotations cannot express: the call costs 1 unit. It doesn't discuss pagination, but the cost disclosure plus the returned-fields hint ('score and the context') is real added value.

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 tight sentences with no filler: purpose first, then the usage trigger, then the cost/safety note. Every sentence earns its place and nothing is buried.

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 enumerated, yet the description still signals what comes back (scores and scoring context). For a zero-required-param read tool, purpose, usage, cost, and output shape are all covered.

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 coverage is 100% with both parameters fully described, including the enum values for context, so the baseline is 3. The description's mention of 'the context it was scored in' loosely aligns with the context filter but adds no format, default, or bounds detail beyond the schema.

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

Purpose4/5

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

States a specific verb (List) and resource (saved compatibility pairings) and clarifies the payload: each pair's score plus the scoring context. It implicitly distinguishes itself from re-scoring, though it never names the sibling score_compatibility explicitly.

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

Usage Guidelines4/5

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

'Use to recall earlier comparisons without re-scoring' gives a clear situational trigger for selecting this over a fresh scoring call. It stops short of naming the alternative tool or stating exclusions, but the when-to-use is unambiguous.

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

prep_meetingPrepare for a meetingA
Read-onlyIdempotent
Inspect

Build a meeting prep brief for 1-12 attendees: how to communicate with and persuade each person, and which pairings in the room need care. Name attendees or pass a department. Read-only; costs 2 units.

NameRequiredDescriptionDefault
goalNoOptional meeting goal, e.g. 'agree the Q4 roadmap', used to tailor the advice.
membersNoProfile ids or full names of attendees (1-12). Omit when using department.
departmentNoUse everyone tagged with this department instead of naming members. Exact match first; refuses and asks for names if more than 12 people match or the name spans several departments.

Output Schema

NameRequiredDescription
goalNoStated meeting goal.
peopleNoHow to work with each attendee.
goal_tipsNoTips tied to the goal.
watch_pairsNoPairings that need care.
weakest_pairNoThe pairing with the lowest score.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds genuinely non-obvious context beyond that: a cost of 2 units and the 1-12 attendee ceiling. It does not describe latency or what happens on partial failures, but the quota disclosure is a meaningful addition.

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?

Two tight sentences: purpose and scope first, then input modes, then the read-only/cost footer. No filler, and the most important information is front-loaded.

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

Completeness4/5

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

With an output schema present, the description needn't explain return values, and it covers scope, inputs, cost, and safety adequately for a read-only analysis tool. The only gap is sibling differentiation, which is not required for correct invocation but would help routing.

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 the schema already documents goal, members, and department, including the omit-members-when-using-department rule and the department match/refusal behavior. The description's 'Name attendees or pass a department' largely restates what the schema provides, so the baseline 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?

The description states a specific verb and resource — 'Build a meeting prep brief' — and details the output (how to communicate with and persuade each attendee, risky pairings) plus the scope (1-12 attendees). This is clearly distinguishable from siblings like score_team, score_compatibility, or generate_narrative.

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

Usage Guidelines3/5

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

The description implies the use case (preparing for a meeting) and gives the two input modes ('Name attendees or pass a department'), which is useful. However, it never states when not to use this tool or which sibling to prefer for adjacent tasks like compatibility scoring or team analysis, leaving routing to inference.

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

score_compatibilityScore two peopleA
Read-onlyIdempotent
Inspect

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.

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

NameRequiredDescription
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.

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.

score_teamScore a teamA
Read-onlyIdempotent
Inspect

Score a whole group in one call: every pairing is rolled up into a team cohesion score (visual card), the weakest shared dimension, the best-connected person, who is most isolated, pairings to watch (<55) and anchor pairings (75+), and the role mix with what is missing. Use instead of looping score_compatibility for 3+ people. Decision-support only. Read-only; costs 2 units.

NameRequiredDescriptionDefault
labelNoOptional group name echoed in the summary.
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
membersNoProfile ids or full names of the people in the group (2-12). Omit when using department.
departmentNoUse everyone tagged with this department instead of naming members. Exact match first; refuses and asks for names if more than 12 people match or the name spans several departments.

Output Schema

NameRequiredDescription
labelNoTeam or department name.
pairsNoEvery pairing and its score.
contextNoRelationship context used.
membersNoEach member with their average fit.
connectorNoBest-connected member.
thin_dataNoMembers with too little data for a reliable read.
disclaimerNoDecision-support disclaimer.
pair_countNoPairings scored.
watch_pairsNoPairings that need care.
anchor_pairsNoStrongest pairings.
member_countNoPeople in the team.
most_isolatedNoMember furthest from the rest.
role_coverageNoMix of working-style roles, counting each person once.
cohesion_scoreNoTeam cohesion, 0-100.
weakest_subscoreNoThe team's weakest shared dimension.
subscore_averagesNoAverage score per dimension across the team.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower; the description still adds the non-obvious cost ('2 units'), the 'decision-support only' caveat, and the department parameter's refusal behavior. It does not cover auth/permission requirements or pagination/limits, but the added cost and caveat context is real value beyond structured fields.

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

Conciseness4/5

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

Front-loaded with the core action and then a dense enumeration of outputs, with the alternative and cost trailing. Every clause carries information, though the output enumeration runs long enough that a reader must parse carefully.

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 and annotations cover safety, yet the description still supplies the decision-support caveat, unit cost, sibling alternative, and the shape of the result. Nothing an agent needs in order to select and call this correctly is missing.

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 the schema already documents label, context, members, and department, including the enum semantics of context and the 2-12 bound. The description adds no parameter-level detail beyond what the schema provides, so the baseline 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 and resource ('score a whole group') and enumerates exactly what the rollup contains: cohesion score, weakest shared dimension, best-connected/isolated members, pairings to watch, anchor pairings, role mix gaps. It also explicitly contrasts itself with the sibling score_compatibility, so an agent can route without opening schemas.

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?

'Use instead of looping score_compatibility for 3+ people' gives an explicit alternative plus the numeric threshold that selects it. The schema reinforces member-vs-department selection, and the 'decision-support only' framing sets expectations about how results should be used.

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

start_assessmentStart an assessment in chatA
Read-onlyIdempotent
Inspect

Get the questions for one EQIQs framework so the user can take it inside the chat. Ask them one at a time, word for word, accepting only A or B. Call with no framework to list what the user has not completed yet. Personal frameworks (attachment, love language) need the user's explicit consent. Read-only; costs 1 unit.

NameRequiredDescriptionDefault
contextNo
frameworkNoFramework key. Omit to list remaining frameworks.
personal_consentNoTrue only after explicit user consent to this personal framework.

Output Schema

NameRequiredDescription
missingNoFrameworks still to take.
completedNoFrameworks already completed.
frameworkNoFramework whose questions are returned.
questionsNoQuestions with A/B options.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, and closed-world. The description adds value beyond these by disclosing the cost ('costs 1 unit'), the consent prerequisite for personal frameworks, and the exact interaction protocol (one question at a time, A/B only). It does not cover rate limits or error behavior, but the added context is substantial.

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

Conciseness4/5

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

Front-loaded with the core action, then usage instructions, then constraints and cost. Every sentence serves a purpose and the description is tight, though slightly dense with multiple imperatives in a row.

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

Completeness4/5

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

Given the output schema exists (so return values need no explanation) and annotations cover safety/idempotency, the description supplies the missing behavioral and consent context. The only notable gap is failing to clarify the 'context' enum parameter, but overall it is sufficiently complete for correct invocation.

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 67%, so the schema documents two of three parameters. The description adds meaning for 'framework' (omitting it lists remaining frameworks) and for 'personal_consent' (explicit consent required for personal frameworks), but does not explain the 'context' enum (business/personal). This partially compensates for the coverage gap, warranting a baseline 3.

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

Purpose4/5

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

States a specific verb ('Get') and resource ('questions for one EQIQs framework') and clarifies the mode ('list what the user has not completed yet' when no framework is given). It does not explicitly differentiate from the sibling submit_assessment, but the start-vs-submit distinction is implied by 'so the user can take it inside the chat'.

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

Usage Guidelines4/5

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

Provides clear operational context: ask questions one at a time, word for word, accept only A or B; call with no framework to list remaining frameworks; personal frameworks need explicit consent. It lacks explicit when-not-to-use or a direct comparison to alternatives like submit_assessment, but the usage conditions are well specified.

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

submit_assessmentSubmit assessment answersA
Idempotent
Inspect

Score the answers collected via start_assessment with EQIQs' own scoring and save the result to the signed-in user's profile (overwrites an earlier result for that framework). Returns the result in plain language. Costs 1 unit.

NameRequiredDescriptionDefault
answersYesMap of question id to the user's answer, 'A' or 'B', for every question returned.
contextNo
frameworkYesThe same framework key passed to start_assessment.
personal_consentNoTrue only after explicit user consent to save this personal framework.

Output Schema

NameRequiredDescription
resultNoResulting type or level.
frameworkNoFramework scored.
profile_idNoProfile the result was saved to.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations cover readOnly=false, idempotent=true, destructive=false, so safety is largely declared. The description adds genuinely new operational context: it overwrites a prior result for that framework, costs 1 unit, and returns plain-language output. There is mild tension between 'overwrites an earlier result' and destructiveHint=false, but overwriting one's own saved result for a framework is consistent with idempotentHint=true and not a true contradiction.

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 tight sentences, front-loaded with the core action and effect, followed by return format and cost. No filler; every clause carries information.

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

Completeness4/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 needn't be explained, and the description still notes plain-language results. It covers workflow origin, overwrite behavior, and billing cost. The one gap is no guidance on personal_consent, which the schema documents but the description never reinforces for a write that saves personal data.

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 coverage is 75%, so the schema already documents answers, framework, context, and personal_consent. The description adds little parameter-level detail beyond implying the framework key ('for that framework'); it never mentions the consent or context parameters, so baseline 3 is appropriate.

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?

Specific verb pair (score + save) and a precisely named resource (answers collected via start_assessment), with the effect on the user's profile stated. It clearly distinguishes itself from its sibling start_assessment by describing what happens to that tool's output.

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

Usage Guidelines4/5

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

The description establishes the prerequisite and sequence explicitly: it scores 'answers collected via start_assessment' and ties the framework key back to that call. It gives clear context but no explicit exclusions or 'use X instead' branching, so it stops short of a 5.

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

suggest_leadSuggest who should leadA
Read-onlyIdempotent
Inspect

Discuss leadership considerations for 2-12 people and voluntary work (execution, people, innovation or analysis), showing available results and gaps without ranking people. Decision-support only. Read-only; costs 1 unit.

NameRequiredDescriptionDefault
kindNoKind of leadership the work needs.execution
membersNoProfile ids or full names of the people in the group (2-12). Omit when using department.
projectNoOptional project description echoed in the ranking.
departmentNoUse everyone tagged with this department instead of naming members. Exact match first; refuses and asks for names if more than 12 people match or the name spans several departments.

Output Schema

NameRequiredDescription
kindNoType of work being led.
considerationsNoPeople to consider and why (not a ranking).

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive, and closed-world traits. The description adds useful non-annotation context: it costs 1 unit, is decision-support only, and notably does not rank people — an important behavioral trait for a tool named suggest_lead.

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

Conciseness4/5

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

Three short sentences with no wasted words. The core scope and the key non-ranking constraint are front-loaded, though the first sentence is somewhat dense.

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

Completeness4/5

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

An output schema already explains return values, and annotations cover safety. The description adds cost, decision-support framing, and the non-ranking behavior, leaving little missing for an agent to invoke it correctly.

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 the schema already documents all four parameters thoroughly. The description restates the 2-12 member limit and the four work kinds, adding minimal meaning beyond what the schema provides.

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

Purpose4/5

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

The description states a specific purpose: discussing leadership considerations for a group of 2-12 people, with optional voluntary work kinds, and explicitly notes it does not rank people. This distinguishes it from scoring siblings like score_team or score_compatibility, though no sibling is named.

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

Usage Guidelines3/5

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

It says 'Decision-support only' and implies the tool is for exploring leadership considerations rather than making final decisions, but it never explicitly states when to use this tool versus alternatives such as score_team or score_compatibility. Usage is implied rather than directed.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedcreate_profile10 fields changed
      • changedInput schema / properties / attachment_style / description
        Previous value: -"Optional. Personal data: never used in business context."New value: +"Ignored and never saved — the person adds this themselves via invite_person."
      • removedInput schema / properties / attachment_style / maxLength
        Removed value: -40
      • changedInput schema / properties / date_of_birth / description
        Previous value: -"Optional YYYY-MM-DD. Personal data: never used in business context."New value: +"Ignored and never saved — the person adds this themselves via invite_person."
      • removedInput schema / properties / date_of_birth / format
        Removed value: -"date"
      • changedInput schema / properties / disc_type / description
        Previous value: -"Optional DISC style: D, I, S, C or a blend such as DI."New value: +"Optional DISC style (D, I, S, C or a blend), only if the person shared it themselves."
      • changedInput schema / properties / enneagram_type / description
        Previous value: -"Optional Enneagram type 1-9, with wing if known, e.g. 3w2."New value: +"Optional Enneagram type 1-9, only if the person shared it themselves."
      • changedInput schema / properties / eq_score / description
        Previous value: -"Optional emotional-intelligence score 0-100."New value: +"Ignored and never saved — scores come only from the person's own assessment."
      • removedInput schema / properties / eq_score / maximum
        Removed value: -100
      • removedInput schema / properties / eq_score / minimum
        Removed value: -0
      • changedInput schema / properties / mbti_type / description
        Previous value: -"Optional four-letter MBTI type, e.g. INTJ."New value: +"Optional four-letter MBTI type, only if the person shared it themselves."
  2. 1 tool update
    • Changedgenerate_narrative1 field changed
      • addedInput schema / properties / confirm_cost
        Added value: +{
        +  "default": false,
        +  "description": "Set true only after the user explicitly approves the five-unit cost. False returns a no-charge confirmation prompt.",
        +  "type": "boolean"
        +}
  3. 2 tool updates
    • Changedstart_assessment3 fields changed
      • addedInput schema / properties / context
        Added value: +{
        +  "enum": [
        +    "business",
        +    "personal"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / framework / description
        Previous value: -"Framework key, e.g. 'mbti', 'disc', 'enneagram', 'big_five'. Omit to list remaining frameworks."New value: +"Framework key. Omit to list remaining frameworks."
      • addedInput schema / properties / personal_consent
        Added value: +{
        +  "description": "True only after explicit user consent to this personal framework.",
        +  "type": "boolean"
        +}
    • Changedsubmit_assessment2 fields changed
      • addedInput schema / properties / context
        Added value: +{
        +  "enum": [
        +    "business",
        +    "personal"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / personal_consent
        Added value: +{
        +  "description": "True only after explicit user consent to save this personal framework.",
        +  "type": "boolean"
        +}
  4. 2 tool updates
    • Changedget_my_profile3 fields changed
      • changedOutput schema / properties / frameworks_withheld / description
        Previous value: -"Frameworks hidden in this context (e.g. personal-life signals at work)."New value: +"How many frameworks are hidden in this context (e.g. personal-life signals at work)."
      • removedOutput schema / properties / frameworks_withheld / items
        Removed value: -{}
      • changedOutput schema / properties / frameworks_withheld / type
        Previous value: -"array"New value: +"number"
    • Changedget_profile3 fields changed
      • changedOutput schema / properties / frameworks_withheld / description
        Previous value: -"Frameworks hidden in this context (e.g. personal-life signals at work)."New value: +"How many frameworks are hidden in this context (e.g. personal-life signals at work)."
      • removedOutput schema / properties / frameworks_withheld / items
        Removed value: -{}
      • changedOutput schema / properties / frameworks_withheld / type
        Previous value: -"array"New value: +"number"
  5. 16 tool updates
    • Changedadd_note1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "created_at": {
        +      "description": "When the note was saved (ISO 8601).",
        +      "type": "string"
        +    },
        +    "note_id": {
        +      "description": "Id of the saved note.",
        +      "type": "string"
        +    },
        +    "person": {
        +      "description": "Who the note is about.",
        +      "type": "string"
        +    },
        +    "profile_id": {
        +      "description": "Profile id of that person.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcreate_profile1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "profile": {
        +      "additionalProperties": {},
        +      "description": "The newly created profile.",
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedgenerate_narrative1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "action_items": {
        +      "description": "Action items pulled from the narrative."
        +    },
        +    "audience": {
        +      "description": "Who the narrative is written for.",
        +      "type": "string"
        +    },
        +    "billing": {
        +      "additionalProperties": {
        +        "$ref": "#/properties/guardrails/additionalProperties"
        +      },
        +      "description": "Units billed.",
        +      "type": "object"
        +    },
        +    "compared_with": {
        +      "description": "Second person, for pair narratives.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "context": {
        +      "description": "Relationship context for pair narratives.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "disclaimer": {
        +      "description": "Decision-support disclaimer.",
        +      "type": "string"
        +    },
        +    "guardrails": {
        +      "additionalProperties": {},
        +      "description": "Safety check results.",
        +      "type": "object"
        +    },
        +    "narrative": {
        +      "description": "The written coaching narrative.",
        +      "type": "string"
        +    },
        +    "requires_confirmation": {
        +      "description": "True when the price must be confirmed before running.",
        +      "type": "boolean"
        +    },
        +    "scoring": {
        +      "description": "Scores the narrative is based on."
        +    },
        +    "sections": {
        +      "description": "Narrative split into sections."
        +    },
        +    "subject": {
        +      "description": "Person the narrative is about.",
        +      "type": "string"
        +    },
        +    "units": {
        +      "description": "Tool-call units this narrative costs.",
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_my_profile1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "context": {
        +      "description": "Relationship context the profile was filtered for.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "framework_coverage": {
        +      "description": "How many of the 21 frameworks have data.",
        +      "type": "number"
        +    },
        +    "frameworks_total": {
        +      "description": "Total frameworks EQIQs uses (21).",
        +      "type": "number"
        +    },
        +    "frameworks_withheld": {
        +      "description": "Frameworks hidden in this context (e.g. personal-life signals at work).",
        +      "items": {},
        +      "type": "array"
        +    },
        +    "label_meanings": {
        +      "additionalProperties": {
        +        "$ref": "#/properties/profile/additionalProperties"
        +      },
        +      "description": "Plain-language meanings for the framework labels on the profile.",
        +      "type": "object"
        +    },
        +    "matched_by": {
        +      "description": "How the signed-in user's own profile was found.",
        +      "type": "string"
        +    },
        +    "profile": {
        +      "additionalProperties": {},
        +      "description": "The person's profile fields that are visible in this context.",
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_profile1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "context": {
        +      "description": "Relationship context the profile was filtered for.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "framework_coverage": {
        +      "description": "How many of the 21 frameworks have data.",
        +      "type": "number"
        +    },
        +    "frameworks_total": {
        +      "description": "Total frameworks EQIQs uses (21).",
        +      "type": "number"
        +    },
        +    "frameworks_withheld": {
        +      "description": "Frameworks hidden in this context (e.g. personal-life signals at work).",
        +      "items": {},
        +      "type": "array"
        +    },
        +    "label_meanings": {
        +      "additionalProperties": {
        +        "$ref": "#/properties/profile/additionalProperties"
        +      },
        +      "description": "Plain-language meanings for the framework labels on the profile.",
        +      "type": "object"
        +    },
        +    "profile": {
        +      "additionalProperties": {},
        +      "description": "The person's profile fields that are visible in this context.",
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedinvite_person1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "emailed": {
        +      "description": "Whether EQIQs emailed the invite.",
        +      "type": "boolean"
        +    },
        +    "invitee": {
        +      "description": "Who was invited.",
        +      "type": "string"
        +    },
        +    "link": {
        +      "description": "Private invite link.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "status": {
        +      "description": "Invite status.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlist_invites1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "invites": {
        +      "description": "Sent invites with status (sent, opened, started, finished).",
        +      "items": {
        +        "additionalProperties": {},
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlist_notes1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "notes": {
        +      "description": "Notes, newest first.",
        +      "items": {
        +        "additionalProperties": {},
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "person": {
        +      "description": "Who the notes are about.",
        +      "type": "string"
        +    },
        +    "profile_id": {
        +      "description": "Profile id of that person.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlist_profiles1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "profiles": {
        +      "description": "Matching profiles.",
        +      "items": {
        +        "additionalProperties": {},
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlist_relationships1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "relationships": {
        +      "description": "Saved pairings with their context.",
        +      "items": {
        +        "additionalProperties": {},
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedprep_meeting1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "goal": {
        +      "description": "Stated meeting goal.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "goal_tips": {
        +      "description": "Tips tied to the goal.",
        +      "items": {},
        +      "type": "array"
        +    },
        +    "people": {
        +      "description": "How to work with each attendee.",
        +      "items": {
        +        "additionalProperties": {},
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "watch_pairs": {
        +      "description": "Pairings that need care.",
        +      "items": {
        +        "$ref": "#/properties/people/items"
        +      },
        +      "type": "array"
        +    },
        +    "weakest_pair": {
        +      "description": "The pairing with the lowest score."
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedscore_compatibility1 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"
        +}
    • Changedscore_team1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "anchor_pairs": {
        +      "description": "Strongest pairings.",
        +      "items": {
        +        "$ref": "#/properties/members/items"
        +      },
        +      "type": "array"
        +    },
        +    "cohesion_score": {
        +      "description": "Team cohesion, 0-100.",
        +      "type": "number"
        +    },
        +    "connector": {
        +      "description": "Best-connected member."
        +    },
        +    "context": {
        +      "description": "Relationship context used.",
        +      "type": "string"
        +    },
        +    "disclaimer": {
        +      "description": "Decision-support disclaimer.",
        +      "type": "string"
        +    },
        +    "label": {
        +      "description": "Team or department name.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "member_count": {
        +      "description": "People in the team.",
        +      "type": "number"
        +    },
        +    "members": {
        +      "description": "Each member with their average fit.",
        +      "items": {
        +        "additionalProperties": {
        +          "$ref": "#/properties/subscore_averages/additionalProperties"
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "most_isolated": {
        +      "description": "Member furthest from the rest."
        +    },
        +    "pair_count": {
        +      "description": "Pairings scored.",
        +      "type": "number"
        +    },
        +    "pairs": {
        +      "description": "Every pairing and its score.",
        +      "items": {
        +        "$ref": "#/properties/members/items"
        +      },
        +      "type": "array"
        +    },
        +    "role_coverage": {
        +      "description": "Mix of working-style roles, counting each person once."
        +    },
        +    "subscore_averages": {
        +      "additionalProperties": {},
        +      "description": "Average score per dimension across the team.",
        +      "type": "object"
        +    },
        +    "thin_data": {
        +      "description": "Members with too little data for a reliable read."
        +    },
        +    "watch_pairs": {
        +      "description": "Pairings that need care.",
        +      "items": {
        +        "$ref": "#/properties/members/items"
        +      },
        +      "type": "array"
        +    },
        +    "weakest_subscore": {
        +      "description": "The team's weakest shared dimension."
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedstart_assessment1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "completed": {
        +      "description": "Frameworks already completed.",
        +      "items": {},
        +      "type": "array"
        +    },
        +    "framework": {
        +      "description": "Framework whose questions are returned.",
        +      "type": "string"
        +    },
        +    "missing": {
        +      "description": "Frameworks still to take.",
        +      "items": {
        +        "$ref": "#/properties/completed/items"
        +      },
        +      "type": "array"
        +    },
        +    "questions": {
        +      "description": "Questions with A/B options.",
        +      "items": {
        +        "additionalProperties": {},
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedsubmit_assessment1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "framework": {
        +      "description": "Framework scored.",
        +      "type": "string"
        +    },
        +    "profile_id": {
        +      "description": "Profile the result was saved to.",
        +      "type": "string"
        +    },
        +    "result": {
        +      "description": "Resulting type or level.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedsuggest_lead1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "considerations": {
        +      "description": "People to consider and why (not a ranking).",
        +      "items": {
        +        "additionalProperties": {},
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "kind": {
        +      "description": "Type of work being led.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
  6. 16 tool updates
    • Changedadd_note4 fields changed
      • addedInput schema / properties / note / description
        Added value: +"Note text (up to 4,000 characters)."
      • addedInput schema / properties / note / maxLength
        Added value: +4000
      • addedInput schema / properties / note / minLength
        Added value: +1
      • addedInput schema / properties / person / description
        Added value: +"Who the note is about. 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."
    • Changedcreate_profile18 fields changed
      • addedInput schema / properties / attachment_style / description
        Added value: +"Optional. Personal data: never used in business context."
      • addedInput schema / properties / attachment_style / maxLength
        Added value: +40
      • addedInput schema / properties / date_of_birth / description
        Added value: +"Optional YYYY-MM-DD. Personal data: never used in business context."
      • addedInput schema / properties / date_of_birth / format
        Added value: +"date"
      • addedInput schema / properties / department / description
        Added value: +"Optional team or department, used by score_team, prep_meeting and suggest_lead."
      • addedInput schema / properties / department / maxLength
        Added value: +120
      • addedInput schema / properties / disc_type / description
        Added value: +"Optional DISC style: D, I, S, C or a blend such as DI."
      • addedInput schema / properties / email / description
        Added value: +"Optional email; used to match results if they later take the assessment."
      • addedInput schema / properties / email / format
        Added value: +"email"
      • addedInput schema / properties / enneagram_type / description
        Added value: +"Optional Enneagram type 1-9, with wing if known, e.g. 3w2."
      • addedInput schema / properties / eq_score / description
        Added value: +"Optional emotional-intelligence score 0-100."
      • addedInput schema / properties / eq_score / maximum
        Added value: +100
      • addedInput schema / properties / eq_score / minimum
        Added value: +0
      • addedInput schema / properties / mbti_type / description
        Added value: +"Optional four-letter MBTI type, e.g. INTJ."
      • addedInput schema / properties / mbti_type / maxLength
        Added value: +4
      • addedInput schema / properties / name / description
        Added value: +"Full name (required)."
      • addedInput schema / properties / name / maxLength
        Added value: +120
      • addedInput schema / properties / name / minLength
        Added value: +1
    • Changedgenerate_narrative12 fields changed
      • addedInput schema / properties / audience / default
        Added value: +"manager"
      • changedInput schema / properties / audience / description
        Previous value: -"Who the narrative is for. Hiring or candidate-screening audiences are intentionally not supported."New value: +"Who will read it. Hiring or candidate-screening audiences are intentionally not supported."
      • addedInput schema / properties / compare_with / description
        Added value: +"Optional second person for a pair narrative. 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 / 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 / focus / description
        Added value: +"Optional topic to emphasize, e.g. 'giving feedback'."
      • addedInput schema / properties / focus / maxLength
        Added value: +200
      • addedInput schema / properties / length / default
        Added value: +"standard"
      • addedInput schema / properties / length / description
        Added value: +"Approximate length of the narrative."
      • addedInput schema / properties / length / enum
        Added value: +[
        +  "short",
        +  "standard",
        +  "deep"
        +]
      • addedInput schema / properties / person / description
        Added value: +"Who the narrative is about. 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."
    • Changedget_my_profile2 fields changed
      • addedInput schema / properties / context / default
        Added value: +"business"
      • changedInput schema / properties / context / description
        Previous value: -"Relationship context. Business (default) withholds personal-life signals: love language, attachment style, date of birth."New 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."
    • Changedget_profile6 fields changed
      • addedInput schema / properties / context / default
        Added value: +"business"
      • changedInput schema / properties / context / description
        Previous value: -"Relationship context. Business (default) withholds personal-life signals: love language, attachment style, date of birth."New 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 / email / description
        Added value: +"The person's exact email."
      • addedInput schema / properties / email / format
        Added value: +"email"
      • addedInput schema / properties / name / description
        Added value: +"Full name. Ambiguous names return a list to choose from rather than a guess."
      • addedInput schema / properties / profile_id / description
        Added value: +"Profile id from list_profiles (preferred)."
    • Changedinvite_person7 fields changed
      • addedInput schema / properties / email / description
        Added value: +"Invitee's email, when they are not saved yet."
      • addedInput schema / properties / email / format
        Added value: +"email"
      • addedInput schema / properties / name / description
        Added value: +"Invitee's name, shown in the invite."
      • addedInput schema / properties / name / maxLength
        Added value: +120
      • addedInput schema / properties / person / description
        Added value: +"Existing saved person to invite (optional if email is given). 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 / send_email / default
        Added value: +true
      • addedInput schema / properties / send_email / description
        Added value: +"true: EQIQs emails the link. false: only return the link."
    • Changedlist_invites8 fields changed
      • addedInput schema / properties / limit / default
        Added value: +20
      • addedInput schema / properties / limit / description
        Added value: +"Maximum rows to return (1-50, default 20)."
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / status / default
        Added value: +"all"
      • addedInput schema / properties / status / description
        Added value: +"Filter by status."
      • addedInput schema / properties / status / enum
        Added value: +[
        +  "all",
        +  "pending",
        +  "clicked",
        +  "started",
        +  "completed"
        +]
    • Changedlist_notes6 fields changed
      • addedInput schema / properties / limit / default
        Added value: +20
      • addedInput schema / properties / limit / description
        Added value: +"Maximum rows to return (1-100, default 20)."
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / person / description
        Added value: +"Whose notes to read. 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."
    • Changedlist_profiles9 fields changed
      • addedInput schema / properties / context / default
        Added value: +"business"
      • changedInput schema / properties / context / description
        Previous value: -"Relationship context. Business (default) withholds personal-life signals: love language, attachment style, date of birth."New 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 / limit / default
        Added value: +25
      • addedInput schema / properties / limit / description
        Added value: +"Maximum rows to return (1-100, default 25)."
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / search / description
        Added value: +"Optional case-insensitive filter on name or email."
      • addedInput schema / properties / search / maxLength
        Added value: +100
    • Changedlist_relationships7 fields changed
      • addedInput schema / properties / context / description
        Added value: +"Optional filter: only pairings scored in this context."
      • addedInput schema / properties / context / enum
        Added value: +[
        +  "business",
        +  "romantic",
        +  "friendship",
        +  "coparenting"
        +]
      • addedInput schema / properties / limit / default
        Added value: +25
      • addedInput schema / properties / limit / description
        Added value: +"Maximum rows to return (1-100, default 25)."
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedprep_meeting7 fields changed
      • addedInput schema / properties / department / description
        Added value: +"Use everyone tagged with this department instead of naming members. Exact match first; refuses and asks for names if more than 12 people match or the name spans several departments."
      • addedInput schema / properties / department / maxLength
        Added value: +100
      • addedInput schema / properties / goal / description
        Added value: +"Optional meeting goal, e.g. 'agree the Q4 roadmap', used to tailor the advice."
      • addedInput schema / properties / goal / maxLength
        Added value: +300
      • addedInput schema / properties / members / description
        Added value: +"Profile ids or full names of attendees (1-12). Omit when using department."
      • addedInput schema / properties / members / maxItems
        Added value: +12
      • addedInput schema / properties / members / minItems
        Added value: +1
    • Changedscore_compatibility5 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."
    • Changedscore_team9 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."
      • changedInput schema / properties / department / description
        Previous value: -"Score everyone in this department instead of naming members."New value: +"Use everyone tagged with this department instead of naming members. Exact match first; refuses and asks for names if more than 12 people match or the name spans several departments."
      • addedInput schema / properties / department / maxLength
        Added value: +100
      • addedInput schema / properties / label / description
        Added value: +"Optional group name echoed in the summary."
      • addedInput schema / properties / label / maxLength
        Added value: +80
      • changedInput schema / properties / members / description
        Previous value: -"Profile ids or names (2-12)."New value: +"Profile ids or full names of the people in the group (2-12). Omit when using department."
      • addedInput schema / properties / members / maxItems
        Added value: +12
      • addedInput schema / properties / members / minItems
        Added value: +2
    • Changedstart_assessment1 field changed
      • addedInput schema / properties / framework / description
        Added value: +"Framework key, e.g. 'mbti', 'disc', 'enneagram', 'big_five'. Omit to list remaining frameworks."
    • Changedsubmit_assessment3 fields changed
      • addedInput schema / properties / answers / additionalProperties
        Added value: +{
        +  "enum": [
        +    "A",
        +    "B"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / answers / description
        Added value: +"Map of question id to the user's answer, 'A' or 'B', for every question returned."
      • addedInput schema / properties / framework / description
        Added value: +"The same framework key passed to start_assessment."
    • Changedsuggest_lead9 fields changed
      • addedInput schema / properties / department / description
        Added value: +"Use everyone tagged with this department instead of naming members. Exact match first; refuses and asks for names if more than 12 people match or the name spans several departments."
      • addedInput schema / properties / department / maxLength
        Added value: +100
      • addedInput schema / properties / kind / default
        Added value: +"execution"
      • addedInput schema / properties / kind / description
        Added value: +"Kind of leadership the work needs."
      • addedInput schema / properties / members / description
        Added value: +"Profile ids or full names of the people in the group (2-12). Omit when using department."
      • addedInput schema / properties / members / maxItems
        Added value: +12
      • addedInput schema / properties / members / minItems
        Added value: +2
      • addedInput schema / properties / project / description
        Added value: +"Optional project description echoed in the ranking."
      • addedInput schema / properties / project / maxLength
        Added value: +300
  7. 6 tool updates
    • Addedinvite_person
    • Addedlist_invites
    • Addedprep_meeting
    • Addedstart_assessment
    • Addedsubmit_assessment
    • Addedsuggest_lead
  8. 2 tool updates
    • Addedadd_note
    • Addedlist_notes
  9. 1 tool update
    • Addedscore_team
  10. 4 tool updates
    • Changedgenerate_narrative2 fields changed
      • addedInput schema / properties / audience / description
        Added value: +"Who the narrative is for. Hiring or candidate-screening audiences are intentionally not supported."
      • addedInput schema / properties / audience / enum
        Added value: +[
        +  "manager",
        +  "self",
        +  "partner"
        +]
    • Changedget_my_profile1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Relationship context. Business (default) withholds personal-life signals: love language, attachment style, date of birth.",
        +  "enum": [
        +    "business",
        +    "romantic",
        +    "friendship",
        +    "coparenting"
        +  ],
        +  "type": "string"
        +}
    • Changedget_profile1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Relationship context. Business (default) withholds personal-life signals: love language, attachment style, date of birth.",
        +  "enum": [
        +    "business",
        +    "romantic",
        +    "friendship",
        +    "coparenting"
        +  ],
        +  "type": "string"
        +}
    • Changedlist_profiles1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Relationship context. Business (default) withholds personal-life signals: love language, attachment style, date of birth.",
        +  "enum": [
        +    "business",
        +    "romantic",
        +    "friendship",
        +    "coparenting"
        +  ],
        +  "type": "string"
        +}
  11. 7 tool updates
    • First observedcreate_profile
    • First observedgenerate_narrative
    • First observedget_my_profile
    • First observedget_profile
    • First observedlist_profiles
    • First observedlist_relationships
    • First observedscore_compatibility

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Brings Enneagram, MBTI, Big Five and 18 more frameworks into Claude, ChatGPT and any MCP client. Includes whole-team reads, meeting prep, 'who should lead this?', an assessment you can take inside the chat, pair compatibility scores, private notes and invite links. Work-safe by default: details are withheld in business contexts. OAuth sign-in keeps every call safely scoped to your EQIQs account.
    16
    20 npm
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides comprehensive psychological intelligence capabilities including persona analysis, attachment theory assessment, relationship compatibility evaluation, and autonomous workflow strategies through a complete graph database integration.
    -
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    An open-source personality profiling system that enables users to record and analyze their decisions, emotions, and self-reflections through a structured set of 56 tools. It helps users build a digital persona and gain self-insight by tracking interactions, decision-making patterns, and emotional states.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources