fiken-mcp
A read-only MCP server that exposes Fiken accounting API's 61 GET endpoints as tools for AI assistants to query accounting data.
README
fiken-mcp
A read-only Model Context Protocol (MCP) server for the Fiken accounting API. Exposes all Fiken GET endpoints as MCP tools so AI assistants (Claude, etc.) can query your accounting data directly.
Read-only guarantee: This server only ever makes HTTP GET requests to the Fiken API. No data is created, modified, or deleted.
Features
- 61 tools covering the full Fiken v2 read API
- Multi-company support —
companySlugis a parameter on every tool - Paginated list endpoints with metadata
- Serial request queue (respects Fiken's 1 concurrent request per user rule)
- Structured error responses — API errors are returned as tool results rather than crashing the session
Requirements
- Node.js 18+
- A Fiken API token
Installation
git clone https://github.com/yourusername/fiken-mcp
cd fiken-mcp
npm install
npm run build
Usage
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"fiken": {
"command": "node",
"args": ["/absolute/path/to/fiken-mcp/build/index.js"],
"env": {
"FIKEN_API_TOKEN": "your-token-here"
}
}
}
}
Config file locations:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Claude Code
Add the server to your Claude Code project with:
claude mcp add fiken -- node /absolute/path/to/fiken-mcp/build/index.js
Then set the token:
claude mcp add fiken -e FIKEN_API_TOKEN=your-token-here -- node /absolute/path/to/fiken-mcp/build/index.js
Or if you prefer to keep the config in version control, add it to .mcp.json in your project root:
{
"mcpServers": {
"fiken": {
"command": "node",
"args": ["/absolute/path/to/fiken-mcp/build/index.js"],
"env": {
"FIKEN_API_TOKEN": "your-token-here"
}
}
}
}
To verify the server is connected:
claude mcp list
Other MCP clients
Run the server with the token in the environment:
FIKEN_API_TOKEN=your-token-here node build/index.js
Development (no build step)
FIKEN_API_TOKEN=your-token-here npm run dev
MCP Inspector
FIKEN_API_TOKEN=your-token-here npx @modelcontextprotocol/inspector node build/index.js
Getting a Fiken API token
- Log in to fiken.no
- Go to Settings → API (or visit
https://fiken.no/api/v2/documentation) - Generate a personal API token
- Keep it secret — treat it like a password
Available tools
Start with fiken_list_companies to get the companySlug values needed by all other tools.
User
| Tool | Description |
|---|---|
fiken_get_user |
Get information about the currently authenticated Fiken user |
Companies
| Tool | Description |
|---|---|
fiken_list_companies |
List all companies the authenticated user has access to |
fiken_get_company |
Get details for a specific company by slug |
Accounts
| Tool | Description |
|---|---|
fiken_list_accounts |
List chart of accounts for a company |
fiken_get_account |
Get a specific account by account code |
fiken_list_account_balances |
List account balances for a company |
fiken_get_account_balance |
Get balance for a specific account |
Bank
| Tool | Description |
|---|---|
fiken_list_bank_accounts |
List bank accounts for a company |
fiken_get_bank_account |
Get a specific bank account by ID |
fiken_list_bank_balances |
List bank balances for all bank accounts |
Contacts
| Tool | Description |
|---|---|
fiken_list_contacts |
List contacts (customers and suppliers) |
fiken_get_contact |
Get a specific contact by ID |
fiken_list_contact_persons |
List contact persons for a contact |
fiken_get_contact_person |
Get a specific contact person |
fiken_list_contact_groups |
List contact groups |
Invoices
| Tool | Description |
|---|---|
fiken_list_invoices |
List invoices |
fiken_get_invoice |
Get a specific invoice by ID |
fiken_list_invoice_attachments |
List attachments for an invoice |
fiken_get_invoice_counter |
Get the current invoice number counter |
fiken_list_invoice_drafts |
List invoice drafts |
fiken_get_invoice_draft |
Get a specific invoice draft |
fiken_list_invoice_draft_attachments |
List attachments for an invoice draft |
Credit Notes
| Tool | Description |
|---|---|
fiken_list_credit_notes |
List credit notes |
fiken_get_credit_note |
Get a specific credit note |
fiken_get_credit_note_counter |
Get the current credit note number counter |
fiken_list_credit_note_drafts |
List credit note drafts |
fiken_get_credit_note_draft |
Get a specific credit note draft |
Offers
| Tool | Description |
|---|---|
fiken_list_offers |
List offers/quotes |
fiken_get_offer |
Get a specific offer |
fiken_get_offer_counter |
Get the current offer number counter |
fiken_list_offer_drafts |
List offer drafts |
fiken_get_offer_draft |
Get a specific offer draft |
Order Confirmations
| Tool | Description |
|---|---|
fiken_list_order_confirmations |
List order confirmations |
fiken_get_order_confirmation |
Get a specific order confirmation |
fiken_get_order_confirmation_counter |
Get the current order confirmation counter |
Journal Entries
| Tool | Description |
|---|---|
fiken_list_journal_entries |
List journal entries |
fiken_get_journal_entry |
Get a specific journal entry |
fiken_list_journal_entry_attachments |
List attachments for a journal entry |
Transactions
| Tool | Description |
|---|---|
fiken_list_transactions |
List transactions |
fiken_get_transaction |
Get a specific transaction |
Sales
| Tool | Description |
|---|---|
fiken_list_sales |
List sales |
fiken_get_sale |
Get a specific sale |
fiken_list_sale_attachments |
List attachments for a sale |
fiken_list_sale_drafts |
List sale drafts |
fiken_get_sale_draft |
Get a specific sale draft |
fiken_list_sale_draft_attachments |
List attachments for a sale draft |
Purchases
| Tool | Description |
|---|---|
fiken_list_purchases |
List purchases |
fiken_get_purchase |
Get a specific purchase |
fiken_list_purchase_attachments |
List attachments for a purchase |
fiken_list_purchase_drafts |
List purchase drafts |
fiken_get_purchase_draft |
Get a specific purchase draft |
Products
| Tool | Description |
|---|---|
fiken_list_products |
List products |
fiken_get_product |
Get a specific product |
Projects
| Tool | Description |
|---|---|
fiken_list_projects |
List projects |
fiken_get_project |
Get a specific project |
Time Tracking
| Tool | Description |
|---|---|
fiken_list_time_entries |
List time entries |
fiken_get_time_entry |
Get a specific time entry |
fiken_list_activities |
List activities (used with time entries) |
fiken_list_time_users |
List users who can log time |
Inbox
| Tool | Description |
|---|---|
fiken_list_inbox |
List inbox documents |
fiken_get_inbox_document |
Get a specific inbox document |
Notes
- Amounts are returned in øre (cents) as integers, matching the Fiken API — e.g.
100000means 1000.00 NOK - Account codes are strings — e.g.
"1920"or"1500:10001" - Pagination defaults to page 0, 25 results per page (max 100)
- Date filters use
YYYY-MM-DDformat
Development
npm test # run tests
npm run build # compile TypeScript
npm run dev # run without building (uses tsx)
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.