{"name":"Proof Entry","identifier":"proofentry","version":"1.0.0","description":"An expense and income ledger. Agents can propose entries or explicitly record complete structured data. Only confirmed entries count toward totals.","url":"https://staging.glidzr.com/api/mcp","homepage":"https://staging.glidzr.com","transport":"streamable-http","protocolVersion":"2025-06-18","authentication":{"required":true,"type":"oauth2","description":"OAuth with PKCE or RFC 8628 device authorization and dynamic client registration. Every ledger request requires a token and is tenant-scoped.","authorizationServerMetadata":"https://staging.glidzr.com/.well-known/oauth-authorization-server","protectedResourceMetadata":"https://staging.glidzr.com/.well-known/oauth-protected-resource"},"capabilities":{"tools":true,"resources":false,"prompts":false,"sampling":false},"tools":[{"name":"list_transactions","description":"List ledger entries, newest first — expenses, income, or both. Returns amounts as integer minor units alongside the currency exponent — never divide by 100 without checking it. Amounts are always positive; read `direction` to know which way the money went. Defaults to confirmed entries only; pending ones are unreviewed proposals and are excluded from every total.","inputSchema":{"type":"object","properties":{"direction":{"type":"string","enum":["expense","income"],"description":"Omit for both sides of the ledger."},"status":{"type":"string","enum":["confirmed","pending","rejected"],"description":"Defaults to confirmed."},"from":{"type":"string","description":"Inclusive start date, yyyy-mm-dd"},"to":{"type":"string","description":"Inclusive end date, yyyy-mm-dd"},"limit":{"type":"integer","minimum":1,"maximum":200,"description":"Integer from 1 to 200; defaults to 50 when omitted. Invalid values are rejected."}},"additionalProperties":false},"writeBehavior":"read"},{"name":"get_totals","description":"Totals for a period: money in, money out, and the net between them, plus the VAT position and what is still unbilled to clients. Counts confirmed entries only.","inputSchema":{"type":"object","properties":{"from":{"type":"string","description":"Inclusive start date, yyyy-mm-dd"},"to":{"type":"string","description":"Inclusive end date, yyyy-mm-dd"}},"additionalProperties":false},"writeBehavior":"read"},{"name":"totals_by_category","description":"Confirmed totals grouped by category for a period, largest first. Defaults to expenses; pass direction to break income down instead.","inputSchema":{"type":"object","properties":{"direction":{"type":"string","enum":["expense","income"],"description":"Defaults to expense."},"from":{"type":"string","description":"Inclusive start date, yyyy-mm-dd"},"to":{"type":"string","description":"Inclusive end date, yyyy-mm-dd"}},"additionalProperties":false},"writeBehavior":"read"},{"name":"list_categories","description":"The category vocabulary for this ledger, split by which side it belongs to. Use these slugs verbatim when logging; an unrecognised slug — or one from the wrong side — is dropped rather than created.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"writeBehavior":"read"},{"name":"log_expense","description":"Propose money SPENT. Defaults to PENDING, excluded from totals. Pass confirm: true only to explicitly record complete structured data. Confirmed writes require description, positive string amount, currency and yyyy-mm-dd date, plus fxRate for foreign currency. Transcribe supplied amounts and rates; never invent them.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"description":{"type":"string","minLength":1,"maxLength":200},"amount":{"type":"string","minLength":1},"currency":{"type":"string","minLength":3,"maxLength":3},"occurredAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"merchantName":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"categorySlug":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"taxAmount":{"anyOf":[{"type":"string"},{"type":"null"}]},"taxRate":{"anyOf":[{"type":"string"},{"type":"null"}]},"supplierTaxId":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"reference":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"isBillable":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"clientName":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"notes":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"lineItems":{"anyOf":[{"maxItems":50,"type":"array","items":{"type":"object","properties":{"description":{"type":"string","minLength":1,"maxLength":200},"quantity":{"anyOf":[{"type":"number"},{"type":"null"}]},"unitAmount":{"anyOf":[{"type":"string"},{"type":"null"}]},"totalAmount":{"type":"string","minLength":1}},"required":["description","totalAmount"]}},{"type":"null"}]},"confirm":{"default":false,"description":"Defaults to false. True records complete structured data and requires occurredAt and a supplied foreign-currency fxRate. False creates a pending proposal.","type":"boolean"},"fxRate":{"type":"string","maxLength":64,"pattern":"^\\d+(?:\\.\\d+)?$"}},"required":["description","amount","currency"]},"writeBehavior":"pending-or-confirmed"},{"name":"log_income","description":"Propose money RECEIVED. Defaults to PENDING, excluded from totals. Pass confirm: true only to explicitly record complete structured data. Confirmed writes require description, positive string amount, currency and yyyy-mm-dd date, plus fxRate for foreign currency. Transcribe supplied amounts and rates; never invent them.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"description":{"type":"string","minLength":1,"maxLength":200},"amount":{"type":"string","minLength":1},"currency":{"type":"string","minLength":3,"maxLength":3},"occurredAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"merchantName":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"categorySlug":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"taxAmount":{"anyOf":[{"type":"string"},{"type":"null"}]},"taxRate":{"anyOf":[{"type":"string"},{"type":"null"}]},"supplierTaxId":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"reference":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"isBillable":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"clientName":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"notes":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"lineItems":{"anyOf":[{"maxItems":50,"type":"array","items":{"type":"object","properties":{"description":{"type":"string","minLength":1,"maxLength":200},"quantity":{"anyOf":[{"type":"number"},{"type":"null"}]},"unitAmount":{"anyOf":[{"type":"string"},{"type":"null"}]},"totalAmount":{"type":"string","minLength":1}},"required":["description","totalAmount"]}},{"type":"null"}]},"confirm":{"default":false,"description":"Defaults to false. True records complete structured data and requires occurredAt and a supplied foreign-currency fxRate. False creates a pending proposal.","type":"boolean"},"fxRate":{"type":"string","maxLength":64,"pattern":"^\\d+(?:\\.\\d+)?$"}},"required":["description","amount","currency"]},"writeBehavior":"pending-or-confirmed"},{"name":"add_expense","description":"Add money SPENT. confirm defaults to true: records complete structured data immediately and includes it in totals. Pass confirm: false to create a pending proposal instead. Confirmed writes require description, positive string amount, currency and yyyy-mm-dd date, plus fxRate for foreign currency. Transcribe supplied amounts and rates; never invent them.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"description":{"type":"string","minLength":1,"maxLength":200},"amount":{"type":"string","minLength":1},"currency":{"type":"string","minLength":3,"maxLength":3},"occurredAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"merchantName":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"categorySlug":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"taxAmount":{"anyOf":[{"type":"string"},{"type":"null"}]},"taxRate":{"anyOf":[{"type":"string"},{"type":"null"}]},"supplierTaxId":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"reference":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"isBillable":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"clientName":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"notes":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"lineItems":{"anyOf":[{"maxItems":50,"type":"array","items":{"type":"object","properties":{"description":{"type":"string","minLength":1,"maxLength":200},"quantity":{"anyOf":[{"type":"number"},{"type":"null"}]},"unitAmount":{"anyOf":[{"type":"string"},{"type":"null"}]},"totalAmount":{"type":"string","minLength":1}},"required":["description","totalAmount"]}},{"type":"null"}]},"confirm":{"default":true,"description":"Defaults to true. True records complete structured data and requires occurredAt and a supplied foreign-currency fxRate. False creates a pending proposal.","type":"boolean"},"fxRate":{"type":"string","maxLength":64,"pattern":"^\\d+(?:\\.\\d+)?$"}},"required":["description","amount","currency"]},"writeBehavior":"confirmed-by-default"},{"name":"add_income","description":"Add money RECEIVED. confirm defaults to true: records complete structured data immediately and includes it in totals. Pass confirm: false to create a pending proposal instead. Confirmed writes require description, positive string amount, currency and yyyy-mm-dd date, plus fxRate for foreign currency. Transcribe supplied amounts and rates; never invent them.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"description":{"type":"string","minLength":1,"maxLength":200},"amount":{"type":"string","minLength":1},"currency":{"type":"string","minLength":3,"maxLength":3},"occurredAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"merchantName":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"categorySlug":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"taxAmount":{"anyOf":[{"type":"string"},{"type":"null"}]},"taxRate":{"anyOf":[{"type":"string"},{"type":"null"}]},"supplierTaxId":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"reference":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"isBillable":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"clientName":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"notes":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"lineItems":{"anyOf":[{"maxItems":50,"type":"array","items":{"type":"object","properties":{"description":{"type":"string","minLength":1,"maxLength":200},"quantity":{"anyOf":[{"type":"number"},{"type":"null"}]},"unitAmount":{"anyOf":[{"type":"string"},{"type":"null"}]},"totalAmount":{"type":"string","minLength":1}},"required":["description","totalAmount"]}},{"type":"null"}]},"confirm":{"default":true,"description":"Defaults to true. True records complete structured data and requires occurredAt and a supplied foreign-currency fxRate. False creates a pending proposal.","type":"boolean"},"fxRate":{"type":"string","maxLength":64,"pattern":"^\\d+(?:\\.\\d+)?$"}},"required":["description","amount","currency"]},"writeBehavior":"confirmed-by-default"},{"name":"list_pending_review","description":"Entries captured automatically that are waiting for the account holder to confirm or reject. These are excluded from all totals.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"writeBehavior":"read"},{"name":"list_recurring","description":"Standing instructions that write to this ledger on a schedule — rent, retainers, subscriptions. Read-only: creating, editing or cancelling a rule is the account holder's to do in the app. Use this to explain why an entry exists, or what is coming.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"writeBehavior":"read"}],"constraints":["No tool changes existing entry status, assigns projects, or creates, edits or cancels recurring rules.","Proposals default to pending. add_income/add_expense default confirm to true; pass false to propose. Log tools default false; pass true to confirm complete structured data. Pending entries stay excluded from totals.","Read tools may materialize due entries from existing human-authored recurring rules.","Amounts are positive; direction carries the sign. Read money with its currency exponent."],"documentation":{"setup":"https://staging.glidzr.com/agents/mcp","deviceAuthorization":"https://staging.glidzr.com/agents/device","tools":"https://staging.glidzr.com/agents/tools","http":"https://staging.glidzr.com/agents/http","llmsTxt":"https://staging.glidzr.com/llms.txt","openapi":"https://staging.glidzr.com/openapi.json"}}