Skip to main content
Glama
fiken-mcp

fiken-mcp

by heim

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 — companySlug is 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

Related MCP server: manager-mcp

Requirements

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

  1. Log in to fiken.no

  2. Go to Settings → API (or visit https://fiken.no/api/v2/documentation)

  3. Generate a personal API token

  4. 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. 100000 means 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-DD format

Development

npm test          # run tests
npm run build     # compile TypeScript
npm run dev       # run without building (uses tsx)

License

MIT

Available Tools

61 tools
fiken_get_accountB

Get a specific account by account code for a company

Inputs: accountCode (required), companySlug (required), year.

fiken_get_account_balanceA

Get balance for a specific account. Amounts are in cents.

Inputs: accountCode (required), companySlug (required), year.

fiken_get_bank_accountB

Get a specific bank account by ID

Inputs: companySlug (required), bankAccountId (required).

fiken_get_companyA

Get details for a specific company by slug

Inputs: companySlug (required).

fiken_get_contactB

Get a specific contact by ID

Inputs: contactId (required), companySlug (required).

fiken_get_contact_personB

Get a specific contact person by ID

Inputs: contactId (required), companySlug (required), contactPersonId (required).

fiken_get_credit_noteB

Get a specific credit note by ID. Amounts are in cents.

Inputs: companySlug (required), creditNoteId (required).

fiken_get_credit_note_counterB

Get the current credit note counter/number sequence for a company

Inputs: companySlug (required).

fiken_get_credit_note_draftB

Get a specific credit note draft by ID

Inputs: draftId (required), companySlug (required).

fiken_get_inbox_documentC

Get a specific inbox document by ID

Inputs: companySlug (required), inboxDocumentId (required).

fiken_get_invoiceB

Get a specific invoice by ID. Amounts are in cents.

Inputs: invoiceId (required), companySlug (required).

fiken_get_invoice_counterB

Get the current invoice counter/number sequence for a company

Inputs: companySlug (required).

fiken_get_invoice_draftC

Get a specific invoice draft by ID

Inputs: draftId (required), companySlug (required).

fiken_get_journal_entryB

Get a specific journal entry by ID. Amounts are in cents.

Inputs: companySlug (required), journalEntryId (required).

fiken_get_offerC

Get a specific offer/quote by ID. Amounts are in cents.

Inputs: offerId (required), companySlug (required).

fiken_get_offer_counterA

Get the current offer counter/number sequence for a company

Inputs: companySlug (required).

fiken_get_offer_draftC

Get a specific offer draft by ID

Inputs: draftId (required), companySlug (required).

fiken_get_order_confirmationA

Get a specific order confirmation by ID. Amounts are in cents.

Inputs: companySlug (required), confirmationId (required).

fiken_get_order_confirmation_counterA

Get the current order confirmation counter/number sequence for a company

Inputs: companySlug (required).

fiken_get_productA

Get a specific product by ID. Amounts are in cents.

Inputs: productId (required), companySlug (required).

fiken_get_projectB

Get a specific project by ID

Inputs: projectId (required), companySlug (required).

fiken_get_purchaseB

Get a specific purchase by ID. Amounts are in cents.

Inputs: purchaseId (required), companySlug (required).

fiken_get_purchase_draftB

Get a specific purchase draft by ID

Inputs: draftId (required), companySlug (required).

fiken_get_saleA

Get a specific sale by ID. Amounts are in cents.

Inputs: saleId (required), companySlug (required).

fiken_get_sale_draftB

Get a specific sale draft by ID

Inputs: draftId (required), companySlug (required).

fiken_get_time_entryB

Get a specific time entry by ID

Inputs: companySlug (required), timeEntryId (required).

fiken_get_transactionA

Get a specific transaction by ID. Amounts are in cents.

Inputs: companySlug (required), transactionId (required).

fiken_get_userA

Get information about the currently authenticated Fiken user

Inputs: no named parameters.

fiken_list_account_balancesC

List account balances for a company. Amounts are in cents.

Inputs: companySlug (required), page, year, pageSize, +2 more.

fiken_list_accountsB

List chart of accounts for a company. Account codes are strings (e.g. '1920').

Inputs: companySlug (required), page, year, pageSize, +2 more.

fiken_list_activitiesA

List activities for a company (used with time entries)

Inputs: companySlug (required), page, pageSize.

fiken_list_bank_accountsB

List bank accounts for a company

Inputs: companySlug (required), page, pageSize.

fiken_list_bank_balancesA

List bank balances for all bank accounts of a company. Amounts are in cents.

Inputs: companySlug (required).

fiken_list_companiesA

List all companies the authenticated user has access to. Use the returned slugs with other tools.

Inputs: page, pageSize.

fiken_list_contact_groupsB

List contact groups for a company

Inputs: companySlug (required), page, pageSize.

fiken_list_contact_personsC

List contact persons for a specific contact

Inputs: contactId (required), companySlug (required).

fiken_list_contactsC

List contacts (customers and suppliers) for a company

Inputs: companySlug (required), name, page, email, +14 more.

fiken_list_credit_note_draftsB

List credit note drafts for a company

Inputs: companySlug (required), page, pageSize.

fiken_list_credit_notesB

List credit notes for a company. Amounts are in cents.

Inputs: companySlug (required), page, settled, pageSize, +6 more.

fiken_list_inboxC

List inbox documents for a company

Inputs: companySlug (required), name, page, status, +2 more.

fiken_list_invoice_attachmentsB

List attachments for a specific invoice

Inputs: invoiceId (required), companySlug (required).

fiken_list_invoice_draft_attachmentsB

List attachments for a specific invoice draft

Inputs: draftId (required), companySlug (required).

fiken_list_invoice_draftsB

List invoice drafts for a company

Inputs: companySlug (required), page, pageSize.

fiken_list_invoicesB

List invoices for a company. Amounts are in cents.

Inputs: companySlug (required), kid, date, page, +15 more.

fiken_list_journal_entriesB

List journal entries for a company. Amounts are in cents.

Inputs: companySlug (required), date, page, dateGe, +4 more.

fiken_list_journal_entry_attachmentsA

List attachments for a specific journal entry

Inputs: companySlug (required), journalEntryId (required).

fiken_list_offer_draftsC

List offer drafts for a company

Inputs: companySlug (required), page, pageSize.

fiken_list_offersC

List offers/quotes for a company. Amounts are in cents.

Inputs: companySlug (required), page, pageSize.

fiken_list_order_confirmationsB

List order confirmations for a company. Amounts are in cents.

Inputs: companySlug (required), page, pageSize.

fiken_list_productsC

List products for a company. Amounts are in cents.

Inputs: companySlug (required), name, page, active, +7 more.

fiken_list_projectsC

List projects for a company

Inputs: companySlug (required), name, page, number, +4 more.

fiken_list_purchase_attachmentsC

List attachments for a specific purchase

Inputs: purchaseId (required), companySlug (required).

fiken_list_purchase_draftsC

List purchase drafts for a company

Inputs: companySlug (required), page, pageSize.

fiken_list_purchasesC

List purchases for a company. Amounts are in cents.

Inputs: companySlug (required), date, page, dateGe, +11 more.

fiken_list_sale_attachmentsB

List attachments for a specific sale

Inputs: saleId (required), companySlug (required).

fiken_list_sale_draft_attachmentsB

List attachments for a specific sale draft

Inputs: draftId (required), companySlug (required).

fiken_list_sale_draftsC

List sale drafts for a company

Inputs: companySlug (required), page, pageSize.

fiken_list_salesC

List sales for a company. Amounts are in cents.

Inputs: companySlug (required), date, page, dateGe, +12 more.

fiken_list_time_entriesC

List time entries for a company

Inputs: companySlug (required), date, page, dateGe, +7 more.

fiken_list_time_usersA

List users who can log time for a company

Inputs: companySlug (required), page, pageSize.

fiken_list_transactionsB

List transactions for a company. Amounts are in cents.

Inputs: companySlug (required), date, page, dateGe, +4 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 61 tools

    Disambiguation5/5

    Every tool has a clearly distinct purpose: get tools retrieve a single resource by ID, list tools enumerate collections. There is no overlap or ambiguity between tools.

    Naming Consistency5/5

    All tools follow a consistent 'fiken_<verb>_<resource>' pattern, using 'get' for single items and 'list' for collections. Naming is uniform and predictable.

    Tool Count2/5

    61 read-only tools is excessive for the apparent scope. While the server covers many resources, the count feels bloated and could overwhelm users or agents.

    Completeness2/5

    The server provides comprehensive read access (get and list) for all major resources, but completely lacks create, update, or delete operations. This is a significant gap for most accounting workflows.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Multi-tenant MCP server connecting accounting software to AI assistants via ~87 tools. Supports Bokio (Swedish accounting) with mock mode for development.
      -
    • A
      license
      B
      quality
      C
      maintenance
      Read-only MCP server for self-hosted Manager.io bookkeeping, providing curated GET tools to access accounting data like invoices, balances, and reports.
      10
      32 PyPI
      1
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      A read-only MCP server for the NuMetric.work accounting/POS/ERP platform, exposing 38 tools to query live business data such as financial statements, invoices, taxes, projects, inventory, and documents. It enables AI assistants to answer from real accounting data without any create, edit, or delete capabilities.
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      MCP server for ReAI, the Norwegian cloud accounting system, enabling AI agents to read books, look up accounts and VAT codes, and perform bookkeeping through a curated toolset with safety guardrails.
      12
      MIT