Koskamo

theluckystrike MCP Asset Register

A fixed asset register that depreciates assets using bundled Polish KST, UK HMRC, and US IRS MACRS tax tables. It supports adding assets, generating monthly depreciation schedules and journals, listing assets, disposing of items with gain/loss calculation, and producing year-end reports.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

theluckystrike MCP Asset Register logo, by theluckystrikeCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by theluckystrike
You need:Free tokens allow 600 calls an hour, a Pro key 6000; a token lasts 30 days from last use.Every hosted endpoint needs a free token.
MCP endpoint (Streamable HTTP)
https://mcp.zovo.one/mcp/asset-register
Vendor documentation

What its tools do

9 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

9 of 9 have a description · 9 of 9 declare behavior hints · 7 of 8 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Depreciate a new laptop using Polish KST straight-line rates
  • Record the sale of an asset and compute the gain or loss
  • Post monthly depreciation for multiple assets and generate a journal
  • List assets with net book value filtered by category or currency

Source and maintenance

Community listingRegistry 0.23.0
Maintenance checked

Protocol and capabilities

Server
mcp-asset-register 0.22.6
MCP protocol negotiated in check
2025-11-25
Tools
9 advertised
Resources
2 advertised
Resource templates
0 advertised
Prompts
2 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "prompts": {
    "listChanged": true
  },
  "resources": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

A fixed asset register with depreciation. It covers assets with rate, useful life and convention from a bundled tax table, net book value at any date, depreciation schedules per year or month, monthly depreciation journals with expense entries, disposals with their gain or loss, and a yearly register summary. Amounts are whole minor units. The register is stored per user account on McpStamp's hosted service. The free tier holds ten assets; journals and the yearly summary need Pro. One lifetime key unlocks this server and all 58 others: https://mcp.zovo.one/buy/bundle?src=instr.asset-register

Tools

9 advertised

asset_add — Add a fixed asset
Advertised by the server during the last successful anonymous check.

Add one fixed asset to the register and return its id with the rate, useful life and convention taken from the bundled tax table. Cost and residual are whole minor units. Free tier holds ten assets.

asset_add input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "name",
    "category",
    "cost_minor",
    "purchase_date"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1,
      "description": "What the asset is, e.g. \"MacBook Pro 16\" or \"Delivery van\""
    },
    "note": {
      "type": "string",
      "maxLength": 2000
    },
    "method": {
      "enum": [
        "straight-line",
        "declining-balance"
      ],
      "type": "string",
      "description": "\"straight-line\" or \"declining-balance\". Default: the table row method, straight-line for the Polish annex and the reducing-balance pool rate for the UK"
    },
    "scheme": {
      "enum": [
        "pl",
        "uk",
        "us"
      ],
      "type": "string",
      "description": "\"pl\" Polish KST annex rates, \"uk\" HMRC capital allowance pools, \"us\" IRS MACRS GDS. Omit to derive it from the shared business profile currency"
    },
    "project": {
      "type": "string",
      "maxLength": 200,
      "description": "Project, department or cost centre this asset belongs to"
    },
    "category": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1,
      "description": "A code or name from the bundled table, e.g. \"487\" or \"Computers and computer sets\" (pl), \"main\" (uk), \"5-year\" (us). Read assets://categories for the list"
    },
    "currency": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$",
      "description": "ISO code. Defaults to the shared business profile currency, else the scheme table currency"
    },
    "rate_pct": {
      "type": "number",
      "description": "Override the annual percentage derived from the table. Use for a lowered Polish rate under art. 16i"
    },
    "cost_minor": {
      "type": "integer",
      "description": "Acquisition cost in MINOR units (integer cents/grosze), e.g. 549900 for 5499.00. Never a decimal"
    },
    "life_years": {
      "type": "number",
      "description": "Override the useful life derived from the table, in years. The answer reports that it was an override"
    },
    "purchase_date": {
      "type": "string",
      "maxLength": 10,
      "description": "ISO date YYYY-MM-DD the asset was bought"
    },
    "residual_minor": {
      "type": "integer",
      "description": "Residual or salvage value in MINOR units, default 0. Must be less than cost. MACRS ignores it and the answer says so"
    },
    "in_service_date": {
      "type": "string",
      "maxLength": 10,
      "description": "ISO date YYYY-MM-DD the asset entered use and the register. Defaults to purchase_date"
    },
    "declining_coefficient": {
      "type": "number",
      "description": "Declining-balance coefficient. Polish default 2.0, capped by the table; ignored with straight-line"
    }
  },
  "additionalProperties": false
}
asset_add annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
asset_list — List the fixed asset register
Advertised by the server during the last successful anonymous check.
Advertised read-only

List the assets in the register with cost, method, rate and net book value at a date, filtered by scheme, category, project, currency or disposal state. Free and unlimited.

asset_list input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "as_of": {
      "type": "string",
      "maxLength": 10,
      "description": "Value the register at this month or date, YYYY-MM or YYYY-MM-DD. Default today"
    },
    "limit": {
      "type": "integer",
      "maximum": 2000,
      "minimum": 1,
      "description": "Maximum rows, default and ceiling 2000"
    },
    "scheme": {
      "enum": [
        "pl",
        "uk",
        "us"
      ],
      "type": "string",
      "description": "Only assets on this tax scheme"
    },
    "project": {
      "type": "string",
      "maxLength": 200,
      "description": "Only assets on this project or cost centre"
    },
    "category": {
      "type": "string",
      "maxLength": 200,
      "description": "Only assets in this table category code or name"
    },
    "currency": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$",
      "description": "Only assets held in this currency"
    },
    "include_disposed": {
      "type": "boolean",
      "description": "Include assets already disposed of. Default false"
    }
  },
  "additionalProperties": false
}
asset_list annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
asset_schedule — Build a depreciation schedule
Advertised by the server during the last successful anonymous check.

Build the depreciation schedule for a stored asset, or price one not in the register, per year or per month, to residual or zero, with the table's rate, life and convention. Periods sum exactly to the base.

asset_schedule input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "asset": {
      "type": "string",
      "maxLength": 200,
      "description": "Asset id such as ASSET-2026-0001, or an exact or partial name. Omit and pass the fields below to price an asset that is not in the register"
    },
    "method": {
      "enum": [
        "straight-line",
        "declining-balance"
      ],
      "type": "string",
      "description": "\"straight-line\" or \"declining-balance\""
    },
    "scheme": {
      "enum": [
        "pl",
        "uk",
        "us"
      ],
      "type": "string",
      "description": "Scheme, when pricing an asset that is not in the register"
    },
    "category": {
      "type": "string",
      "maxLength": 200,
      "description": "Table category code or name, when pricing an asset that is not in the register"
    },
    "currency": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$",
      "description": "ISO code, when pricing an asset that is not in the register"
    },
    "rate_pct": {
      "type": "number",
      "description": "Override the annual percentage from the table"
    },
    "cost_minor": {
      "type": "integer",
      "description": "Cost in MINOR units, when pricing an asset that is not in the register"
    },
    "life_years": {
      "type": "number",
      "description": "Override the useful life from the table, in years"
    },
    "granularity": {
      "enum": [
        "year",
        "month"
      ],
      "type": "string",
      "description": "\"year\" for one row per period, \"month\" for the monthly charge. Default \"year\""
    },
    "purchase_date": {
      "type": "string",
      "maxLength": 10,
      "description": "ISO date YYYY-MM-DD, when pricing an asset that is not in the register"
    },
    "residual_minor": {
      "type": "integer",
      "description": "Residual in MINOR units, default 0"
    },
    "in_service_date": {
      "type": "string",
      "maxLength": 10,
      "description": "ISO date YYYY-MM-DD the asset entered use. Defaults to purchase_date"
    },
    "declining_coefficient": {
      "type": "number",
      "description": "Declining-balance coefficient; ignored with straight-line"
    }
  },
  "additionalProperties": false
}
asset_schedule annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
asset_journal — Journal the month's depreciation
Advertised by the server during the last successful anonymous check.

Return the depreciation journal for one month: debit depreciation expense and credit accumulated depreciation, per asset and in total, plus an expense_add-ready payload per currency. It writes no expense. Pro.

asset_journal input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "month"
  ],
  "properties": {
    "month": {
      "type": "string",
      "maxLength": 10,
      "description": "The month to journal, YYYY-MM. A date YYYY-MM-DD is read as its month"
    },
    "scheme": {
      "enum": [
        "pl",
        "uk",
        "us"
      ],
      "type": "string",
      "description": "Only assets on this tax scheme"
    },
    "project": {
      "type": "string",
      "maxLength": 200,
      "description": "Only assets on this project or cost centre"
    },
    "category": {
      "type": "string",
      "maxLength": 200,
      "description": "Expense category to put on the expense_add payload. Default \"depreciation\""
    },
    "expense_account": {
      "type": "string",
      "maxLength": 200,
      "description": "Debit account name. Default \"Depreciation expense\""
    },
    "accumulated_account": {
      "type": "string",
      "maxLength": 200,
      "description": "Credit account name. Default \"Accumulated depreciation\""
    }
  },
  "additionalProperties": false
}
asset_journal annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
asset_dispose — Dispose of an asset
Advertised by the server during the last successful anonymous check.

Record that an asset left the business on a date and return the gain or loss against net book value. proceeds_minor is in MINOR units. Depreciation stops here, and a second disposal is refused.

asset_dispose input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "asset",
    "date"
  ],
  "properties": {
    "date": {
      "type": "string",
      "maxLength": 10,
      "description": "ISO date YYYY-MM-DD the asset left the business. It cannot be before the in-service date"
    },
    "note": {
      "type": "string",
      "maxLength": 2000,
      "description": "What happened, e.g. sold to a dealer, written off after a fire"
    },
    "asset": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1,
      "description": "Asset id such as ASSET-2026-0001, or an exact or partial name"
    },
    "proceeds_minor": {
      "type": "integer",
      "description": "Sale proceeds in MINOR units, default 0 for a scrapping or a write-off"
    }
  },
  "additionalProperties": false
}
asset_dispose annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
asset_delete — Delete an asset
Advertised by the server during the last successful anonymous check.
Advertised destructive

Remove one asset from the register when nothing depends on it: not disposed of, never journaled. Its free-tier slot is free again. An asset with a dependent is refused and the dependent is named. Free.

asset_delete input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "asset"
  ],
  "properties": {
    "asset": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1,
      "description": "Asset id such as ASSET-2026-0001, or an exact or partial name"
    }
  },
  "additionalProperties": false
}
asset_delete annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
asset_report — Report the register
Advertised by the server during the last successful anonymous check.
Advertised read-only

For one year: net book value by category, scheme and currency at as_of, the year's depreciation charge per currency, and every disposal with its gain or loss. Pro; asset_list and asset_schedule are free per-asset views.

asset_report input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "year": {
      "type": "integer",
      "description": "Calendar year to report, e.g. 2026. Default the year of as_of, else this year"
    },
    "as_of": {
      "type": "string",
      "maxLength": 10,
      "description": "Value the register at this month or date, YYYY-MM or YYYY-MM-DD. Default the last day of the year"
    },
    "scheme": {
      "enum": [
        "pl",
        "uk",
        "us"
      ],
      "type": "string",
      "description": "Only assets on this tax scheme"
    },
    "project": {
      "type": "string",
      "maxLength": 200,
      "description": "Only assets on this project or cost centre"
    }
  },
  "additionalProperties": false
}
asset_report annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
license_status — License status
Advertised by the server during the last successful anonymous check.
Advertised read-only

Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.

license_status input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
license_status annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
license_activate — Activate license
Advertised by the server during the last successful anonymous check.

Turn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.

license_activate input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "key"
  ],
  "properties": {
    "key": {
      "type": "string",
      "description": "License key from checkout, MCPL1.<payload>.<signature>"
    }
  },
  "additionalProperties": false
}
license_activate annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}

Prompts

2 advertised

upgrade_to_pro — Explain the upgrade

Advertised by the server during the last successful anonymous check.

Explain what Pro on the asset-register server costs and exactly what the user has to do, without leaving the conversation.

feature
The capped feature that prompted this, if there was one
depreciate_asset — Put an asset on the register

Advertised by the server during the last successful anonymous check.

Walk one purchase from the invoice to a stored asset, a schedule and this month's journal line.

what
What was bought, e.g. a MacBook Pro for 8,499 PLN on 12 March (required)

Resources

2 advertised

pricing — Pricing and upgrade

Advertised by the server during the last successful anonymous check.

What asset-register costs, what Pro unlocks, the checkout link that carries this connection's token, and the one step a person has to take. Machine-readable; read it before telling a user how to lift a free-tier cap.

pricing URI
pricing://asset-register

MIME type: application/json

categories — Bundled depreciation categories

Advertised by the server during the last successful anonymous check.

Every category in the bundled Polish KST, UK capital allowance and US MACRS tables, with its rate, its provenance and what each table leaves out.

categories URI
assets://categories

MIME type: application/json

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
2585 ms
95th percentile latency
2585 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 2585 ms · metadata changed · 9 tool(s), 2 resource(s), 0 resource template(s), 2 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http mcp-asset-register https://mcp.zovo.one/mcp/asset-register

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add mcp-asset-register --url https://mcp.zovo.one/mcp/asset-register

Cursor

Merge this server into .cursor/mcp.json in your project, then enable mcp-asset-register in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "mcp-asset-register": {
      "url": "https://mcp.zovo.one/mcp/asset-register"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "mcp-asset-register": {
      "type": "streamableHttp",
      "url": "https://mcp.zovo.one/mcp/asset-register",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start mcp-asset-register and inspect its tools.
VS Code configuration
{
  "servers": {
    "mcp-asset-register": {
      "type": "http",
      "url": "https://mcp.zovo.one/mcp/asset-register"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http mcp-asset-register https://mcp.zovo.one/mcp/asset-register

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://mcp.zovo.one/mcp/asset-register

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "mcp-asset-register": {
      "serverUrl": "https://mcp.zovo.one/mcp/asset-register"
    }
  }
}

Let your agent find its tools

Find servers like theluckystrike MCP Asset Register from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.