Skip to main content
Glama

get_daily_horoscope

Retrieve daily horoscope predictions for any zodiac sign, covering categories like love, career, health, wealth, or general luck.

Instructions

获取指定星座的今日运势

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
zodiacYes星座名称(中文或英文)
categoryNo运势类别luck

Implementation Reference

  • Schema definition for the get_daily_horoscope tool, including input parameters for zodiac (required) and optional category (love, career, health, wealth, luck).
    {
      name: 'get_daily_horoscope',
      description: '获取指定星座的今日运势',
      inputSchema: {
        type: 'object',
        properties: {
          zodiac: {
            type: 'string',
            description: '星座名称(中文或英文)',
            enum: Object.keys(zodiacData).concat(Object.values(zodiacData).map(z => z.name))
          },
          category: {
            type: 'string',
            description: '运势类别',
            enum: ['love', 'career', 'health', 'wealth', 'luck'],
            default: 'luck'
          }
        },
        required: ['zodiac']
      }
    },
  • The core handler implementation for get_daily_horoscope tool. It resolves the zodiac key, retrieves zodiac data, selects a random horoscope from the specified category (default 'luck'), maps category to Chinese name, and formats a markdown response with symbol, name, rating, horoscope text, and suggestions.
          case 'get_daily_horoscope': {
            const zodiacKey = getZodiacKey(args.zodiac);
            if (!zodiacKey) {
              throw new Error(`未找到星座: ${args.zodiac}`);
            }
            
            const zodiac = zodiacData[zodiacKey];
            const category = args.category || 'luck';
            const horoscope = getRandomHoroscope(category);
            
            const categoryNames = {
              love: '爱情运',
              career: '事业运',
              health: '健康运',
              wealth: '财运',
              luck: '综合运势'
            };
            
            result = {
              content: [
                {
                  type: 'text',
                  text: `# ${zodiac.symbol} ${zodiac.name} 今日${categoryNames[category]}
    
    **运势指数:** ⭐⭐⭐⭐⭐
    
    **今日运势:**
    ${horoscope}
    
    **建议:**
    - 保持积极心态
    - 注意身体健康
    - 与朋友多交流
    - 把握机会,勇敢尝试`
                }
              ]
            };
            break;
          }
  • index.js:673-681 (registration)
    Registration of the tools list handler, which exposes get_daily_horoscope (among others) via the MCP tools/list endpoint.
    server.setRequestHandler(ListToolsRequestSchema, async () => {
      return {
        tools: tools.map(tool => ({
          name: tool.name,
          description: tool.description,
          inputSchema: tool.inputSchema
        }))
      };
    });
  • Data helper providing predefined horoscope messages for different categories (love, career, health, wealth, luck) used by get_daily_horoscope.
    const horoscopeData = {
      love: ['桃花运旺盛,单身者有机会遇到心仪对象', '感情稳定,与伴侣关系更加亲密', '需要多沟通,避免误解', '适合表白或求婚', '注意控制情绪,避免冲动'],
      career: ['工作顺利,有升职加薪的机会', '适合学习新技能,提升竞争力', '团队合作良好,项目进展顺利', '需要更加努力,克服困难', '保持耐心,等待时机'],
      health: ['身体状况良好,适合运动健身', '注意休息,避免过度劳累', '饮食要规律,多吃蔬果', '保持心情愉悦,减少压力', '定期体检,预防疾病'],
      wealth: ['财运不错,可能有意外收获', '投资需谨慎,避免冒险', '适合储蓄,为未来做准备', '避免冲动消费,理性理财', '合作项目有利可图'],
      luck: ['幸运指数高,适合尝试新事物', '贵人运旺,得到他人帮助', '保持积极心态,好运自然来', '避免冒险,稳中求进', '耐心等待,时机未到']
    };
  • Helper function to select a random horoscope message from the specified category, defaulting to 'luck'.
    function getRandomHoroscope(category) {
      const horoscopes = horoscopeData[category] || horoscopeData.luck;
      return horoscopes[Math.floor(Math.random() * horoscopes.length)];
    }
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 states the tool 'gets' data (implying a read-only operation) but doesn't mention any behavioral traits such as rate limits, authentication requirements, data freshness (e.g., how often horoscopes are updated), or what the return format looks like (since no output schema exists). This leaves significant gaps for a tool that fetches dynamic content.

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, efficient sentence in Chinese that directly states the tool's purpose without any wasted words. It is front-loaded with the core action and resource, making it easy to parse quickly. Every element ('获取', '指定星座', '今日运势') contributes essential information.

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 lack of annotations and output schema, the description is incomplete for a tool that fetches dynamic data like horoscopes. It doesn't explain what the return value includes (e.g., text description, scores, dates), how errors are handled, or any limitations (e.g., only supports specific languages or update frequencies). For a 2-parameter tool with no structured behavioral hints, this leaves the agent with insufficient 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 description coverage is 100%, with both parameters (zodiac and category) well-documented in the schema, including enums and a default value for category. The description adds no additional parameter semantics beyond implying the zodiac parameter is required ('指定星座'). Baseline score of 3 is appropriate since 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 action ('获取' meaning 'get') and resource ('今日运势' meaning 'today's horoscope') with a specific scope ('指定星座' meaning 'specified zodiac'). It distinguishes from siblings like get_all_zodiacs (which lists zodiacs) and get_zodiac_info (which provides zodiac information rather than horoscopes). However, it doesn't explicitly mention the optional category parameter, which slightly limits differentiation.

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 context by specifying '今日运势' (today's horoscope), suggesting it's for current daily readings rather than historical or compatibility data. However, it doesn't provide explicit guidance on when to use this tool versus alternatives like get_compatibility (for relationship insights) or get_zodiac_by_date (for zodiac lookup by date). No exclusions or prerequisites are mentioned.

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/jlankellii/star-mcp'

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