Shirabe Calendar API
譌・譛ャ縺ョ證ヲ諠・ア・亥・譖懊・證ヲ豕ィ繝サ蟷イ謾ッ繝サ莠悟香蝗帷ッ豌暦シ峨→逕ィ騾泌挨蜷牙・蛻、螳壹r霑斐☆ REST API + MCP 繧オ繝シ繝舌・縲・ AI繧ィ繝シ繧ク繧ァ繝ウ繝茨シ・laude縲,hatGPT 遲会シ峨′逶エ謗・蜻シ縺ウ蜃コ縺帙k MCP 蟇セ蠢懊→縲√さ繝ウ繝・く繧ケ繝井サ倥″繝ャ繧ケ繝昴Φ繧ケ縺檎音髟キ縺ァ縺吶・
繧ッ繧、繝・け繧ケ繧ソ繝シ繝・
1. API繧ュ繝シ繧貞叙蠕・
shirabe.dev 縺ァ繧「繧ォ繧ヲ繝ウ繝医r菴懈・縺励、PI繧ュ繝シ繧貞叙蠕励@縺ヲ縺上□縺輔>・・ree 繝励Λ繝ウ縺ッ譛・,000繝ェ繧ッ繧ィ繧ケ繝医∪縺ァ辟。譁呻シ峨・
2. API繧貞他縺ウ蜃コ縺・
# 謖・ョ壽律縺ョ證ヲ諠・ア繧貞叙蠕・curl -H "X-API-Key: shrb_your_api_key" \
"https://api.shirabe.dev/api/v1/calendar/2026-11-15"
# 邨仙ゥ壼シ上↓譛驕ゥ縺ェ譌・繧呈、懃エ「
curl -H "X-API-Key: shrb_your_api_key" \
"https://api.shirabe.dev/api/v1/calendar/best-days?purpose=wedding&start=2026-11-01&end=2027-03-31&limit=5"
# 譌・莉倡ッ・峇縺ョ螟ァ螳峨r荳諡ャ蜿門セ・curl -H "X-API-Key: shrb_your_api_key" \
"https://api.shirabe.dev/api/v1/calendar/range?start=2026-11-01&end=2026-11-30&filter_rokuyo=螟ァ螳・
3. MCP 縺ァ菴ソ縺・シ・laude Desktop・・
譁ケ豕・A: npm 繝代ャ繧ア繝シ繧ク・域耳螂ィ・・
npm install -g @shirabe-api/calendar-mcp
claude_desktop_config.json 縺ォ莉・荳九r霑ス蜉:
{
"mcpServers": {
"shirabe-calendar": {
"command": "npx",
"args": ["-y", "@shirabe-api/calendar-mcp"],
"env": {
"SHIRABE_API_KEY": "shrb_your_api_key"
}
}
}
}
譁ケ豕・B: 繝ェ繝「繝シ繝・MCP 繧オ繝シ繝舌・・・RL 逶エ謗・謖・ョ夲シ・
Streamable HTTP 蟇セ蠢懊・繧ッ繝ゥ繧、繧「繝ウ繝医〒縺ッ URL 繧堤峩謗・謖・ョ壹〒縺阪∪縺・
{
"mcpServers": {
"shirabe-calendar": {
"url": "https://shirabe.dev/mcp"
}
}
}
險ュ螳壼セ後,laude 縺ォ縲梧・譌・縺ョ蜈ュ譖懊・・溘阪梧擂譛医・邨仙ゥ壼シ上↓譛驕ゥ縺ェ譌・縺ッ・溘阪→閨槭¥縺縺代〒證ヲ諠・ア繧貞叙蠕励〒縺阪∪縺吶・
API 繧ィ繝ウ繝峨・繧、繝ウ繝・
GET /api/v1/calendar/{date}
謖・ョ壽律縺ョ證ヲ諠・ア繧偵☆縺ケ縺ヲ霑斐@縺セ縺吶・
| 繝代Λ繝。繝シ繧ソ | 蝙・ | 蠢・・ | 隱ャ譏・ |
|---|---|---|---|
date | path (YYYY-MM-DD) | Yes | 蟇セ雎。譌・莉・ |
categories | query (繧ォ繝ウ繝槫玄蛻・j) | No | 蜷牙・蛻、螳壹き繝・ざ繝ェ・育怐逡・譎ゅ・蜈ィ繧ォ繝・ざ繝ェ・・ |
lang | query | No | ja・医ョ繝輔か繝ォ繝茨シ峨∪縺溘・ en |
GET /api/v1/calendar/range
譌・莉倡ッ・峇縺ョ證ヲ諠・ア繧剃ク諡ャ蜿門セ励@縺セ縺吶・
| 繝代Λ繝。繝シ繧ソ | 蝙・ | 蠢・・ | 隱ャ譏・ |
|---|---|---|---|
start | query (YYYY-MM-DD) | Yes | 髢句ァ区律 |
end | query (YYYY-MM-DD) | Yes | 邨ゆコ・律・域怙螟ァ93譌・髢難シ・ |
filter_rokuyo | query | No | 蜈ュ譖懊ヵ繧」繝ォ繧ソ・井セ・ `螟ァ螳荏・・ |
filter_rekichu | query | No | 證ヲ豕ィ繝輔ぅ繝ォ繧ソ・井セ・ 螟ゥ襍ヲ譌・・・ |
category | query | No | 繧ォ繝・ざ繝ェ繝輔ぅ繝ォ繧ソ・井セ・ wedding・・ |
min_score | query | No | 譛菴弱せ繧ウ繧「・・縲・0・・ |
GET /api/v1/calendar/best-days
謖・ョ夂畑騾斐↓譛驕ゥ縺ェ譌・繧偵Λ繝ウ繧ュ繝ウ繧ー縺ァ霑斐@縺セ縺吶・
| 繝代Λ繝。繝シ繧ソ | 蝙・ | 蠢・・ | 隱ャ譏・ |
|---|---|---|---|
purpose | query | Yes | 逕ィ騾費シ・wedding/funeral/moving/construction/business/car_delivery/marriage_registration/travel`・・ |
start | query (YYYY-MM-DD) | Yes | 髢句ァ区律 |
end | query (YYYY-MM-DD) | Yes | 邨ゆコ・律・域怙螟ァ365譌・髢難シ・ |
limit | query | No | 霑斐☆莉カ謨ー・医ョ繝輔か繝ォ繝・縲∵怙螟ァ20・・ |
exclude_weekdays | query | No | 髯、螟匁屆譌・・井セ・ 譛・轣ォ・・ |
GET /health
繝倥Ν繧ケ繝√ぉ繝・け縲りェ崎ィシ荳崎ヲ√・
繝ャ繧ケ繝昴Φ繧ケ萓・
蜊俶律蜿門セ・
{
"date": "2026-11-15",
"wareki": "莉、蜥・蟷エ11譛・5譌・",
"day_of_week": {
"ja": "譌・譖懈律",
"en": "Sunday"
},
"kyureki": {
"year": 2026,
"month": 10,
"day": 1,
"is_leap_month": false,
"month_name": "逾樒┌譛・
},
"rokuyo": {
"name": "螟ァ螳・,
"reading": "縺溘>縺ゅs",
"description": "邨よ律蜷峨ゆク・コ九↓濶ッ縺・律",
"time_slots": {
"morning": "蜷・,
"noon": "蜷・,
"afternoon": "蜷・,
"evening": "蜷・
}
},
"kanshi": {
"full": "荳呵セー",
"jikkan": "荳・,
"junishi": "霎ー",
"junishi_animal": {
"ja": "鮴・,
"en": "Dragon"
}
},
"nijushi_sekki": {
"name": "遶句・",
"reading": "繧翫▲縺ィ縺・,
"description": "蜀ャ縺ョ蟋九∪繧翫ょ・縺ョ豌鈴・縺檎ォ九■蟋九a繧矩・,
"is_today": false
},
"rekichu": [
{
"name": "荳邊剃ク・肴律",
"reading": "縺・■繧翫e縺・∪繧薙・縺・・",
"description": "蟋九a縺溘%縺ィ縺御ク・阪↓閹ィ繧峨・蜷画律縲る幕讌ュ繝サ蜈・邀阪・遞ョ縺セ縺阪↓譛驕ゥ",
"type": "蜷・
}
],
"context": {
"邨仙ゥ・: {
"judgment": "螟ァ蜷・,
"note": "螟ァ螳峨→荳邊剃ク・肴律縺碁㍾縺ェ繧区怙濶ッ縺ョ譌・縲らオよ律蜷峨・縺溘a譎る俣蟶ッ縺ョ蛻カ邏・b縺ェ縺・,
"score": 10
}
},
"summary": "螟ァ螳峨→荳邊剃ク・肴律縺碁㍾縺ェ繧句、ァ螟臥ク∬オキ縺ョ濶ッ縺・律縺ァ縺吶らオ仙ゥ壼シ上・蜈・邀阪・髢区・ュ縺ェ縺ゥ縲∵眠縺励>縺薙→繧貞ァ九a繧九・縺ォ譛驕ゥ縺ァ縺吶・
}
MCP 繝・・繝ォ
Shirabe Calendar API 縺ッ莉・荳九・3縺、縺ョ MCP 繝・・繝ォ繧貞・髢九@縺ヲ縺・∪縺吶・
| 繝・・繝ォ蜷・ | 隱ャ譏・ |
|---|---|
get_japanese_calendar | 謖・ョ壽律縺ョ證ヲ諠・ア・亥・譖懊・證ヲ豕ィ繝サ蟷イ謾ッ繝サ莠悟香蝗帷ッ豌暦シ峨→蜷牙・蛻、螳壹r蜿門セ・ |
find_best_days | 謖・ョ夂畑騾斐↓譛驕ゥ縺ェ譌・繧呈悄髢灘・縺九i讀懃エ「縺励※繝ゥ繝ウ繧ュ繝ウ繧ー縺ァ霑斐☆ |
get_calendar_range | 譌・莉倡ッ・峇縺ョ證ヲ諠・ア繧剃ク諡ャ蜿門セ暦シ亥・譖懊・證ヲ豕ィ縺ァ繝輔ぅ繝ォ繧ソ蜿ッ閭ス・・ |
譁咎≡繝励Λ繝ウ
| 繝励Λ繝ウ | 蜊倅セ。 | 繝ェ繧ッ繧ィ繧ケ繝・譛・ | 繝ャ繝シ繝亥宛髯・ |
|---|---|---|---|
| Free | 辟。譁呻シ域怦1,000蝗槭∪縺ァ・・ | 1,000 | 1 req/s |
| Starter | 1蜀・蝗橸シ域怦1,000蝗槭∪縺ァ辟。譁呻シ・ | 50,000 | 10 req/s |
| Pro | 1蜀・蝗橸シ域怦1,000蝗槭∪縺ァ辟。譁呻シ・ | 500,000 | 50 req/s |
| Enterprise | 1蜀・蝗橸シ域怦1,000蝗槭∪縺ァ辟。譁呻シ・ | 辟。蛻カ髯・ | 100 req/s |
繝励Λ繝ウ髢薙・蟾ョ蛻・蛹悶・縲梧怦髢薙Μ繧ッ繧ィ繧ケ繝井ク企剞縲阪→縲後Ξ繝シ繝亥宛髯舌阪〒陦後>縺セ縺吶・
隱崎ィシ
縺吶∋縺ヲ縺ョ API 繝ェ繧ッ繧ィ繧ケ繝医↓ X-API-Key 繝倥ャ繝繝シ縺悟ソ・ヲ√〒縺呻シ・/health` 繧帝勁縺擾シ峨・
X-API-Key: shrb_a1b2c3d4e5f6...
繝ャ繧ケ繝昴Φ繧ケ繝倥ャ繝繝シ縺ォ繝ャ繝シ繝亥宛髯先ュ蝣ア縺悟性縺セ繧後∪縺・
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 847
X-RateLimit-Reset: 2026-05-01T00:00:00Z
繧ィ繝ゥ繝シ繝ャ繧ケ繝昴Φ繧ケ
{
"error": {
"code": "INVALID_DATE",
"message": "Date must be in YYYY-MM-DD format and between 1873-01-01 and 2100-12-31",
"details": { "received": "2026-13-01" }
}
}
| 繧ケ繝・・繧ソ繧ケ | 繧ウ繝シ繝・ | 隱ャ譏・ |
|---|---|---|
| 400 | INVALID_DATE | 譌・莉伜ス「蠑上′荳肴ュ」縲√∪縺溘・遽・峇螟・ |
| 401 | INVALID_API_KEY | API繧ュ繝シ縺檎┌蜉ケ縺セ縺溘・譛ェ謖・ョ・ |
| 429 | RATE_LIMIT_EXCEEDED | 繝ャ繝シ繝亥宛髯占カ・℃ |
| 500 | INTERNAL_ERROR | 繧オ繝シ繝舌・蜀・Κ繧ィ繝ゥ繝シ |
謚陦薙せ繧ソ繝・け
- 繝ゥ繝ウ繧ソ繧、繝: Cloudflare Workers
- 繝輔Ξ繝シ繝繝ッ繝シ繧ッ: Hono
- **險隱・*: TypeScript (strict mode)
- MCP SDK: @modelcontextprotocol/sdk
- **隱イ驥・*: Stripe Billing
- KV: Cloudflare KV
- **繝・せ繝・*: Vitest・・71繝・せ繝茨シ・
繝ュ繝シ繧ォ繝ォ髢狗匱
# 萓晏ュ倬未菫ゅう繝ウ繧ケ繝医・繝ォ
pnpm install
# 髢狗匱繧オ繝シ繝舌・襍キ蜍・pnpm run dev
# 繝・せ繝亥ョ溯。・pnpm run test
# 蝙九メ繧ァ繝・け
pnpm run typecheck
# npm 繝代ャ繧ア繝シ繧ク逕ィ CLI 繝薙Ν繝・pnpm run build:cli
繝ゥ繧、繧サ繝ウ繧ケ
Proprietary. All rights reserved.
MCP 繧ッ繝ゥ繧、繧「繝ウ繝磯」謳コ縺ョ繧オ繝ウ繝励Ν繧ウ繝シ繝峨・ MIT 繝ゥ繧、繧サ繝ウ繧ケ縺ァ謠蝉セ帙@縺セ縺吶・