Fennoa Accounting API as agent tools — three ways to use Fennoa's accounting API from AI agents and CLI tools.
| Approach | Best for |
|---|---|
| Plugin / Marketplace | Easiest install — one command in Claude Code |
| MCP Server | Claude Code, Claude Desktop, VS Code — structured tool calls |
| Bash wrapper | Terminal, scripts, CI/CD — no Node.js runtime needed |
| Claude Code Skill | Ad hoc queries from Claude Code — no config needed |
The fastest way to get started from Claude Code:
/plugin marketplace add ljack/fennoa-agentic
Then install the plugin:
/plugin install fennoa
This gives you the /fennoa skill immediately — no manual file copying needed.
To install via CLI instead:
claude plugin install fennoa@ljack/fennoa-agentic- Fennoa account with API access
- API key and company code from Fennoa settings
A Node.js MCP server exposing all 12 Fennoa endpoints as typed tools.
npm install
npm run buildAdd to ~/.claude.json:
{
"mcpServers": {
"fennoa": {
"command": "node",
"args": ["/path/to/fennoa-agentic/dist/index.js"],
"env": {
"FENNOA_API_KEY": "your_api_key",
"FENNOA_COMPANY_CODE": "your_company_code"
}
}
}
}Add to claude_desktop_config.json:
{
"mcpServers": {
"fennoa": {
"command": "node",
"args": ["/path/to/fennoa-agentic/dist/index.js"],
"env": {
"FENNOA_API_KEY": "your_api_key",
"FENNOA_COMPANY_CODE": "your_company_code"
}
}
}
}{
"mcpServers": {
"fennoa": {
"command": "npx",
"args": ["tsx", "/path/to/fennoa-agentic/src/index.ts"],
"env": {
"FENNOA_API_KEY": "your_api_key",
"FENNOA_COMPANY_CODE": "your_company_code"
}
}
}
}| Tool | Method | Endpoint |
|---|---|---|
get_periods |
GET | /get/periods |
get_locking_periods |
GET | /get/locking_periods |
get_opening_balances |
GET | /get/opening_balances/:period_id |
get_accounts |
GET | /get/accounts |
get_vatcodes |
GET | /get/vatcodes |
get_account_balance |
GET | /get/account_balance/:account/:date |
get_ledger |
GET | /get/ledger/:start/:end |
add_statement |
POST | /add |
upload_attachment |
POST | /do/upload_attachment/:id |
get_budgets |
GET | /get/budgets |
create_budget |
POST | /add/budgets |
update_budget |
PATCH | /budgets/:id |
fennoa.sh wraps all endpoints with curl. No Node.js required.
cp .env.example .env # add your API key and company codeOr export environment variables directly:
export FENNOA_API_KEY=your_api_key
export FENNOA_COMPANY_CODE=your_company_code# Reference data
./fennoa.sh get_periods
./fennoa.sh get_accounts
./fennoa.sh get_vatcodes
# Ledger
./fennoa.sh get_ledger 2025-01-01 2025-12-31
./fennoa.sh get_ledger 2025-01-01 2025-12-31 --accounts 1900,1910 --limit 500
./fennoa.sh get_account_balance 1910 2025-12-31
# Create a journal entry (JSON from stdin)
echo '{
"entry_date": "2025-03-17",
"series_code": "GL",
"description": "Office supplies",
"rows": [
{ "account": 4400, "debit": 121.00, "vatcode_id": 1 },
{ "account": 1910, "credit": 121.00 }
]
}' | ./fennoa.sh add_statement
# Attach a receipt PDF
./fennoa.sh upload_attachment 1234 receipt.pdf
# Budgets
./fennoa.sh get_budgets
cat budget.json | ./fennoa.sh create_budget
cat budget.json | ./fennoa.sh update_budget 42
./fennoa.sh help # full command referenceInstall once, use from any Claude Code session via /fennoa. No MCP config or running process needed.
mkdir -p ~/.claude/skills/fennoa
cp skill/fennoa.md ~/.claude/skills/fennoa/SKILL.md/fennoa show me all purchase invoices from Q1 2025
/fennoa what is the balance on account 1910?
/fennoa post a journal entry for a 100€ office supply purchase
Claude will use fennoa.sh if available, or fall back to direct curl calls.
All approaches use the same credentials:
FENNOA_API_KEY— API key from Fennoa settingsFENNOA_COMPANY_CODE— your company's identifierFENNOA_BASE_URL— optional, defaults tohttps://app.fennoa.com
See SKILL.md for full API reference, key concepts, and workflow examples.