Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,534Letters: 13Defects: 1,322counted 2 min ago
teppi

Server definition

Hash
sha256:bf8701da0e2a7ed5b1ce6c23fc66e0d19315eb35da520a059294c6924f25553f
What it is
What a remote MCP server returned when asked what it offers: 16 tools

The blob, as servednamed by its sha256

{ "instructions": "Tools for EQIQs, a 21-framework people-intelligence platform. Every call is scoped to the signed-in user's own data. Output is decision-support only and must never be the sole basis for hiring, promotion, or termination decisions.", "tools": [ { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "note": { "description": "Note text (up to 4,000 characters).", "maxLength": 4000, "minLength": 1, "type": "string" }, "person": { "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.", "type": "string" } }, "required": [ "person", "note" ], "type": "object" }, "name": "add_note", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "created_at": { "description": "When the note was saved (ISO 8601).", "type": "string" }, "note_id": { "description": "Id of the saved note.", "type": "string" }, "person": { "description": "Who the note is about.", "type": "string" }, "profile_id": { "description": "Profile id of that person.", "type": "string" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "attachment_style": { "description": "Optional. Personal data: never used in business context.", "maxLength": 40, "type": "string" }, "date_of_birth": { "description": "Optional YYYY-MM-DD. Personal data: never used in business context.", "format": "date", "type": "string" }, "department": { "description": "Optional team or department, used by score_team, prep_meeting and suggest_lead.", "maxLength": 120, "type": "string" }, "disc_type": { "description": "Optional DISC style: D, I, S, C or a blend such as DI.", "type": "string" }, "email": { "description": "Optional email; used to match results if they later take the assessment.", "format": "email", "type": "string" }, "enneagram_type": { "description": "Optional Enneagram type 1-9, with wing if known, e.g. 3w2.", "type": "string" }, "eq_score": { "description": "Optional emotional-intelligence score 0-100.", "maximum": 100, "minimum": 0, "type": "number" }, "mbti_type": { "description": "Optional four-letter MBTI type, e.g. INTJ.", "maxLength": 4, "type": "string" }, "name": { "description": "Full name (required).", "maxLength": 120, "minLength": 1, "type": "string" } }, "required": [ "name" ], "type": "object" }, "name": "create_profile", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "profile": { "additionalProperties": {}, "description": "The newly created profile.", "type": "object" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "audience": { "default": "manager", "description": "Who will read it. Hiring or candidate-screening audiences are intentionally not supported.", "enum": [ "manager", "self", "partner" ], "type": "string" }, "compare_with": { "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.", "type": "string" }, "context": { "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.", "enum": [ "business", "romantic", "friendship", "coparenting" ], "type": "string" }, "focus": { "description": "Optional topic to emphasize, e.g. 'giving feedback'.", "maxLength": 200, "type": "string" }, "length": { "default": "standard", "description": "Approximate length of the narrative.", "enum": [ "short", "standard", "deep" ], "type": "string" }, "person": { "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.", "type": "string" } }, "required": [ "person" ], "type": "object" }, "name": "generate_narrative", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "action_items": { "description": "Action items pulled from the narrative." }, "audience": { "description": "Who the narrative is written for.", "type": "string" }, "billing": { "additionalProperties": { "$ref": "#/properties/guardrails/additionalProperties" }, "description": "Units billed.", "type": "object" }, "compared_with": { "description": "Second person, for pair narratives.", "type": [ "string", "null" ] }, "context": { "description": "Relationship context for pair narratives.", "type": [ "string", "null" ] }, "disclaimer": { "description": "Decision-support disclaimer.", "type": "string" }, "guardrails": { "additionalProperties": {}, "description": "Safety check results.", "type": "object" }, "narrative": { "description": "The written coaching narrative.", "type": "string" }, "requires_confirmation": { "description": "True when the price must be confirmed before running.", "type": "boolean" }, "scoring": { "description": "Scores the narrative is based on." }, "sections": { "description": "Narrative split into sections." }, "subject": { "description": "Person the narrative is about.", "type": "string" }, "units": { "description": "Tool-call units this narrative costs.", "type": "number" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "context": { "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.", "enum": [ "business", "romantic", "friendship", "coparenting" ], "type": "string" } }, "type": "object" }, "name": "get_my_profile", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "context": { "description": "Relationship context the profile was filtered for.", "type": [ "string", "null" ] }, "framework_coverage": { "description": "How many of the 21 frameworks have data.", "type": "number" }, "frameworks_total": { "description": "Total frameworks EQIQs uses (21).", "type": "number" }, "frameworks_withheld": { "description": "How many frameworks are hidden in this context (e.g. personal-life signals at work).", "type": "number" }, "label_meanings": { "additionalProperties": { "$ref": "#/properties/profile/additionalProperties" }, "description": "Plain-language meanings for the framework labels on the profile.", "type": "object" }, "matched_by": { "description": "How the signed-in user's own profile was found.", "type": "string" }, "profile": { "additionalProperties": {}, "description": "The person's profile fields that are visible in this context.", "type": "object" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "context": { "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.", "enum": [ "business", "romantic", "friendship", "coparenting" ], "type": "string" }, "email": { "description": "The person's exact email.", "format": "email", "type": "string" }, "name": { "description": "Full name. Ambiguous names return a list to choose from rather than a guess.", "type": "string" }, "profile_id": { "description": "Profile id from list_profiles (preferred).", "type": "string" } }, "type": "object" }, "name": "get_profile", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "context": { "description": "Relationship context the profile was filtered for.", "type": [ "string", "null" ] }, "framework_coverage": { "description": "How many of the 21 frameworks have data.", "type": "number" }, "frameworks_total": { "description": "Total frameworks EQIQs uses (21).", "type": "number" }, "frameworks_withheld": { "description": "How many frameworks are hidden in this context (e.g. personal-life signals at work).", "type": "number" }, "label_meanings": { "additionalProperties": { "$ref": "#/properties/profile/additionalProperties" }, "description": "Plain-language meanings for the framework labels on the profile.", "type": "object" }, "profile": { "additionalProperties": {}, "description": "The person's profile fields that are visible in this context.", "type": "object" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "email": { "description": "Invitee's email, when they are not saved yet.", "format": "email", "type": "string" }, "name": { "description": "Invitee's name, shown in the invite.", "maxLength": 120, "type": "string" }, "person": { "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.", "type": "string" }, "send_email": { "default": true, "description": "true: EQIQs emails the link. false: only return the link.", "type": "boolean" } }, "type": "object" }, "name": "invite_person", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "emailed": { "description": "Whether EQIQs emailed the invite.", "type": "boolean" }, "invitee": { "description": "Who was invited.", "type": "string" }, "link": { "description": "Private invite link.", "type": [ "string", "null" ] }, "status": { "description": "Invite status.", "type": "string" } }, "type": "object" } }, { "description": "List comparison invites the user has sent and each one's status: pending, clicked, started or completed. Read-only; costs 1 unit.", "inputSchema": { "additionalProperties": false, "properties": { "limit": { "default": 20, "description": "Maximum rows to return (1-50, default 20).", "maximum": 50, "minimum": 1, "type": "integer" }, "status": { "default": "all", "description": "Filter by status.", "enum": [ "all", "pending", "clicked", "started", "completed" ], "type": "string" } }, "type": "object" }, "name": "list_invites", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "invites": { "description": "Sent invites with status (sent, opened, started, finished).", "items": { "additionalProperties": {}, "type": "object" }, "type": "array" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "limit": { "default": 20, "description": "Maximum rows to return (1-100, default 20).", "maximum": 100, "minimum": 1, "type": "integer" }, "person": { "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.", "type": "string" } }, "required": [ "person" ], "type": "object" }, "name": "list_notes", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "notes": { "description": "Notes, newest first.", "items": { "additionalProperties": {}, "type": "object" }, "type": "array" }, "person": { "description": "Who the notes are about.", "type": "string" }, "profile_id": { "description": "Profile id of that person.", "type": "string" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "context": { "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.", "enum": [ "business", "romantic", "friendship", "coparenting" ], "type": "string" }, "limit": { "default": 25, "description": "Maximum rows to return (1-100, default 25).", "maximum": 100, "minimum": 1, "type": "integer" }, "search": { "description": "Optional case-insensitive filter on name or email.", "maxLength": 100, "type": "string" } }, "type": "object" }, "name": "list_profiles", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "profiles": { "description": "Matching profiles.", "items": { "additionalProperties": {}, "type": "object" }, "type": "array" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "context": { "description": "Optional filter: only pairings scored in this context.", "enum": [ "business", "romantic", "friendship", "coparenting" ], "type": "string" }, "limit": { "default": 25, "description": "Maximum rows to return (1-100, default 25).", "maximum": 100, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "list_relationships", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "relationships": { "description": "Saved pairings with their context.", "items": { "additionalProperties": {}, "type": "object" }, "type": "array" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "department": { "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.", "maxLength": 100, "type": "string" }, "goal": { "description": "Optional meeting goal, e.g. 'agree the Q4 roadmap', used to tailor the advice.", "maxLength": 300, "type": "string" }, "members": { "description": "Profile ids or full names of attendees (1-12). Omit when using department.", "items": { "type": "string" }, "maxItems": 12, "minItems": 1, "type": "array" } }, "type": "object" }, "name": "prep_meeting", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "goal": { "description": "Stated meeting goal.", "type": [ "string", "null" ] }, "goal_tips": { "description": "Tips tied to the goal.", "items": {}, "type": "array" }, "people": { "description": "How to work with each attendee.", "items": { "additionalProperties": {}, "type": "object" }, "type": "array" }, "watch_pairs": { "description": "Pairings that need care.", "items": { "$ref": "#/properties/people/items" }, "type": "array" }, "weakest_pair": { "description": "The pairing with the lowest score." } }, "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "context": { "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.", "enum": [ "business", "romantic", "friendship", "coparenting" ], "type": "string" }, "person_a": { "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.", "type": "string" }, "person_b": { "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.", "type": "string" } }, "required": [ "person_a", "person_b" ], "type": "object" }, "name": "score_compatibility", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "disclaimer": { "description": "Decision-support disclaimer.", "type": "string" }, "donts": { "description": "Things to avoid with this person.", "items": { "$ref": "#/properties/strengths/items" }, "type": "array" }, "dos": { "description": "Things to do with this person.", "items": { "$ref": "#/properties/strengths/items" }, "type": "array" }, "drivers": { "description": "Frameworks that moved the score most.", "items": { "$ref": "#/properties/subscore_reasons/items" }, "type": "array" }, "frameworks_total": { "description": "Total frameworks considered.", "type": "number" }, "frameworks_used": { "description": "Frameworks with data for both people.", "type": "number" }, "friction_points": { "description": "Where the pair is likely to clash.", "items": { "$ref": "#/properties/strengths/items" }, "type": "array" }, "overall_score": { "description": "Overall compatibility score, 0-100.", "type": "number" }, "strengths": { "description": "Where the pair works well together.", "items": { "type": "string" }, "type": "array" }, "subscore_reasons": { "description": "Why each dimension scored as it did, with a tip.", "items": { "additionalProperties": { "$ref": "#/properties/subscores/additionalProperties" }, "type": "object" }, "type": "array" }, "subscores": { "additionalProperties": {}, "description": "Score per dimension, 0-100.", "type": "object" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "context": { "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.", "enum": [ "business", "romantic", "friendship", "coparenting" ], "type": "string" }, "department": { "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.", "maxLength": 100, "type": "string" }, "label": { "description": "Optional group name echoed in the summary.", "maxLength": 80, "type": "string" }, "members": { "description": "Profile ids or full names of the people in the group (2-12). Omit when using department.", "items": { "type": "string" }, "maxItems": 12, "minItems": 2, "type": "array" } }, "type": "object" }, "name": "score_team", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "anchor_pairs": { "description": "Strongest pairings.", "items": { "$ref": "#/properties/members/items" }, "type": "array" }, "cohesion_score": { "description": "Team cohesion, 0-100.", "type": "number" }, "connector": { "description": "Best-connected member." }, "context": { "description": "Relationship context used.", "type": "string" }, "disclaimer": { "description": "Decision-support disclaimer.", "type": "string" }, "label": { "description": "Team or department name.", "type": [ "string", "null" ] }, "member_count": { "description": "People in the team.", "type": "number" }, "members": { "description": "Each member with their average fit.", "items": { "additionalProperties": { "$ref": "#/properties/subscore_averages/additionalProperties" }, "type": "object" }, "type": "array" }, "most_isolated": { "description": "Member furthest from the rest." }, "pair_count": { "description": "Pairings scored.", "type": "number" }, "pairs": { "description": "Every pairing and its score.", "items": { "$ref": "#/properties/members/items" }, "type": "array" }, "role_coverage": { "description": "Mix of working-style roles, counting each person once." }, "subscore_averages": { "additionalProperties": {}, "description": "Average score per dimension across the team.", "type": "object" }, "thin_data": { "description": "Members with too little data for a reliable read." }, "watch_pairs": { "description": "Pairings that need care.", "items": { "$ref": "#/properties/members/items" }, "type": "array" }, "weakest_subscore": { "description": "The team's weakest shared dimension." } }, "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "framework": { "description": "Framework key, e.g. 'mbti', 'disc', 'enneagram', 'big_five'. Omit to list remaining frameworks.", "type": "string" } }, "type": "object" }, "name": "start_assessment", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "completed": { "description": "Frameworks already completed.", "items": {}, "type": "array" }, "framework": { "description": "Framework whose questions are returned.", "type": "string" }, "missing": { "description": "Frameworks still to take.", "items": { "$ref": "#/properties/completed/items" }, "type": "array" }, "questions": { "description": "Questions with A/B options.", "items": { "additionalProperties": {}, "type": "object" }, "type": "array" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "answers": { "additionalProperties": { "enum": [ "A", "B" ], "type": "string" }, "description": "Map of question id to the user's answer, 'A' or 'B', for every question returned.", "type": "object" }, "framework": { "description": "The same framework key passed to start_assessment.", "type": "string" } }, "required": [ "framework", "answers" ], "type": "object" }, "name": "submit_assessment", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "framework": { "description": "Framework scored.", "type": "string" }, "profile_id": { "description": "Profile the result was saved to.", "type": "string" }, "result": { "description": "Resulting type or level.", "type": "string" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "department": { "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.", "maxLength": 100, "type": "string" }, "kind": { "default": "execution", "description": "Kind of leadership the work needs.", "enum": [ "execution", "people", "innovation", "analysis" ], "type": "string" }, "members": { "description": "Profile ids or full names of the people in the group (2-12). Omit when using department.", "items": { "type": "string" }, "maxItems": 12, "minItems": 2, "type": "array" }, "project": { "description": "Optional project description echoed in the ranking.", "maxLength": 300, "type": "string" } }, "type": "object" }, "name": "suggest_lead", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "considerations": { "description": "People to consider and why (not a ranking).", "items": { "additionalProperties": {}, "type": "object" }, "type": "array" }, "kind": { "description": "Type of work being led.", "type": "string" } }, "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:bf8701da0e2a7ed5b1ce6c23fc66e0d19315eb35da520a059294c6924f25553f | sha256sum