Skip to main content
Glama

紫微斗数 MCP 服务器

一个基于 Model Context Protocol (MCP) 的专业紫微斗数命理分析服务器,提供完整的命盘生成、解读、分析和可视化功能。支持传统紫微斗数算法,集成现代数据持久化和可视化技术。

🌟 功能特点

核心功能

  • 🔮 命盘生成: 基于农历算法生成完整的紫微斗数命盘

  • 📖 命盘解读: 提供详细的命盘分析和专业解释

  • 🌟 运势分析: 分析当前和未来的运势走向

  • 💕 合婚分析: 双人命盘合婚配对分析

  • 📅 择日功能: 根据命盘选择吉日良辰

  • 🤖 AI智能解盘: 结合传统命理与现代AI技术

可视化功能

  • 🎨 命盘图像: 生成多种样式的可视化命盘图表

  • 📊 数据可视化: 支持SVG、PNG、HTML多种格式输出

  • 🎭 主题定制: 传统、现代、彩色、单色等多种配色方案

专业分析

  • 星曜信息: 查询各个星曜的详细信息和影响

  • 🏠 宫位分析: 获取十二宫位的含义和深度分析

  • 📈 人生时间轴: 大运流年详细分析

  • 👥 人际关系: 家庭、朋友、事业关系分析

  • 💼 职业指导: 职业发展和决策支持

  • 🏥 健康分析: 健康趋势和养生建议

  • 🎓 教育指导: 学习能力和教育规划

Related MCP server: Bazi MCP

📦 安装

环境要求

  • Node.js 18.0+

  • npm 8.0+

  • SQLite 3.0+

安装依赖

npm install

🚀 使用方法

启动服务器

# 开发模式
npm run dev

# 生产模式
npm start

客户端配置 (stdio)

如果您使用支持MCP的客户端(如Claude Desktop),可以通过stdio方式连接到本服务:

Claude Desktop配置

在Claude Desktop的配置文件中添加以下配置:

{
  "mcpServers": {
    "ziwei-doushu": {
      "command": "npx",
      "args": ["-y","ziwei-mcp"]
    }
  }
}

📚 API 文档

核心工具

1. generate_chart - 生成命盘

生成完整的紫微斗数命盘

参数:

  • name (string): 姓名

  • birthDate (string): 出生日期 (YYYY-MM-DD)

  • birthTime (string): 出生时间 (HH:MM)

  • gender (string): 性别 (male/female)

  • location (object): 出生地点

    • province (string): 省份

    • city (string): 城市

    • longitude (number): 经度

    • latitude (number): 纬度

  • timezone (string): 时区 (默认: Asia/Shanghai)

  • calendar (string): 历法 (solar/lunar,默认: solar)

2. interpret_chart - 命盘解读

提供详细的命盘分析和解释

参数:

  • chartId (string): 命盘ID

  • aspects (array): 解读方面

    • personality: 性格特质

    • career: 事业发展

    • wealth: 财富运势

    • relationships: 感情关系

    • health: 健康状况

    • family: 家庭关系

  • detailLevel (string): 详细程度 (basic/detailed/comprehensive)

3. analyze_fortune - 运势分析

分析特定时期的运势走向

参数:

  • chartId (string): 命盘ID

  • period (string): 分析周期 (current_year/next_year/decade/custom)

  • startDate (string): 开始日期 (YYYY-MM-DD)

  • endDate (string): 结束日期 (YYYY-MM-DD)

  • aspects (array): 分析方面

4. analyze_compatibility - 合婚分析

双人命盘合婚配对分析

参数:

  • chart1Id (string): 第一人命盘ID

  • chart2Id (string): 第二人命盘ID

  • analysisType (string): 分析类型 (marriage/business/friendship)

  • aspects (array): 分析维度

5. select_auspicious_date - 择日功能

根据命盘选择吉日良辰

参数:

  • chartId (string): 命盘ID

  • eventType (string): 事件类型

  • dateRange (object): 日期范围

  • preferences (object): 偏好设置

可视化工具

6. generate_visualization - 生成可视化图表

生成命盘可视化图表,支持多种样式和格式

参数:

  • chartId (string): 命盘ID

  • visualizationType (string): 可视化类型

    • traditional_chart: 传统命盘

    • modern_wheel: 现代轮盘

    • palace_grid: 宫位网格

    • star_map: 星曜地图

  • includeElements (array): 包含元素

  • colorScheme (string): 配色方案

  • outputFormat (string): 输出格式 (svg/png/html)

专业分析工具

7. analyze_life_timeline - 人生时间轴分析

分析人生时间轴,包括大运流年详细分析

8. analyze_relationships - 人际关系分析

分析人际关系,包括家庭、朋友、同事等

9. career_guidance - 职业发展指导

职业发展指导和决策支持

10. health_analysis - 健康分析

健康分析和养生建议

11. educational_guidance - 教育指导

教育和学习指导

🛠️ 开发指南

开发环境设置

# 进入项目目录
cd 紫微斗数

# 安装依赖
npm install

# 启动MCP服务器
npm start

# 或启动开发模式
npm run dev

可用脚本

npm start      # 启动MCP服务器
npm run dev    # 启动开发模式(带调试)
npm test       # 运行基础测试
npm run lint   # ESLint代码检查
npm run format # Prettier代码格式化

代码规范

  • 使用 ESLint 进行代码检查

  • 使用 Prettier 进行代码格式化

  • 遵循 CommonJS 模块规范

  • 支持 Node.js 18.0+ 版本

🔧 配置说明

配置文件

项目使用以下配置文件:

  • config/sqlite-config.js - SQLite数据库配置

  • config/persistence-config.js - 数据持久化配置

  • package.json - 项目依赖和脚本配置

数据库配置

项目使用 SQLite 作为数据存储,配置文件位于 config/sqlite-config.js

📖 使用示例

生成命盘示例

// 通过MCP调用
const chart = await mcpClient.callTool('generate_chart', {
  name: '张三',
  birthDate: '1990-01-01',
  birthTime: '08:30',
  gender: 'male',
  location: {
    province: '北京市',
    city: '北京市',
    longitude: 116.4074,
    latitude: 39.9042
  }
});

命盘解读示例

const interpretation = await mcpClient.callTool('interpret_chart', {
  chartId: chart.id,
  aspects: ['personality', 'career', 'wealth'],
  detailLevel: 'detailed'
});

🤝 贡献指南

  1. Fork 项目

  2. 创建特性分支 (git checkout -b feature/AmazingFeature)

  3. 提交更改 (git commit -m 'Add some AmazingFeature')

  4. 推送到分支 (git push origin feature/AmazingFeature)

  5. 打开 Pull Request

提交规范

feat: 新功能
fix: 修复bug
docs: 文档更新
style: 代码格式调整
refactor: 代码重构
test: 测试相关
chore: 构建过程或辅助工具的变动

📄 许可证

本项目采用 MIT 许可证。

🆘 支持与反馈

🔗 相关链接


注意: 本项目仅供学习和研究使用,命理分析结果仅供参考,不应作为人生重大决策的唯一依据。

📋 更新日志

v1.0.0 (2024-01-01)

  • ✨ 初始版本发布

  • 🔮 实现基础命盘生成功能

  • 📖 支持命盘解读和运势分析

  • 🎨 添加SVG图像生成

  • 💾 集成SQLite数据持久化

  • 🤖 支持AI智能解盘

  • 💕 添加合婚分析功能

  • 📅 实现择日功能

❓ 常见问题

Q: 为什么生成的命盘与其他软件不同? A: 不同的紫微斗数软件可能使用不同的算法和参数,本服务基于传统算法实现,结果可能存在差异。

Q: 支持哪些地区的时区? A: 支持全球主要时区,默认使用Asia/Shanghai(北京时间)。

Q: 数据会保存多长时间? A: 目前数据会永久保存在本地SQLite数据库中,您可以手动清理不需要的数据。

Q: 如何获得更准确的分析结果? A: 请确保输入准确的出生日期、时间和地点信息,时间精确到分钟级别。

🔧 技术支持

如遇到技术问题,请提供以下信息:

  1. 错误信息和错误代码

  2. 输入的参数信息

  3. 操作系统和Node.js版本

  4. 详细的操作步骤

解释数据

Available Tools

12 tools
analyze_compatibilityC

合婚分析,分析两人的紫微斗数命盘匹配度

ParametersJSON Schema
NameRequiredDescriptionDefault
chart1Yes第一人的命盘数据
chart2Yes第二人的命盘数据
analysisDepthNo分析深度basic

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states what the tool does without mentioning what the output looks like, whether it performs any side effects, or how the analysisDepth parameter affects behavior. It does not state whether the operation is read-only or irreversible, though 'analyze' implies a read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, extremely concise sentence with no wasted words. It front-loads the core function clearly. However, it is so brief that it borders on under-specification, though this is more a completeness issue than conciseness – the sentence structure itself is efficient.

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

Completeness2/5

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

Given the tool takes two complex nested chart objects and has an analysisDepth parameter, the description is incomplete. There is no output schema, no annotations, and no mention of what the analysis will provide (e.g., a score, a report, explanations). It also does not explain the difference between 'basic' and 'comprehensive' depth. The description is minimal even for a straightforward analysis tool.

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?

Schema description coverage is 100%, with all three parameters (chart1, chart2, analysisDepth) described. The description adds slight clarity by specifying '两人的' (two people's) charts, reinforcing what chart1 and chart2 represent, but it does not provide additional syntax, format, or deeper meaning beyond the schema. This aligns with the baseline of 3.

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: '合婚分析' (marriage compatibility analysis) and '分析两人的紫微斗数命盘匹配度' (analyze the compatibility of two people's Zi Wei Dou Shu charts). It specifies the action (analyze) and resource (chart compatibility), distinguishing it from generic chart generation or interpretation tools. However, it does not explicitly differentiate from the sibling tool 'analyze_relationships', which could be seen as overlapping.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidance is provided. The description does not specify when to use this tool instead of alternatives like 'analyze_relationships' or other analysis tools. It lacks any mention of prerequisites, typical use cases, or scenarios where this tool should not be used.

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

analyze_fortuneB

分析运势,包括大运、流年、流月等时间维度的运势预测

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYes要分析的年份
aspectsNo要分析的运势方面
chartIdYes命盘ID(由generate_chart返回)
includeMonthlyNo是否包含月运分析

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden for behavioral disclosure. It only states the core function without explaining prerequisites (e.g., chartId must exist from generate_chart), expected output format, or any limitations. No ambiguity or contradiction, but it is too thin to be transparent.

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 a single, concise sentence that fronts the verb and resource, then specifies relevant time dimensions. Every word earns its place, with no fluff or repetition, making it highly efficient.

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

Completeness2/5

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

Given no output schema, the description should clarify what the tool returns, but it only states the general action. It also does not mention that a valid chartId is required or that includeMonthly defaults to false, though these are in the schema. The description leaves the agent guessing about output structure and usage context.

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?

Schema coverage is 100%, with each parameter having a description in Chinese. The tool description adds some context by mentioning 大运/流年/流月, which relates to year and includeMonthly, but this is marginal beyond what the schema already conveys. Thus baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb '分析' (analyze) with a clear resource ('运势', fortune) and explicitly lists temporal dimensions like 大运 (major luck), 流年 (annual), and 流月 (monthly). This distinguishes it from sibling tools such as interpret_chart or analyze_compatibility, which focus on different aspects of divination.

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 when temporal fortune analysis is needed (yearly, monthly, major luck periods) but does not explicitly state when to use it instead of alternatives. There is no mention of exclusions or direct comparisons with sibling tools, so guidance is only implicit.

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

analyze_life_timelineB

分析人生时间轴,包括大运流年详细分析

ParametersJSON Schema
NameRequiredDescriptionDefault
endAgeYes结束年龄
chartIdYes命盘ID
startAgeYes起始年龄
analysisGranularityNo分析粒度year

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden for behavioral disclosure, but it does not mention whether the operation is read-only, what output format to expect, or any limitations. It only names the analysis scope, which is insufficient for an un-annotated tool.

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 a single sentence, front-loaded with the primary verb and resource, and followed by a specific detail about the analysis content. There is no wasted wording or redundancy.

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

Completeness2/5

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

There is no output schema and no annotations, so the description should clarify what the analysis returns and how to interpret it, but it does not. The schema covers parameter meanings, but tool-level context such as usage scenarios, return values, and behavioral expectations is missing.

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?

Schema description coverage is 100% — all four parameters (chartId, startAge, endAge, analysisGranularity) have concise descriptions. The tool description adds no parameter-level information beyond what the schema already provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool analyzes a life timeline ('分析人生时间轴') and specifies the analysis scope as major-period and annual fortune ('大运流年详细分析'). This specific verb+resource combination distinguishes it from siblings like analyze_fortune.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus alternatives, no exclusions, and no mention of prerequisites. The description only states what the tool does, leaving the agent to infer usage from the name.

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

analyze_relationshipsC

分析人际关系,包括家庭、朋友、同事等

ParametersJSON Schema
NameRequiredDescriptionDefault
chartIdYes命盘ID
analysisAspectsNo分析维度
relationshipTypeYes关系类型
targetPersonChartNo对方命盘ID(可选)

TDQS

C2.9/5.0
Behavior2/5

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

由于没有任何注释,描述需完全承担行为透明度的责任,但描述仅是一句概括,未说明分析的具体过程、所需的输入条件、返回结果的性质,也未提及是否受限于某些前提(如需要对方命盘)。

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

描述为一句简洁的中文句子,直接点明核心功能,没有冗余语句,信息集中。虽然较为简短,但作为工具用途的概括来说尚可。

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

Completeness2/5

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

该工具具有4个参数、枚举类型和多个兄弟工具,且无输出schema和注释,描述仅一句概述,未能说明分析结果的返回形式、何时需要提供对方命盘ID、各关系类型的区别,以及与其他分析工具的差异,信息严重不足。

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?

输入schema的description覆盖了所有参数,且说明清晰,描述本身没有为参数添加额外语义。根据规则,当schema覆盖率高时,基线为3分。

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?

描述明确说明该工具用于分析人际关系,并列举了家庭、朋友、同事等示例,具有明确的动词和资源。但没有与兄弟工具(如analyze_compatibility)进行显式区分,因此未达到最高分。

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

描述中未提供任何关于何时使用此工具、何时使用其他工具(如analyze_compatibility)的指导,也没有提及任何替代方案或前置条件。

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

career_guidanceD

职业发展指导和决策支持

ParametersJSON Schema
NameRequiredDescriptionDefault
chartIdYes命盘ID
currentAgeYes当前年龄
industriesNo感兴趣的行业
careerStageYes职业阶段
decisionTypeNo决策类型

TDQS

D1.7/5.0
Behavior1/5

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

With no annotations, the description is the sole source of behavioral context. It only states 'guidance and decision support' without disclosing what the tool does internally, what kind of results it produces, or how it uses inputs like chartId and currentAge. No limitations or side effects are mentioned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, but it is under-specified rather than concise. It provides no substantive details, making it a placeholder that does not effectively inform the agent.

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

Completeness1/5

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

The tool has 5 parameters (3 required, 2 enums) and no output schema or annotations. The description does not explain the tool's behavior, return format, or how parameters are used, making it completely inadequate for a tool of this complexity.

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?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no parameter-specific meaning, but per the baseline rule for high schema coverage, a score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description '职业发展指导和决策支持' (career development guidance and decision support) essentially restates the tool name without specifying a concrete action, input, or output. It does not distinguish from siblings like educational_guidance or analyze_fortune.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of specific scenarios, user goals, exclusions, or comparisons to other tools, leaving the agent without any selection criteria.

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

educational_guidanceD

教育和学习指导

ParametersJSON Schema
NameRequiredDescriptionDefault
chartIdYes命盘ID
studentAgeYes学生年龄
guidanceTypeNo指导类型
subjectAreasNo学科领域
educationLevelYes教育阶段

TDQS

D1.9/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'Education and learning guidance' with no information about what the tool does, what inputs affect, what output is produced, or any side effects. This is essentially a label, not a behavioral description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely brief, but under-specification is not conciseness. A single vague phrase without structure or detail does not earn efficiency credit; it is under-specified.

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

Completeness1/5

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

For a tool with 5 parameters (3 required), enums, and no output schema, this description is completely inadequate. It provides no information about expected behavior, return values, or how parameters relate to the tool's function.

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?

Schema description coverage is 100% for all 5 parameters, so per rubric baseline is 3. The description adds no additional parameter semantics, but the schema already provides short descriptions for each field, so no deduction is warranted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description '教育和学习指导' (Education and learning guidance) essentially restates the tool name 'educational_guidance' without specifying concrete action or output. It fails to distinguish from sibling tools like career_guidance or health_analysis, providing no actionable detail about what kind of guidance is delivered.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage context is provided. The description does not indicate when to use this tool versus alternative guidance tools, nor does it mention any prerequisites or exclusions.

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

generate_chartC

生成紫微斗数命盘,根据出生信息排盘

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo姓名(可选)
genderYes性别
birthDateYes出生日期,格式:YYYY-MM-DD
birthTimeYes出生时间,格式:HH:mm
birthLocationNo出生地点(可选)

TDQS

C2.9/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden of behavioral disclosure. It only restates the core action of generating a chart. It does not disclose any side effects, special requirements, output format, or potential edge cases (e.g., invalid birth time). This is minimal and insufficient for a tool with no annotation support.

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 a single, compact sentence with no wasted words. It front-loads the primary action and is appropriately sized for a straightforward tool. Every word earns its place.

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

Completeness2/5

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

Given no output schema and no annotations, the description should explain what the tool returns, how it fits into the larger workflow (e.g., for subsequent interpretation), and any relevant context. It does none of these. The tool has many siblings, but the description does not position it relative to them, leaving the agent without enough context to plan a multi-step flow.

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?

Schema description coverage is 100% (all parameters have descriptions in the input schema). The description adds no extra parameter information beyond what the schema already provides. This aligns with the baseline of 3 for high schema coverage.

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 states the tool's function clearly: '生成紫微斗数命盘,根据出生信息排盘' which means 'Generate Zi Wei Dou Shu chart, arrange chart based on birth information.' This is a specific verb+resource combination. It distinguishes from siblings like interpret_chart and generate_visualization, though it does not explicitly name them or delineate boundaries, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description does not mention any prerequisites, limitations, or scenarios where another tool (e.g., interpret_chart) would be more appropriate. The agent is left to infer usage from the name and context.

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

generate_visualizationC

生成命盘可视化图表,支持多种样式和格式

ParametersJSON Schema
NameRequiredDescriptionDefault
chartIdYes命盘ID(由generate_chart返回)
colorSchemeNo配色方案traditional
outputFormatNo输出格式svg
includeElementsNo包含的元素
visualizationTypeNo可视化类型traditional_chart

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden for behavioral disclosure, yet it only says 'generate visualization chart' without explaining side effects, output format, dependencies, or error behavior. It does not reveal whether the operation is read-only, what happens on invalid input, or what the return artifact looks like. This is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence that is front-loaded with the main action. It avoids unnecessary fluff and is appropriately concise, though it could have included a bit more detail without losing efficiency.

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

Completeness2/5

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

Without output schema or annotations, and with 5 parameters, the description is under-specified. It does not explain return values, output delivery (e.g., file path, base64, URL), required sequence with generate_chart, or any limitations. The tool's complexity is not matched by the description's brevity.

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 description provides no parameter-level details, but the input schema covers 100% of parameters with clear descriptions and enums (e.g., colorScheme, outputFormat). The phrase 'supports multiple styles and formats' loosely references these options but adds no specific meaning beyond the schema, so the baseline of 3 applies.

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 action (generate) and resource (命盘 visualization chart), and mentions support for multiple styles and formats. It does not explicitly differentiate from sibling tools like generate_chart, but the term '可视化' (visualization) implies a distinct output-focused purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. The description lacks context such as prerequisites, ordering with generate_chart, or cases where other tools would be more appropriate. The schema hints that chartId comes from generate_chart, but the description itself provides no usage direction.

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

health_analysisD

健康分析和养生建议

ParametersJSON Schema
NameRequiredDescriptionDefault
chartIdYes命盘ID
currentAgeYes当前年龄
analysisTypeNo分析类型prevention
healthConcernsNo健康关注点

TDQS

D1.9/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of disclosing behavior. It only states a vague purpose and gives no information about side effects, required permissions, return values, or any constraints. This is a significant gap for a tool with health-related parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely brief (one phrase), but this is under-specification rather than effective conciseness. It lacks structure, such as separating purpose from usage details, and fails to convey necessary information.

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

Completeness1/5

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

The tool has 4 parameters, an enum with 3 analysis types, an array of health concerns, and no output schema or annotations. The description gives no context about what the health analysis entails, what advice is provided, or how the input parameters affect the result. It is completely inadequate for the tool's complexity.

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 covers 100% of parameters with descriptions, so the baseline is 3. The description adds no parameter-specific information beyond what the schema provides. It doesn't clarify the meaning of 'chartId', 'currentAge', 'analysisType', or 'healthConcerns' beyond their literal names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description '健康分析和养生建议' (health analysis and wellness advice) indicates the tool's subject matter but not a specific action or scope. It is a bit tautological with the name 'health_analysis' but adds 'wellness advice.' It does not clearly distinguish it from sibling tools like 'analyze_life_timeline' or 'career_guidance.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There is no mention of appropriate contexts, prerequisites, or exclusions. Sibling tools exist, but the description doesn't position this tool among them.

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

intelligent_interpretationB

AI智能解盘,提供个性化深度命盘解析

ParametersJSON Schema
NameRequiredDescriptionDefault
chartYes命盘数据
lifeStageNo人生阶段
focusAreasNo重点分析领域
currentConcernsNo当前关注的问题

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must explain behavioral traits itself. It only delivers a high-level promise of AI-powered analysis, without disclosing whether the operation is read-only, what format the analysis takes, or any side effects. This is insufficient for an agent to predict the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact sentence with no filler words, earning high marks for brevity. While concise, it omits necessary detail for a tool with 4 parameters and nested objects, but the conciseness dimension rewards efficiency.

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

Completeness2/5

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

The tool has a complex required 'chart' object and no output schema, so the description should clarify what analysis is produced and how to interpret the response. It does not, and it also fails to address the close relationship with sibling interpretation tools, making the description contextually incomplete.

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?

All four parameters (chart, lifeStage, focusAreas, currentConcerns) have detailed descriptions in the schema, including enums for lifeStage and focusAreas. The description adds no additional semantic context, so it relies entirely on the schema to convey parameter meaning.

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 states 'AI智能解盘' (AI intelligent interpretation) and '个性化深度命盘解析' (personalized in-depth destiny chart analysis), clearly identifying the tool as an interpretation tool for natal charts. However, it offers no differentiation from the sibling tool 'interpret_chart', so it cannot help an agent choose among overlapping options.

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 phrase '个性化深度' implies the tool is suited for personalized, deep analysis, but the description does not explicitly state when to prefer this over siblings like 'analyze_fortune' or 'interpret_chart'. There is no guidance on exclusions or prerequisites, leaving usage context ambiguous.

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

interpret_chartC

解读紫微斗数命盘,提供详细的性格、事业、财运等分析

ParametersJSON Schema
NameRequiredDescriptionDefault
chartIdYes命盘ID(由generate_chart返回)
focusAreasNo重点分析的领域

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description must carry the burden of behavioral disclosure. It fails to mention that the tool is read-only, what output format to expect, or any side effects. It simply restates the high-level purpose without deeper behavioral context.

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 a single sentence, front-loaded with the core purpose, and contains no filler. Every word contributes to stating what the tool does.

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

Completeness2/5

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

The description is minimal for a complex interpretation tool. It does not explain the output format, the role of focusAreas, or how it differs from sibling tools. With no annotations and no output schema, the description leaves the agent without enough context to use the tool effectively.

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 both chartId and focusAreas having meaningful descriptions. The tool description adds no extra parameter details, so the baseline of 3 is appropriate.

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 interprets a Zi Wei Dou Shu chart and provides personality, career, and wealth analysis. However, it does not differentiate from sibling tools like intelligent_interpretation or analyze_life_timeline, so it's clear but lacks sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or comparison with similar analysis tools among the siblings.

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

select_auspicious_dateB

择日功能,根据个人命盘选择适合的吉日良辰

ParametersJSON Schema
NameRequiredDescriptionDefault
chartYes个人命盘数据
dateRangeYes
eventTypeYes事件类型
timePreferenceNo时间偏好any

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure, but it offers no details about output format, limitations, or side effects. It only mentions that it selects dates, without explaining the selection process or result structure.

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 a single, direct sentence with no redundant wording. It front-loads the main function ('择日功能') and is appropriately sized for a clear purpose.

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

Completeness2/5

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

Given the tool has 4 parameters, nested objects, and no output schema or annotations, the description is under-specified. It does not explain expected return values, how different event types affect selection, or how the date range is used, making it incomplete for an agent to invoke confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds little beyond the schema. It mentions 'personal birth chart' and 'auspicious days,' which loosely maps to chart and dateRange, but it does not clarify eventType, timePreference, or the dateRange constraints. With 75% schema coverage, the missing top-level dateRange description is not compensated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: '择日功能,根据个人命盘选择适合的吉日良辰' (date selection function, selects auspicious days/times based on personal birth chart). It has a specific verb (select) and resource (auspicious dates), and it distinguishes itself from sibling tools like analyze_fortune or generate_chart by its focus on date selection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. It only states what the tool does, leaving the agent to infer usage context.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 12 tool updatesv1.0.4
    • First observedanalyze_compatibility
    • First observedanalyze_fortune
    • First observedanalyze_life_timeline
    • First observedanalyze_relationships
    • First observedcareer_guidance
    • First observededucational_guidance
    • First observedgenerate_chart
    • First observedgenerate_visualization
    • First observedhealth_analysis
    • First observedintelligent_interpretation
    • First observedinterpret_chart
    • First observedselect_auspicious_date

TDQS

C2.7/5.0
Disambiguation2/5

Several tools have overlapping scopes. `interpret_chart` and `intelligent_interpretation` both provide chart interpretation, while `analyze_fortune` and `analyze_life_timeline` both cover time-based luck analysis. `career_guidance` also overlaps with `interpret_chart`'s career analysis, creating ambiguity.

Naming Consistency3/5

The majority of tools follow a verb_noun pattern (e.g., `analyze_fortune`, `generate_chart`), but four tools are noun phrases (`intelligent_interpretation`, `career_guidance`, `health_analysis`, `educational_guidance`), which breaks consistency. The pattern is still readable overall.

Tool Count5/5

12 tools is well-scoped for a specialized astrology server, covering chart generation, interpretation, fortune analysis, compatibility, date selection, and life guidance without being excessive. Each tool appears to address a distinct aspect of the domain.

Completeness4/5

The tool set covers the core lifecycle of a Zi Wei Dou Shu reading: generate chart, interpret, analyze time dimensions, and provide domain-specific guidance. Minor gaps exist (e.g., no explicit wealth-specific tool, but `interpret_chart` covers wealth), but overall coverage is strong.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that provides accurate Chinese Ziwei Doushu astrology chart calculations and horoscope analysis, enabling AI assistants to generate personalized astrological readings through natural language queries.
    3
    9
    5
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for accurate Bazi calculations, enabling personality analysis, destiny forecasting, and Chinese calendar queries via AI agents.
    286
    ISC
  • A
    license
    Not graded
    quality
    F
    maintenance
    Zi Wei Dou Shu (Chinese astrology) charting MCP server. Generates complete ziwei natal charts and transit overlays (12 palaces, 14 major stars, sihua) from birth date and time, powered by FateStar's reversible charting engine.
    23
    MIT

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/ziwei-mcp'

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