Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
A fixed asset register with depreciation from bundled Polish KST, HMRC and IRS MACRS tables.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
MCP_LICENSE_KEY비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
웹, 데스크톱, 모바일의 Claude에서 쓸 수 있어요:
https://mcp.zovo.one/mcp/asset-register링크는 제작자의 파일로 바로 연결돼요. 우리가 보관하거나 다시 패키징하지 않아요. 파일을 열면 Claude Desktop이 설치해요.
터미널에서 이 명령어를 실행하세요
claude mcp add --transport http asset-register https://mcp.zovo.one/mcp/asset-register실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"asset-register": {
"url": "https://mcp.zovo.one/mcp/asset-register"
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"asset-register": {
"type": "http",
"url": "https://mcp.zovo.one/mcp/asset-register"
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요:
https://mcp.zovo.one/mcp/asset-register메뉴 이름은 요금제나 시기에 따라 조금 다를 수 있어요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
도구 이름과 설명은 서버가 2026년 11월 6일에 알려 준 그대로예요. 우리가 아니라 제작자가 쓴 글이고, 일반 텍스트로만 보여 드려요.
asset_addAdd 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_listList 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_scheduleBuild 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_journalReturn 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_disposeRecord 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_deleteRemove 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_reportFor 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.
license_statusReport 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_activateTurn Pro on for this connection with key, an MCPL1. . 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.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 8일 점검
레지스트리 이름이 GitHub 계정 theluckystrike 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
48ms 만에 응답(HTTP 200)
로그인 필요 없음
도구 설명 9개를 읽었고, AI에게 보내는 숨겨진 지시는 없었어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 3개 중 3개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: MCP_LICENSE_KEY
둘 다 가능해요. 내 컴퓨터에 설치해도 되고, 클라우드 버전에 연결해도 돼요.
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.23.0)은 6일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, A1RO — Irish employment tools
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Irish temp worker cost, public holiday pay and holidays, and SafeHandle certificate checks.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
In the [official MCP Registry](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.theluckystrike%2Fasset-register/versions/latest) (io.github.theluckystrike/asset-register). Keep a fixed asset register and depreciate it on the rates the tax authorities actually publish. You give it what you bought, what it cost, when it went into use and which category it falls in; it gives you the rate, the useful life, the convention, the full schedule year by year or month by month, the monthly journal entry, and the gain or loss when you sell it. Three tables ship with it: the Polish annual depreciation rates from the annex to the CIT and PIT acts keyed to the KST classification, the UK capital allowance pools with the annual investment allowance, and the US MACRS GDS half-year tables for 3, 5 and 7 year property. The tables are bundled files, not a live feed, so the same asset depreciated twice gives the same answer, and every rate carries its instrument, its source URL and the date it took effect. Nothing leaves your machine.
Built by theluckystrike.
One-click (.mcpb): download asset-register.mcpb from the latest release and double-click it in Claude Desktop: https://github.com/theluckystrike/mcp-servers/releases/latest
Hosted, no install: point a URL-based client at https://mcp.zovo.one/mcp/asset-register. GET https://mcp.zovo.one/mcp/connect mints a token and prints a ready URL.
npm publish for @theluckystrike/mcp-asset-register is pending, so the npx line below returns 404 today.
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": { "asset-register": { "command": "npx", "args": ["-y", "@theluckystrike/mcp-asset-register"] } } }
Claude Code:
claude mcp add asset-register -- npx -y @theluckystrike/mcp-asset-register
Cursor (~/.cursor/mcp.json or .cursor/mcp.json): the same entry as Claude Desktop.
| tool | what it does |
|---|---|
asset_add | Add one asset to the register. The rate, the useful life and the convention come from the bundled table; both can be overridden. |
asset_list | The register with cost, accumulated depreciation and net book value at a date, totalled per currency. |
asset_schedule | The full schedule for a stored asset or for one you are only pricing, per year or per month, down to zero or the residual. |
asset_journal | One month's journal: debit depreciation expense, credit accumulated depreciation, per asset and in total, plus an expense_add payload. |
asset_dispose | Record a sale, a scrapping or a write-off and get the gain or loss against net book value at that date. |
asset_delete | Remove an asset nothing depends on, and get its free-tier slot back. An asset that has been disposed of or journaled is refused, with the dependent named. |
asset_report | Net book value by category and currency, the year's charge, and every disposal in the year with its result. |
license_status | Free or Pro, and where to upgrade. |
license_activate | Activate a Pro key. Verified offline. |
Read the assets://categories resource for every bundled category, its code, its rate and what each table leaves out.
| Free | Pro | |
|---|---|---|
| Assets in the register | 10 | Unlimited |
asset_schedule | Yes, unlimited | Yes |
asset_list, asset_dispose, asset_delete | Yes, unlimited | Yes |
asset_journal | No | Yes |
asset_report | No | Yes |
Get Pro: $19 one-time, or $39 for the bundle.
Every table under src/tables/ carries a header with the authority, the instrument, the source URL, the date the rates took effect and the date they were read. The assets://categories resource returns those headers with the rates, so the provenance travels with the number.
The rule for what is in them: a value that could not be stated with confidence from the public text was left out, not guessed. A depreciation rate ends up on a tax return. A wrong one that looks authoritative is worse than an absent one, because an absent one is refused by name and you go and look it up.
| table | bundled | left out |
|---|---|---|
| Poland, KST | 33 rows covering the annex positions this build could state with confidence: 0 percent (land, not depreciated at all), 1.5, 2.5, 4.5, 7, 10, 14, 20 and 30 percent, at the KST group and subgroup level, with the declining-balance eligibility of each | The 18 and 25 percent positions of the annex. Their KST membership could not be stated with confidence, so no row claims them. Also every individual six-digit KST code: a taxpayer classifies the asset, this table carries the rate |
| UK, capital allowances | The main rate pool at 18 percent, the special rate pool at 6 percent, and the annual investment allowance as a 100 percent first-year row with its GBP 1,000,000 cap | The first-year and full-expensing rules, the structures and buildings allowance, the small pools allowance, the CO2 thresholds that decide which pool a car enters, and every balancing charge. All date-sensitive, none stated with confidence here |
| US, MACRS | The 3, 5 and 7 year GDS classes under the half-year convention, as the published Pub 946 Table A-1 percentages | The mid-quarter and mid-month conventions, the 27.5 and 39 year real property classes, the 10, 15 and 20 year classes, the Alternative Depreciation System, section 179 and bonus depreciation. A 10-year class is refused by name, not approximated to the 7-year one |
Rates change. Check the effective_date in any answer before you rely on it, and read the source_url if the purchase is recent.
sum(periods) == cost - residual holds for every input, and the monthly rows sum to their year.asset_add normalises the name, the category, the cost, the currency, the dates, the method, the life, the scheme and the salvage value, and a record that matches an asset already on the register is refused by that asset's id with nothing written. A retried call and a re-run script look exactly like a second machine, and on a ten-asset free tier the second row is a slot you cannot get back. Two genuinely identical units are a legitimate register: give the second one a distinguishing name and it is accepted.asset_journal has already journaled is a dependent, and the delete is refused with that dependent named rather than removing the cost behind a figure that has already left this server. The id is never reissued.asset_journal returns the exact expense_add arguments for the expense-tracker server, one payload per currency, and writes no expense itself. That is deliberate: expense-tracker publishes no library entry point, and its id counter, its category rules, its VAT split and its currency defaults all live inside its own expense_add handler under its own lock. Appending a row to its data.json directly would produce an entry with none of those applied: one that looks native and is not. Handing back the arguments is the same contract per-diem and kanban use. It does mark the register: each asset it produced a line for records the month, so asset_delete can refuse an asset whose depreciation has already been journaled instead of deleting the cost behind a posted figure.
No vat_rate is set on the payload. Depreciation is a book charge, not a purchase, so there is no input VAT on it.
The yearly schedule is where you look for rounding errors, and the monthly journal is where they actually are.
Of the 67 schedules these three tables can produce for one test asset (cost 12,345.67, residual 45.67, in service 12 March 2026), the yearly rows come out clean under almost any rounding rule, because an annual amount is a percentage of a base and lands on or near a whole cent. Split those same years into months by rounding each month independently and 35 of the 67 no longer sum to the depreciable base, off by up to 390 minor units, 3.90 on a 12,345.67 asset. The worst offenders are the longest-lived rows: a residential building at 1.5 percent spreads its base over 800 months, and 800 half-cent roundings is where the 3.90 comes from.
That is the wrong way round from the intuition. The monthly split feels like the harmless presentational step, the one after the real arithmetic has been done, so it is the step that gets a bare Math.round and no test. It is also the only step whose output is posted: nobody journals a year, they journal a month, so the number that reaches the ledger is the one from the step that was not checked. The fix is that allocate rounds the CUMULATIVE total at each step and takes each amount as the difference between two rounded cumulatives, with the last period set to whatever is left, and it is applied to the monthly split as well as the yearly one. test/contract.test.mjs then asserts the identity for every schedule the tables can produce rather than for the two or three a unit test would have picked.
Everything stays on your machine. Assets are JSON under ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/asset-register/. The rate tables are files inside the package. There is no network call anywhere in this server, no account and no API key. License keys are verified offline.
MIT. Support: support@zovo.one
Any MCP client (Claude, Cursor, Windsurf, VS Code) can read this repository's documentation directly via GitMCP - no install: