Skip to main content
Glama

@eqiqs/mcp-server

MCP server launcher for EQIQs — bring Enneagram, MBTI, Big Five and 18 more frameworks into Claude, ChatGPT and any other Model Context Protocol client.

Clients with remote MCP support connect directly:

https://adgmsnwjynqkhawhioil.supabase.co/functions/v1/mcp

Sign-in uses OAuth 2.1 — every tool call is scoped to your own EQIQs data.

Related MCP server: MBTI MCP Server

Stdio bridge

For clients that only speak stdio:

{
  "mcpServers": {
    "eqiqs": {
      "command": "npx",
      "args": ["-y", "@eqiqs/mcp-server"]
    }
  }
}

Environment

Variable

Purpose

EQIQS_MCP_URL

Override the MCP endpoint

EQIQS_MCP_TOKEN

Bearer token for clients that cannot complete OAuth

Tools

  • get_my_profile — your own 21-framework profile

  • list_profiles / get_profile — people in your workspace

  • create_profile — add someone new

  • list_relationships — saved pairings

  • score_compatibility — compare two people in a business, romantic, friendship or co-parenting context

Output is decision-support only and must never be the sole basis for hiring, promotion or termination decisions.

License

MIT

Available Tools

16 tools
add_noteAdd a noteAInspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
noteYesNote text (up to 4,000 characters).
personYesWho the note is about. Accepts a profile id, an exact email, or a full name. If a name matches more than one person the tool asks which one instead of guessing.

TDQS

A4/5.0
Behavior4/5

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

With no useful annotation hints (all four hints are false/absent), the description carries the behavioral burden and does disclose meaningful traits: the note is private, it appears on the person's profile, and it 'Costs 1 unit.' It doesn't discuss reversibility or error behavior, but it covers the main side effects an agent needs.

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

Conciseness5/5

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

Three short sentences, each earning its place: action/outcome, use-case guidance, and cost. It is front-loaded with the core purpose and has no filler.

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

Completeness4/5

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

For a low-complexity two-parameter tool, the description covers purpose, when to use it, outcome, and cost. It lacks an explicit statement about confirmation/return value, but there is no output schema and the missing detail is minor.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already fully documents both parameters. The description adds no parameter-specific detail beyond 'on one person,' which is already reflected in the schema's 'Who the note is about.' Baseline 3 is appropriate.

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

Purpose4/5

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

The description names a specific action ('Save'), a specific resource ('a private note or check-in on one person'), and the key side effect ('appears on their EQIQs profile'). It is clear enough that an agent can separate it from list_notes and the other sibling tools, though it never explicitly names a sibling distinction.

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

Usage Guidelines4/5

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

It explicitly tells when to use the tool: 'after 1:1s or when the user asks to remember something about someone.' It does not provide exclusions or alternative tool names, so it falls just short of full routing guidance.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull name (required).
emailNoOptional email; used to match results if they later take the assessment.
eq_scoreNoOptional emotional-intelligence score 0-100.
disc_typeNoOptional DISC style: D, I, S, C or a blend such as DI.
mbti_typeNoOptional four-letter MBTI type, e.g. INTJ.
departmentNoOptional team or department, used by score_team, prep_meeting and suggest_lead.
date_of_birthNoOptional YYYY-MM-DD. Personal data: never used in business context.
enneagram_typeNoOptional Enneagram type 1-9, with wing if known, e.g. 3w2.
attachment_styleNoOptional. Personal data: never used in business context.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations only signal that this is not read-only, not idempotent, and not destructive. The description goes further by disclosing the return value ('Returns the new profile id') and an operational cost ('Costs 1 unit'). It does not cover reversibility or permissions, but provides useful behavioral context beyond the annotations.

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

Conciseness5/5

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

Three sentences carry the main action, the alternative, the return value, and the cost. There is no filler, and the most important decision-relevant information is front-loaded.

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

Completeness5/5

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

For a create tool with a well-described 9-parameter schema, the description supplies the missing operational details: the returned profile id and the per-call cost. It also resolves the main confusion with invite_person. An agent has enough to correctly select and invoke this tool.

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

Parameters3/5

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

Schema description coverage is 100%, and each parameter already has a meaningful description. The description only adds a general use-case note about pre-known traits like MBTI, which is helpful context but not new parameter-level semantics. Baseline 3 is appropriate.

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

Purpose5/5

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

The description states a specific action and resource: 'Add a new person to the user's workspace.' It also explicitly distinguishes itself from invite_person, naming the main sibling with a different purpose. The title 'Add a person' reinforces the same clear intent.

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

Usage Guidelines5/5

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

The description gives an explicit alternative and the condition for using it: 'Use invite_person instead when the person should take the assessment themselves.' This tells an agent exactly when not to use create_profile, which is the key routing decision among the sibling tools.

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

generate_narrativeWrite a coaching narrativeA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
focusNoOptional topic to emphasize, e.g. 'giving feedback'.
lengthNoApproximate length of the narrative.standard
personYesWho the narrative is about. Accepts a profile id, an exact email, or a full name. If a name matches more than one person the tool asks which one instead of guessing.
contextNoRelationship context that sets framework weighting. 'business' (default) is work-safe and withholds personal-life signals (love language, attachment style, date of birth); the other contexts include them.business
audienceNoWho will read it. Hiring or candidate-screening audiences are intentionally not supported.manager
compare_withNoOptional second person for a pair narrative. Accepts a profile id, an exact email, or a full name. If a name matches more than one person the tool asks which one instead of guessing.

TDQS

A4.3/5.0
Behavior4/5

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

The annotations already signal read-only and non-destructive behavior. The description adds useful behavioral context beyond the annotations: output is plain-language, synthesized from all frameworks, business context stays on working behavior only, and there are speed and cost tradeoffs. It does not contradict the annotations or claim any mutation.

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

Conciseness5/5

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

The description is three tight sentences: purpose is front-loaded, the pair mode is noted, and the cost/speed caveats are summarized without extra prose. Every sentence contributes useful information and there is no redundant repetition of title or schema details.

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

Completeness5/5

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

Given the tool's complexity, the description is complete enough for an agent to select and invoke it: it names the output form, identifies the required person input, explains the optional compare_with behavior, and gives the business-context restriction plus cost/speed tradeoff. There is no output schema, but the expected result is clearly stated as a plain-language narrative, so a richer return contract is not essential.

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

Parameters3/5

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

The input schema already describes all 6 parameters, so schema description coverage is 100%. The description does not add per-parameter meaning beyond the schema; it only explains the pair behavior via compare_with, which is already stated in the parameter description. Baseline 3 is appropriate.

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

Purpose5/5

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

The description states a specific action ('write a plain-language coaching narrative'), a clear resource scope ('for one person, or for a pair when compare_with is given'), and a distinctive method ('synthesized from all 21 frameworks'). This separates it from sibling tools like score_compatibility or list_profiles, which do different things.

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

Usage Guidelines4/5

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

It clearly conveys when to use the tool: when a coaching narrative is needed for an individual or a pair, with compare_with enabling pair mode. The warning that it is 'Slower than other tools' and 'Costs 5 units' adds practical selection context, though it does not explicitly name alternative tools or state strict when-not-to-use conditions.

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

get_my_profileGet my profileA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNoRelationship context that sets framework weighting. 'business' (default) is work-safe and withholds personal-life signals (love language, attachment style, date of birth); the other contexts include them.business

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds that the call is 'Read-only' and 'costs 1 unit', which is useful behavioral context beyond the annotations. It also discloses that the returned data is scoped to the signed-in user, clarifying side-effect-free behavior.

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

Conciseness5/5

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

The description is two sentences, front-loads the core purpose, and every sentence adds value: what is returned, when to use it, and cost/safety. No filler or redundant restatement of the title.

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

Completeness4/5

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

For a one-optional-parameter read tool with no output schema, the description covers the return contents (profiles, labels, missing frameworks), usage trigger, read-only safety, and cost. It does not describe the context parameter in the tool description, but the schema fully covers that, so the definition is complete enough for correct invocation.

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

Parameters3/5

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

Schema coverage is 100%: the only parameter, 'context', is already fully documented in the schema with its enum values, default, and behavioral impact on which personal-life signals are withheld. The tool description adds no parameter-level meaning beyond that, so the baseline of 3 applies.

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

Purpose5/5

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

The description uses a specific verb ('Return') and clearly scopes the resource to the signed-in user's own profile, distinguishing it from siblings like get_profile and list_profiles. It also enumerates the contents (21-framework battery, plain-language labels, missing frameworks), so an agent can tell exactly what this tool does.

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

Usage Guidelines4/5

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

The description explicitly states when to use the tool ('Use when the user asks about themselves') with concrete examples. It does not explicitly name sibling alternatives or say when not to use them, but the context is sufficient for an agent to route correctly.

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

get_profileGet a person's profileA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFull name. Ambiguous names return a list to choose from rather than a guess.
emailNoThe person's exact email.
contextNoRelationship context that sets framework weighting. 'business' (default) is work-safe and withholds personal-life signals (love language, attachment style, date of birth); the other contexts include them.business
profile_idNoProfile id from list_profiles (preferred).

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so no contradiction exists. The description adds useful behavioral context beyond annotations, notably 'costs 1 unit' and the exact shape of the returned profile data. It does not elaborate on error behavior, but that is not required at this level.

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

Conciseness5/5

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

The description is two compact sentences with high information density. Output contents, identifier constraint, read-only nature, and cost are all front-loaded without wasted words.

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

Completeness5/5

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

With no output schema, the description covers the return format clearly. The schema covers parameter semantics, especially the context enum and its privacy-related behavior, and annotations cover the safety profile. Nothing essential for correct invocation is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds meaningful constraint not expressed in the schema: exactly one of profile_id, email, or name must be provided. This is valuable because all parameters are optional in the schema and could otherwise be misused.

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

Purpose5/5

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

The description uses a specific verb ('Return') and a specific resource ('the full 21-framework read for one saved person'), and names the output contents: labels, strengths, and working-style notes. This clearly distinguishes it from sibling tools like list_profiles and get_my_profile.

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

Usage Guidelines4/5

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

The description gives clear usage guidance: 'Provide exactly one of profile_id, email or name.' It also signals the tool is for one saved person, implying it is not for listing profiles or retrieving the caller's own profile, though it does not explicitly name alternatives or exclusions.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoInvitee's name, shown in the invite.
emailNoInvitee's email, when they are not saved yet.
personNoExisting saved person to invite (optional if email is given). Accepts a profile id, an exact email, or a full name. If a name matches more than one person the tool asks which one instead of guessing.
send_emailNotrue: EQIQs emails the link. false: only return the link.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false), the description adds key behavioral details: consent is established upon completion of the assessment, rate limit and cost, and disambiguation behavior when a name matches multiple people. This substantially exceeds the annotation-only information.

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

Conciseness5/5

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

The description is three sentences, leading with the primary purpose and then relevant constraints. Every sentence contributes new information—consent, email option, rate limit, cost—with no redundant phrasing.

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

Completeness5/5

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

For a tool with no output schema, the description adequately explains the return behavior: the link is returned when send_email is false. It also covers the main usage conditions and limitations. The description is sufficiently complete for an agent to select and invoke the tool correctly.

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

Parameters4/5

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

The input schema already has 100% coverage with descriptive fields. The tool description adds meaning beyond the schema, particularly for the 'person' parameter (it asks which one if multiple matches) and for 'email' (no self-invites or opted-out addresses). With full schema coverage, a baseline of 3 is used, and the extra context justifies a 4.

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

Purpose5/5

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

The description states a specific action ('Create a private invite link') with a clear resource (someone to take the EQIQs assessment) and outcome (compare with the user). It is easily distinguished from siblings like list_invites, which lists invites rather than creating them.

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

Usage Guidelines4/5

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

It provides conditional guidance such as whether the link is emailed or returned, and notes constraints (10 invites/hour, no self-invites, no opted-out addresses, costs 1 unit). It doesn't explicitly name alternatives, but no sibling tool performs the same function, so the context is sufficient.

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

list_invitesList invitesA
Read-onlyIdempotent
Inspect

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

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

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds value beyond annotations by disclosing the cost ('costs 1 unit') and scoping the operation to invites 'the user has sent,' which is useful behavioral context.

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

Conciseness5/5

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

A single sentence conveys purpose, scope, output, and cost with no filler. The most important information is front-loaded and every clause earns its place.

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

Completeness4/5

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

For a simple read-only list tool with fully documented parameters and safety annotations, the description is nearly complete. It covers purpose, scope, status values, and cost; the only minor gap is that no output schema exists and the return structure is not described, but the status list provides enough context.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents limit and status fully. The description mentions statuses but adds no new parameter-level meaning beyond what the schema provides, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description names a specific verb ('List'), a clear resource ('comparison invites the user has sent'), and the key output dimension (status). It is easily distinguished from siblings like invite_person, which creates invites, and list_relationships, which covers a different resource.

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

Usage Guidelines3/5

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

The description implies usage: call this to view invites the user has sent and their statuses. It does not explicitly state when to prefer this over alternatives or mention exclusions, so the guidance is present but not fully articulated.

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

list_notesList notesA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return (1-100, default 20).
personYesWhose notes to read. Accepts a profile id, an exact email, or a full name. If a name matches more than one person the tool asks which one instead of guessing.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds useful behavioral details: 'Read-only; costs 1 unit' and 'newest first' ordering. It doesn't contradict annotations and provides additional context beyond them.

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

Conciseness5/5

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

Two sentences with no filler. The purpose and usage are front-loaded, and the read-only/cost note is appended cleanly. Every word earns its place.

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

Completeness4/5

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

Given the simple nature of the tool, full schema coverage, and comprehensive annotations, the description is nearly complete. It lacks an explicit mention of return format, but since there is no output schema, a hint would be nice; however, the purpose and usage are clear enough for an agent to call it correctly without ambiguity.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters (person and limit) are fully documented in the schema. The description itself does not add further meaning to the parameters. Baseline 3 is appropriate since the schema carries the burden, and the description doesn't need to repeat it.

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

Purpose5/5

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

The description clearly states the verb 'Read', the resource 'user's saved notes and check-ins', the scope 'on one person', and the ordering 'newest first'. This distinguishes it from sibling tools like list_invites and list_relationships, which have different scopes.

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

Usage Guidelines4/5

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

The description gives explicit usage context: 'Use before a 1:1 or with prep_meeting.' It doesn't explicitly mention alternatives or when not to use it, but the usage scenario is clear and actionable. The context is sufficient for an agent to decide when to invoke it.

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

list_profilesList peopleA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return (1-100, default 25).
searchNoOptional case-insensitive filter on name or email.
contextNoRelationship context that sets framework weighting. 'business' (default) is work-safe and withholds personal-life signals (love language, attachment style, date of birth); the other contexts include them.business

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds meaningful context beyond annotations: it is scoped to the signed-in user's workspace and costs 1 unit. This gives the agent useful operational expectations without contradicting the annotations.

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

Conciseness5/5

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

Two tight sentences with no filler. The first sentence states scope and returns, and the second gives usage direction plus read-only/cost information. Every clause earns its place.

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

Completeness4/5

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

For a read-only list tool with three optional, well-documented parameters, the description gives enough context: what is returned, when to use it, and cost. There is no output schema, but the parenthetical field list covers the essential return shape. It could mention pagination or sorting, but the limit parameter largely covers pagination.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters (limit, search, context) are already fully documented in the schema. The description does not need to restate them, and it does not add significant parameter-level meaning beyond what the schema provides.

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

Purpose5/5

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

States the specific verb 'List' and resource 'people saved in the signed-in user's EQIQs workspace', plus the key output fields. This makes the tool clearly distinguishable from sibling tools like get_profile, score_compatibility, and score_team.

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

Usage Guidelines4/5

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

Explicitly tells the agent when to use this tool: before calling get_profile, score_compatibility, or score_team. It gives clear context but does not mention when to prefer sibling list tools such as list_invites or list_relationships, so it stops short of a full when-not/alternatives treatment.

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

list_relationshipsList saved pairingsA
Read-onlyIdempotent
Inspect

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

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

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description's 'Read-only' line adds no new safety information. However, it adds meaningful context beyond annotations with 'costs 1 unit' (a rate/cost disclosure) and clarifies the output shape ('score and context'), which is not present in annotations.

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

Conciseness5/5

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

Three sentences: the first delivers the purpose, the second gives the primary use case, and the third provides safety/cost. Every sentence contributes new information, with no filler or repetition of schema details. The key distinction from siblings is front-loaded.

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

Completeness4/5

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

For a simple read-only list tool with 0 required params and complete schema descriptions, the description covers the essential return data (score + context) and cost. It does not mention the optional context filter, but that is already fully documented in the schema. The tool's behavior when no saved pairings exist is not stated, but this is a minor gap.

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

Parameters3/5

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

Schema coverage is 100%, and the schema already includes detailed descriptions for both the limit and context parameters, including the default, range, and enum values. The description does not add parameter-specific semantics beyond what the schema provides, so the baseline of 3 applies.

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

Purpose5/5

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

The description states a specific verb ('List'), a clear resource ('compatibility pairings the user has already saved'), and specifies the returned data ('each pair's score and the context it was scored in'). It also differentiates from sibling tools like score_compatibility by framing it as a way to 'recall earlier comparisons without re-scoring'.

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

Usage Guidelines4/5

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

The phrase 'Use to recall earlier comparisons without re-scoring' provides clear usage context and implies the alternative (scoring new comparisons). It does not explicitly name the sibling tool or state when not to use it, but the intent is unambiguous enough for an agent to select it correctly.

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

prep_meetingPrepare for a meetingA
Read-onlyIdempotent
Inspect

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

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

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already mark the tool as read-only, idempotent, and non-destructive; the description adds a concrete cost ('costs 2 units') and reinforces the safe read-only nature. It does not mention refusal behavior for ambiguous departments, but that is documented in the schema, so the description adds meaningful context beyond annotations.

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

Conciseness5/5

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

Two sentences, front-loaded with the core action and output, followed by input modes and cost. Every sentence earns its place and there is no filler or unnecessary repetition of schema details.

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

Completeness5/5

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

For a 3-parameter tool with no required parameters, full schema coverage, and strong annotations, the description covers the output contents, attendee range, both input modes, and cost. There is no output schema, but the description sufficiently describes what the returned brief contains.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description's 'Name attendees or pass a department' restates the members/department alternative already documented in the schema, and it adds no new detail about the goal parameter or value formats.

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

Purpose4/5

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

States a specific verb ('Build') and resource ('meeting prep brief'), and enumerates the brief's contents: how to communicate with and persuade each person, and which pairings need care. It does not explicitly differentiate from sibling tools like score_team or generate_narrative, so it stops short of a 5.

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

Usage Guidelines3/5

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

The description implies the tool is for preparing a meeting with 1-12 attendees and gives two input modes: 'Name attendees or pass a department.' It does not state when to prefer this tool over alternatives such as score_compatibility or suggest_lead, nor give exclusion conditions.

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

score_compatibilityScore two peopleA
Read-onlyIdempotent
Inspect

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

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

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds value beyond annotations by stating 'Read-only; costs 1 unit' and emphasizing the decision-support-only nature, which are useful operational constraints.

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

Conciseness5/5

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

Four short sentences, each adding distinct value: outcome, sibling differentiation, usage caveat, and cost/read-only status. It is front-loaded with the core purpose and has no filler.

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

Completeness5/5

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

For a tool with no output schema, the description covers the key return elements: visual score card, sub-scores, explanation, and tips. It also handles context selection via the schema, and the sibling guidance covers alternative tools. Nothing an agent needs to call it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents context, person_a, and person_b. The description adds little parameter-specific meaning, but it does list sub-scores that help infer what the tool evaluates. This matches the baseline for fully-covered schemas.

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

Purpose5/5

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

The description states a specific action ('Score how two people work or relate together'), the output (0-100 score card, sub-scores, rationale, tips), and distinguishes itself from score_team. This gives an agent a clear picture of what the tool does without opening the schema.

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

Usage Guidelines5/5

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

Explicitly says 'Use for one pair; use score_team for three or more,' naming the alternative and the exact selection condition. It also adds a decision-support caveat ('never the sole basis for hiring, promotion or termination'), which helps an agent judge appropriate use.

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

score_teamScore a teamA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
labelNoOptional group name echoed in the summary.
contextNoRelationship context that sets framework weighting. 'business' (default) is work-safe and withholds personal-life signals (love language, attachment style, date of birth); the other contexts include them.business
membersNoProfile ids or full names of the people in the group (2-12). Omit when using department.
departmentNoUse everyone tagged with this department instead of naming members. Exact match first; refuses and asks for names if more than 12 people match or the name spans several departments.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint, idempotentHint, destructiveHint=false), the description discloses that the call costs 2 units, is decision-support only, and rolls up every pairing rather than returning per-pair details. It also mentions the 'visual card' output, which is a behavioral trait not inferable from the schema or annotations.

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

Conciseness5/5

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

The description is well-structured: it front-loads the core purpose, then lists the output contents, then gives usage guidance and constraints. Every sentence contributes value, and the length is proportional to the tool's complexity.

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

Completeness5/5

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

With no output schema, the description takes responsibility for explaining return values, and it enumerates them thoroughly: cohesion score, weakest dimension, best-connected person, most isolated person, watch/anchor pairings, and role mix. It also covers cost, read-only behavior, and the alternative tool, making it complete for an agent to invoke correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so all parameters are already documented with their meanings. The tool-level description does not add meaningful parameter semantics beyond what the schema provides, but it also does not need to compensate for gaps.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Score a whole group in one call,' and clearly differentiates itself from score_compatibility by aggregating all pairings into one team-level result. It also lists the concrete outputs (cohesion score, weakest dimension, best-connected person, etc.), leaving no ambiguity about what the tool does.

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

Usage Guidelines5/5

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

It explicitly states when to use this tool: 'Use instead of looping score_compatibility for 3+ people.' This directly names the alternative and the threshold, making the selection decision unambiguous. The 'Decision-support only' qualifier further frames appropriate usage.

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

start_assessmentStart an assessment in chatA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
frameworkNoFramework key, e.g. 'mbti', 'disc', 'enneagram', 'big_five'. Omit to list remaining frameworks.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare read-only and non-destructive behavior, and the description reinforces that with "Read-only; costs 1 unit." It also reveals meaningful behavioral expectations: ask questions one at a time, word for word, accept only A or B, and require explicit consent for personal frameworks. This goes well beyond what annotations alone provide.

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

Conciseness5/5

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

The description is compact, front-loaded with the primary action, and every sentence adds a distinct piece of needed information. It covers the core behavior, the no-framework variant, a consent prerequisite, and the cost/safety profile without redundant filler.

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

Completeness5/5

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

For a tool with one optional parameter, clear annotations, and no output schema, the description supplies everything needed to invoke it correctly: question delivery style, answer constraints, the omitted-parameter behavior, consent requirements, and cost. No critical operational gap remains.

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

Parameters4/5

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

The input schema already fully documents the optional framework parameter with examples and the omit behavior. The description adds semantic value by naming personal framework examples and reaffirming the no-framework listing behavior, which helps the agent understand the parameter's practical contract. Since schema coverage is 100%, the description's additional examples and constraints merit a score above baseline.

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

Purpose5/5

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

The description states a specific verb and resource: "Get the questions for one EQIQs framework" so the assessment can be taken in chat. It also distinguishes its no-framework behavior (listing remaining frameworks) from the act of submitting answers, which is clearly a different sibling tool. The purpose is unambiguous and actionable.

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

Usage Guidelines4/5

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

The description gives explicit calling context: omit the framework to list incomplete assessments, and obtain explicit consent for personal frameworks such as attachment or love language. It does not explicitly name alternatives or say when not to use the tool, but the provided guidance is clear and useful for correct invocation.

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

submit_assessmentSubmit assessment answersA
Idempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
answersYesMap of question id to the user's answer, 'A' or 'B', for every question returned.
frameworkYesThe same framework key passed to start_assessment.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already cover readOnly=false and idempotentHint=true, but the description adds valuable behavior beyond those: 'Costs 1 unit' (cost), 'overwrites an earlier result for that framework' (side effect), and 'Returns the result in plain language' (output). It also mentions the signed-in user's profile, providing auth context. No contradictions with annotations.

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

Conciseness5/5

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

Two sentences with no filler. The action, workflow link, side effect, output, and cost are each covered in a compact and front-loaded manner. Every word earns its place.

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

Completeness5/5

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

For a two-parameter tool with 100% schema coverage and annotations covering idempotency, the description supplies the remaining context an agent needs: cost, overwrite behavior, output format, and the prerequisite workflow (start_assessment). Nothing critical is missing for correct invocation.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds meaningful context by linking both parameters to start_assessment: the framework is 'the same framework key passed to start_assessment' and answers are 'collected via start_assessment.' This gives agents additional semantic grounding beyond the schema's field descriptions.

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

Purpose5/5

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

The description clearly states a specific verb and resource: 'Score the answers collected via start_assessment with EQIQs' own scoring and save the result to the signed-in user's profile.' It distinguishes itself from siblings by referencing start_assessment and the specific action of submitting assessment answers, making its purpose unambiguous.

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

Usage Guidelines4/5

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

The description explicitly ties usage to start_assessment ('collected via start_assessment'), implying this tool is used after that one. It also notes overwriting earlier results for the same framework, which clarifies when repeated use is appropriate. It does not explicitly list alternative tools or when not to use it, but the workflow context is clear enough.

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

suggest_leadSuggest who should leadA
Read-onlyIdempotent
Inspect

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.

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

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces this with 'Read-only' and 'Decision-support only'. It adds valuable context beyond annotations: the 2-unit cost, the fact that saved results are shown behind rankings, and that thin data is surfaced.

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

Conciseness5/5

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

The description is short, front-loaded with the core action, and every sentence earns its place. It packs the action, output behavior, usage trigger, decision-support caveat, and cost into three compact sentences with no fluff.

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

Completeness4/5

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

With no output schema, the description gives enough about the return content: rankings, saved results, and thin data. Together with a fully described input schema and annotations covering safety, the tool is callable without significant guesswork. A slight gap is that 'thin data' is not defined further, but it does not block correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents kind, members, project, and department. The description lightly re-expresses the 2-12 member limit and the leadership kinds, but it adds little parameter meaning beyond what the schema provides. Baseline 3 is appropriate.

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

Purpose5/5

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

The description opens with a specific verb and object: 'Rank 2-12 people for leading a kind of work'. It also names the four leadership kinds and the output contents, so an agent can clearly identify the tool's function. This clearly differentiates it from siblings like score_team by emphasizing ranking individuals for a leadership role.

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

Usage Guidelines4/5

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

The explicit line 'Use for "who should lead this project?"' gives a clear trigger phrase for when to call this tool. It does not mention alternatives or exclusions, but the use-case phrasing is strong enough for routing in most contexts.

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

Tool Schema Changelog

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

  1. 16 tool updatesv0.1.1
    • Changedadd_note4 fields changed
      • addedInput schema / properties / note / description
        Added value: +"Note text (up to 4,000 characters)."
      • addedInput schema / properties / note / maxLength
        Added value: +4000
      • addedInput schema / properties / note / minLength
        Added value: +1
      • addedInput schema / properties / person / description
        Added value: +"Who the note is about. Accepts a profile id, an exact email, or a full name. If a name matches more than one person the tool asks which one instead of guessing."
    • Changedcreate_profile18 fields changed
      • addedInput schema / properties / attachment_style / description
        Added value: +"Optional. Personal data: never used in business context."
      • addedInput schema / properties / attachment_style / maxLength
        Added value: +40
      • addedInput schema / properties / date_of_birth / description
        Added value: +"Optional YYYY-MM-DD. Personal data: never used in business context."
      • addedInput schema / properties / date_of_birth / format
        Added value: +"date"
      • addedInput schema / properties / department / description
        Added value: +"Optional team or department, used by score_team, prep_meeting and suggest_lead."
      • addedInput schema / properties / department / maxLength
        Added value: +120
      • addedInput schema / properties / disc_type / description
        Added value: +"Optional DISC style: D, I, S, C or a blend such as DI."
      • addedInput schema / properties / email / description
        Added value: +"Optional email; used to match results if they later take the assessment."
      • addedInput schema / properties / email / format
        Added value: +"email"
      • addedInput schema / properties / enneagram_type / description
        Added value: +"Optional Enneagram type 1-9, with wing if known, e.g. 3w2."
      • addedInput schema / properties / eq_score / description
        Added value: +"Optional emotional-intelligence score 0-100."
      • addedInput schema / properties / eq_score / maximum
        Added value: +100
      • addedInput schema / properties / eq_score / minimum
        Added value: +0
      • addedInput schema / properties / mbti_type / description
        Added value: +"Optional four-letter MBTI type, e.g. INTJ."
      • addedInput schema / properties / mbti_type / maxLength
        Added value: +4
      • addedInput schema / properties / name / description
        Added value: +"Full name (required)."
      • addedInput schema / properties / name / maxLength
        Added value: +120
      • addedInput schema / properties / name / minLength
        Added value: +1
    • Changedgenerate_narrative12 fields changed
      • addedInput schema / properties / audience / default
        Added value: +"manager"
      • changedInput schema / properties / audience / description
        Previous value: -"Who the narrative is for. Hiring or candidate-screening audiences are intentionally not supported."New value: +"Who will read it. Hiring or candidate-screening audiences are intentionally not supported."
      • addedInput schema / properties / compare_with / description
        Added value: +"Optional second person for a pair narrative. Accepts a profile id, an exact email, or a full name. If a name matches more than one person the tool asks which one instead of guessing."
      • addedInput schema / properties / context / default
        Added value: +"business"
      • addedInput schema / properties / context / description
        Added value: +"Relationship context that sets framework weighting. 'business' (default) is work-safe and withholds personal-life signals (love language, attachment style, date of birth); the other contexts include them."
      • addedInput schema / properties / context / enum
        Added value: +[
        +  "business",
        +  "romantic",
        +  "friendship",
        +  "coparenting"
        +]
      • addedInput schema / properties / focus / description
        Added value: +"Optional topic to emphasize, e.g. 'giving feedback'."
      • addedInput schema / properties / focus / maxLength
        Added value: +200
      • addedInput schema / properties / length / default
        Added value: +"standard"
      • addedInput schema / properties / length / description
        Added value: +"Approximate length of the narrative."
      • addedInput schema / properties / length / enum
        Added value: +[
        +  "short",
        +  "standard",
        +  "deep"
        +]
      • addedInput schema / properties / person / description
        Added value: +"Who the narrative is about. Accepts a profile id, an exact email, or a full name. If a name matches more than one person the tool asks which one instead of guessing."
    • Changedget_my_profile2 fields changed
      • addedInput schema / properties / context / default
        Added value: +"business"
      • changedInput schema / properties / context / description
        Previous value: -"Relationship context. Business (default) withholds personal-life signals: love language, attachment style, date of birth."New value: +"Relationship context that sets framework weighting. 'business' (default) is work-safe and withholds personal-life signals (love language, attachment style, date of birth); the other contexts include them."
    • Changedget_profile6 fields changed
      • addedInput schema / properties / context / default
        Added value: +"business"
      • changedInput schema / properties / context / description
        Previous value: -"Relationship context. Business (default) withholds personal-life signals: love language, attachment style, date of birth."New value: +"Relationship context that sets framework weighting. 'business' (default) is work-safe and withholds personal-life signals (love language, attachment style, date of birth); the other contexts include them."
      • addedInput schema / properties / email / description
        Added value: +"The person's exact email."
      • addedInput schema / properties / email / format
        Added value: +"email"
      • addedInput schema / properties / name / description
        Added value: +"Full name. Ambiguous names return a list to choose from rather than a guess."
      • addedInput schema / properties / profile_id / description
        Added value: +"Profile id from list_profiles (preferred)."
    • Changedinvite_person7 fields changed
      • addedInput schema / properties / email / description
        Added value: +"Invitee's email, when they are not saved yet."
      • addedInput schema / properties / email / format
        Added value: +"email"
      • addedInput schema / properties / name / description
        Added value: +"Invitee's name, shown in the invite."
      • addedInput schema / properties / name / maxLength
        Added value: +120
      • addedInput schema / properties / person / description
        Added value: +"Existing saved person to invite (optional if email is given). Accepts a profile id, an exact email, or a full name. If a name matches more than one person the tool asks which one instead of guessing."
      • addedInput schema / properties / send_email / default
        Added value: +true
      • addedInput schema / properties / send_email / description
        Added value: +"true: EQIQs emails the link. false: only return the link."
    • Changedlist_invites8 fields changed
      • addedInput schema / properties / limit / default
        Added value: +20
      • addedInput schema / properties / limit / description
        Added value: +"Maximum rows to return (1-50, default 20)."
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / status / default
        Added value: +"all"
      • addedInput schema / properties / status / description
        Added value: +"Filter by status."
      • addedInput schema / properties / status / enum
        Added value: +[
        +  "all",
        +  "pending",
        +  "clicked",
        +  "started",
        +  "completed"
        +]
    • Changedlist_notes6 fields changed
      • addedInput schema / properties / limit / default
        Added value: +20
      • addedInput schema / properties / limit / description
        Added value: +"Maximum rows to return (1-100, default 20)."
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / person / description
        Added value: +"Whose notes to read. Accepts a profile id, an exact email, or a full name. If a name matches more than one person the tool asks which one instead of guessing."
    • Changedlist_profiles9 fields changed
      • addedInput schema / properties / context / default
        Added value: +"business"
      • changedInput schema / properties / context / description
        Previous value: -"Relationship context. Business (default) withholds personal-life signals: love language, attachment style, date of birth."New value: +"Relationship context that sets framework weighting. 'business' (default) is work-safe and withholds personal-life signals (love language, attachment style, date of birth); the other contexts include them."
      • addedInput schema / properties / limit / default
        Added value: +25
      • addedInput schema / properties / limit / description
        Added value: +"Maximum rows to return (1-100, default 25)."
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / search / description
        Added value: +"Optional case-insensitive filter on name or email."
      • addedInput schema / properties / search / maxLength
        Added value: +100
    • Changedlist_relationships7 fields changed
      • addedInput schema / properties / context / description
        Added value: +"Optional filter: only pairings scored in this context."
      • addedInput schema / properties / context / enum
        Added value: +[
        +  "business",
        +  "romantic",
        +  "friendship",
        +  "coparenting"
        +]
      • addedInput schema / properties / limit / default
        Added value: +25
      • addedInput schema / properties / limit / description
        Added value: +"Maximum rows to return (1-100, default 25)."
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedprep_meeting7 fields changed
      • addedInput schema / properties / department / description
        Added value: +"Use everyone tagged with this department instead of naming members. Exact match first; refuses and asks for names if more than 12 people match or the name spans several departments."
      • addedInput schema / properties / department / maxLength
        Added value: +100
      • addedInput schema / properties / goal / description
        Added value: +"Optional meeting goal, e.g. 'agree the Q4 roadmap', used to tailor the advice."
      • addedInput schema / properties / goal / maxLength
        Added value: +300
      • addedInput schema / properties / members / description
        Added value: +"Profile ids or full names of attendees (1-12). Omit when using department."
      • addedInput schema / properties / members / maxItems
        Added value: +12
      • addedInput schema / properties / members / minItems
        Added value: +1
    • Changedscore_compatibility5 fields changed
      • addedInput schema / properties / context / default
        Added value: +"business"
      • addedInput schema / properties / context / description
        Added value: +"Relationship context that sets framework weighting. 'business' (default) is work-safe and withholds personal-life signals (love language, attachment style, date of birth); the other contexts include them."
      • addedInput schema / properties / context / enum
        Added value: +[
        +  "business",
        +  "romantic",
        +  "friendship",
        +  "coparenting"
        +]
      • addedInput schema / properties / person_a / description
        Added value: +"First person. Accepts a profile id, an exact email, or a full name. If a name matches more than one person the tool asks which one instead of guessing."
      • addedInput schema / properties / person_b / description
        Added value: +"Second person. Accepts a profile id, an exact email, or a full name. If a name matches more than one person the tool asks which one instead of guessing."
    • Changedscore_team9 fields changed
      • addedInput schema / properties / context / default
        Added value: +"business"
      • addedInput schema / properties / context / description
        Added value: +"Relationship context that sets framework weighting. 'business' (default) is work-safe and withholds personal-life signals (love language, attachment style, date of birth); the other contexts include them."
      • changedInput schema / properties / department / description
        Previous value: -"Score everyone in this department instead of naming members."New value: +"Use everyone tagged with this department instead of naming members. Exact match first; refuses and asks for names if more than 12 people match or the name spans several departments."
      • addedInput schema / properties / department / maxLength
        Added value: +100
      • addedInput schema / properties / label / description
        Added value: +"Optional group name echoed in the summary."
      • addedInput schema / properties / label / maxLength
        Added value: +80
      • changedInput schema / properties / members / description
        Previous value: -"Profile ids or names (2-12)."New value: +"Profile ids or full names of the people in the group (2-12). Omit when using department."
      • addedInput schema / properties / members / maxItems
        Added value: +12
      • addedInput schema / properties / members / minItems
        Added value: +2
    • Changedstart_assessment1 field changed
      • addedInput schema / properties / framework / description
        Added value: +"Framework key, e.g. 'mbti', 'disc', 'enneagram', 'big_five'. Omit to list remaining frameworks."
    • Changedsubmit_assessment3 fields changed
      • addedInput schema / properties / answers / additionalProperties
        Added value: +{
        +  "enum": [
        +    "A",
        +    "B"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / answers / description
        Added value: +"Map of question id to the user's answer, 'A' or 'B', for every question returned."
      • addedInput schema / properties / framework / description
        Added value: +"The same framework key passed to start_assessment."
    • Changedsuggest_lead9 fields changed
      • addedInput schema / properties / department / description
        Added value: +"Use everyone tagged with this department instead of naming members. Exact match first; refuses and asks for names if more than 12 people match or the name spans several departments."
      • addedInput schema / properties / department / maxLength
        Added value: +100
      • addedInput schema / properties / kind / default
        Added value: +"execution"
      • addedInput schema / properties / kind / description
        Added value: +"Kind of leadership the work needs."
      • addedInput schema / properties / members / description
        Added value: +"Profile ids or full names of the people in the group (2-12). Omit when using department."
      • addedInput schema / properties / members / maxItems
        Added value: +12
      • addedInput schema / properties / members / minItems
        Added value: +2
      • addedInput schema / properties / project / description
        Added value: +"Optional project description echoed in the ranking."
      • addedInput schema / properties / project / maxLength
        Added value: +300
  2. 16 tool updatesv0.1.0
    • First observedadd_note
    • First observedcreate_profile
    • First observedgenerate_narrative
    • First observedget_my_profile
    • First observedget_profile
    • First observedinvite_person
    • First observedlist_invites
    • First observedlist_notes
    • First observedlist_profiles
    • First observedlist_relationships
    • First observedprep_meeting
    • First observedscore_compatibility
    • First observedscore_team
    • First observedstart_assessment
    • First observedsubmit_assessment
    • First observedsuggest_lead

TDQS

A4.2/5.0

Scored across 16 tools

Disambiguation4/5

Most tools target distinct actions (invite, score, note, profile, meeting prep), but get_my_profile vs get_profile vs list_profiles could cause minor confusion. score_compatibility vs score_team are clearly differentiated by group size.

Naming Consistency4/5

Tool names consistently follow verb_noun pattern (list_invites, score_compatibility, add_note, get_profile). Minor deviation: generate_narrative uses a verb but is less parallel with the rest, and prep_meeting/suggest_lead are verb-object but not as uniform.

Tool Count5/5

16 tools is slightly above the ideal range but each tool covers a distinct workflow in a complex domain (assessments, profiles, notes, meetings, team scoring). The count feels justified by the breadth of features.

Completeness4/5

The surface covers core lifecycle: profiles (create/get/list), assessments (start/submit), invites (create/list), notes (add/list), and scoring (pair/team/meeting/leadership). Minor gaps: no update/delete for profiles or notes, and no way to revoke invites, but these are workable.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides comprehensive psychological intelligence capabilities including persona analysis, attachment theory assessment, relationship compatibility evaluation, and autonomous workflow strategies through a complete graph database integration.
    -
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to guide users through MBTI personality tests with two modes (28-question simplified or 48-question cognitive functions), track progress, and provide detailed personality type analysis and results.
    4
    23 npm
    2
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Provides a universal AI personality layer that uses a scientifically-backed Big Five engine to apply consistent character traits and brand voices across MCP-compatible platforms. It allows users to inject custom personality profiles or presets into AI interactions to ensure behavioral consistency.
    7
    15 npm
    76
    MIT