EQIQs: 21-framework personality and compatibility for coaching, communication, and team development.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
Note text (up to 4,000 characters).
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.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
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.
| Argument | Type | Description |
|---|---|---|
| note* | string | Note text (up to 4,000 characters). |
| person* | string | 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. |
{
"type": "object",
"required": [
"person",
"note"
],
"properties": {
"note": {
"type": "string",
"maxLength": 4000,
"minLength": 1,
"description": "Note text (up to 4,000 characters)."
},
"person": {
"type": "string",
"description": "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."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| name* | string | Full name (required). |
| string | Optional email; used to match results if they later take the assessment. | |
| eq_score | number | Optional emotional-intelligence score 0-100. |
| disc_type | string | Optional DISC style: D, I, S, C or a blend such as DI. |
| mbti_type | string | Optional four-letter MBTI type, e.g. INTJ. |
| department | string | Optional team or department, used by score_team, prep_meeting and suggest_lead. |
| date_of_birth | string | Optional YYYY-MM-DD. Personal data: never used in business context. |
| enneagram_type | string | Optional Enneagram type 1-9, with wing if known, e.g. 3w2. |
| attachment_style | string | Optional. Personal data: never used in business context. |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Full name (required)."
},
"email": {
"type": "string",
"format": "email",
"description": "Optional email; used to match results if they later take the assessment."
},
"eq_score": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Optional emotional-intelligence score 0-100."
},
"disc_type": {
"type": "string",
"description": "Optional DISC style: D, I, S, C or a blend such as DI."
},
"mbti_type": {
"type": "string",
"maxLength": 4,
"description": "Optional four-letter MBTI type, e.g. INTJ."
},
"department": {
"type": "string",
"maxLength": 120,
"description": "Optional team or department, used by score_team, prep_meeting and suggest_lead."
},
"date_of_birth": {
"type": "string",
"format": "date",
"description": "Optional YYYY-MM-DD. Personal data: never used in business context."
},
"enneagram_type": {
"type": "string",
"description": "Optional Enneagram type 1-9, with wing if known, e.g. 3w2."
},
"attachment_style": {
"type": "string",
"maxLength": 40,
"description": "Optional. Personal data: never used in business context."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| focus | string | Optional topic to emphasize, e.g. 'giving feedback'. |
| length | string | Approximate length of the narrative. |
| person* | string | 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 | string | 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. |
| audience | string | Who will read it. Hiring or candidate-screening audiences are intentionally not supported. |
| compare_with | string | 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. |
| confirm_cost | boolean | Set true only after the user explicitly approves the five-unit cost. False returns a no-charge confirmation prompt. |
{
"type": "object",
"required": [
"person"
],
"properties": {
"focus": {
"type": "string",
"maxLength": 200,
"description": "Optional topic to emphasize, e.g. 'giving feedback'."
},
"length": {
"enum": [
"short",
"standard",
"deep"
],
"type": "string",
"default": "standard",
"description": "Approximate length of the narrative."
},
"person": {
"type": "string",
"description": "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": {
"enum": [
"business",
"romantic",
"friendship",
"coparenting"
],
"type": "string",
"default": "business",
"description": "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."
},
"audience": {
"enum": [
"manager",
"self",
"partner"
],
"type": "string",
"default": "manager",
"description": "Who will read it. Hiring or candidate-screening audiences are intentionally not supported."
},
"compare_with": {
"type": "string",
"description": "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."
},
"confirm_cost": {
"type": "boolean",
"default": false,
"description": "Set true only after the user explicitly approves the five-unit cost. False returns a no-charge confirmation prompt."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| context | string | 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. |
{
"type": "object",
"properties": {
"context": {
"enum": [
"business",
"romantic",
"friendship",
"coparenting"
],
"type": "string",
"default": "business",
"description": "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."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| name | string | Full name. Ambiguous names return a list to choose from rather than a guess. |
| string | The person's exact email. | |
| context | string | 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. |
| profile_id | string | Profile id from list_profiles (preferred). |
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Full name. Ambiguous names return a list to choose from rather than a guess."
},
"email": {
"type": "string",
"format": "email",
"description": "The person's exact email."
},
"context": {
"enum": [
"business",
"romantic",
"friendship",
"coparenting"
],
"type": "string",
"default": "business",
"description": "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."
},
"profile_id": {
"type": "string",
"description": "Profile id from list_profiles (preferred)."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| name | string | Invitee's name, shown in the invite. |
| string | Invitee's email, when they are not saved yet. | |
| person | string | 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 | boolean | true: EQIQs emails the link. false: only return the link. |
{
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"description": "Invitee's name, shown in the invite."
},
"email": {
"type": "string",
"format": "email",
"description": "Invitee's email, when they are not saved yet."
},
"person": {
"type": "string",
"description": "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": {
"type": "boolean",
"default": true,
"description": "true: EQIQs emails the link. false: only return the link."
}
},
"additionalProperties": false
}List comparison invites the user has sent and each one's status: pending, clicked, started or completed. Read-only; costs 1 unit.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum rows to return (1-50, default 20). |
| status | string | Filter by status. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Maximum rows to return (1-50, default 20)."
},
"status": {
"enum": [
"all",
"pending",
"clicked",
"started",
"completed"
],
"type": "string",
"default": "all",
"description": "Filter by status."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum rows to return (1-100, default 20). |
| person* | string | 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. |
{
"type": "object",
"required": [
"person"
],
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Maximum rows to return (1-100, default 20)."
},
"person": {
"type": "string",
"description": "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."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum rows to return (1-100, default 25). |
| search | string | Optional case-insensitive filter on name or email. |
| context | string | 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. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1,
"description": "Maximum rows to return (1-100, default 25)."
},
"search": {
"type": "string",
"maxLength": 100,
"description": "Optional case-insensitive filter on name or email."
},
"context": {
"enum": [
"business",
"romantic",
"friendship",
"coparenting"
],
"type": "string",
"default": "business",
"description": "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."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum rows to return (1-100, default 25). |
| context | string | Optional filter: only pairings scored in this context. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1,
"description": "Maximum rows to return (1-100, default 25)."
},
"context": {
"enum": [
"business",
"romantic",
"friendship",
"coparenting"
],
"type": "string",
"description": "Optional filter: only pairings scored in this context."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| goal | string | Optional meeting goal, e.g. 'agree the Q4 roadmap', used to tailor the advice. |
| members | array | Profile ids or full names of attendees (1-12). Omit when using department. |
| department | string | 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. |
{
"type": "object",
"properties": {
"goal": {
"type": "string",
"maxLength": 300,
"description": "Optional meeting goal, e.g. 'agree the Q4 roadmap', used to tailor the advice."
},
"members": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 12,
"minItems": 1,
"description": "Profile ids or full names of attendees (1-12). Omit when using department."
},
"department": {
"type": "string",
"maxLength": 100,
"description": "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."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| context | string | 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. |
| person_a* | string | 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* | string | 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. |
{
"type": "object",
"required": [
"person_a",
"person_b"
],
"properties": {
"context": {
"enum": [
"business",
"romantic",
"friendship",
"coparenting"
],
"type": "string",
"default": "business",
"description": "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."
},
"person_a": {
"type": "string",
"description": "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": {
"type": "string",
"description": "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."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| label | string | Optional group name echoed in the summary. |
| context | string | 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. |
| members | array | Profile ids or full names of the people in the group (2-12). Omit when using department. |
| department | string | 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. |
{
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 80,
"description": "Optional group name echoed in the summary."
},
"context": {
"enum": [
"business",
"romantic",
"friendship",
"coparenting"
],
"type": "string",
"default": "business",
"description": "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."
},
"members": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 12,
"minItems": 2,
"description": "Profile ids or full names of the people in the group (2-12). Omit when using department."
},
"department": {
"type": "string",
"maxLength": 100,
"description": "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."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| context | string | |
| framework | string | Framework key. Omit to list remaining frameworks. |
| personal_consent | boolean | True only after explicit user consent to this personal framework. |
{
"type": "object",
"properties": {
"context": {
"enum": [
"business",
"personal"
],
"type": "string"
},
"framework": {
"type": "string",
"description": "Framework key. Omit to list remaining frameworks."
},
"personal_consent": {
"type": "boolean",
"description": "True only after explicit user consent to this personal framework."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| answers* | object | Map of question id to the user's answer, 'A' or 'B', for every question returned. |
| context | string | |
| framework* | string | The same framework key passed to start_assessment. |
| personal_consent | boolean | True only after explicit user consent to save this personal framework. |
{
"type": "object",
"required": [
"framework",
"answers"
],
"properties": {
"answers": {
"type": "object",
"description": "Map of question id to the user's answer, 'A' or 'B', for every question returned.",
"additionalProperties": {
"enum": [
"A",
"B"
],
"type": "string"
}
},
"context": {
"enum": [
"business",
"personal"
],
"type": "string"
},
"framework": {
"type": "string",
"description": "The same framework key passed to start_assessment."
},
"personal_consent": {
"type": "boolean",
"description": "True only after explicit user consent to save this personal framework."
}
},
"additionalProperties": false
}Discuss leadership considerations for 2-12 people and voluntary work (execution, people, innovation or analysis), showing available results and gaps without ranking people. Decision-support only. Read-only; costs 1 unit.
| Argument | Type | Description |
|---|---|---|
| kind | string | Kind of leadership the work needs. |
| members | array | Profile ids or full names of the people in the group (2-12). Omit when using department. |
| project | string | Optional project description echoed in the ranking. |
| department | string | 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. |
{
"type": "object",
"properties": {
"kind": {
"enum": [
"execution",
"people",
"innovation",
"analysis"
],
"type": "string",
"default": "execution",
"description": "Kind of leadership the work needs."
},
"members": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 12,
"minItems": 2,
"description": "Profile ids or full names of the people in the group (2-12). Omit when using department."
},
"project": {
"type": "string",
"maxLength": 300,
"description": "Optional project description echoed in the ranking."
},
"department": {
"type": "string",
"maxLength": 100,
"description": "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."
}
},
"additionalProperties": false
}