ð freeeäŒèš MCP Server
freeeäŒèšAPIãšé£æºããModel Context Protocol (MCP) Serverã§ãã
ð¯ æŠèŠ
ãã®ãããžã§ã¯ãã¯ãfreeeäŒèšAPIãéããŠäŒèšããŒã¿ã«ã¢ã¯ã»ã¹ããAI ã¢ã·ã¹ã¿ã³ããäŒèšæ¥åãæ¯æŽã§ããããã«ããMCPãµãŒããŒãæäŸããŸãã
â¡ æ©èœ
ð Resources
- äºæ¥ææ
å ±ã®ååŸ (
companies://list
,companies://current
) - åå®ç§ç®äžèЧã®ååŸ (
account-items://list
) - ååŒå
æ
å ±ã®ååŸ (
partners://list
) - éšéæ
å ±ã®ååŸ (
sections://list
) - åç®æ
å ±ã®ååŸ (
items://list
) - ã¡ã¢ã¿ã°æ
å ±ã®ååŸ (
tags://list
) - ååŒããŒã¿ã®ååŸ (
deals://list
) - 詊ç®è¡šããŒã¿ã®ååŸ (
trial-balance://current
)
ð§ Tools
- ð èªèšŒç®¡ç (
generate-auth-url
,exchange-auth-code
,check-auth-status
) - â
æ¥ç¶ãã¹ã (
test-connection
) - ð° ååŒç®¡ç (
create-deal
,update-deal
,get-deals
) - ð¢ ååŒå
ã®äœæ (
create-partner
) - ð åå®ç§ç®ã®äœæ (
create-account-item
) - ð ã·ã¹ãã ç£èŠ (
get-rate-limit-info
,get-logs
,get-metrics
,get-health
) - ðïž ãã£ãã·ã¥ç®¡ç (
get-cache-stats
,clear-cache
)
ð¡ Prompts
- ð ã»ããã¢ããã¬ã€ã (
setup-guide
) - âïž ååŒå
¥åæ¯æŽ (
transaction-entry
) - ð
ææ¬¡æ±ºç®ãã§ãã¯ãªã¹ã (
monthly-closing
) - ð 詊ç®è¡šåæã¬ã€ã (
trial-balance-analysis
)
ðïž ãããžã§ã¯ãæ§æ
mcp-server/
âââ ð apps/
â âââ freee-accounting/ # freeeäŒèšMCP server
âââ ð packages/
â âââ shared/ # å
±éã©ã€ãã©ãª
â âââ types/ # åå®çŸ©
âââ ð docs/
â âââ SPECIFICATION.md # 仿§æž
â âââ freee-mcp-todo.md # éçºã¿ã¹ã¯äžèЧ
âââ ð package.json
âââ ð turbo.json
âââ ð README.md
âš ç¹åŸŽ
- ð OAuth 2.0èªèšŒ: freeeå ¬åŒèªèšŒãããŒã«å®å šæºæ
- ð¢ äºæ¥æIDèšå®: ç°å¢å€æ°ã§äºæ¥æIDãèšå®å¯èœïŒããã©ã«ã: 123456ïŒ
- ð° å æ¬çãªååŒç®¡ç: ååŒã®äœæã»æŽæ°ã»äžèЧååŸããµããŒã
- ð¡ïž åå®å š: TypeScriptã«ããå®å šãªåå®çŸ©
- ðŠ ã¢ãã¬ãæ§æ: å ±éã©ã€ãã©ãªãšã¢ããªã±ãŒã·ã§ã³ã®åé¢
- ð MCPæºæ : Model Context Protocolã®ä»æ§ã«å®å šæºæ
- â¡ ã¬ãŒãå¶é察å¿: èªåçãªã¬ãŒãå¶é管çãšãªãã©ã€æ©èœ
- ð å æ¬çãªãã°: ã¬ãã«å¥ãã°æ©èœãšéçšç£èŠ
- ðš ãšã©ãŒãã³ããªã³ã°: 詳现ãªãšã©ãŒæ å ±ãšãªãã©ã€å¯èœæ§ã®å€å®
- ðŸ èªèšŒæ å ±æ°žç¶å: ããŒã¯ã³ã®èªåä¿åã»åŸ©å æ©èœ
- ð 髿§èœãã£ãã·ã¥: ã¡ã¢ãªããŒã¹ãã£ãã·ã¥ã«ããé«éã¬ã¹ãã³ã¹
- ð ã»ãã¥ãªãã£åŒ·å: ããŒã¯ã³æå·åãã»ãã¥ãªãã£ç£æ»ãå ¥å倿€èšŒ
- ð ç£èŠã»ã¡ããªã¯ã¹: ãªã¢ã«ã¿ã€ã ç£èŠããã«ã¹ãã§ãã¯ãã¢ã©ãŒãæ©èœ
- ð ãããã¯ã·ã§ã³ã¬ãã£: äŒæ¥ã¬ãã«ã§ã®éçšã«å¯Ÿå¿
ð ã»ããã¢ãã
ð åææ¡ä»¶
Node.js 18.0.0以äž
npm 9.0.0以äž
ðŠ ã€ã³ã¹ããŒã«
# äŸåé¢ä¿ã®ã€ã³ã¹ããŒã«
npm install
# éçºçšãã«ã
npm run dev
# æ¬çªçšãã«ã
npm run build
âïž ç°å¢å€æ°èšå®
.env
ãã¡ã€ã«ãäœæãã以äžã®ç°å¢å€æ°ãèšå®ããŠãã ããïŒ
ð OAuth 2.0èªèšŒ
# OAuthèšå®
FREEE_CLIENT_ID=your_client_id
FREEE_CLIENT_SECRET=your_client_secret
FREEE_REDIRECT_URI=your_redirect_uri
# äºæ¥æIDèšå®ïŒäžèšãäºæ¥æIDã®ååŸæ¹æ³ããåç
§ïŒ
FREEE_COMPANY_ID=123456
# ãªãã·ã§ã³èšå®
FREEE_API_BASE_URL=https://api.freee.co.jp
â ïž æ³šæ:
- OAuthèªèšŒã§ã¯äºæ¥æéžææ©èœãå¶åŸ¡ã§ããŸãã
- äºæ¥æéžæãæå¹ã«ãããšãèªèšŒæã«ç¹å®ã®äºæ¥æãéžæããŠã¢ã¯ã»ã¹ãå¶éã§ããŸãã
- äºæ¥æéžæãç¡å¹ã«ãããšããŠãŒã¶ãŒãæå±ããå šãŠã®äºæ¥æã«ã¢ã¯ã»ã¹å¯èœã«ãªããŸãã
- ãªãã€ã¬ã¯ãURIã®èšå®ã¯å¿ é ã§ã¯ãããŸãããèšå®ããªãå Žåã¯
urn:ietf:wg:oauth:2.0:oob
ã䜿çšãããŸãã
ð¢ äºæ¥æIDã®ååŸæ¹æ³
äºæ¥æIDãååŸããæ¹æ³ã¯è€æ°ãããŸãïŒ
ð freee WebçããååŸ
- freee Webçã«ãã°ã€ã³ããèšå®ç»é¢ãURLããäºæ¥æIDã確èªã§ããŸã
- ãã©ãŠã¶ã®ã¢ãã¬ã¹ããŒã§
https://secure.freee.co.jp/companies/XXXXXX
ã®XXXXXXãäºæ¥æIDã§ã
ð APIçµç±ã§ååŸ
- èªèšŒåŸã
get-companies
ããŒã«ã䜿çšããŠå©çšå¯èœãªäºæ¥æäžèЧãååŸã§ããŸã - ã¬ã¹ãã³ã¹ã®
id
ãã£ãŒã«ããäºæ¥æIDã«ãªããŸã
- èªèšŒåŸã
ð€ Claude Codeçµç±ã§ååŸ
- Claude Codeã§ãå©çšå¯èœãªäºæ¥æãæããŠãã ããããšãªã¯ãšã¹ãããããšã§ç¢ºèªã§ããŸã
â ïž éèŠãªå 責äºé
ðš æ¬MCPãµãŒããŒã«ã€ããŠ
- æ¬MCPãµãŒããŒã¯éå ¬åŒã®ãã®ã§ã
- freeeæ ªåŒäŒç€Ÿã«ãã£ãŠéçºã»ãµããŒããããŠãããã®ã§ã¯ãããŸãã
- æ¬ãœãããŠã§ã¢ã®äœ¿çšã«ãã£ãŠçããäžåã®æå®³ã«ã€ããŠãéçºè ã¯è²¬ä»»ãè² ããŸãã
- æ¬çªç°å¢ã§ã®äœ¿çšã¯èªå·±è²¬ä»»ã§ãé¡ãããŸã
- ããŒã¿ã®æ£ç¢ºæ§ãå®å šæ§ã«ã€ããŠä¿èšŒãããã®ã§ã¯ãããŸãã
ð€ Claude Codeã§ã®äœ¿ç𿹿³
ãã®MCPãµãŒããŒãClaude Codeã§äœ¿çšããã«ã¯ã以äžã®æé ã§ã€ã³ã¹ããŒã«ããŠãã ããïŒ
1ïžâ£ MCPèšå®ã®è¿œå
Claude Codeã«ä»¥äžã®ã³ãã³ãã§MCPãµãŒããŒã远å ããŸãïŒ
# ãããžã§ã¯ãããã«ã
npm run build
# MCPãµãŒããŒã远å
claude mcp add freee-accounting \
-e FREEE_CLIENT_ID=your_client_id \
-e FREEE_CLIENT_SECRET=your_client_secret \
-e FREEE_REDIRECT_URI=http://localhost:3000/callback \
-- node /path/to/mcp-server/apps/freee-accounting/dist/index.js
# èšå®ã確èª
claude mcp list
claude mcp get freee-accounting
2ïžâ£ Claude Codeã§ã®äœ¿çš
MCPãµãŒããŒãã€ã³ã¹ããŒã«ããããšãClaude Codeã§ä»¥äžã®ãªãœãŒã¹ãšããŒã«ãå©çšã§ããŸãïŒ
- ð äŒèšããŒã¿ã®ååŸ: ååŒãåå®ç§ç®ãååŒå ãªã©ã®æ å ±
- âïž ååŒã®äœæã»æŽæ°: æ°èŠååŒã®å ¥åãæ¢åååŒã®ä¿®æ£
- ð 詊ç®è¡šã®åæ: ææ¬¡ã»å¹Žæ¬¡ã®è²¡åããŒã¿ã®åæ
- ð èªèšŒç®¡ç: freee APIãžã®èªèšŒãšã¢ã¯ã»ã¹ç®¡ç
3ïžâ£ 䜿çšäŸ
Claude Codeã§ä»¥äžã®ããã«MCPãµãŒããŒã掻çšã§ããŸãïŒ
# ååŒããŒã¿ã®ååŸ
"12æã®å£²äžååŒã確èªããŠãã ãã"
# æ°èŠååŒã®äœæ
"æ¶èåè²»ãšããŠ3000åã®ååŒãäœæããŠãã ãã"
# 詊ç®è¡šã®åæ
"ä»æã®æçèšç®æžãåæããŠãã ãã"
ð§ åŸæ¥ã®äœ¿ç𿹿³
ð èªèšŒã®èšå®
OAuthèªèšŒã®å Žå
freeeã¢ããªã±ãŒã·ã§ã³ã®äœæ
- freeeã¢ããªã¹ãã¢ã®éçºè åãã¢ããªäžèЧç»é¢ã«ã¢ã¯ã»ã¹
- ãæ°èŠè¿œå ããã¯ãªãã¯ããŠã¢ããªã±ãŒã·ã§ã³ãäœæ
- ã¢ããªåãšæŠèŠãå ¥å
- Client IDãšClient SecretãååŸ
- ã³ãŒã«ããã¯URLãèšå®ïŒäŸ:
http://localhost:3000/callback
ïŒ
ç°å¢å€æ°ãèšå®
export FREEE_CLIENT_ID="your_client_id" export FREEE_CLIENT_SECRET="your_client_secret" export FREEE_REDIRECT_URI="http://localhost:3000/callback"
MCP Serverãèµ·å
npm run build && node apps/freee-accounting/dist/index.js
OAuthèªèšŒãããŒã®å®è¡
a. èªèšŒURLãçæ:
# äºæ¥æéžæãæå¹ã«ããŠèªèšŒURLçæïŒæšå¥šïŒ generate-auth-url --enable_company_selection=true # ãŸãã¯äºæ¥æéžæãç¡å¹ã«ããŠå šäºæ¥æã¢ã¯ã»ã¹ generate-auth-url --enable_company_selection=false
b. çæãããURLã«ãã©ãŠã¶ã§ã¢ã¯ã»ã¹:
- freeeã¢ã«ãŠã³ãã§ãã°ã€ã³
- äºæ¥æãéžæïŒenable_company_selection=trueã®å ŽåïŒ
- ã¢ããªã±ãŒã·ã§ã³ã®ã¢ã¯ã»ã¹æš©éã確èª
- ãèš±å¯ããããã¯ãªãã¯
c. èªèšŒã³ãŒããååŸ:
- ãªãã€ã¬ã¯ãURLã®codeãã©ã¡ãŒã¿ããèªèšŒã³ãŒããååŸ
d. èªèšŒã³ãŒããã¢ã¯ã»ã¹ããŒã¯ã³ã«äº€æ:
exchange-auth-code --code="ååŸããèªèšŒã³ãŒã"
èªèšŒç¶æ ã®ç¢ºèª
check-auth-status
ð åºæ¬çãªäœ¿çšäŸ
# èªèšŒç¶æ
ã®ç¢ºèª
check-auth-status
# äºæ¥æäžèЧã®ååŸ
companies://list
# ååŒäžèЧã®ååŸïŒéå»30æ¥ïŒ
get-deals
# ååŒäžèЧã®ååŸïŒå¹Žææå®ïŒ
get-deals --year 2024 --month 12
# ååŒäžèЧã®ååŸïŒæ¥ä»ç¯å²æå®ïŒ
get-deals --start_date 2024-12-01 --end_date 2024-12-31
# ååŒã®äœæïŒäºæ¥æIDèªåèšå®ïŒ
create-deal
ðïž ã¢ãŒããã¯ãã£
ð§ ã¬ã€ã€ãŒæ§æ
ãã®ãããžã§ã¯ãã¯ãã¯ãªãŒã³ã¢ãŒããã¯ãã£ã®ååã«åºã¥ããŠèšèšãããŠããŸãïŒ
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â Presentation Layer â
â âââââââââââââââââââ âââââââââââââââââââ âââââââââââââââââââ â
â â MCP Server â â Handlers â â Middleware â â
â â (Express) â â (Tools/Res) â â (Auth/Log) â â
â âââââââââââââââââââ âââââââââââââââââââ âââââââââââââââââââ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â Application Layer â
â âââââââââââââââââââ âââââââââââââââââââ âââââââââââââââââââ â
â â Use Cases â â Services â â Validators â â
â â (Business) â â (Auth/Data) â â (Input/Rule) â â
â âââââââââââââââââââ âââââââââââââââââââ âââââââââââââââââââ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â Infrastructure Layer â
â âââââââââââââââââââ âââââââââââââââââââ âââââââââââââââââââ â
â â API Client â â Response â â Debug/Log â â
â â (freee API) â â Mapper â â (Interceptor) â â
â âââââââââââââââââââ âââââââââââââââââââ âââââââââââââââââââ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â Domain Layer â
â âââââââââââââââââââ âââââââââââââââââââ âââââââââââââââââââ â
â â Entities â â Value Objects â â Domain Rules â â
â â (Company/Deal)â â (Money/Date) â â (Validation) â â
â âââââââââââââââââââ âââââââââââââââââââ âââââââââââââââââââ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
ð§ ã€ã³ãã©å±€ã®äž»èŠã³ã³ããŒãã³ã
ð FreeeApiClient
- freee APIãšã®éä¿¡ãæ åœããçµ±äžã€ã³ã¿ãŒãã§ãŒã¹
- ã¬ãŒãå¶éããªãã©ã€ããã£ãã·ã¥æ©èœãå èµ
- ãããã°æ©èœãšãã°æ©èœãçµ±å
ð ApiResponseMapper
- freee APIã¬ã¹ãã³ã¹ã®æšæºåãšãããã³ã°
- åå®å šãªããŒã¿å€æ
- ããŒãžããŒã·ã§ã³æ å ±ã®æœåº
ð DebugInterceptor
- HTTP ãªã¯ãšã¹ã/ã¬ã¹ãã³ã¹ã®ãããã°åºå
- MCP Inspector察å¿
- æ©å¯æ å ±ã®ãã¹ãã³ã°æ©èœ
ð LoggerSetup
- ç°å¢å¥ãã°èšå®ã®ç®¡ç
- ãããã¡ã€ã«ããŒã¹ã®èšå®åãæ¿ã
- æ§é åãã°ãšãã¡ã€ã«åºå
ð äŸåæ§æ³šå ¥
InversifyJSã䜿çšããDIã³ã³ããã«ãããåã¬ã€ã€ãŒéã®ççµåãå®çŸïŒ
// äŸ: ãµãŒãã¹ã¯ã©ã¹ã§ã®äŸåæ§æ³šå
¥
@injectable()
export class AuthService {
constructor(
@inject(TYPES.FreeeApiClient) private apiClient: FreeeApiClient,
@inject(TYPES.Logger) private logger: Logger,
@inject(TYPES.ErrorHandler) private errorHandler: ErrorHandler
) {}
}
ðš ãšã©ãŒãã³ããªã³ã°
Resultåãã¿ãŒã³ãæ¡çšããåå®å šãªãšã©ãŒãã³ããªã³ã°ãå®çŸïŒ
// æåã»å€±æãæç€ºçã«è¡šçŸ
const result = await authService.authenticate(token);
if (result.isOk()) {
// æåæã®åŠç
console.log(result.value);
} else {
// ãšã©ãŒæã®åŠç
console.error(result.error);
}
ð ïž éçº
ð å©çšå¯èœãªã¹ã¯ãªãã
npm run build
- å šããã±ãŒãžã®ãã«ãnpm run dev
- éçºã¢ãŒãã§ã®å®è¡npm run test
- ãã¹ãã®å®è¡npm run lint
- ãªã³ãã®å®è¡npm run type-check
- åãã§ãã¯ã®å®è¡npm run format
- ã³ãŒããã©ãŒãããã®å®è¡npm run debug
- MCP Inspector ã䜿çšãããããã°ïŒéçºçïŒnpm run debug:build
- MCP Inspector ã䜿çšãããããã°ïŒãã«ãçïŒnpm run inspect
- MCP Inspector ã䜿çšããã€ã³ã¿ã©ã¯ãã£ããã¹ãïŒéçºçïŒnpm run inspect:build
- MCP Inspector ã䜿çšããã€ã³ã¿ã©ã¯ãã£ããã¹ãïŒãã«ãçïŒ
ðïž éçºç°å¢
ãã®ãããžã§ã¯ãã¯monorepoæ§æã§Turborepoã䜿çšããŠããŸããåããã±ãŒãžã¯ç¬ç«ããŠéçºã»ãã¹ãã§ããŸãã
ðŠ ES Module察å¿
ãããžã§ã¯ãã¯å®å šã«ES Moduleã«å¯Ÿå¿ããŠããã以äžã®ç¹åŸŽããããŸãïŒ
- å
šããã±ãŒãžã§
"type": "module"
ãèšå® - TypeScriptããES Moduleãžã®èªå倿
- çžå¯Ÿã€ã³ããŒãã®èªåä¿®æ£ïŒ
.js
æ¡åŒµåã®è¿œå ïŒ - Node.js 18+ã§ã®æé©åãããããã©ãŒãã³ã¹
ð§ ãã«ãããã»ã¹
- TypeScript ã³ã³ãã€ã«: ãœãŒã¹ã³ãŒããES ModuleãšããŠã³ã³ãã€ã«
- ã€ã³ããŒãä¿®æ£: çžå¯Ÿã€ã³ããŒãã«
.js
æ¡åŒµåãèªå远å - åå®çŸ©çæ:
.d.ts
ãã¡ã€ã«ã®çæ - äŸåé¢ä¿è§£æ±º: ããã±ãŒãžéã®äŸåé¢ä¿ãèªå解決
ð ãããã°
MCP Inspector ã䜿çšãããããã°
MCP Inspector ã¯ãMCPãµãŒããŒãã€ã³ã¿ã©ã¯ãã£ãã«ãã¹ãã»ãããã°ããããã®ããŒã«ã§ãã
ð åºæ¬çãªäœ¿ç𿹿³
# éçºçïŒTypeScriptïŒã§ã®ãããã°
npm run debug
# ãã«ãçïŒJavaScriptïŒã§ã®ãããã°
npm run debug:build
# ãŸãã¯ãåå¥ã®ã¢ããªã±ãŒã·ã§ã³ã§å®è¡
cd apps/freee-accounting
npm run debug
MCP Inspector ã®æ©èœ
- Resources ã¿ã: å©çšå¯èœãªãªãœãŒã¹ã®äžèŠ§è¡šç€ºãšãã¹ã
- Prompts ã¿ã: ããã³ãããã³ãã¬ãŒãã®è¡šç€ºãšãã¹ã
- Tools ã¿ã: ããŒã«ã®äžèŠ§è¡šç€ºãšå®è¡ãã¹ã
- Notifications ãã€ã³: ãµãŒããŒããã®ãã°ãšéç¥ã®è¡šç€º
ãããã°ã¯ãŒã¯ãããŒ
éçºéå§
npm run debug
- ãã©ãŠã¶ã§è¡šç€ºãããURLïŒhttp://localhost:6274/?MCP_PROXY_AUTH_TOKEN=...ïŒã«ã¢ã¯ã»ã¹
- ãµãŒããŒãšã®åºæ¬æ¥ç¶ã確èª
- æ©èœããŽã·ãšãŒã·ã§ã³ããã§ãã¯
HTTPãªã¯ãšã¹ã/ã¬ã¹ãã³ã¹ã®ãããã°
# axiosã®ãªã¯ãšã¹ã/ã¬ã¹ãã³ã¹ãã³ã³ãœãŒã«ã«è¡šç€º DEBUG_AXIOS=true npm run debug # ãŸãã¯ç°å¢å€æ°ãèšå®ããŠããå®è¡ export DEBUG_AXIOS=true npm run debug
ãããã°ã¢ãŒãã§ã¯ä»¥äžã®æ å ±ã衚瀺ãããŸãïŒ
- ð OAuthèªèšŒãªã¯ãšã¹ã/ã¬ã¹ãã³ã¹ïŒæ©å¯æ å ±ã¯ãã¹ã¯ïŒ
- ð¡ freee APIãªã¯ãšã¹ã/ã¬ã¹ãã³ã¹ïŒã¢ã¯ã»ã¹ããŒã¯ã³ã¯ãã¹ã¯ïŒ
- â ãšã©ãŒè©³çްæ å ±
Inspector GUI ã§ã®æäœ
Server Connection PaneïŒãµãŒããŒæ¥ç¶èšå®ïŒ:
- Transport:
stdio
ãéžæïŒããã©ã«ãïŒ - Command:
tsx
ãŸãã¯node
- Arguments:
- éçºç:
apps/freee-accounting/src/index.ts
- ãã«ãç:
apps/freee-accounting/dist/index.js
- éçºç:
- Environment Variables: å¿ èŠã«å¿ããŠç°å¢å€æ°ãèšå®
Resources ã¿ãã§ã®ãã¹ã:
companies://list
- äºæ¥æäžèЧã®ååŸcompanies://current
- çŸåšã®äºæ¥ææ å ±account-items://list
- åå®ç§ç®äžèЧpartners://list
- ååŒå äžèЧdeals://list
- ååŒããŒã¿äžèЧtrial-balance://current
- 詊ç®è¡šããŒã¿
Tools ã¿ãã§ã®ãã¹ã:
generate-auth-url
- OAuthèªèšŒURLçæïŒåŒæ°äžèŠïŒcheck-auth-status
- èªèšŒç¶æ 確èªïŒåŒæ°äžèŠïŒtest-connection
- æ¥ç¶ãã¹ãïŒåŒæ°äžèŠïŒget-health
- ãã«ã¹ãã§ãã¯ïŒåŒæ°äžèŠïŒcreate-deal
- ååŒäœæïŒJSON圢åŒã§ååŒããŒã¿ãå ¥åïŒcreate-partner
- ååŒå äœæïŒJSON圢åŒã§ååŒå ããŒã¿ãå ¥åïŒ
Prompts ã¿ãã§ã®ãã¹ã:
setup-guide
- ã»ããã¢ããã¬ã€ãïŒåŒæ°äžèŠïŒtransaction-entry
- ååŒå ¥åæ¯æŽïŒåŒæ°äžèŠïŒmonthly-closing
- ææ¬¡æ±ºç®ãã§ãã¯ãªã¹ãïŒåŒæ°äžèŠïŒtrial-balance-analysis
- 詊ç®è¡šåæã¬ã€ãïŒåŒæ°äžèŠïŒ
- Transport:
å埩ãã¹ã
- ãµãŒããŒã³ãŒãã倿Ž
- ãµãŒããŒãåãã«ã
- Inspector ã忥ç¶
- 圱é¿ãåããæ©èœããã¹ã
- Notifications ãã€ã³ã§ã¡ãã»ãŒãžãç£èŠ
ãšããžã±ãŒã¹ã®ãã¹ã
- ç¡å¹ãªå ¥åå€ã§ã®ããŒã«å®è¡
- äžè¶³ããŠããããã³ããåŒæ°
- äžŠè¡æäœã®ãã¹ã
- ãšã©ãŒãã³ããªã³ã°ãšãšã©ãŒã¬ã¹ãã³ã¹ã®ç¢ºèª
ç°å¢å€æ°ã®èšå®
ãããã°æã¯ã.env
ãã¡ã€ã«ã«ä»¥äžã®ç°å¢å€æ°ãèšå®ããŠãã ããïŒ
# freee APIèšå®
FREEE_CLIENT_ID=your_client_id
FREEE_CLIENT_SECRET=your_client_secret
FREEE_REDIRECT_URI=http://localhost:3000/callback
FREEE_API_BASE_URL=https://api.freee.co.jp
# ãããã°èšå®
DEBUG=true
LOG_LEVEL=debug
å ·äœçãªãã¹ãäŸ
1. OAuthèªèšŒãããŒã®ãã¹ã:
Tools ã¿ã â generate-auth-url â Execute
â çæãããURLã§ãã©ãŠã¶èªèšŒ
â exchange-auth-code â èªèšŒã³ãŒããå
¥å â Execute
â check-auth-status â ExecuteïŒèªèšŒç¶æ
確èªïŒ
2. åºæ¬ããŒã¿ååŸã®ãã¹ã:
Resources ã¿ã â companies://list â Load
â account-items://list â Load
â partners://list â Load
3. ååŒäœæã®ãã¹ã:
Tools ã¿ã â create-deal â 以äžã®JSONãå
¥å:
{
"issue_date": "2024-01-15",
"type": "income",
"company_id": 123456,
"details": [
{
"account_item_id": 1,
"amount": 10000,
"tax_code": 1
}
]
}
4. ã·ã¹ãã ç£èŠã®ãã¹ã:
Tools ã¿ã â get-health â Execute
â get-metrics â Execute
â get-rate-limit-info â Execute
ãã©ãã«ã·ã¥ãŒãã£ã³ã°
- æ¥ç¶ãšã©ãŒ: ç°å¢å€æ°ãæ£ããèšå®ãããŠããã確èª
- èªèšŒãšã©ãŒ: freee APIã®èªèšŒæ å ±ãæå¹ã確èª
- ã¬ãŒãå¶é: APIåŒã³åºãé »åºŠã調æŽ
ãããžã§ã¯ãç¶æ³
ð ãããžã§ã¯ãå®äºïŒ
freeeäŒèš MCP Serverã¯ã5ã€ã®ãã§ãŒãºãçµãŠå®å šã«å®è£ ããããããã¯ã·ã§ã³ã¬ãã£ãªç¶æ ã«å°éããŸããïŒ
- Phase 1-2: åºæ¬æ©èœã»OAuthèªèšŒã»åºæ¬ãªãœãŒã¹ã»ããŒã«å®è£ â
- Phase 3: æ®ãã®ãªãœãŒã¹ã»ããŒã«ã»Promptsã»èªèšŒæ å ±æ°žç¶å â
- Phase 4: ã¬ãŒãå¶é察å¿ã»ãšã©ãŒãã³ããªã³ã°åŒ·åã»ãã°æ©èœã»ãã¹ãå®è£ â
- Phase 5: ããã©ãŒãã³ã¹æé©åã»ã»ãã¥ãªãã£åŒ·åã»ç£èŠæ©èœã»ããã¥ã¡ã³ãå å® â
å®è£ æžã¿æ©èœ
- 8çš®é¡ã®Resources: äºæ¥æãåå®ç§ç®ãååŒå ãéšéãåç®ãã¡ã¢ã¿ã°ãååŒã詊ç®è¡š
- 12çš®é¡ã®Tools: èªèšŒãCRUDæäœãã·ã¹ãã ç£èŠããã£ãã·ã¥ç®¡ç
- 4çš®é¡ã®Prompts: ã»ããã¢ãããååŒå ¥åæ¯æŽãææ¬¡æ±ºç®ã詊ç®è¡šåæ
- äŒæ¥ã¬ãã«ã®éçšæ©èœ: ç£èŠãã¡ããªã¯ã¹ãã»ãã¥ãªãã£ãããã©ãŒãã³ã¹æé©å
ã©ã€ã»ã³ã¹
MIT License
è²¢ç®
ãã«ãªã¯ãšã¹ããã€ã·ã¥ãŒã®å ±åãæè¿ããŸãã詳现ã¯docs/development/
é
äžã®èŠçŽãã確èªãã ããã