EQIQs
Server Details
EQIQs: 21-framework personality and compatibility for coaching, communication, and team development.
- Status
- Healthy
- Uptime
- 100.0% over 40 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 16 tools
Most tools target distinct resource+action pairs (notes, invites, profiles, scoring), and descriptions explicitly resolve the tricky pairs like get_profile vs get_my_profile and score_compatibility vs score_team. The only mild overlap is among the analytical tools (generate_narrative, prep_meeting, score_team, suggest_lead), but each clearly serves a different decision context.
Every tool follows a clean verb_noun snake_case pattern (add_note, create_profile, list_invites, score_compatibility, submit_assessment). The convention is used uniformly across all 16 tools with no camelCase or stylistic mixing.
16 tools is slightly above the ideal 3-15 band but each one maps to a discrete operation in the assessment/rapport workflow. Nothing feels redundant or padded, so the set is reasonable rather than excessive.
The surface covers the full lifecycle: profile creation/retrieval, invites, notes, assessments, and multi-person scoring, plus higher-order synthesis tools. Gaps are minor — no update/delete for profiles, notes, or invites — but agents can work around these without blocking core workflows.
Available Tools
16 toolsadd_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.
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | Note text (up to 4,000 characters). | |
| person | Yes | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| person | No | Who the note is about. |
| note_id | No | Id of the saved note. |
| created_at | No | When the note was saved (ISO 8601). |
| profile_id | No | Profile id of that person. |
TDQS
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.
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.
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.
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.
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.
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, optionally with traits already known (e.g. an MBTI type from a past assessment). Use invite_person instead when the person should take the assessment themselves. Returns the new profile id. Costs 1 unit.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Full name (required). | |
| No | Optional email; used to match results if they later take the assessment. | ||
| eq_score | No | Optional emotional-intelligence score 0-100. | |
| disc_type | No | Optional DISC style: D, I, S, C or a blend such as DI. | |
| mbti_type | No | Optional four-letter MBTI type, e.g. INTJ. | |
| department | No | Optional team or department, used by score_team, prep_meeting and suggest_lead. | |
| date_of_birth | No | Optional YYYY-MM-DD. Personal data: never used in business context. | |
| enneagram_type | No | Optional Enneagram type 1-9, with wing if known, e.g. 3w2. | |
| attachment_style | No | Optional. Personal data: never used in business context. |
Output Schema
| Name | Required | Description |
|---|---|---|
| profile | No | The newly created profile. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the mutation/safety profile (readOnly=false, destructive=false, idempotent=false), so the bar is lower. The description adds genuinely new context — a cost of 1 unit and the fact that traits can be pre-seeded — though it does not warn that non-idempotent creation can produce duplicate profiles.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action, then the disambiguation, then the return/cost facts. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-param create tool with a full output schema and safety annotations, the description covers purpose, alternative, return id and cost. The only gap is duplicate-handling behavior implied by idempotentHint=false.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each of the 9 parameters is documented in-schema, so the schema does the heavy lifting. The description only gestures at traits ('e.g. an MBTI type') without adding format or constraint detail beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Add a new person to the user's workspace') and explicitly contrasts with the sibling invite_person, so an agent can distinguish the two 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit routing rule: use invite_person instead when the person should self-assess. It also scopes the case where pre-known traits exist, so when-to-use and when-not-to-use are both covered.
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 narrativeARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| focus | No | Optional topic to emphasize, e.g. 'giving feedback'. | |
| length | No | Approximate length of the narrative. | standard |
| person | Yes | 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. | |
| context | No | 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. | business |
| audience | No | Who will read it. Hiring or candidate-screening audiences are intentionally not supported. | manager |
| compare_with | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| units | No | Tool-call units this narrative costs. |
| billing | No | Units billed. |
| context | No | Relationship context for pair narratives. |
| scoring | No | Scores the narrative is based on. |
| subject | No | Person the narrative is about. |
| audience | No | Who the narrative is written for. |
| sections | No | Narrative split into sections. |
| narrative | No | The written coaching narrative. |
| disclaimer | No | Decision-support disclaimer. |
| guardrails | No | Safety check results. |
| action_items | No | Action items pulled from the narrative. |
| compared_with | No | Second person, for pair narratives. |
| requires_confirmation | No | True when the price must be confirmed before running. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/openWorld/destructive, and the description layers on non-obvious behavior: metered cost of 5 units, elevated latency, privacy weighting per context (business withholds love language, attachment style, DOB), and disambiguation behavior when a name matches multiple people. These are exactly the operational traits annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, front-loaded with the premium/scope qualifier, then the privacy constraint, then cost and latency. Zero filler and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no explanation. For a 6-parameter tool with pair mode and context weighting, the description covers cost, latency, privacy behavior, and audience limits; the only thin spot is not restating accepted identifier forms, which the schema already handles.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 every parameter including the context enum's withholding rules and the compare_with pair trigger. The description reinforces pair mode and framework synthesis but adds no format, syntax, or default semantics beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (write) and resource (plain-language coaching narrative), names the person/pair scope modifier (compare_with), and identifies the synthesis source ('all 21 frameworks'). No sibling tool covers narrative generation, so the tool is unambiguously distinguishable from the rest of the set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear trigger for pair mode ('when compare_with is given') and an explicit exclusion ('Hiring or candidate-screening audiences are intentionally not supported'), plus cost/speed signals ('Slower than other tools. Costs 5 units.') that steer an agent toward cheaper tools when adequate. It stops short of naming a specific alternative to use instead, so not a 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 profileARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | 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. | business |
Output Schema
| Name | Required | Description |
|---|---|---|
| context | No | Relationship context the profile was filtered for. |
| profile | No | The person's profile fields that are visible in this context. |
| matched_by | No | How the signed-in user's own profile was found. |
| label_meanings | No | Plain-language meanings for the framework labels on the profile. |
| frameworks_total | No | Total frameworks EQIQs uses (21). |
| framework_coverage | No | How many of the 21 frameworks have data. |
| frameworks_withheld | No | How many frameworks are hidden in this context (e.g. personal-life signals at work). |
TDQS
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.
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.
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.
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.
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.
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 profileARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Full name. Ambiguous names return a list to choose from rather than a guess. | |
| No | The person's exact email. | ||
| context | No | 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. | business |
| profile_id | No | Profile id from list_profiles (preferred). |
Output Schema
| Name | Required | Description |
|---|---|---|
| context | No | Relationship context the profile was filtered for. |
| profile | No | The person's profile fields that are visible in this context. |
| label_meanings | No | Plain-language meanings for the framework labels on the profile. |
| frameworks_total | No | Total frameworks EQIQs uses (21). |
| framework_coverage | No | How many of the 21 frameworks have data. |
| frameworks_withheld | No | How many frameworks are hidden in this context (e.g. personal-life signals at work). |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Invitee's name, shown in the invite. | |
| No | Invitee's email, when they are not saved yet. | ||
| person | No | 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. | |
| send_email | No | true: EQIQs emails the link. false: only return the link. |
Output Schema
| Name | Required | Description |
|---|---|---|
| link | No | Private invite link. |
| status | No | Invite status. |
| emailed | No | Whether EQIQs emailed the invite. |
| invitee | No | Who was invited. |
TDQS
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.
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.
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.
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.
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.
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 invitesARead-onlyIdempotentInspect
List comparison invites the user has sent and each one's status: pending, clicked, started or completed. Read-only; costs 1 unit.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (1-50, default 20). | |
| status | No | Filter by status. | all |
Output Schema
| Name | Required | Description |
|---|---|---|
| invites | No | Sent invites with status (sent, opened, started, finished). |
TDQS
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.
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.
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.
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.
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.
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 notesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (1-100, default 20). | |
| person | Yes | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | Notes, newest first. |
| person | No | Who the notes are about. |
| profile_id | No | Profile id of that person. |
TDQS
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.
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.
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.
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.
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.
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 peopleARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (1-100, default 25). | |
| search | No | Optional case-insensitive filter on name or email. | |
| context | No | 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. | business |
Output Schema
| Name | Required | Description |
|---|---|---|
| profiles | No | Matching profiles. |
TDQS
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.
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.
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.
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.
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.
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 pairingsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (1-100, default 25). | |
| context | No | Optional filter: only pairings scored in this context. |
Output Schema
| Name | Required | Description |
|---|---|---|
| relationships | No | Saved pairings with their context. |
TDQS
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.
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.
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.
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.
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.
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 meetingARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | No | Optional meeting goal, e.g. 'agree the Q4 roadmap', used to tailor the advice. | |
| members | No | Profile ids or full names of attendees (1-12). Omit when using department. | |
| department | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| goal | No | Stated meeting goal. |
| people | No | How to work with each attendee. |
| goal_tips | No | Tips tied to the goal. |
| watch_pairs | No | Pairings that need care. |
| weakest_pair | No | The pairing with the lowest score. |
TDQS
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.
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.
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.
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.
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.
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 peopleARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | 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. | business |
| person_a | Yes | 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. | |
| person_b | Yes | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| dos | No | Things to do with this person. |
| donts | No | Things to avoid with this person. |
| drivers | No | Frameworks that moved the score most. |
| strengths | No | Where the pair works well together. |
| subscores | No | Score per dimension, 0-100. |
| disclaimer | No | Decision-support disclaimer. |
| overall_score | No | Overall compatibility score, 0-100. |
| frameworks_used | No | Frameworks with data for both people. |
| friction_points | No | Where the pair is likely to clash. |
| frameworks_total | No | Total frameworks considered. |
| subscore_reasons | No | Why each dimension scored as it did, with a tip. |
TDQS
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.
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.
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.
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.
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.
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 teamARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional group name echoed in the summary. | |
| context | No | 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. | business |
| members | No | Profile ids or full names of the people in the group (2-12). Omit when using department. | |
| department | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| label | No | Team or department name. |
| pairs | No | Every pairing and its score. |
| context | No | Relationship context used. |
| members | No | Each member with their average fit. |
| connector | No | Best-connected member. |
| thin_data | No | Members with too little data for a reliable read. |
| disclaimer | No | Decision-support disclaimer. |
| pair_count | No | Pairings scored. |
| watch_pairs | No | Pairings that need care. |
| anchor_pairs | No | Strongest pairings. |
| member_count | No | People in the team. |
| most_isolated | No | Member furthest from the rest. |
| role_coverage | No | Mix of working-style roles, counting each person once. |
| cohesion_score | No | Team cohesion, 0-100. |
| weakest_subscore | No | The team's weakest shared dimension. |
| subscore_averages | No | Average score per dimension across the team. |
TDQS
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.
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.
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.
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.
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.
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 chatARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| framework | No | Framework key, e.g. 'mbti', 'disc', 'enneagram', 'big_five'. Omit to list remaining frameworks. |
Output Schema
| Name | Required | Description |
|---|---|---|
| missing | No | Frameworks still to take. |
| completed | No | Frameworks already completed. |
| framework | No | Framework whose questions are returned. |
| questions | No | Questions with A/B options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent, so the bar is low, yet the description still adds real behavioral context: a cost of 1 unit, a consent precondition for personal frameworks, and an interaction protocol (one question at a time, verbatim, A/B answers only). None of that is derivable from the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and packed with no filler across four short sentences. It is dense — purpose, protocol, no-arg behavior, consent, and cost in one paragraph — but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no explanation, and the description covers the remaining agent-facing concerns: the no-argument listing mode, consent gating, interaction protocol, and cost. Nothing needed to invoke it correctly appears to be missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents the omit-to-list behavior, but the description adds value the schema cannot: per-value semantics that some framework values are 'personal' and require explicit user consent. It goes slightly beyond the baseline 3 for a fully documented single parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (fetch the questions for one EQIQs framework) and immediately clarifies the delivery mode ('inside the chat'). It is clearly separable from siblings like submit_assessment, which presumably records results rather than starts a session.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete when-to-use conditions: call with no framework to list uncompleted frameworks, and obtain explicit consent before personal frameworks (attachment, love language). It does not explicitly name the sibling that handles the opposite half of the flow (submit_assessment), so routing to alternatives is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_assessmentSubmit assessment answersAIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| answers | Yes | Map of question id to the user's answer, 'A' or 'B', for every question returned. | |
| framework | Yes | The same framework key passed to start_assessment. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | Resulting type or level. |
| framework | No | Framework scored. |
| profile_id | No | Profile the result was saved to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false), so the description earns credit for what it adds beyond them: the write overwrites a prior result for the same framework, the call costs 1 unit, and output is plain language. The overwrite notice is the key disclosure, though it sits slightly in tension with destructiveHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences covering action, side effect, return, and cost, with zero filler. The overwrite constraint and cost are surfaced early rather than buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation with an output schema present, the description supplies the prerequisite tool, the overwrite behavior, cost, and the return style. Return value details are legitimately left to the output schema; only the per-framework overwrite scope nuance could be sharper.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 both parameters, including the A/B answer map and that framework must match start_assessment. The description reinforces the provenance of 'answers' but adds no format or shape detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Score the answers') and ties it to the sibling tool that produces the input ('collected via start_assessment'), then names the effect ('save the result to the signed-in user's profile'). This clearly separates it from score_compatibility, score_team, and start_assessment 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'answers collected via start_assessment' establishes the required upstream call and the precondition for use. It does not state exclusions (e.g., what to do for a different framework or when no assessment was started), but the workflow context is clear enough to invoke correctly.
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 leadARead-onlyIdempotentInspect
Rank 2-12 people for leading a kind of work (execution, people, innovation or analysis), showing the saved results behind each ranking and any thin data. Use for 'who should lead this project?'. Decision-support only. Read-only; costs 2 units.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Kind of leadership the work needs. | execution |
| members | No | Profile ids or full names of the people in the group (2-12). Omit when using department. | |
| project | No | Optional project description echoed in the ranking. | |
| department | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | Type of work being led. |
| considerations | No | People to consider and why (not a ranking). |
TDQS
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 goes beyond them by disclosing a cost ('costs 2 units') and the 'Decision-support only' framing, plus noting that thin data is surfaced alongside rankings. It does not describe refusal/failure modes beyond what the schema says about department.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences with no waste: capability and output first, then the trigger phrase, then two short constraint statements. Nothing is buried or redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explained, and the description still summarizes them usefully. Combined with 100% schema coverage, full annotations, and disclosed cost, an agent has everything needed to select and call this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 kind, members, project, and department thoroughly, including the 2-12 bound and the department fallback behavior. The description restates the 2-12 range and the kind list without adding syntax, format, or interaction 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Rank 2-12 people for leading a kind of work'), names the four kinds of leadership, and describes the output shape (rankings with saved results behind each and thin-data flags). It is clearly distinct from score_team, score_compatibility, and get_profile in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger phrase ('Use for "who should lead this project?"') and scopes the tool as 'Decision-support only', which tells the agent this is advisory rather than a decision-maker. It does not, however, name a competing sibling or state when to prefer score_team/score_compatibility instead, so it stops short of full when/when-not guidance.
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.
2 tool updates
- Changed
get_my_profile3 fields changed- changed
Output schema / properties / frameworks_withheld / descriptionPrevious 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)." - removed
Output schema / properties / frameworks_withheld / itemsRemoved value: -{} - changed
Output schema / properties / frameworks_withheld / typePrevious value: -"array"New value: +"number"
- Changed
get_profile3 fields changed- changed
Output schema / properties / frameworks_withheld / descriptionPrevious 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)." - removed
Output schema / properties / frameworks_withheld / itemsRemoved value: -{} - changed
Output schema / properties / frameworks_withheld / typePrevious value: -"array"New value: +"number"
16 tool updates
- Changed
add_note1 field changed- changed
Output 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" +}
- Changed
create_profile1 field changed- changed
Output 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" +}
- Changed
generate_narrative1 field changed- changed
Output 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" +}
- Changed
get_my_profile1 field changed- changed
Output 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" +}
- Changed
get_profile1 field changed- changed
Output 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" +}
- Changed
invite_person1 field changed- changed
Output 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" +}
- Changed
list_invites1 field changed- changed
Output 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" +}
- Changed
list_notes1 field changed- changed
Output 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" +}
- Changed
list_profiles1 field changed- changed
Output 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" +}
- Changed
list_relationships1 field changed- changed
Output 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" +}
- Changed
prep_meeting1 field changed- changed
Output 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" +}
- Changed
score_compatibility1 field changed- changed
Output 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" +}
- Changed
score_team1 field changed- changed
Output 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" +}
- Changed
start_assessment1 field changed- changed
Output 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" +}
- Changed
submit_assessment1 field changed- changed
Output 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" +}
- Changed
suggest_lead1 field changed- changed
Output 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" +}
16 tool updates
- Changed
add_note4 fields changed- added
Input schema / properties / note / descriptionAdded value: +"Note text (up to 4,000 characters)." - added
Input schema / properties / note / maxLengthAdded value: +4000 - added
Input schema / properties / note / minLengthAdded value: +1 - added
Input schema / properties / person / descriptionAdded 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."
- Changed
create_profile18 fields changed- added
Input schema / properties / attachment_style / descriptionAdded value: +"Optional. Personal data: never used in business context." - added
Input schema / properties / attachment_style / maxLengthAdded value: +40 - added
Input schema / properties / date_of_birth / descriptionAdded value: +"Optional YYYY-MM-DD. Personal data: never used in business context." - added
Input schema / properties / date_of_birth / formatAdded value: +"date" - added
Input schema / properties / department / descriptionAdded value: +"Optional team or department, used by score_team, prep_meeting and suggest_lead." - added
Input schema / properties / department / maxLengthAdded value: +120 - added
Input schema / properties / disc_type / descriptionAdded value: +"Optional DISC style: D, I, S, C or a blend such as DI." - added
Input schema / properties / email / descriptionAdded value: +"Optional email; used to match results if they later take the assessment." - added
Input schema / properties / email / formatAdded value: +"email" - added
Input schema / properties / enneagram_type / descriptionAdded value: +"Optional Enneagram type 1-9, with wing if known, e.g. 3w2." - added
Input schema / properties / eq_score / descriptionAdded value: +"Optional emotional-intelligence score 0-100." - added
Input schema / properties / eq_score / maximumAdded value: +100 - added
Input schema / properties / eq_score / minimumAdded value: +0 - added
Input schema / properties / mbti_type / descriptionAdded value: +"Optional four-letter MBTI type, e.g. INTJ." - added
Input schema / properties / mbti_type / maxLengthAdded value: +4 - added
Input schema / properties / name / descriptionAdded value: +"Full name (required)." - added
Input schema / properties / name / maxLengthAdded value: +120 - added
Input schema / properties / name / minLengthAdded value: +1
- Changed
generate_narrative12 fields changed- added
Input schema / properties / audience / defaultAdded value: +"manager" - changed
Input schema / properties / audience / descriptionPrevious 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." - added
Input schema / properties / compare_with / descriptionAdded 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." - added
Input schema / properties / context / defaultAdded value: +"business" - added
Input schema / properties / context / descriptionAdded 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." - added
Input schema / properties / context / enumAdded value: +[ + "business", + "romantic", + "friendship", + "coparenting" +] - added
Input schema / properties / focus / descriptionAdded value: +"Optional topic to emphasize, e.g. 'giving feedback'." - added
Input schema / properties / focus / maxLengthAdded value: +200 - added
Input schema / properties / length / defaultAdded value: +"standard" - added
Input schema / properties / length / descriptionAdded value: +"Approximate length of the narrative." - added
Input schema / properties / length / enumAdded value: +[ + "short", + "standard", + "deep" +] - added
Input schema / properties / person / descriptionAdded 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."
- Changed
get_my_profile2 fields changed- added
Input schema / properties / context / defaultAdded value: +"business" - changed
Input schema / properties / context / descriptionPrevious 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."
- Changed
get_profile6 fields changed- added
Input schema / properties / context / defaultAdded value: +"business" - changed
Input schema / properties / context / descriptionPrevious 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." - added
Input schema / properties / email / descriptionAdded value: +"The person's exact email." - added
Input schema / properties / email / formatAdded value: +"email" - added
Input schema / properties / name / descriptionAdded value: +"Full name. Ambiguous names return a list to choose from rather than a guess." - added
Input schema / properties / profile_id / descriptionAdded value: +"Profile id from list_profiles (preferred)."
- Changed
invite_person7 fields changed- added
Input schema / properties / email / descriptionAdded value: +"Invitee's email, when they are not saved yet." - added
Input schema / properties / email / formatAdded value: +"email" - added
Input schema / properties / name / descriptionAdded value: +"Invitee's name, shown in the invite." - added
Input schema / properties / name / maxLengthAdded value: +120 - added
Input schema / properties / person / descriptionAdded 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." - added
Input schema / properties / send_email / defaultAdded value: +true - added
Input schema / properties / send_email / descriptionAdded value: +"true: EQIQs emails the link. false: only return the link."
- Changed
list_invites8 fields changed- added
Input schema / properties / limit / defaultAdded value: +20 - added
Input schema / properties / limit / descriptionAdded value: +"Maximum rows to return (1-50, default 20)." - added
Input schema / properties / limit / maximumAdded value: +50 - added
Input schema / properties / limit / minimumAdded value: +1 - changed
Input schema / properties / limit / typePrevious value: -"number"New value: +"integer" - added
Input schema / properties / status / defaultAdded value: +"all" - added
Input schema / properties / status / descriptionAdded value: +"Filter by status." - added
Input schema / properties / status / enumAdded value: +[ + "all", + "pending", + "clicked", + "started", + "completed" +]
- Changed
list_notes6 fields changed- added
Input schema / properties / limit / defaultAdded value: +20 - added
Input schema / properties / limit / descriptionAdded value: +"Maximum rows to return (1-100, default 20)." - added
Input schema / properties / limit / maximumAdded value: +100 - added
Input schema / properties / limit / minimumAdded value: +1 - changed
Input schema / properties / limit / typePrevious value: -"number"New value: +"integer" - added
Input schema / properties / person / descriptionAdded 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."
- Changed
list_profiles9 fields changed- added
Input schema / properties / context / defaultAdded value: +"business" - changed
Input schema / properties / context / descriptionPrevious 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." - added
Input schema / properties / limit / defaultAdded value: +25 - added
Input schema / properties / limit / descriptionAdded value: +"Maximum rows to return (1-100, default 25)." - added
Input schema / properties / limit / maximumAdded value: +100 - added
Input schema / properties / limit / minimumAdded value: +1 - changed
Input schema / properties / limit / typePrevious value: -"number"New value: +"integer" - added
Input schema / properties / search / descriptionAdded value: +"Optional case-insensitive filter on name or email." - added
Input schema / properties / search / maxLengthAdded value: +100
- Changed
list_relationships7 fields changed- added
Input schema / properties / context / descriptionAdded value: +"Optional filter: only pairings scored in this context." - added
Input schema / properties / context / enumAdded value: +[ + "business", + "romantic", + "friendship", + "coparenting" +] - added
Input schema / properties / limit / defaultAdded value: +25 - added
Input schema / properties / limit / descriptionAdded value: +"Maximum rows to return (1-100, default 25)." - added
Input schema / properties / limit / maximumAdded value: +100 - added
Input schema / properties / limit / minimumAdded value: +1 - changed
Input schema / properties / limit / typePrevious value: -"number"New value: +"integer"
- Changed
prep_meeting7 fields changed- added
Input schema / properties / department / descriptionAdded 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." - added
Input schema / properties / department / maxLengthAdded value: +100 - added
Input schema / properties / goal / descriptionAdded value: +"Optional meeting goal, e.g. 'agree the Q4 roadmap', used to tailor the advice." - added
Input schema / properties / goal / maxLengthAdded value: +300 - added
Input schema / properties / members / descriptionAdded value: +"Profile ids or full names of attendees (1-12). Omit when using department." - added
Input schema / properties / members / maxItemsAdded value: +12 - added
Input schema / properties / members / minItemsAdded value: +1
- Changed
score_compatibility5 fields changed- added
Input schema / properties / context / defaultAdded value: +"business" - added
Input schema / properties / context / descriptionAdded 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." - added
Input schema / properties / context / enumAdded value: +[ + "business", + "romantic", + "friendship", + "coparenting" +] - added
Input schema / properties / person_a / descriptionAdded 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." - added
Input schema / properties / person_b / descriptionAdded 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."
- Changed
score_team9 fields changed- added
Input schema / properties / context / defaultAdded value: +"business" - added
Input schema / properties / context / descriptionAdded 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." - changed
Input schema / properties / department / descriptionPrevious 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." - added
Input schema / properties / department / maxLengthAdded value: +100 - added
Input schema / properties / label / descriptionAdded value: +"Optional group name echoed in the summary." - added
Input schema / properties / label / maxLengthAdded value: +80 - changed
Input schema / properties / members / descriptionPrevious 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." - added
Input schema / properties / members / maxItemsAdded value: +12 - added
Input schema / properties / members / minItemsAdded value: +2
- Changed
start_assessment1 field changed- added
Input schema / properties / framework / descriptionAdded value: +"Framework key, e.g. 'mbti', 'disc', 'enneagram', 'big_five'. Omit to list remaining frameworks."
- Changed
submit_assessment3 fields changed- added
Input schema / properties / answers / additionalPropertiesAdded value: +{ + "enum": [ + "A", + "B" + ], + "type": "string" +} - added
Input schema / properties / answers / descriptionAdded value: +"Map of question id to the user's answer, 'A' or 'B', for every question returned." - added
Input schema / properties / framework / descriptionAdded value: +"The same framework key passed to start_assessment."
- Changed
suggest_lead9 fields changed- added
Input schema / properties / department / descriptionAdded 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." - added
Input schema / properties / department / maxLengthAdded value: +100 - added
Input schema / properties / kind / defaultAdded value: +"execution" - added
Input schema / properties / kind / descriptionAdded value: +"Kind of leadership the work needs." - added
Input schema / properties / members / descriptionAdded value: +"Profile ids or full names of the people in the group (2-12). Omit when using department." - added
Input schema / properties / members / maxItemsAdded value: +12 - added
Input schema / properties / members / minItemsAdded value: +2 - added
Input schema / properties / project / descriptionAdded value: +"Optional project description echoed in the ranking." - added
Input schema / properties / project / maxLengthAdded value: +300
6 tool updates
- Added
invite_person - Added
list_invites - Added
prep_meeting - Added
start_assessment - Added
submit_assessment - Added
suggest_lead
2 tool updates
- Added
add_note - Added
list_notes
1 tool update
- Added
score_team
4 tool updates
- Changed
generate_narrative2 fields changed- added
Input schema / properties / audience / descriptionAdded value: +"Who the narrative is for. Hiring or candidate-screening audiences are intentionally not supported." - added
Input schema / properties / audience / enumAdded value: +[ + "manager", + "self", + "partner" +]
- Changed
get_my_profile1 field changed- added
Input schema / properties / contextAdded value: +{ + "description": "Relationship context. Business (default) withholds personal-life signals: love language, attachment style, date of birth.", + "enum": [ + "business", + "romantic", + "friendship", + "coparenting" + ], + "type": "string" +}
- Changed
get_profile1 field changed- added
Input schema / properties / contextAdded value: +{ + "description": "Relationship context. Business (default) withholds personal-life signals: love language, attachment style, date of birth.", + "enum": [ + "business", + "romantic", + "friendship", + "coparenting" + ], + "type": "string" +}
- Changed
list_profiles1 field changed- added
Input schema / properties / contextAdded value: +{ + "description": "Relationship context. Business (default) withholds personal-life signals: love language, attachment style, date of birth.", + "enum": [ + "business", + "romantic", + "friendship", + "coparenting" + ], + "type": "string" +}
7 tool updates
- First observed
create_profile - First observed
generate_narrative - First observed
get_my_profile - First observed
get_profile - First observed
list_profiles - First observed
list_relationships - First observed
score_compatibility
Related MCP Connectors
21-framework people intelligence and compatibility scoring for any MCP client.
Access family personality profiles, relationship reports, and relational patterns via AI.
A professional resilience and future-orientation assessment for leaders, executives, and high-perfor
Behavioral intelligence for client-facing professionals. Know who you're walking into.
Related MCP Servers
AlicenseAqualityAmaintenanceBrings 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.1612 npm1MIT- FlicenseNot gradedqualityDmaintenanceProvides comprehensive psychological intelligence capabilities including persona analysis, attachment theory assessment, relationship compatibility evaluation, and autonomous workflow strategies through a complete graph database integration.-
- AlicenseNot gradedqualityNot gradedmaintenanceAn 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
- AlicenseNot gradedqualityDmaintenanceEnables AI models to administer personality tests, score responses, and provide personality type assessments, with optional integration with Ollama for personalized AI interactions.1ISC
Glama MCP Gateway
Add one secure layer between your agents and this server.