Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.theluckystrike/office-suite-time-invoice-expense-excel-price

MCPB · OFFICE-SUITE.MCPB · SCANNED SEP 21

One MCP server for the whole freelancer office: time tracking, price watching, spreadsheets, PDF.

Available components

46 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security22
  • Malware scan not yet available for this package.Unverified
  • Known CVEs were checked across the 190 of 190 dependencies we could resolve, so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • 88 of 190 dependencies flagged as unhealthy (2 deprecated). View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability81
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 24098 tokens (~139/item across 173 items; 158 tools + 15 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage95
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 85% of tool parameters carry a description.Partial
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 12 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "entry_delete" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 159 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

mcpb · office-suite.mcpb

Download bundle
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 17 Sept 26 46

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 21 Sept 2026 · Analysed mcpb/https://github.com/theluckystrike/mcp-servers/releases/download/v0.22.0/office-suite.mcpb@0.22.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem mcpb

Background: How many MCP packages publish verified provenance →

Dependencies 190 packages
Packages resolved 190
Deprecated 2
Stale 88
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 158 exposed · ~23,736 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
aging_summary ~87

The aging summary across every unpaid invoice: current, 1-30, 31-60, 61-90 and 91+ day buckets, with counts and totals in integer cents, per currency. This is the answer to "how much am I owed, and how stale is it".

NameTypeReqDescription
onstringThe date to age against, YYYY-MM-DD. Default today

No output schema declared.

No examples provided.

alerts_pending ~51

Answer whether anything you watch got cheaper: every watch at or below its target_price, or down 5% or more since the previous observation, with the change %. Reads stored data only: run watch_refresh first.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

asset_add ~466

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.

NameTypeReqDescription
categorystringyesA 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
cost_minorintegeryesAcquisition cost in MINOR units (integer cents/grosze), e.g. 549900 for 5499.00. Never a decimal
currencystringISO code. Defaults to the shared business profile currency, else the scheme table currency
declining_coefficientnumberDeclining-balance coefficient. Polish default 2.0, capped by the table; ignored with straight-line
in_service_datestringISO date YYYY-MM-DD the asset entered use and the register. Defaults to purchase_date
life_yearsnumberOverride the useful life derived from the table, in years. The answer reports that it was an override
methodstring"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
namestringyesWhat the asset is, e.g. "MacBook Pro 16" or "Delivery van"
notestring
projectstringProject, department or cost centre this asset belongs to
purchase_datestringyesISO date YYYY-MM-DD the asset was bought
rate_pctnumberOverride the annual percentage derived from the table. Use for a lowered Polish rate under art. 16i
residual_minorintegerResidual or salvage value in MINOR units, default 0. Must be less than cost. MACRS ignores it and the answer says so
schemestring"pl" Polish KST annex rates, "uk" HMRC capital allowance pools, "us" IRS MACRS GDS. Omit to derive it from the shared business profile currency

No output schema declared.

No examples provided.

asset_delete ~77

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.

NameTypeReqDescription
assetstringyesAsset id such as ASSET-2026-0001, or an exact or partial name

No output schema declared.

No examples provided.

asset_dispose ~152

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.

NameTypeReqDescription
assetstringyesAsset id such as ASSET-2026-0001, or an exact or partial name
datestringyesISO date YYYY-MM-DD the asset left the business. It cannot be before the in-service date
notestringWhat happened, e.g. sold to a dealer, written off after a fire
proceeds_minorintegerSale proceeds in MINOR units, default 0 for a scrapping or a write-off

No output schema declared.

No examples provided.

asset_journal ~157

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.

NameTypeReqDescription
accumulated_accountstringCredit account name. Default "Accumulated depreciation"
categorystringExpense category to put on the expense_add payload. Default "depreciation"
expense_accountstringDebit account name. Default "Depreciation expense"
monthstringyesThe month to journal, YYYY-MM. A date YYYY-MM-DD is read as its month
projectstringOnly assets on this project or cost centre
schemestringOnly assets on this tax scheme

No output schema declared.

No examples provided.

asset_list ~161

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.

NameTypeReqDescription
as_ofstringValue the register at this month or date, YYYY-MM or YYYY-MM-DD. Default today
categorystringOnly assets in this table category code or name
currencystringOnly assets held in this currency
include_disposedbooleanInclude assets already disposed of. Default false
limitintegerMaximum rows, default and ceiling 2000
projectstringOnly assets on this project or cost centre
schemestringOnly assets on this tax scheme

No output schema declared.

No examples provided.

asset_report ~143

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.

NameTypeReqDescription
as_ofstringValue the register at this month or date, YYYY-MM or YYYY-MM-DD. Default the last day of the year
projectstringOnly assets on this project or cost centre
schemestringOnly assets on this tax scheme
yearintegerCalendar year to report, e.g. 2026. Default the year of as_of, else this year

No output schema declared.

No examples provided.

asset_schedule ~347

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.

NameTypeReqDescription
assetstringAsset 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
categorystringTable category code or name, when pricing an asset that is not in the register
cost_minorintegerCost in MINOR units, when pricing an asset that is not in the register
currencystringISO code, when pricing an asset that is not in the register
declining_coefficientnumberDeclining-balance coefficient; ignored with straight-line
granularitystring"year" for one row per period, "month" for the monthly charge. Default "year"
in_service_datestringISO date YYYY-MM-DD the asset entered use. Defaults to purchase_date
life_yearsnumberOverride the useful life from the table, in years
methodstring"straight-line" or "declining-balance"
purchase_datestringISO date YYYY-MM-DD, when pricing an asset that is not in the register
rate_pctnumberOverride the annual percentage from the table
residual_minorintegerResidual in MINOR units, default 0
schemestringScheme, when pricing an asset that is not in the register

No output schema declared.

No examples provided.

business_days ~159

Count business days between two dates in a place, inclusive, with the calendar total and the weekend and holiday counts. It has NO holiday calendar: without holidays, only weekends are excluded.

NameTypeReqDescription
fromstringyesStart date, YYYY-MM-DD (inclusive). A date that does not exist, such as 2026-02-30, is refused, never rolled forward
holidaysarrayDates to exclude, strict YYYY-MM-DD. This tool has no national holiday calendar: unless you pass holidays here only weekends are excluded, so do not report the answer as a public-holiday-adjusted cou…
tostringyesEnd date, YYYY-MM-DD (inclusive)
zonestringyesPlace whose calendar to use

No output schema declared.

No examples provided.

cache_status ~54

Report the ECB rate cache here: which dates are held, how old they are and when they refresh. Reads only. Check it before trusting a rate after time offline; a cache that no longer parses is quarantined and named.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

calendars_list ~54

List imported calendars: name, event-definition count, size, source, import time and free-tier use of the 2 slots. It also names stored .ics files with no calendar row. With none it prints the export steps.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

chase_today ~111

The day's chase list: which invoices cross an escalation threshold today, which letter to send each and how long it has been waiting, what falls due in the next few days, and which invoices have had all three letters and need a decision outside this server.

NameTypeReqDescription
onstringThe date to run the list for, YYYY-MM-DD, e.g. to see what Monday will need. Default today
within_daysintegerHow far ahead to list letters coming due, default 7 days

No output schema declared.

No examples provided.

clause_add ~257

Save a reusable contract or proposal clause to the library. Returns the stored clause id, title, category, tags and the variables detected in its body, plus how many clauses of your own the library now holds.

NameTypeReqDescription
bodystringyesThe clause text. Use {{variable}} placeholders for the facts that change per client, for example {{client}}, {{fee}} or {{late_fee_percent}}; contract_assemble fills them at assembly time. Free tier:…
categorystringyesGrouping. The known ones, in assembly order, are parties, scope, payment, expenses, ip, confidentiality, data, term, liability, warranty, disputes, general -- reuse one of these; any other name is ac…
jurisdictionstringWhere the clause is meant to apply, for example 'PL' or 'England and Wales'
languagestringISO language code, default en
tagsarray
titlestringyesClause heading, for example 'Late Payment'
variablesarrayDeclared variable names. Anything {{...}} in the body is detected anyway

No output schema declared.

No examples provided.

clause_delete ~62

Delete one clause by id or exact title and report how many are left. There is no undo, and a deleted starter clause is not re-seeded. Use clause_update to change one you want to keep.

NameTypeReqDescription
idstringyesClause id or exact title

No output schema declared.

No examples provided.

clause_export ~119

Call this tool to write the whole library to one file and return the path, format and count. It is written in contract order, so it re-imports the same way. markdown is free; json is Pro.

NameTypeReqDescription
formatstringyesjson (a Pro feature) or markdown (works in the free tier)
overwritebooleanReplace the destination if a file is already there. Without it an existing file is never touched
pathstringyesDestination file path. The clauses are written in assembly order, categories first

No output schema declared.

No examples provided.

clause_get ~80

Return one clause in full by id or title: body, category, tags, jurisdiction, variables and the revision count, which stays 0 on free. A partial title matching several is refused with the candidates.

NameTypeReqDescription
idstringClause id, for example late-fees
titlestringClause title; a partial title matches too

No output schema declared.

No examples provided.

clause_import ~145

Call this tool to load clauses from a .md or .json file, reporting added, replaced, skipped and capped counts. A duplicate title is skipped unless overwrite. json is Pro. Free: 10 of your own.

NameTypeReqDescription
overwritebooleanReplace clauses whose title already exists instead of skipping them
pathstringyesPath to a .md or .json file. Markdown form: '## Title', then optional 'category:' / 'tags:' / 'variables:' lines, a blank line, then the body. JSON form: an array of clauses. JSON import is a Pro fea…

No output schema declared.

No examples provided.

clause_list ~56

List the library as id, title, category, tags and variables, in contract order by category then title, which is the order contract_assemble uses. Narrow with category; use clause_search for words.

NameTypeReqDescription
categorystring

No output schema declared.

No examples provided.

clause_search ~112

Ranked search over clause titles, tags, categories and bodies. Title and tag matches outrank body matches. Jurisdiction filtering is free; the tag filter is Pro and is skipped rather than refusing the search.

NameTypeReqDescription
categorystring
jurisdictionstringExact jurisdiction match. Free
querystringyesWords to look for, for example 'late payment interest'
tagsarrayPro: every tag listed must be present. On free the search still runs, without this filter

No output schema declared.

No examples provided.

clause_update ~106

Change the text, category, tags, variables or jurisdiction of a clause. In Pro the previous text is kept as a version; in the free tier the change is applied without history.

NameTypeReqDescription
bodystring
categorystring
idstringyesClause id or exact title
jurisdictionstring
languagestring
tagsarray
titlestring
variablesarray

No output schema declared.

No examples provided.

client_add ~93

Store a client so invoice_create can refer to them by name. Re-adding the same name updates the stored address, email and VAT id; a record identical to a stored one is refused, naming the id that already holds it.

NameTypeReqDescription
addressstring
emailstring
namestringyes
vat_idstringClient VAT id, printed for reverse-charge invoices

No output schema declared.

No examples provided.

client_delete ~62

Delete one stored client that nothing refers to. A client named on any invoice, quote, credit note, purchase order, deposit, statement or schedule is refused with those documents listed.

NameTypeReqDescription
clientstringyesClient name or id, exactly as client_list shows it

No output schema declared.

No examples provided.

client_list ~49

List every stored client with id, address, email and VAT id. No arguments, and it writes nothing. With none stored it says so: invoice_create also creates a client from the name you pass.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

conflicts ~95

Find double bookings: every PAIR of timed events that overlap, with the minutes they collide, across all calendars unless you name one. Whole-day events are reported apart. Free: 31 days. free_busy shows gaps.

NameTypeReqDescription
calendarstringOne calendar name; default every imported calendar
fromstringyesFirst day, YYYY-MM-DD
tostringyesLast day, YYYY-MM-DD, included

No output schema declared.

No examples provided.

contacts_list ~44

List saved contacts with their zone, local time now, working hours and whether they are inside them; weekends count as outside. It also prints YOUR zone from the shared business profile.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

contacts_set ~107

Save one person's zone and working hours so later calls can name them. Returns the resolved zone and their local time now. Saving the same name REPLACES that contact and says so. Free: 5 contacts.

NameTypeReqDescription
namestringyesTheir name
work_endstringLocal day end, default 17:00
work_startstringLocal day start, default 09:00
zonestringyesTheir place or IANA zone

No output schema declared.

No examples provided.

contract_assemble ~295

Call this tool to build a contract from library clauses as .docx or markdown. A variable you omit stays as a bracketed prompt, never invented. clause_ids order is document order. Free: 8 clauses.

NameTypeReqDescription
categoriesarrayInstead of ids: every clause in these categories, ordered by category. Free tier: up to 8 clauses per document
clause_idsarrayClause ids in the order they should appear; this is the document order. Free tier: up to 8 clauses per document
clientstringClient name; also fills the {{client}} variable
formatstringdocx (default) or markdown; the document opens with the not-legal-advice line either way
out_pathstringWhere to write the file. Default: the server data directory, under a name built from the client and the title
overwritebooleanReplace out_path if a file is already there. Without it an existing file is never touched
titlestringyesDocument title, for example 'Service Agreement - Beta Corp'
valuesobjectValues for the {{variables}} in the chosen clauses, for example {"fee":"4500","late_fee_percent":"2"}. Any variable you leave out stays in the document as a bracketed prompt such as [late fee percent…

No output schema declared.

No examples provided.

contract_create ~229

Call this tool to produce a freelance service agreement .docx. Returns the reference, the fee and the file path. It is a template skeleton for a lawyer to review, not legal advice. Free tier: 3 agreements per month.

NameTypeReqDescription
clausesarrayExtra clauses to append, one paragraph each
clientstringyesThe client's legal name
end_datestringYYYY-MM-DD, omit for an open-ended engagement
feeobjectyes
governing_lawstringe.g. 'the laws of Poland'
out_pathstringWhere to write the .docx. Defaults to the data directory
overwritebooleanReplace out_path if a file is already there. Default false: an existing file is never overwritten
servicesstringyesWhat you will do, one or two sentences. The document adds parties, term, fee and schedule, plus standard clauses on intellectual property, confidentiality, independent contractor status, liability, t…
start_datestringyesYYYY-MM-DD

No output schema declared.

No examples provided.

convert ~244

Call this tool to convert an amount between any two ECB-quoted currencies, today or on a past date. Returns the converted amount, the cross rate to 6 decimals, the rounding applied and the rate date used.

NameTypeReqDescription
amountnumberyesAmount in major units of the from currency, e.g. 100 or 12.34
datestringISO date YYYY-MM-DD. Omit for the latest published rate. A weekend or TARGET holiday falls back to the last rate published on or before it, and the answer says so. A date older than the free 90-day w…
fromstringyesCurrency the amount is in. Cross rates go through the euro, the only pair the ECB publishes
tostringCurrency to convert into; defaults to the shared business profile's default_currency, so you are never asked what currency you invoice in. The result is rounded once, at the end, to this currency's o…

No output schema declared.

No examples provided.

convert_many ~69

Convert one amount into many currencies off the SAME ECB rate date, each rounded to its own minor units. A target the ECB does not quote is listed as unknown rather than failing the call.

NameTypeReqDescription
amountnumberyes
fromstringyes
toarrayyesTarget currencies

No output schema declared.

No examples provided.

convert_time ~213

Convert one time from from_zone into every zone in to_zones, marking any day change, plus the UTC instant. The time is wall-clock in from_zone unless it carries an offset or a trailing Z. '3pm tomorrow' works.

NameTypeReqDescription
foldstringWhich occurrence of a time that happens twice because the clocks went back. Default 'first'.
from_zonestringyesPlace the time is given in, e.g. 'Warsaw' or 'Europe/Warsaw'
gapstringWhat to do with a time that does not exist because the clocks jumped forward: 'forward' takes the time after the jump, 'backward' the time before it. Without this, such a time is refused.
timestringyes'2026-09-10 15:00', '2026-09-10T15:00:00Z', '3pm tomorrow', 'now'
to_zonesarrayyesPlaces to convert into

No output schema declared.

No examples provided.

cover_letter_create ~228

Call this tool to write a one-page cover letter .docx from the stored profile and return the path, word count and bracketed prompts. Nothing from the posting is restated as yours. Free: 3 a month.

NameTypeReqDescription
companystringyes
highlightsarrayPoints to lead with. Each is checked against the profile; anything not found there is returned as a bracketed prompt, not printed as fact.
hiring_managerstring
job_descriptionstringPaste the posting. Used only to pick which of your own skills to lead with; no figure from the posting is ever restated as yours.
out_pathstringWhere to write the .docx. Defaults to <data dir>/documents/<company>-<role>-cover-letter.docx, numbered -2, -3, ... if that exists.
overwritebooleanReplace an existing file at out_path. Default false: the call fails and nothing is written.
rolestringyes
tonestringDefault "formal".

No output schema declared.

No examples provided.

credit_note_create ~282

Issue a credit note against an invoice, or standalone: the recipient, the reason (returned goods, overcharge, discount correction, service issue, other), line items with quantity, unit price and tax rate, and the currency. Returns a draft you can still revise; credit_note_finalize burns the final CN number.

NameTypeReqDescription
currencystringyesISO code the credit is in
duplicate_okbooleanCreate it even though an identical draft or note exists, for a genuinely repeated credit. Default false
invoice_refstringThe invoice this credits, e.g. INV-2026-0042. Omit for a standalone credit
issue_datestringThe date the credit is issued, YYYY-MM-DD. Default today; a future date is refused
linesarrayyesWhat is being credited, line by line
notesstringText printed at the foot of the document, e.g. how the credit will be settled
reasonstringyesWhy the credit is issued: returned_goods, overcharge, discount_correction, service_issue or other
reason_detailstringOne line of specifics, e.g. Client was billed 10 seats, used 7
recipientstringyesWho the credit is for, e.g. Acme GmbH

No output schema declared.

No examples provided.

credit_note_delete ~74

Delete a draft credit note entered wrongly, by its draft id. A finalized note is refused by name: it is a document the client may have seen, and deleting it would leave their copy pointing at nothing.

NameTypeReqDescription
idstringyesThe draft id, e.g. CN-DRAFT-2026-0001

No output schema declared.

No examples provided.

credit_note_finalize ~90

Finalize a draft: burn the final CN-YYYY-NNNN number and freeze the note. From here it cannot be edited or deleted, only rendered and listed, because it is now the document the client sees. Free tier: 10 finalized credit notes; Pro removes the limit.

NameTypeReqDescription
idstringyesThe draft id, e.g. CN-DRAFT-2026-0001

No output schema declared.

No examples provided.

credit_note_get ~90

Return one credit note by its CN number or draft id: every line with quantity, unit price and tax, the totals per tax rate, the reason, the invoice it credits, and the notes. Reads only; use credit_note_list for the ids.

NameTypeReqDescription
idstringyesThe credit note number CN-2026-0001 or draft id CN-DRAFT-2026-0001

No output schema declared.

No examples provided.

credit_note_list ~156

List credit notes: number or draft id, recipient, reason, status, issue date and total. Filter by recipient (a part of the name is enough), by reason, by status draft or final, and by issue-date period with from and to.

NameTypeReqDescription
fromstringFirst issue date to include, YYYY-MM-DD
limitintegerMaximum notes listed, default and ceiling 2000
reasonstringOnly notes with this reason
recipientstringMatch the recipient, case-insensitive, a part of the name is enough
statusstringOnly drafts or only finalized notes
tostringLast issue date to include, YYYY-MM-DD

No output schema declared.

No examples provided.

credit_note_render ~121

Turn a credit note into the document: Markdown to paste into an email or ticket, or a self-contained printable HTML page with every style inline. Drafts render with a DRAFT banner so a half-finished credit cannot be sent by mistake. Writes nothing. Free; the free tier stamps a one-line footer.

NameTypeReqDescription
formatstringmarkdown (default) or html, a self-contained printable page
idstringyesThe credit note number CN-2026-0001 or draft id CN-DRAFT-2026-0001

No output schema declared.

No examples provided.

credit_note_summary ~96

How much you have credited: totals per currency over finalized credit notes, broken down by reason and by month, in an optional issue-date period. Drafts count for nothing until they are finalized. Currencies are never added together.

NameTypeReqDescription
fromstringFirst issue date to include, YYYY-MM-DD. Default: the beginning
tostringLast issue date to include, YYYY-MM-DD. Default: today

No output schema declared.

No examples provided.

credit_note_update ~194

Change a draft credit note while it is still a draft: recipient, reason, lines, currency, invoice reference, issue date or notes. Pass only what changes; new lines replace all old ones. A finalized note is immutable and is refused by name.

NameTypeReqDescription
currencystringISO code. Changing it reprices nothing: the stored minor units carry over, so only change it to fix a wrong currency
idstringyesThe draft id, e.g. CN-DRAFT-2026-0001
invoice_refNew invoice reference, or null to detach the note from its invoice
issue_datestring
linesarrayThe full new line set, replacing every existing line
notesNew notes text, or null to remove the notes
reasonstring
reason_detail
recipientstring

No output schema declared.

No examples provided.

currencies_list ~48

Every currency in the ECB daily set with its rate against the euro and its decimal places. This is the whole domain: a code not on this list cannot be converted, quoted or historised here.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

doc_create ~213

Call this tool to write a real .docx file from structured sections. Returns the file path, the number of blocks written and the layout used. Free and unlimited.

NameTypeReqDescription
datestringDate line for the letter layout, default today
out_pathstringWhere to write the .docx. Defaults to the data directory
overwritebooleanReplace out_path if a file is already there. Default false: an existing file is never overwritten
recipientstringAddressee block for the letter layout
sectionsarrayyesSections in order. Each one may carry a heading, paragraphs, a bullet or numbered list and a table
stylestringLayout, default plain. plain is the title and the body; letter adds a sender block top right, a date and the addressee; proposal adds a letterhead band and a cover title
titlestringyesDocument title, used as the top heading and the file name

No output schema declared.

No examples provided.

doc_fill_template ~200

Call this tool to replace {{placeholders}} in a .docx and write a new file, reporting what was filled, unfilled or ignored. Call it with no values to list them. Free: templates up to 10 placeholders.

NameTypeReqDescription
out_pathstringWhere to write the filled .docx. Defaults to <template>-filled.docx
overwritebooleanReplace out_path if a file is already there. Default false: an existing file is never overwritten
template_pathstringyesPath to the .docx template containing {{placeholders}}. Every style, table, header, footer and image of the original is kept. Placeholders split across runs by Word's editor are handled, because the…
valuesobjectPlaceholder name to value, e.g. {client: "Acme", fee: "EUR 4,500.00"}

No output schema declared.

No examples provided.

doc_from_markdown ~182

Call this tool to turn markdown into a .docx, returning the file and a count of blocks by type. Headings, lists, GFM tables and code fences are honoured. Empty markdown is refused, and so is overwriting without the flag.

NameTypeReqDescription
markdownstringyesThe markdown source. ATX headings, paragraphs, bullet and numbered lists, GFM pipe tables and fenced code blocks as monospace are honoured, as are **bold**, *italic* and `code` inline
out_pathstringWhere to write the .docx. Defaults to the data directory
overwritebooleanReplace out_path if a file is already there. Default false: an existing file is never overwritten
stylestring
titlestringDocument title; defaults to the first heading in the markdown

No output schema declared.

No examples provided.

doc_read ~119

Call this tool to extract the text of an existing .docx. Returns an outline of the headings and the full text in document order, or the block structure. Free and unlimited.

NameTypeReqDescription
formatstringtext (default) returns the readable text, json returns the block structure: headings with their levels, paragraphs, list items and tables, in document order
pathstringyesPath to the .docx file. Files produced by Word, Google Docs or this server all work; legacy .doc and .rtf do not

No output schema declared.

No examples provided.

doc_to_html ~138

Call this tool to convert a .docx to semantic HTML you can open in a browser and print to PDF. Returns the path of the .html file. This is the supported PDF route; no PDF is rendered here. Free and unlimited.

NameTypeReqDescription
out_pathstringWhere to write the .html. Defaults next to the source file. Open the result and print it to PDF; direct PDF output is not offered here
overwritebooleanReplace out_path if a file is already there. Default false: an existing file is never overwritten
pathstringyesPath to the .docx file to convert

No output schema declared.

No examples provided.

docx_business_set ~401

Store the sender details printed on every proposal, contract and letter, plus the currency, VAT, terms and prefix defaults. It writes the SAME shared profile as the invoice server's business_set.

NameTypeReqDescription
addressstringPostal address, newlines allowed
bankstringBank name / BIC
brand_colorstringLetterhead colour as a hex code, e.g. 1F3864 (Pro)
default_currencystringISO code, e.g. EUR, USD. Default EUR
default_tax_ratenumberDefault VAT percent, quoted on proposals
emailstringYour own email address, printed on every letterhead. Leave it out unless the user gave it: a document that shows an address nobody supplied is worse than one that shows [add: email]
ibanstringIBAN or account number for payment
invoice_prefixstringReference prefix used by mcp-invoice; this profile has the same field shape as mcp-invoice, so one profile serves both
logo_pathstringPath to a PNG or JPG logo for the letterhead (Pro)
namestringyesYour business or freelancer name, printed on the letterhead of every proposal, contract and letter
payment_terms_daysnumberDefault days until payment is due. Default 14
phonestringYour own phone number. Same rule as email: only if the user gave it
tax_ratenumberAlias for default_tax_rate
timezonestringIANA zone you work in, e.g. Europe/Warsaw. Shared with time-tracker and timezone as your home zone
vatnumberAlias for default_tax_rate
vat_idstringVAT / tax registration id
vat_ratenumberAlias for default_tax_rate

No output schema declared.

No examples provided.

dst_changes ~73

The clock changes in a place for a year, with the exact UTC instant and the offset before and after. Use it to check whether a recurring call moves for one of you in March or October.

NameTypeReqDescription
yearintegerCalendar year, default this year
zonestringyesPlace or IANA zone

No output schema declared.

No examples provided.

entry_add ~252

Log time already worked as one entry and return its id, duration and amount. Give start plus end or minutes. rate is hourly in MAJOR units and is frozen on the entry, so a later rate change never moves it.

NameTypeReqDescription
billablebooleanDefault true; set false for non-billable work
currencystringCurrency of the rate: EUR, USD, GBP, PLN, or words like 'euros'. Defaults to the project currency, else USD.
endstringISO 8601 end time (or use minutes)
minutesnumberDuration in minutes (alternative to end)
notestringOptional note
projectstringyesProject or client name. A partial name that matches exactly one existing project is used as that project.
rateHourly rate for this entry; a number (90) or the words the user said ('90 euros an hour')
startstringyesISO 8601 start time, e.g. 2026-09-02T09:00:00
tagsarrayOptional tags
taskstringWhat the work was

No output schema declared.

No examples provided.

Common questions

What is the io.github.theluckystrike/office-suite-time-invoice-expense… MCP server?

io.github.theluckystrike/office-suite-time-invoice-expense… is an MCP server listed in the public MCP registry as io.github.theluckystrike/office-suite-time-invoice-expense…. One MCP server for the whole freelancer office: time tracking, price watching, spreadsheets, PDF. This page covers its MCPB bundle (https://github.com/theluckystrike/mcp-servers/releases/download/v0.22.0/office-suite.mcpb).

Is the io.github.theluckystrike/office-suite-time-invoice-expense… MCP server safe to use?

io.github.theluckystrike/office-suite-time-invoice-expense… scores 46 out of 100 on VerifyMCP. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.theluckystrike/office-suite-time-invoice-expense… MCP server expose?

io.github.theluckystrike/office-suite-time-invoice-expense… exposes 158 tools: timer_start, timer_stop, timer_status, entry_add, entry_list, and 153 more. Their descriptions and schemas cost roughly 23,736 tokens of context every time the server is loaded.

What licence is the io.github.theluckystrike/office-suite-time-invoice-expense… MCP server under?

io.github.theluckystrike/office-suite-time-invoice-expense… declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.