Skip to main content
Glama

Mingli MCP Server

by spyfree
MIT License
  • Apple
  • Linux
formatter.py5.45 kB
""" 八字系统格式化器 用于将八字数据格式化为JSON和Markdown格式 """ from typing import Dict, Any class BaziFormatter: """八字格式化器""" def format_chart(self, chart_data: Dict[str, Any], format_type: str = 'json') -> str: """ 格式化八字排盘数据 Args: chart_data: 排盘数据 format_type: 格式类型 ('json' 或 'markdown') Returns: 格式化后的字符串 """ if format_type == 'markdown': return self._format_chart_markdown(chart_data) else: return chart_data def format_fortune(self, fortune_data: Dict[str, Any], format_type: str = 'json') -> str: """ 格式化运势数据 Args: fortune_data: 运势数据 format_type: 格式类型 Returns: 格式化后的字符串 """ if format_type == 'markdown': return self._format_fortune_markdown(fortune_data) else: return fortune_data def format_element_analysis(self, analysis_data: Dict[str, Any], format_type: str = 'json') -> str: """ 格式化五行分析数据 Args: analysis_data: 分析数据 format_type: 格式类型 Returns: 格式化后的字符串 """ if format_type == 'markdown': return self._format_element_markdown(analysis_data) else: return analysis_data def _format_chart_markdown(self, data: Dict[str, Any]) -> str: """格式化排盘为Markdown""" md = f"""# 八字排盘 ## 基本信息 - **阳历**: {data['solar_date']} - **农历**: {data['lunar_date']} - **性别**: {data['gender']} - **生肖**: {data['zodiac']} ## 四柱八字 ``` {data['eight_char']} ``` ### 详细四柱 | 柱 | 天干 | 地支 | 干支 | |---|------|------|------| | 年柱 | {data['pillars']['year']['gan']} | {data['pillars']['year']['zhi']} | {data['pillars']['year']['pillar']} | | 月柱 | {data['pillars']['month']['gan']} | {data['pillars']['month']['zhi']} | {data['pillars']['month']['pillar']} | | 日柱 | {data['pillars']['day']['gan']} | {data['pillars']['day']['zhi']} | {data['pillars']['day']['pillar']} | | 时柱 | {data['pillars']['hour']['gan']} | {data['pillars']['hour']['zhi']} | {data['pillars']['hour']['pillar']} | **日主**: {data['day_master']}(命主本身,以日干为准) ## 十神分析 - **年干**: {data['deities']['year_gan']} - **月干**: {data['deities']['month_gan']} - **日干**: {data['deities']['day_gan']} - **时干**: {data['deities']['hour_gan']} ## 五行分析 - **分数**: {data['wu_xing']['description']} - **详细**: 金{data['wu_xing']['scores']['金']} 木{data['wu_xing']['scores']['木']} 水{data['wu_xing']['scores']['水']} 火{data['wu_xing']['scores']['火']} 土{data['wu_xing']['scores']['土']} ## 地支藏干 - **年支** {data['pillars']['year']['zhi']}: {', '.join(data['zhi_cang_gan']['year'])} - **月支** {data['pillars']['month']['zhi']}: {', '.join(data['zhi_cang_gan']['month'])} - **日支** {data['pillars']['day']['zhi']}: {', '.join(data['zhi_cang_gan']['day'])} - **时支** {data['pillars']['hour']['zhi']}: {', '.join(data['zhi_cang_gan']['hour'])} """ return md def _format_fortune_markdown(self, data: Dict[str, Any]) -> str: """格式化运势为Markdown""" md = f"""# 八字运势 ## 查询信息 - **查询日期**: {data['query_date']} - **当前年龄**: {data['age']}岁 - **日主**: {data['day_master']} ## 大运 - **当前大运**: {data['da_yun']['description']} - **年龄范围**: {data['da_yun']['age_range']} ## 流年 - **流年**: {data['liu_nian']['year']}年 - **干支**: {data['liu_nian']['gan_zhi']} - **生肖**: {data['liu_nian']['zodiac']} --- ## 本命八字 ``` {data['basic_chart']['eight_char']} ``` """ return md def _format_element_markdown(self, data: Dict[str, Any]) -> str: """格式化五行分析为Markdown""" md = f"""# 五行分析 ## 日主信息 - **日主**: {data['day_master']} - **五行**: {data['day_master_element']} ## 五行分数 | 五行 | 数量 | 百分比 | |------|------|--------| | 金 | {data['scores']['金']} | {data['percentages']['金']:.1f}% | | 木 | {data['scores']['木']} | {data['percentages']['木']:.1f}% | | 水 | {data['scores']['水']} | {data['percentages']['水']:.1f}% | | 火 | {data['scores']['火']} | {data['percentages']['火']:.1f}% | | 土 | {data['scores']['土']} | {data['percentages']['土']:.1f}% | ## 分析结果 - **最旺五行**: {data['strongest']['element']}({data['strongest']['score']}个) - **最弱五行**: {data['weakest']['element']}({data['weakest']['score']}个) - **缺失五行**: {', '.join(data['missing']) if data['missing'] else '无'} - **平衡度**: {data['balance']} ## 建议 """ # 根据五行情况给出建议 if data['missing']: md += f"\n命局缺{', '.join(data['missing'])},建议在生活中补充这些元素。\n" if data['balance'] == '五行不平衡': md += f"\n五行不够平衡,{data['strongest']['element']}过旺,{data['weakest']['element']}较弱,建议适当调和。\n" return md

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/spyfree/mingli-mcp'

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