Intentions MCP Server

Personalized timing intelligence for AI agents — ask 'should I do X on this date?'

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
90%
이름 품질
80%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,561토큰 (도구 정의)
~2.3 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 2.00%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "intentions-mcp": {
      "url": "https://mcp.intentions.me/mcp"
    }
  }
}

원격 엔드포인트

https://mcp.intentions.me/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (7)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢intentions_ask_day(question, targetDate, compareDates, dateRange, category, ...)

Call when the user asks about timing a decision for a specific date, or wants to pick the best day from a multi-day window. Covers trip dates, launch days, interview/meeting days, publish/send dates, travel, negotiation windows, relationship moments — any "when to X" question where the answer is a date ("should I X on April 23", "best day this month to Y", "下周四怎么样"). Modes: single date, compare up to 5 dates, or scan a range up to 31 days. Returns score (0-100), verdict, per-layer year/month/day breakdown (alerts + dimension signals), element breakdown, adverse alerts. For multi-month windows use `intentions_ask_month`; for hour precision use `intentions_ask_hour`.

입력 스키마

{
  "type": "object",
  "properties": {
    "question": {
      "type": "string",
      "description": "The decision or action being considered"
    },
    "targetDate": {
      "type": "string",
      "description": "YYYY-MM-DD. Default: today"
    },
    "compareDates": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 4,
      "description": "Up to 4 additional YYYY-MM-DD dates to compare against targetDate"
    },
    "dateRange": {
      "type": "object",
      "properties": {
        "start": {
          "type": "string"
        },
        "end": {
          "type": "string"
        }
      },
      "description": "Find best dates in range. Max 31 days — use ask_month for longer windows."
    },
    "category": {
      "type": "string",
      "enum": [
        "career",
        "relationship",
        "health",
        "finance",
        "travel",
        "general"
      ],
      "description": "Decision domain — tunes the analysis weighting. Default: general."
    },
    "birthInfo": {
      "type": "object",
      "description": "Optional override. If provided, all 6 fields required: { year, month, day, hour, minute, gender } — use null for unknown hour/minute/gender. Omit entirely to use the stored profile."
    }
  },
  "required": [
    "question"
  ]
}
🟢intentions_ask_hour(question, targetDate, targetHour, compareHours, bestInDay, ...)

Call when the user asks about timing within a specific day — best hour to act, morning vs afternoon, when during the day ("best time today to X", "morning or afternoon for Y", "几点去见面好"). Use for interview slots, meeting times, send/publish times, departure times, workout windows. Pro subscription required; on the free tier this returns a `subscription_required` error whose payload suggests `intentions_ask_day` for day-level analysis or `intentions_energy_chart` with period `weekly` / `yearly` for a visual overview (the caller LLM decides whether to retry). Modes: single (date+hour), compare up to 5 hour-pairs, or scan all 12 two-hour blocks of one day. Accepts any clock hour 0..23; internally mapped to the containing 2-hour block midpoint (0/2/4/…/22). 23:00–23:59 automatically rolls the effective day forward by one. Every output entry includes a `window { start, end }` local wall-clock span (`YYYY-MM-DDTHH:MM`, no timezone offset — interpret in the same frame as the input hour). Always cite this when presenting the time. Returns score, verdict, adverse alerts.

입력 스키마

{
  "type": "object",
  "properties": {
    "question": {
      "type": "string",
      "description": "The decision or action being considered"
    },
    "targetDate": {
      "type": "string",
      "description": "YYYY-MM-DD. Default: today (single mode only)"
    },
    "targetHour": {
      "type": "integer",
      "minimum": 0,
      "maximum": 23,
      "description": "Clock hour 0..23. Auto-rounded to the containing 2-hour block. 23:XX rolls the effective day forward by one."
    },
    "compareHours": {
      "type": "array",
      "maxItems": 4,
      "items": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string"
          },
          "hour": {
            "type": "integer",
            "minimum": 0,
            "maximum": 23
          }
        },
        "required": [
          "date",
          "hour"
        ]
      },
      "description": "Up to 4 additional (date, clock-hour 0..23) pairs to compare against targetDate+targetHour. Pairs that resolve to the same 2-hour block (e.g. hours 7 and 8 on the same date) are deduplicated — submit distinct blocks if you want distinct results."
    },
    "bestInDay": {
      "type": "object",
      "properties": {
        "date": {
          "type": "string"
        },
        "top": {
          "type": "integer",
          "minimum": 1,
          "maximum": 12,
          "description": "Number of top hours to return (default 5)"
        }
      },
      "required": [
        "date"
      ],
      "description": "Find best hours within a single day. Each entry carries an explicit `window` span."
    },
    "category": {
      "type": "string",
      "enum": [
        "career",
        "relationship",
        "health",
        "finance",
        "travel",
        "general"
      ],
      "description": "Decision domain — tunes the analysis weighting. Default: general."
    },
    "birthInfo": {
      "type": "object",
      "description": "Optional override. If provided, all 6 fields required: { year, month, day, hour, minute, gender } — use null for unknown hour/minute/gender. Omit entirely to use the stored profile."
    }
  },
  "required": [
    "question"
  ]
}
🟢intentions_ask_year(question, targetYear, category, birthInfo)

Call when the user asks about a full calendar year as a whole ("how is 2026", "今年怎么样", "what's next year like overall"). Returns year-level score, verdict, adverse alerts, and element dimensions. For month precision use `intentions_ask_month`; for day use `intentions_ask_day`. Window: currentYear-1 to currentYear+1 only.

입력 스키마

{
  "type": "object",
  "properties": {
    "question": {
      "type": "string",
      "description": "The decision or action being considered"
    },
    "targetYear": {
      "type": "integer",
      "description": "YYYY. Default: current year. Allowed: currentYear-1 .. currentYear+1."
    },
    "category": {
      "type": "string",
      "enum": [
        "career",
        "relationship",
        "health",
        "finance",
        "travel",
        "general"
      ],
      "description": "Decision domain — tunes the analysis weighting. Default: general."
    },
    "birthInfo": {
      "type": "object",
      "description": "Optional override. If provided, all 6 fields required: { year, month, day, hour, minute, gender } — use null for unknown hour/minute/gender. Omit entirely to use the stored profile."
    }
  },
  "required": [
    "question"
  ]
}
🟢intentions_ask_month(question, targetMonth, compareMonths, monthRange, category, ...)

Call when the user asks at month granularity or wants the best month from a multi-month window ("how is next month", "best month in 2026 to X", "下个月适合吗"). Use for trip-month selection, launch months, content-calendar planning, quarterly/annual decisions. Modes: single month, compare up to 5 months, or scan up to 12 months (returns top 5). Returns month score, element breakdown, adverse alerts. For day precision near the 4th–6th of a month use `intentions_ask_day`; for hour precision use `intentions_ask_hour`.

입력 스키마

{
  "type": "object",
  "properties": {
    "question": {
      "type": "string",
      "description": "The decision or action being considered"
    },
    "targetMonth": {
      "type": "string",
      "description": "YYYY-MM. Default: current month"
    },
    "compareMonths": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 4,
      "description": "Up to 4 additional YYYY-MM months to compare against targetMonth"
    },
    "monthRange": {
      "type": "object",
      "properties": {
        "start": {
          "type": "string"
        },
        "end": {
          "type": "string"
        }
      },
      "description": "Find best months in range. Max 12 months. Inclusive on both ends."
    },
    "category": {
      "type": "string",
      "enum": [
        "career",
        "relationship",
        "health",
        "finance",
        "travel",
        "general"
      ],
      "description": "Decision domain — tunes the analysis weighting. Default: general."
    },
    "birthInfo": {
      "type": "object",
      "description": "Optional override. If provided, all 6 fields required: { year, month, day, hour, minute, gender } — use null for unknown hour/minute/gender. Omit entirely to use the stored profile."
    }
  },
  "required": [
    "question"
  ]
}
🟢intentions_energy_chart(period, date, birthInfo)

Call when the user wants a visual overview rather than a narrative answer ("show me this week", "chart for today", "next 12 months", "看一下图"). Returns an ASCII chart: `hourly` = 12 two-hour blocks of one day, `weekly` = 7 days, `yearly` = 12 months. The `hourly` mode emits the same hour-resolution scores as `intentions_ask_hour` and is gated behind the Pro subscription on the same terms — on the free tier it returns a `subscription_required` error whose payload suggests `weekly` / `yearly` chart modes or `intentions_ask_day` as alternatives. `weekly` and `yearly` are always free.

입력 스키마

{
  "type": "object",
  "properties": {
    "period": {
      "type": "string",
      "enum": [
        "hourly",
        "weekly",
        "yearly"
      ],
      "description": "Which chart to render: `hourly` = 12 two-hour blocks of one day (Pro-gated), `weekly` = 7 days, `yearly` = 12 months."
    },
    "date": {
      "type": "string",
      "description": "YYYY-MM-DD. Default: today"
    },
    "birthInfo": {
      "type": "object",
      "description": "Optional override. If provided, all 6 fields required: { year, month, day, hour, minute, gender } — use null for unknown hour/minute/gender. Omit to use the stored profile."
    }
  },
  "required": [
    "period"
  ]
}
🟡intentions_set_birth_info(year, month, day, hour, minute, ...)

Call once to register the user's birth date/time/gender. Each call is a complete replacement — all 6 fields must be supplied. For fields the user does not know or prefers not to share, pass `null` explicitly (e.g. `hour: null` for unknown birth time, `gender: null` for unspecified). To update just one field, first call `intentions_get_profile` to fetch the current values, merge the user's new input, then call this tool with the full merged payload. Identity-changing edits (year/month/day/hour/gender) are limited to 3 per calendar month; adding precision (e.g. filling in a previously-null hour) is always free. Returns the element profile.

입력 스키마

{
  "type": "object",
  "properties": {
    "year": {
      "type": "integer",
      "minimum": 1920,
      "maximum": 2030,
      "description": "Birth year, 1920–2030."
    },
    "month": {
      "type": "integer",
      "minimum": 1,
      "maximum": 12,
      "description": "Birth month, 1–12."
    },
    "day": {
      "type": "integer",
      "minimum": 1,
      "maximum": 31,
      "description": "Birth day of month, 1–31."
    },
    "hour": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0,
      "maximum": 23,
      "description": "null if unknown"
    },
    "minute": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0,
      "maximum": 59,
      "description": "null if unknown; requires hour to also be non-null"
    },
    "gender": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "M",
        "F",
        null
      ],
      "description": "null if unspecified"
    }
  },
  "required": [
    "year",
    "month",
    "day",
    "hour",
    "minute",
    "gender"
  ]
}
🟢intentions_get_profile

Fetch the user's currently stored birth info. Use this before `intentions_set_birth_info` when updating an existing profile so you can send back a complete merged payload. Returns { hasProfile, birthInfo: { year, month, day, hour, minute, gender } | null } where any unknown field (e.g. unknown hour) is returned as `null`. No quota cost.

입력 스키마

{
  "type": "object",
  "properties": {}
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 7개
검증됨버전이 기록되지 않음도구 7개