Skip to main content
Glama
SiwuXue

Yijing Bazi MCP Server

by SiwuXue

bazi_analyze

Analyze Chinese Bazi birth charts to provide insights on personality, career, wealth, relationships, and health using traditional metaphysics principles.

Instructions

分析八字命盘

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
chartYes八字命盘数据
analysis_typeYes分析类型
detail_levelNo分析详细程度

Implementation Reference

  • Core handler function executing the bazi_analyze tool logic. Takes chart and analysis_type, dispatches to specific analyzers like personality, career, etc., and compiles results with strengths, challenges, and recommendations.
    async analyzeChart({ chart, analysis_type, focus_areas = [], detail_level = 'standard' }) {
      try {
        this.logger.info('开始分析八字', { analysis_type, focus_areas, detail_level });
    
        let analysis = {};
    
        // 支持数组类型的analysis_type
        const types = Array.isArray(analysis_type) ? analysis_type : [analysis_type];
    
        for (const type of types) {
          switch (type) {
            case 'personality':
              analysis.personality = await this.analyzePersonality(chart, detail_level);
              break;
            case 'career':
              analysis.career = await this.analyzeCareer(chart, detail_level);
              break;
            case 'wealth':
              analysis.wealth = await this.analyzeWealth(chart, detail_level);
              break;
            case 'relationship':
              analysis.relationship = await this.analyzeRelationship(chart, detail_level);
              break;
            case 'health':
              analysis.health = await this.analyzeHealth(chart, detail_level);
              break;
            case 'comprehensive':
              analysis.comprehensive = await this.analyzeComprehensive(chart, focus_areas, detail_level);
              break;
            default:
              throw new Error(`不支持的分析类型: ${type}`);
          }
        }
    
        const result = {
          timestamp: new Date().toISOString(),
          analysis_type: analysis_type,
          focus_areas: focus_areas,
          detail_level: detail_level,
          analysis: analysis,
          strengths: this.identifyStrengths(chart, analysis),
          challenges: this.identifyChallenges(chart, analysis),
          recommendations: this.generateRecommendations(chart, analysis, analysis_type)
        };
    
        this.logger.info('八字分析完成');
        return result;
      } catch (error) {
        this.logger.error('八字分析失败', { error: error.message });
        throw error;
      }
    }
  • src/index.js:427-429 (registration)
    Tool dispatch/registration in the main switch statement for handling CallToolRequest for 'bazi_analyze', delegating to BaziEngine.analyzeChart.
    case 'bazi_analyze':
      result = await baziEngine.analyzeChart(args);
      break;
  • Joi schema for validating input parameters of bazi_analyze tool, used in validateToolInput.
    function createBaziAnalyzeSchema() {
      return Joi.object({
        chart: Joi.object().required(),
        analysis_type: Joi.array().items(
          Joi.string().valid('personality', 'career', 'wealth', 'relationship', 'health')
        ).single().default(['personality']),
        detail_level: Joi.string().valid('basic', 'standard', 'detailed').default('standard')
      });
    }
  • src/index.js:193-219 (registration)
    Tool registration in ListToolsRequest handler: defines name, description, and inputSchema for 'bazi_analyze' advertised to MCP clients.
    {
      name: 'bazi_analyze',
      description: '分析八字命盘',
      inputSchema: {
        type: 'object',
        properties: {
          chart: {
            type: 'object',
            description: '八字命盘数据'
          },
          analysis_type: {
            type: 'array',
            items: {
              type: 'string',
              enum: ['personality', 'career', 'wealth', 'relationship', 'health']
            },
            description: '分析类型'
          },
          detail_level: {
            type: 'string',
            enum: ['brief', 'standard', 'detailed'],
            description: '分析详细程度'
          }
        },
        required: ['chart', 'analysis_type']
      }
    },
  • Example helper method analyzePersonality called by main handler (one of several sub-analyzers). Full method spans lines 420-432.
    async analyzePersonality(chart, detail_level = 'standard') {
      const { four_pillars, five_elements, ten_gods } = chart;
    
      return {
        core_traits: this.analyzeCoreTraits(four_pillars, five_elements),
        behavioral_patterns: this.analyzeBehavioralPatterns(ten_gods),
        emotional_characteristics: this.analyzeEmotionalCharacteristics(five_elements),
        social_tendencies: this.analyzeSocialTendencies(four_pillars),
        strengths: this.identifyPersonalityStrengths(chart),
        weaknesses: this.identifyPersonalityWeaknesses(chart),
        development_suggestions: this.generatePersonalityDevelopmentSuggestions(chart)
      };
    }

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/SiwuXue/yijing-bazi-mcp-server'

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