Skip to main content
Glama

start_mbti_test

Initiate an MBTI personality assessment by selecting either a 28-question simplified version or a 48-question cognitive functions test to begin identifying your personality type.

Instructions

开始MBTI人格测试。用户可以选择测试类型:simplified(简化版28题)或cognitive(认知功能版48题)。返回第一道题目和测试会话状态。

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
testTypeYes测试类型:simplified(简化版)或cognitive(认知功能版)

Implementation Reference

  • Executes the 'start_mbti_test' tool: initializes TestSession based on testType, selects questions from questionBank, returns first question and session state.
    if (name === 'start_mbti_test') {
      const testType = args.testType as TestType;
      const questions = testType === 'simplified'
        ? questionBank.simplified
        : questionBank.cognitive;
    
      const session: TestSession = {
        testType,
        answers: [],
        currentQuestionIndex: 0,
      };
    
      return {
        content: [
          {
            type: 'text',
            text: JSON.stringify({
              message: `测试已开始!共${questions.length}题。`,
              testType,
              currentQuestion: {
                index: 1,
                total: questions.length,
                question: questions[0],
              },
              session,
              instruction: '请使用1-5分评分:1=强烈不同意, 2=不同意, 3=中立, 4=同意, 5=强烈同意',
            }, null, 2),
          },
        ],
      };
    }
  • src/index.ts:28-42 (registration)
    Tool registration in ListToolsResponse: defines name, description, and inputSchema for 'start_mbti_test'.
    {
      name: 'start_mbti_test',
      description: '开始MBTI人格测试。用户可以选择测试类型:simplified(简化版28题)或cognitive(认知功能版48题)。返回第一道题目和测试会话状态。',
      inputSchema: {
        type: 'object',
        properties: {
          testType: {
            type: 'string',
            enum: ['simplified', 'cognitive'],
            description: '测试类型:simplified(简化版)或cognitive(认知功能版)',
          },
        },
        required: ['testType'],
      },
    },
  • TypeScript type definitions for TestType, Question, Answer, and TestSession used in the tool's handler and schema.
    export type TestType = 'simplified' | 'cognitive';
    
    // Question Structure
    export interface Question {
      id: number;
      text: string;
      dimension?: MBTIDimension; // For simplified test
      cognitiveFunction?: CognitiveFunction; // For cognitive test
      reverse?: boolean; // If true, reverse the scoring
    }
    
    // Answer Structure
    export interface Answer {
      questionId: number;
      score: number; // 1-5 (Likert scale)
    }
    
    // Test Session State (passed in each call for stateless design)
    export interface TestSession {
      testType: TestType;
      answers: Answer[];
      currentQuestionIndex: number;
    }
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses key behavioral traits: it starts a test, returns the first question and session state, and supports two test types. However, it lacks details on error handling, session management (e.g., expiration), or performance aspects like rate limits, which are important for a tool initiating a test.

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 appropriately sized and front-loaded, consisting of two clear sentences. The first sentence states the purpose and parameter options, and the second explains the return value. Every sentence earns its place with no wasted words, making it efficient and easy to understand.

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

Completeness3/5

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

Given the tool's moderate complexity (initiating a test with one parameter) and no annotations or output schema, the description is somewhat complete but has gaps. It covers the purpose, parameter options, and return value, but lacks details on error cases, session lifecycle, or how outputs relate to sibling tools, which could hinder an agent's effective use.

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 schema description coverage is 100%, with the single parameter 'testType' fully documented in the schema (including enum values and descriptions). The description adds minimal value beyond the schema by mentioning the test types and their question counts, but it doesn't provide additional semantic context (e.g., differences between test versions). Baseline 3 is appropriate as the schema does the heavy lifting.

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 clearly states the tool's purpose with a specific verb ('开始MBTI人格测试') and resource (MBTI test), and it mentions the two test type options. However, it doesn't explicitly distinguish this tool from its siblings (e.g., answer_question, calculate_mbti_result, get_progress), which would require clarification on when to use each in the test flow.

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 at the start of an MBTI test by stating it '返回第一道题目和测试会话状态,' suggesting it initiates the test. However, it doesn't provide explicit guidance on when to use this tool versus alternatives like get_progress or how it fits into the overall test workflow with siblings, leaving some ambiguity.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/wenyili/mbti-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server