freee-mcp
freeeäŒèšã人äºåŽåãè«æ±æžãå·¥æ°ç®¡çã販売ãIT管çããµã€ã³ïŒé»åå¥çŽïŒã AI Agent ããæäœã§ããããã«ãã freee å ¬åŒã® MCP ãµãŒããŒãš Agent Skills ã§ãã
- MCP ãµãŒããŒ: freee API ã®åŒã³åºãã»èªèšŒã»ãªã¯ãšã¹ãæ€èšŒãæ åœ
- Agent Skills: API ãªãã¡ã¬ã³ã¹ãšæäœã¬ã·ãã AI Agent ã®ã³ã³ããã¹ãã«æ³šå ¥ããæ£ç¢ºãª API å©çšãã¬ã€ã
ç¹åŸŽ
- è€æ° API 察å¿: äŒèšã»äººäºåŽåã»è«æ±æžã»å·¥æ°ç®¡çã»è²©å£²ã»IT管çã®6ã€ã® freee API ããµããŒã
- ãµã€ã³ïŒé»åå¥çŽïŒå¯Ÿå¿: freee ãµã€ã³ã®ææžç®¡ç API ãå°çšã³ãã³ãïŒ
freee-sign-mcpïŒã§ãµããŒã - OAuth 2.0 + PKCE: ã»ãã¥ã¢ãªèªèšŒãããŒãããŒã¯ã³èªåæŽæ°
- è€æ°äºæ¥æå¯Ÿå¿: äºæ¥æã®åçåãæ¿ããå¯èœ
Agent Skills ãš MCP ã®éä¿¡ã®æµã
Agent SkillsïŒAPI ãªãã¡ã¬ã³ã¹ã»æäœã¬ã·ãïŒãš MCP ãµãŒããŒïŒAPI åŒã³åºãïŒãçµã¿åãããŠå©çšããŸãã
sequenceDiagram
participant User as ãŠãŒã¶ãŒ
participant Agent as AI Agent
participant Skill as Agent Skills<br/>(API ãªãã¡ã¬ã³ã¹ã»æäœã¬ã·ã)
participant MCP as MCP ãµãŒããŒ
participant API as freee API
User->>Agent: ãªã¯ãšã¹ã<br/>ãååŒäžèЧãååŸããŠã
Note over Agent,Skill: 1. Agent Skills ãããªãã¡ã¬ã³ã¹ãååŸ
Agent->>Skill: freee-api-skill åŒã³åºã
Skill-->>Agent: API ãªãã¡ã¬ã³ã¹æ³šå
¥<br/>(ãšã³ããã€ã³ãããã©ã¡ãŒã¿ä»æ§)
Note over Agent,MCP: 2. MCP Tool ã§ API ãå®è¡
Agent->>MCP: freee_api_get åŒã³åºã<br/>path: /api/1/deals
MCP->>MCP: OpenAPI ã¹ããŒãã§æ€èšŒ
MCP->>MCP: èªèšŒããŒã¯ã³ä»äž
Note over MCP,API: 3. freee API ãžã®éä¿¡
MCP->>API: GET /api/1/deals<br/>Authorization: Bearer xxx
API-->>MCP: JSON ã¬ã¹ãã³ã¹
MCP-->>Agent: ååŒããŒã¿
Agent-->>User: çµæãæŽåœ¢ããŠè¡šç€º
ãã®ä»çµã¿ã«ããïŒ
- Agent Skills: å¿ èŠãª API ãªãã¡ã¬ã³ã¹ãæäœã¬ã·ããæ®µéçã«ã³ã³ããã¹ãã«æ³šå ¥ïŒã³ã³ããã¹ãå¹çåïŒ
- MCP: èªèšŒã»ãªã¯ãšã¹ãæ€èšŒã»API åŒã³åºããæ åœ
ã¯ã€ãã¯ã¹ã¿ãŒã
æ¹æ³ 1: Remote MCP ã§æ¥ç¶ããïŒæšå¥šïŒ
freee ãæäŸãã Remote MCP ãµãŒããŒã«æ¥ç¶ããæ¹æ³ã§ããããŒã«ã«ã§ã®ã»ããã¢ãããäžèŠã§ãããã«å©çšãéå§ã§ããŸãã
Claude åã³ Claude Desktop ã§ã¯ãã«ã¹ã¿ãã€ãºããããã«ã¹ã¿ã ã³ãã¯ã¿ã远å ããéãã以äžãèšå®ããŠãã ããã
- åå:
freee - URL:
https://mcp.freee.co.jp/mcp
<img src="docs/images/claude-desktop-custom-connector.png" width="600" alt="Claude Desktop ã§ã«ã¹ã¿ã ã³ãã¯ã¿ã远å ">â ïž freee å ¬åŒä»¥å€ã® URL ãå ¥åããªãããã«ã泚æãã ããã
ãã®ä»ã® AI ããŒã«ã§ã¯ãããããã®æ¡å ã«åŸã£ãŠ Remote MCP ãµãŒããŒã远å ããŠãã ããã
æ¹æ³ 2: ããŒã«ã«ã§ MCP ãµãŒããŒãèµ·åãã
freee ã¢ããªã±ãŒã·ã§ã³ãèªåã§ç»é²ããããŒã«ã«ã§ MCP ãµãŒããŒãèµ·åããæ¹æ³ã§ãã
2-1. freee ã¢ããªã±ãŒã·ã§ã³ã®ç»é²
freee ã¢ããªã¹ãã¢ ã§æ°ããã¢ããªãäœæ:
- ã³ãŒã«ããã¯URL:
http://127.0.0.1:54321/callback - Client ID ãš Client Secret ãååŸ
- å¿ èŠãªæš©éã«ãã§ãã¯
2-2. ã»ããã¢ãã
npx freee-mcp configure
察話åŒãŠã£ã¶ãŒããèªèšŒæ å ±ã®èšå®ãOAuthèªèšŒãäºæ¥æéžæãè¡ããŸãã
2-3. Claude Desktop ã«è¿œå
configure ãåºåããèšå®ã Claude Desktop ã®èšå®ãã¡ã€ã«ã«è¿œå :
{
"mcpServers": {
"freee": {
"command": "npx",
"args": ["freee-mcp"]
}
}
}
Windows Store (Microsoft Store) çã® Claude Desktop ããå©çšã®å Žåãèšå®ãã¡ã€ã«ã®ãã¹ãç°ãªããŸããfreee-mcp configure ã¯èªåçã«é©åãªãã¹ãæ€åºããŸãã
Agent Skills ãã€ã³ã¹ããŒã«ãã
Claude åã³ Claude Desktop ã§ã¯ãã«ã¹ã¿ãã€ãºããããã¹ãã«ããéããææ°ã® freee-api-skill.zip ãããŠã³ããŒãããŠã¢ããããŒãããŠãã ããã
- ææ°çãããŠã³ããŒã (freee-api-skill.zip)
- ããŒãžã§ã³å±¥æŽããéžã¶: Releases ããŒãž
Claude Code çã®ã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãïŒCursor, OpenCode ãªã©ïŒã§ã¯ãskills ã§ã€ã³ã¹ããŒã«ã§ããŸãã
npx skills add freee/freee-mcp
ã°ããŒãã«ã€ã³ã¹ããŒã«(-g)ãç¹å®ã¹ãã«ã®ã¿ã®ã€ã³ã¹ããŒã«(-s)ãå¯èœã§ãã
GitHub CLIïŒv2.90.0 以éïŒã® gh skill ã³ãã³ããããã€ã³ã¹ããŒã«ã§ããŸãã
gh skill install freee/freee-mcp freee-api-skill
--agentïŒäŸ: claude-code, copilot, cursor, codex, gemini-cliïŒã --scope userïŒ--scope project ã®æå®ã--pin ã«ããç¹å®ã¿ã°/ã³ããããžã®åºå®ã«ã察å¿ããŠããŸãã
Agent Package Manager (APM) ãå©çšããŠããå Žåã¯ã以äžã®ã³ãã³ãã§ãã€ã³ã¹ããŒã«ã§ããŸããGitHub Copilot / Claude Code / Cursor / OpenCode / Codex ãªã©ããããžã§ã¯ãã«ååšãã察象ãã£ã¬ã¯ããªã«èªåã§ãããã€ãããŸãã
apm install freee/freee-mcp/skills/freee-api-skill
Claude Code Plugin ãšããŠäœ¿ã
Claude Code ã§ãã©ã°ã€ã³ãšããŠã€ã³ã¹ããŒã«ãããšãMCP ãµãŒããŒãš Agent SkillsïŒAPI ãªãã¡ã¬ã³ã¹ã»æäœã¬ã·ãïŒããŸãšããŠå©çšã§ããŸãã
以äžã®2ã€ã®ã³ãã³ããé ã«å®è¡ããŠãã ãã:
claude plugin marketplace add freee/freee-mcp
claude plugin install freee-mcp@freee-mcp-marketplace
Claude Code ã®ããã³ããå ãããå®è¡ã§ããŸã:
/plugin marketplace add freee/freee-mcp
/plugin install freee-mcp@freee-mcp-marketplace
Codex Plugin ãšããŠäœ¿ã
OpenAI Codex ã®ãã©ã°ã€ã³ããŒã±ãããã¬ãŒã¹ïŒå ¬åŒããã¥ã¡ã³ãïŒã«ã察å¿ããŠãããMCP ãµãŒããŒãš Agent SkillsïŒAPI ãªãã¡ã¬ã³ã¹ã»æäœã¬ã·ãïŒããŸãšããŠå©çšã§ããŸãã
Codex CLI ããããŒã±ãããã¬ãŒã¹ã远å ããŸã:
codex plugin marketplace add freee/freee-mcp
ãã®åŸ Codex ãèµ·åãã/plugins ã¹ã©ãã·ã¥ã³ãã³ãã§ãã©ã°ã€ã³äžèЧãéããfreee-mcp ãéžæã㊠Install plugin ãå®è¡ããŠãã ããã
ãã©ã°ã€ã³å®çŸ©ã¯ .codex-plugin/plugin.jsonãããŒã±ãããã¬ãŒã¹ã«ã¿ãã°ã¯ .agents/plugins/marketplace.json ã«ãããŸãã
Agent Skills ã®å 容
| API | å 容 | ãã¡ã€ã«æ° |
|---|---|---|
| äŒèš | ååŒãåå®ç§ç®ãååŒå ãè«æ±æžãçµè²»ç³è«ãªã© | 32 |
| 人äºåŽå | åŸæ¥å¡ã倿 ãçµŠäžæçŽ°ã幎æ«èª¿æŽãªã© | 28 |
| è«æ±æž | è«æ±æžãèŠç©æžãçŽåæž | 6 |
| å·¥æ°ç®¡ç | ãããžã§ã¯ããããŒã ãããŒãããŒãå·¥æ°ããŠãŒã¶ãŒãªã© | 7 |
| 販売 | æ¡ä»¶ãåæ³šããã¹ã¿ | 13 |
| IT管ç | ã¡ã³ããŒãSaaSã¢ã«ãŠã³ããåå | 4 |
| ãµã€ã³ | ææžããã©ã«ãããã³ãã¬ãŒãããã€å°éãªã© | 8 |
AI Agent ãšã®äŒè©±äžã« freee API ã®æäœãäŸé Œãããšããããã®ãªãã¡ã¬ã³ã¹ãã¬ã·ããåç §ããŠæ£ç¢ºã«å®è¡ããŸãã
ããŒã¿äœæã®ãã¹ããã©ã¯ãã£ã¹
è«æ±æžãçµè²»ç²Ÿç®ãªã©ãåã圢åŒã®ããŒã¿ãç¹°ãè¿ãäœæããå Žåã¯ã以åã«äœæããããŒã¿ãåç §ããããšã§å¹ççã«äœæ¥ã§ããŸãïŒ
- è«æ±æžäœæ: éå»ã®è«æ±æžãååŸããŠãååŒå ã»åç®ã»çšåºåãªã©ãåèã«ãã
- çµè²»ç²Ÿç®: éå»ã®ç³è«ãåç §ããŠãåå®ç§ç®ãéšéã®æå®ãæ£ç¢ºã«è¡ã
- ååŒç»é²: é¡äŒŒã®ååŒãåèã«ããŠãå ¥åãã¹ãé²ã
äŸ: ãå
æã®ââ瀟ãžã®è«æ±æžãåèã«ã仿åãäœæããŠã
å©çšå¯èœãªããŒã«
管çããŒã«
| ããŒã« | 説æ | åè |
|---|---|---|
freee_authenticate | OAuth èªèšŒãå®è¡ | stdio ã®ã¿ |
freee_auth_status | èªèšŒç¶æ ãç¢ºèª | |
freee_clear_auth | èªèšŒæ å ±ãã¯ãªã¢ | |
freee_set_current_company | äºæ¥æãåãæ¿ã | |
freee_get_current_company | çŸåšã®äºæ¥æã衚瀺 | |
freee_list_companies | äºæ¥æäžèЧãååŸ | |
freee_current_user | çŸåšã®ãŠãŒã¶ãŒæ å ± | |
freee_server_info | ãµãŒããŒæ å ±ååŸ | |
freee_file_upload | ãã¡ã€ã«ã¢ããããŒã | stdio ã®ã¿ |
API ããŒã«
HTTPã¡ãœããããšã®ã·ã³ãã«ãªããŒã«æ§æ:
| ããŒã« | 説æ | äŸ |
|---|---|---|
freee_api_get | ããŒã¿ååŸ | /api/1/deals |
freee_api_post | æ°èŠäœæ | /api/1/deals |
freee_api_put | æŽæ° | /api/1/deals/123 |
freee_api_delete | åé€ | /api/1/deals/123 |
freee_api_patch | éšåæŽæ° | /api/1/deals/123 |
freee_api_list_paths | ãšã³ããã€ã³ãäžèЧ | - |
ãã¹ã¯ OpenAPI ã¹ããŒãã«å¯ŸããŠèªåæ€èšŒãããŸãã
freee ãµã€ã³ïŒé»åå¥çŽïŒ
freee ãµã€ã³ã® API ã¯å°çšã³ãã³ã freee-sign-mcp ã§å©çšã§ããŸãã
Remote MCP ã§ã®æäŸã¯çŸåšæºåäžã§ããããŒã«ã«ã§ã® MCP ãµãŒããŒèµ·åã®ã¿ãµããŒãããŠããŸãã
ã»ããã¢ãã
npx --package=freee-mcp -- freee-sign-mcp configure
察話åŒãŠã£ã¶ãŒããèªèšŒæ å ±ã®èšå®ãš OAuth èªèšŒãè¡ããŸãã
MCP èšå®
{
"mcpServers": {
"freee-sign-mcp": {
"command": "npx",
"args": ["--package=freee-mcp", "--", "freee-sign-mcp"]
}
}
}
ãµã€ã³çšããŒã«
| ããŒã« | 説æ |
|---|---|
sign_authenticate | OAuth èªèšŒãå®è¡ |
sign_auth_status | èªèšŒç¶æ ãç¢ºèª |
sign_clear_auth | èªèšŒæ å ±ãã¯ãªã¢ |
sign_api_get | ããŒã¿ååŸ |
sign_api_post | æ°èŠäœæ |
sign_api_put | æŽæ° |
sign_api_patch | éšåæŽæ° |
sign_api_delete | åé€ |
company_id ã®åãæ±ã
ãªã¯ãšã¹ãïŒãã©ã¡ãŒã¿ãŸãã¯ããã£ïŒã« company_id ãå«ããå ŽåãçŸåšã®äºæ¥æãšäžèŽããŠããå¿
èŠããããŸããäžäžèŽã®å Žåã¯ãšã©ãŒã«ãªããŸãã
- äºæ¥æã®ç¢ºèª:
freee_get_current_company - äºæ¥æã®åãæ¿ã:
freee_set_current_company - company_id ãå«ãŸãªã APIïŒäŸ:
/api/1/companiesïŒã¯ãã®ãŸãŸå®è¡å¯èœ
ã³ã³ããªãã¥ãŒã·ã§ã³
詳ãã㯠CONTRIBUTING.md ãã芧ãã ããã
Contributors
<!-- CONTRIBUTORS-START --><a href="https://github.com/him0"><img src="https://github.com/him0.png" width="40" height="40" alt="@him0"></a> <a href="https://github.com/dais0n"><img src="https://github.com/dais0n.png" width="40" height="40" alt="@dais0n"></a> <a href="https://github.com/HikaruEgashira"><img src="https://github.com/HikaruEgashira.png" width="40" height="40" alt="@HikaruEgashira"></a> <a href="https://github.com/nakanoasaservice"><img src="https://github.com/nakanoasaservice.png" width="40" height="40" alt="@nakanoasaservice"></a> <a href="https://github.com/tackeyy"><img src="https://github.com/tackeyy.png" width="40" height="40" alt="@tackeyy"></a> <a href="https://github.com/worldscandy"><img src="https://github.com/worldscandy.png" width="40" height="40" alt="@worldscandy"></a> <a href="https://github.com/akhr77"><img src="https://github.com/akhr77.png" width="40" height="40" alt="@akhr77"></a> <a href="https://github.com/trpfrog"><img src="https://github.com/trpfrog.png" width="40" height="40" alt="@trpfrog"></a> <a href="https://github.com/hoshinotsuyoshi"><img src="https://github.com/hoshinotsuyoshi.png" width="40" height="40" alt="@hoshinotsuyoshi"></a> <a href="https://github.com/JeongJaeSoon"><img src="https://github.com/JeongJaeSoon.png" width="40" height="40" alt="@JeongJaeSoon"></a> <a href="https://github.com/norimura114"><img src="https://github.com/norimura114.png" width="40" height="40" alt="@norimura114"></a> <a href="https://github.com/akiras-ssrd"><img src="https://github.com/akiras-ssrd.png" width="40" height="40" alt="@akiras-ssrd"></a> <a href="https://github.com/inoue2002"><img src="https://github.com/inoue2002.png" width="40" height="40" alt="@inoue2002"></a> <a href="https://github.com/jacknocode"><img src="https://github.com/jacknocode.png" width="40" height="40" alt="@jacknocode"></a> <a href="https://github.com/tnj"><img src="https://github.com/tnj.png" width="40" height="40" alt="@tnj"></a> <a href="https://github.com/jaxx2104"><img src="https://github.com/jaxx2104.png" width="40" height="40" alt="@jaxx2104"></a> <a href="https://github.com/kbyk004"><img src="https://github.com/kbyk004.png" width="40" height="40" alt="@kbyk004"></a> <a href="https://github.com/k4200"><img src="https://github.com/k4200.png" width="40" height="40" alt="@k4200"></a> <a href="https://github.com/fukumayuta"><img src="https://github.com/fukumayuta.png" width="40" height="40" alt="@fukumayuta"></a> <a href="https://github.com/kenchan"><img src="https://github.com/kenchan.png" width="40" height="40" alt="@kenchan"></a> <a href="https://github.com/EijiSugiura"><img src="https://github.com/EijiSugiura.png" width="40" height="40" alt="@EijiSugiura"></a> <a href="https://github.com/ryuuuuma"><img src="https://github.com/ryuuuuma.png" width="40" height="40" alt="@ryuuuuma"></a> <a href="https://github.com/toyamagu-2021"><img src="https://github.com/toyamagu-2021.png" width="40" height="40" alt="@toyamagu-2021"></a> <a href="https://github.com/YasuakiOmokawa"><img src="https://github.com/YasuakiOmokawa.png" width="40" height="40" alt="@YasuakiOmokawa"></a> <a href="https://github.com/Ryosuke-Watanabe9"><img src="https://github.com/Ryosuke-Watanabe9.png" width="40" height="40" alt="@Ryosuke-Watanabe9"></a> <a href="https://github.com/Kitamura777"><img src="https://github.com/Kitamura777.png" width="40" height="40" alt="@Kitamura777"></a> <a href="https://github.com/yuyohi"><img src="https://github.com/yuyohi.png" width="40" height="40" alt="@yuyohi"></a> <a href="https://github.com/sakura20260508"><img src="https://github.com/sakura20260508.png" width="40" height="40" alt="@sakura20260508"></a> <a href="https://github.com/bxg06523-cell"><img src="https://github.com/bxg06523-cell.png" width="40" height="40" alt="@bxg06523-cell"></a> <a href="https://github.com/ryoya1122"><img src="https://github.com/ryoya1122.png" width="40" height="40" alt="@ryoya1122"></a> <a href="https://github.com/Kanahiro"><img src="https://github.com/Kanahiro.png" width="40" height="40" alt="@Kanahiro"></a> <a href="https://github.com/kagemeka"><img src="https://github.com/kagemeka.png" width="40" height="40" alt="@kagemeka"></a>
<!-- CONTRIBUTORS-END -->éçºè åã
git clone https://github.com/freee/freee-mcp.git
cd freee-mcp
bun install
bun run dev # éçºãµãŒããŒïŒãŠã©ããã¢ãŒãïŒ
bun run build # ãã«ã
bun run typecheck # åãã§ãã¯
bun run lint # ãªã³ã
bun run test:run # ãã¹ã
# API ãªãã¡ã¬ã³ã¹ã®åçæ
bun run generate:references
æè¡ã¹ã¿ãã¯
TypeScript / Model Context Protocol SDK / OAuth 2.0 + PKCE / Zod / Bun
ã¢ãŒããã¯ãã£è©³çް
ãããžã§ã¯ãã®ã¢ãŒããã¯ãã£ãå éšæ§é ãéçºã¬ã€ãã©ã€ã³ã«ã€ããŠã¯ CLAUDE.md ãåç §ããŠãã ããã
License / ã©ã€ã»ã³ã¹
ã³ãã¥ããã£
質åãæ å ±äº€æã¯ Discord ãµãŒããŒã§è¡ã£ãŠããŸãããæ°è»œã«ãåå ãã ããã