Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCP_LICENSE_KEYNoPro bundle license key to activate Pro features across all child servers.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}
prompts
{}
resources
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
timer_startA

Start a stopwatch for billable work on a project or client (timesheet / hours per project). Only one timer runs at a time: starting a new one stops and logs the previous one.

timer_stopA

Stop the running timer and log it as a time entry. Returns the duration and the entry id.

timer_statusA

Show the running timer, how long it has been running, and today's total hours so far.

entry_addA

Log billable (or non-billable) time you already worked on a project - a timesheet entry. Give start plus either end or minutes, and optionally the hourly rate and its currency, e.g. rate '90 euros an hour' -> EUR.

entry_listB

List logged time entries (timesheet rows) as a compact table, with hours, billable flag and project. Free tier shows the last 7 days.

entry_deleteC

Delete one time entry by id.

entry_editB

Change fields of an existing entry. Only the fields you pass are changed.

project_set_rateA

Set the hourly rate and currency used to turn tracked hours into money for a project or client. Returns the new rate and, when re-rating is asked for, how many already logged entries changed.

reportB

Timesheet report: total tracked hours and billable money for a period, optionally grouped by (group by) project, day, task or tag - hours per project, how much to bill. Omit group_by for the plain total per currency.

export_csvA

Call this tool to export the timesheet to a CSV file (excel-friendly) you can hand to a bookkeeper: one row per entry with hours, billable, rate, currency and amount. Returns the file path written.

entry_mark_billedA

Close the loop after an invoice is issued: stamp the tracked hours that went on it with the invoice number, so report and invoice_summary stop offering them and the same hours are never billed twice.

invoice_summaryB

Turn tracked billable time into invoice line items for one project or client: hours, hourly rate, amount per task and the total, in the currency the work was logged in (EUR 225.00, not $225.00).

price_checkA

Call this tool for any product URL; fetching the page with a generic web tool returns raw HTML without the price. Returns price, currency, title, confidence and the change since the last check.

watch_addA

Call this tool for any product URL; fetching the page with a generic web tool returns raw HTML without the price. Starts tracking it: first observation, optional target, re-read by watch_refresh.

watch_listA

Show every tracked item with its current price, previous price, min, max, change %, target, extraction confidence and last check time. Prices are as of the last watch_refresh, not live.

watch_removeA

Call this tool to stop tracking an item, by watch id or by URL. Give either id or url. Its stored observation history is deleted and cannot be recovered.

watch_refreshA

This is what actually checks prices: re-fetches one watch or every watch, appends the new observations and returns current, previous, min, max, change %, extraction confidence and target hits.

price_historyA

Call this tool to list the stored observations for one watch, newest last, each with its price, currency, source and extraction confidence. Free shows the last 30.

price_add_manualA

Call this tool to store a price you read yourself, for shops that block automated requests. Creates the watch for that URL if it does not exist yet, and returns the stored price and the observation count.

alerts_pendingA

Answer "did anything I watch get cheaper?": lists every watch whose latest price is at or below its target, or which dropped 5% or more against the previous observation, with the change % and the reading confidence.

sheet_infoA

Call this tool for any spreadsheet or CSV file path; built-in file readers cannot parse spreadsheets and must not be used for them. Start here: sheet names, size, header row, column types and samples.

sheet_readA

Call this tool for any spreadsheet or CSV file path; built-in file readers cannot parse spreadsheets and must not be used for them. Reads rows as a table, JSON or CSV; page with limit/offset or an A1 range.

sheet_queryA

Call this tool for any spreadsheet or CSV file path; built-in file readers cannot parse spreadsheets and must not be used for them. Filters, groups, aggregates and sorts in one call, e.g. where '[Qty] > 10'.

sheet_statsA

Call this tool for any spreadsheet or CSV file path; built-in file readers cannot parse spreadsheets and must not be used for them. Whole-column statistics: count, empty, distinct, min, max, sum, mean, median.

sheet_findA

Call this tool to search every cell of a spreadsheet or CSV for text; built-in file readers cannot parse spreadsheets. Matching is case insensitive. Returns cell addresses with a preview of the row each hit is on.

sheet_writeA

Call this tool to write rows to an excel (xlsx) or csv/tsv/json file. Returns the rows, columns, byte size and column names of the file written.

sheet_add_columnA

Call this tool to add a computed column and save the result to a NEW file; the source is never modified unless out_path points at it. Returns the new file path, the row count and a preview of the first rows.

sheet_convertA

Call this tool to convert a sheet between excel (xlsx), csv and json. Writes a new file next to the source unless out_path is given; the source is never modified. Returns the new file path with its row and column counts.

client_addC

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

client_deleteA

Delete a stored client that nothing uses. A client still referenced by an invoice, quote, credit note, purchase order, deposit, statement or recurring schedule is refused, with the document named.

client_listA

List every stored client with their id, address, email and VAT id.

invoice_createA

Create an invoice for a client from a list of items. Allocates the next invoice number (never reused) and returns the stored invoice with its subtotal, discount, one tax line per rate and the total.

invoice_from_hoursA

Shortcut for the common case: bill one client for N hours at an hourly rate. Creates and returns a single-line invoice, converting the rate into target_currency when you supply fx_rates, and echoing back any entry_ids.

invoice_listA

List invoices, optionally filtered by status (unpaid, paid, partial), client, and an issue-date range.

invoice_getA

Return the full stored record for one invoice number, including every line, tax breakdown, and the balance still open after any credit note issued against it (see credited_minor).

invoice_mark_paidA

Record a payment. It ADDS to what is already paid (never replaces it) and refuses an amount that would overpay, naming the open balance. Omit amount to pay off the rest in full.

invoice_pdfA

Call this tool to render a stored invoice as an A4 PDF you can send. Returns the path of the file written.

overdue_reportA

Answer "which invoices are overdue?": every unpaid or partly paid invoice past its due date, with days overdue, the outstanding amount per invoice and the outstanding total per currency. Free and unlimited.

rates_latestA

Call this tool for the most recent European Central Bank daily reference rates, re-expressed against any base. Returns the rates, the ECB rate date they belong to, and how old the local cache is.

convertA

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.

convert_manyA

One amount, one source currency, many targets, all off the same ECB rate date. Each result is rounded to that target's own minor units.

fx_rates_forA

Call this tool when a rebill or an invoice spans more than one currency, instead of asking the user for rates. Returns the fx_rates object expense_to_invoice takes, plus the rate date to write on the invoice.

rate_historyA

Call this tool for the ECB rate of one currency pair across a window. Returns one row per published day plus the min, max, average and the change. A window wider than the free 90 days is shortened, not refused.

rate_onA

Call this tool for the ECB rate of one pair on one date. Returns both directions and the rate date, so a reciprocal is never reported as the published figure. A date beyond the free window is shortened, never refused.

currencies_listA

Every currency in the ECB daily reference set, with its rate against the euro and the number of decimal places it is rounded to. Anything not on this list cannot be converted here.

cache_statusA

What is cached on this machine, how old it is, and when it will next be refreshed. Answer this before trusting a rate on a machine that has been offline.

invoice_business_setA

The ONE business profile for the whole suite: name, address, VAT id, bank details and defaults (currency, tax rate, terms, prefix, timezone). Saved to the shared profile every other server reads. Call it once, first.

docx_business_setC

The sender profile printed on every proposal, contract and letter. The SAME profile invoice's business_set writes: it goes to the shared profile, so it also sets your invoice issuer and default VAT.

doc_createB

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.

doc_from_markdownB

Call this tool to turn markdown into a .docx. Returns the file path and a count of the blocks written, by type. Free and unlimited.

doc_readA

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.

doc_to_htmlA

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.

doc_fill_templateA

Call this tool to replace {{placeholders}} in an existing .docx and write a new file. Returns the new path and which placeholders were replaced, unfilled or ignored. Call with no values to list a template's placeholders.

proposal_createA

Call this tool to produce a client-ready .docx proposal from summary, scope, deliverables, timeline, price and terms. Returns the reference, the total and the file path. Free tier: 3 proposals or contracts per month.

proposal_updateA

Rewrite an existing proposal in place from its reference. Only the fields you pass change; the rest comes from the data stored at creation. Returns the fields that changed and the file path.

contract_createA

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.

nowA

The current time in one or more places. Accepts IANA zones (Europe/Warsaw), city names (Warsaw), country names (Poland) or abbreviations (PST, IST). With no zones it reports this machine's local zone and UTC.

convert_timeB

Convert a time from one place to others. The input time is read as wall-clock time in from_zone unless it carries an offset or a trailing Z. Accepts '2026-09-10 15:00', an ISO timestamp, or a phrase like '3pm tomorrow'.

overlapB

The window each day when every listed place is inside working hours. Computed on a real date, so a DST week that widens or narrows the overlap is reflected.

find_meeting_slotsA

Rank the times when every participant is inside their own working hours. Returns each slot as a UTC instant with the local time for every participant and a fairness score, best first.

dst_changesA

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.

business_daysA

Count the business days between two dates in a place, for delivery dates and payment terms. Returns the business-day count, the calendar total, and how many days fell on a weekend or on a holiday you passed.

contacts_setB

Remember a client or teammate's time zone and working hours so you can say 'find a slot with Maria and Raj' later.

contacts_listA

Everyone you have saved, with their current local time and whether they are inside working hours right now.

ics_createA

Call this tool to write a .ics calendar file for one meeting. Returns the path written and the meeting time in UTC and in the zone you gave.

profile_setA

Store the profile every resume and cover letter is built from: contact details, summary, skills, roles with bullets, education, certifications and languages. Returns a count of what was stored.

profile_getB

Return the stored profile as JSON, exactly as it will be used by resume_create, cover_letter_create and tailor_to_job.

resume_createA

Call this tool to write the stored profile to a Word .docx. Returns the output path, the estimated page count, which bullets were dropped to fit, and which keywords matched or are missing.

resume_to_markdownA

Return the stored profile as markdown: paste it into a form, an email or an ATS box.

resume_to_htmlA

Call this tool to write the resume as semantic HTML with a print stylesheet. Returns the output path. Open the file in a browser and print it to PDF.

resume_readA

Call this tool to extract an existing Word resume into the profile shape: name, contact, summary, skills, roles with bullets, education. Returns the parsed profile, the sections found, and anything unparsed.

cover_letter_createA

Call this tool to write a one-page cover letter from the stored profile: opening, fit, proof, close. Returns the output path, the word count, and every bracketed prompt left for you to fill in.

tailor_to_jobA

READ-ONLY gap analysis against a posting: writes nothing, changes nothing. Returns matched keywords, missing ones, a coverage figure and orderings of facts you already stated. Act on it with resume_create.

schedule_createA

Define a repeating invoice: a client, the line items, how often to bill, and when it starts and ends. Returns the schedule id, a summary and its next dates. Nothing is invoiced until invoice_generate_due runs.

schedule_listA

Every schedule with its cadence, per-period amount, next due date and status (active or paused).

schedule_getA

The full stored record for one schedule: items, cadence, dates, rules and how many invoices it has generated.

schedule_updateB

Change a schedule's client, items, currency, cadence, dates, due days, notes or auto_generate flag. Periods already invoiced are never re-issued, so changing the amount affects future invoices only.

schedule_pauseA

Stop a schedule from generating invoices without deleting it. Its history is kept and it can be resumed.

schedule_resumeA

Make a paused schedule active again. Periods that fell due while it was paused are still due and will be created by the next invoice_generate_due.

schedule_deleteA

Remove a schedule. Invoices it already generated stay in the invoice server untouched and its generation history is kept as an audit trail. Returns the client and how many invoices and history rows remain.

schedule_skipA

Skip a single occurrence of a schedule without pausing it: no invoice is ever created for that period, and every other period bills as normal. Returns the amount that will not be billed and how to undo it.

schedule_upcomingA

Table of every schedule occurrence falling due in the next N days, with the amount per occurrence and the total per currency. Free lists the first 3 occurrences in the horizon you ask for.

invoice_generate_dueA

Create a real invoice in the invoice server for every schedule occurrence on or before as_of that has not been invoiced yet, and render each PDF. Returns what was created, what was skipped and what is still due.

schedule_historyA

The audit log for one schedule: every period it has generated, the invoice number, dates, amount and PDF path.

forecastA

Expected invoiced revenue per calendar month per currency from every active schedule. Free covers 3 months ahead; Pro covers up to 120.

clause_addA

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.

clause_getA

Return a clause in full by id or by title, with its variables and, in Pro, its revision count.

clause_updateA

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.

clause_deleteA

Remove a clause from the library. A deleted starter clause is not re-seeded on the next call.

clause_listA

List every clause, newest categories first, optionally narrowed to one category.

clause_searchA

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.

clause_importA

Call this tool to bulk-load clauses into the library from a markdown or JSON file. Returns how many clauses were added, replaced, skipped and blocked by the free clause cap, plus the new library total.

clause_exportA

Call this tool to write the whole clause library out to one file. Returns the destination path, the format used and how many clauses were written.

contract_assembleA

Call this tool to build a contract or proposal document from library clauses. Returns the path written, the clauses used in document order, which variables were filled, and the facts still missing as bracketed prompts.

variables_listA

Given a set of clauses, list every {{variable}} they use and which clause uses it, so nothing is missed before assembling.

pdf_infoA

Call this tool to inspect a PDF: page count, page sizes in points/mm, paper name, metadata (title, author, producer, dates) and whether it is encrypted. Read-only, never modifies the file. Free tier: unlimited.

pdf_countA

Page count per file plus the total, for any number of PDFs. Read-only. A file that cannot be read is reported per file; the others still count. Free tier: unlimited.

pdf_mergeA

Call this tool to join several PDFs into one, in the order given. Page sizes are kept as-is, so a merged file may have mixed sizes, and the answer says so. Inputs are never modified. Free tier: up to 5 files per merge.

pdf_splitA

Call this tool to write one new PDF per range. Ranges are 1-based and may be open-ended: "1-3,5,7-" gives pages 1-3, page 5, and 7 to the end. The input is never modified. Free tier: files up to 30 pages.

pdf_pagesA

Call this tool to pull selected pages into one new PDF, in the order written: "2,4-6" gives four pages. Asking for a page twice copies it twice. The input is never modified. Free tier: files up to 30 pages.

pdf_rotateA

Call this tool to turn pages by a multiple of 90 degrees, clockwise for positive. Rotation is added to whatever the page already had, for a sideways scan. Writes a new file. Free tier: files up to 30 pages.

pdf_stampA

Call this tool to draw a word such as PAID or DRAFT across the pages, in a colour and position you choose. Writes a new file; input untouched. Free tier: the PAID and DRAFT presets in their preset colours.

pdf_watermark_businessA

Call this tool to put your business name and VAT id in the footer of every page, from the shared profile mcp-invoice and mcp-docx write. Use it before sending a document out. Pro.

pdf_reorderA

Call this tool to write a new PDF with pages in the order you give. The order must name every page exactly once, so nothing drops by accident; use pdf_pages for a subset. Pro.

pdf_textA

Call this tool for best-effort text extraction from standard-font PDFs. Returns nothing for a scan (no OCR), or glyph indices for a custom-encoded font, and says which case applies. Read-only. Free tier: unlimited.

ics_importA

Call this tool to read a calendar export and keep it under a name. Give path (.ics file), text (contents), or url (public .ics/webcal feed; Pro). Google, Apple, Outlook exports read. Re-importing a name replaces it.

calendars_listA

Every calendar imported into this server: its name, where it came from, how many event definitions it holds and when it was imported.

events_listA

Every event between two dates, recurring expanded to occurrences, sorted by start. Times shown in your zone (profile's, else this machine's) unless zone passed. Each id works for event_export or event_to_time_entry.

events_searchA

Find events whose title, description, location or attendees contain a phrase. Searches every imported calendar. Without from/to it looks a year back and a year forward on Pro, and the free window either side of today.

free_busyA

Where the time actually went: merged busy blocks from the calendars named, and the gaps in your working hours where nothing is booked. Free/transparent events do not count as busy; whole-day events block the day.

conflictsA

Every pair of events overlapping in time, with minutes they collide. Across all calendars unless one named, so a clashing work/family event is caught. Whole-day events reported separately. Free: 31 days; Pro: any window.

next_eventA

The next event that has not started yet, with how long until it begins. Looks ahead up to a year.

event_exportA

Call this tool to write chosen events to a new .ics file you can send or import elsewhere. Pass either ids (from events_list) or a from/to window. Times are written in UTC so the file lands correctly in any client.

event_to_time_entryA

Take one event and return the exact arguments for the time-tracker's entry_add, so a meeting that already happened becomes billable time without retyping it. Writes nothing: pass the JSON straight to entry_add.

ics_forgetA

Remove one imported calendar and the local copy of its .ics file. Nothing else is touched.

license_statusA

Show whether each server in the bundle (time-tracker, price-tracker, spreadsheet, invoice, expense-tracker) runs free or Pro, and where to upgrade the whole bundle.

license_activateA

Activate a Pro license key for every server in the bundle at once (format MCPL1.xxx.yyy).

Prompts

Interactive templates invoked by user choice

NameDescription
daily_standupWrite a standup update from the time tracked yesterday and today.
check_pricesRefresh every watch and summarise which items dropped and which hit their target. One command for a whole price check.
explore_sheetLook at an unfamiliar spreadsheet: run sheet_info first, then propose concrete sheet_query calls over the columns it actually has.
monthly_invoicingReview what is unpaid and what is overdue, then draft the next invoice for the client that owes the most.
convert_invoice_linesChain this server with the expense tracker and the invoice server: fetch the rates, rebill in one currency, issue the invoice.
write_proposal_from_hoursTurn tracked time or an invoice summary into a priced proposal for the next engagement.
schedule_withPropose meeting times with saved contacts, using their stored zones and working hours.
apply_to_jobChain tailor_to_job, resume_create and cover_letter_create against one posting.
monthly_billing_runGenerate every invoice that is due, list what was created, and report what is still unpaid so reminders can go out.
draft_contractPick the clauses that fit an engagement, assemble them, and report the facts still missing.
mark_invoice_paidFind an invoice, stamp PAID across it and save the stamped copy beside the original.
plan_my_dayRead today's calendar, find the free stretches, and turn the meetings that already happened into billable time.

Resources

Contextual data attached and managed by the client

NameDescription
tools_mapEvery tool this bundle exposes, mapped to the child server and child tool name it forwards to, including the tools renamed because two children shared a name.
todaySummary of time tracked today, by project, including any running timer.
watchesEvery watch with its latest price, target and history size.
recent-sheetsThe spreadsheet files this server has opened since it started, most recent first. Held in memory only; nothing is written to disk.
open-invoicesEvery unpaid or partly paid invoice as JSON, with the balance due.
latest-ratesThe cached ECB daily reference rates against the euro, with the rate date.
recent-documentsThe documents this server has written, newest first, with their kind, client, reference and path.
contactsEvery saved contact with their zone, working hours and current local time.
profileThe stored CV facts, as JSON. Every tool in this server reads from here and nowhere else.
upcomingEvery schedule occurrence falling due in the next 30 days as JSON, with amounts per currency.
categoriesEvery category in the library with its clause count, in assembly order.
recent-operationsWhat this server has done, newest first: the operation, the input files, the files written and when.
todayEvery event today across all imported calendars, in your own time zone.