{"name":"accountsos","version":"1.0.0","tools":[{"name":"get_transactions","description":"Get transactions for the company with optional filters","inputSchema":{"type":"object","properties":{"from_date":{"type":"string","description":"Start date (YYYY-MM-DD)"},"to_date":{"type":"string","description":"End date (YYYY-MM-DD)"},"category":{"type":"string","description":"Filter by category"},"min_amount":{"type":"number","description":"Minimum amount"},"max_amount":{"type":"number","description":"Maximum amount"},"search":{"type":"string","description":"Search in description"},"limit":{"type":"number","description":"Max results (default 50)"}}}},{"name":"get_balance","description":"Get current account balance","inputSchema":{"type":"object","properties":{"account_id":{"type":"string","description":"Specific account (optional)"}}}},{"name":"get_deadlines","description":"Get upcoming tax and filing deadlines","inputSchema":{"type":"object","properties":{"include_completed":{"type":"boolean","description":"Include completed deadlines"}}}},{"name":"get_vat_summary","description":"Get VAT summary for a quarter","inputSchema":{"type":"object","properties":{"quarter":{"type":"string","description":"Quarter (e.g., \"Q1 2025\")"}}}},{"name":"categorize_transaction","description":"Suggest a category for a transaction","inputSchema":{"type":"object","properties":{"transaction_id":{"type":"string","description":"Transaction ID"}},"required":["transaction_id"]}},{"name":"search_documents","description":"Search uploaded documents (receipts, invoices)","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search query"},"type":{"type":"string","description":"Document type (receipt, invoice, statement)"}},"required":["query"]}},{"name":"read_wiki","description":"Read a page from Finn's knowledge base — compiled UK (and US) tax and accounting guidance: rules, cross-references, edge cases, plain-English advice for company directors. Call with page=\"index\" first to list all available pages.","inputSchema":{"type":"object","properties":{"page":{"type":"string","description":"Wiki page name (e.g. \"index\", \"corporation-tax\", \"vat\", \"ir35\", \"us-sales-tax-nexus\"). Use \"index\" to see all pages."}},"required":["page"]}},{"name":"search_wiki","description":"Search Finn's knowledge base by keyword. Returns matching page names and excerpts. Use when unsure which page covers a topic.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search keyword (e.g. \"marginal relief\", \"employment allowance\", \"flat rate scheme\")"}},"required":["query"]}},{"name":"read_company_wiki","description":"Read a page from this company's private memory wiki — Finn's long-term per-company notes (preferences, decisions, people, recurring Q&A). Call with slug=\"index\" first to list available pages.","inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"Page slug (e.g. \"index\", or a specific topic). Defaults to \"index\"."}}}},{"name":"search_company_wiki","description":"Search this company's private memory wiki by keyword. Returns matching page slugs, titles and excerpts.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search keyword"}},"required":["query"]}},{"name":"get_tax_facts","description":"Look up current UK tax rates, thresholds and allowances (income_tax, national_insurance, corporation_tax, dividends, capital_allowances, vat, pensions, mileage, self_assessment, home_office, mtd). Returns the figure plus its source.","inputSchema":{"type":"object","properties":{"category":{"type":"string","description":"Tax category (e.g. \"income_tax\", \"dividends\", \"mileage\")"},"item":{"type":"string","description":"Specific item within the category (optional — omit for all items)"},"tax_year":{"type":"string","description":"Tax year (e.g. \"2025-26\"). Defaults to current."}},"required":["category"]}},{"name":"search_tax_facts","description":"Search UK tax knowledge by keyword when unsure which category/item to look up. Returns matching tax facts across all categories.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search query (e.g. \"employment allowance\", \"dividend tax\")"},"tax_year":{"type":"string","description":"Tax year. Defaults to current."}},"required":["query"]}},{"name":"upload_document","description":"Upload a document (receipt, invoice, bank statement) for processing. The document will be analyzed by AI to extract data.","inputSchema":{"type":"object","properties":{"file_name":{"type":"string","description":"Original filename (e.g., \"receipt.pdf\")"},"file_data":{"type":"string","description":"Base64-encoded file content"},"document_type":{"type":"string","description":"Type of document: receipt, invoice, bank_statement, or other","enum":["receipt","invoice","bank_statement","other"]}},"required":["file_name","file_data"]}},{"name":"create_transaction","description":"Create a new transaction manually","inputSchema":{"type":"object","properties":{"date":{"type":"string","description":"Transaction date (YYYY-MM-DD)"},"description":{"type":"string","description":"Transaction description"},"amount":{"type":"number","description":"Transaction amount (positive number)"},"direction":{"type":"string","enum":["in","out"],"description":"Money direction: in (income) or out (expense)"},"category_id":{"type":"string","description":"Category ID (optional - will auto-categorize if not provided)"},"counterparty":{"type":"string","description":"Name of the other party"},"notes":{"type":"string","description":"Additional notes"},"trading_entity_id":{"type":"string","description":"Trading entity ID to assign transaction to a specific income stream"}},"required":["date","description","amount","direction"]}},{"name":"update_transaction","description":"Update a transaction (category, notes, reconciliation status)","inputSchema":{"type":"object","properties":{"transaction_id":{"type":"string","description":"Transaction ID"},"category_id":{"type":"string","description":"New category ID"},"notes":{"type":"string","description":"Notes to add/update"},"reconciled":{"type":"boolean","description":"Mark as reconciled"},"direction":{"type":"string","enum":["in","out"],"description":"Money direction: in (income/money received) or out (expense/money paid). Use to fix a transaction imported with the wrong sign, e.g. income that came in as an expense."},"trading_entity_id":{"type":"string","description":"Trading entity ID to assign transaction to"}},"required":["transaction_id"]}},{"name":"create_deadline","description":"Create a new tax or filing deadline","inputSchema":{"type":"object","properties":{"type":{"type":"string","description":"Deadline type (e.g., vat_return, corporation_tax, confirmation_statement)"},"due_date":{"type":"string","description":"Due date (YYYY-MM-DD)"},"description":{"type":"string","description":"Description"},"period_start":{"type":"string","description":"Period start date"},"period_end":{"type":"string","description":"Period end date"}},"required":["type","due_date"]}},{"name":"list_categories","description":"List available transaction categories for categorization","inputSchema":{"type":"object","properties":{"type":{"type":"string","description":"Filter by type: income, expense, asset, liability, equity"}}}},{"name":"get_dla_balance","description":"Get the Director's Loan Account (DLA) balance and recent transactions. Shows if director owes company or vice versa, with S455 tax warnings.","inputSchema":{"type":"object","properties":{"limit":{"type":"number","description":"Max number of transactions to return (default 10)"}}}},{"name":"get_invoices","description":"Get invoices the user has raised, with summary stats on outstanding and overdue amounts. Use when user asks about invoices, outstanding payments, or money owed to them.","inputSchema":{"type":"object","properties":{"status":{"type":"string","description":"Filter by status: draft, sent, paid, overdue, cancelled, all"},"contact_id":{"type":"string","description":"Filter by client/contact ID"},"search":{"type":"string","description":"Search by invoice number"}}}},{"name":"get_contacts","description":"List contacts (clients, suppliers, leads). Use when user asks about customers, suppliers, or contacts.","inputSchema":{"type":"object","properties":{"type":{"type":"string","description":"Filter by type: client, supplier, lead, other"},"search":{"type":"string","description":"Search by name or email"},"limit":{"type":"number","description":"Max results (default 50)"}}}},{"name":"create_contact","description":"Create a new contact (client, supplier, lead).","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Contact or company name"},"email":{"type":"string","description":"Email address"},"phone":{"type":"string","description":"Phone number"},"type":{"type":"string","description":"Contact type: client, supplier, lead, other"},"company_name":{"type":"string","description":"Company/organisation name"},"notes":{"type":"string","description":"Notes about this contact"}},"required":["name"]}},{"name":"get_bills","description":"Get supplier bills/invoices owed by the company. Shows what you owe to suppliers.","inputSchema":{"type":"object","properties":{"status":{"type":"string","description":"Filter: draft, received, paid, overdue, all"},"contact_id":{"type":"string","description":"Filter by supplier contact ID"},"limit":{"type":"number","description":"Max results (default 50)"}}}},{"name":"create_bill","description":"Record a supplier bill/invoice that the company owes.","inputSchema":{"type":"object","properties":{"contact_id":{"type":"string","description":"Supplier contact ID"},"bill_number":{"type":"string","description":"Supplier invoice/reference number"},"bill_date":{"type":"string","description":"Bill date (YYYY-MM-DD)"},"due_date":{"type":"string","description":"Payment due date (YYYY-MM-DD)"},"items":{"type":"array","description":"Line items: [{description, quantity, unit_price, vat_rate?}]","items":{"type":"object","properties":{"description":{"type":"string"},"quantity":{"type":"number"},"unit_price":{"type":"number"},"vat_rate":{"type":"number"}},"required":["description","quantity","unit_price"]}},"notes":{"type":"string","description":"Internal notes"}},"required":["contact_id","bill_date","due_date","items"]}},{"name":"pay_bill","description":"Record a payment against a bill.","inputSchema":{"type":"object","properties":{"bill_id":{"type":"string","description":"Bill ID to pay"},"amount":{"type":"number","description":"Payment amount"},"payment_date":{"type":"string","description":"Payment date (YYYY-MM-DD)"},"payment_method":{"type":"string","description":"Payment method (bank_transfer, card, cash, other)"}},"required":["bill_id","amount","payment_date"]}},{"name":"get_estimates","description":"Get estimates/quotes sent to clients.","inputSchema":{"type":"object","properties":{"status":{"type":"string","description":"Filter: draft, sent, accepted, declined, all"},"contact_id":{"type":"string","description":"Filter by client contact ID"},"limit":{"type":"number","description":"Max results (default 50)"}}}},{"name":"create_estimate","description":"Create a new estimate/quote for a client.","inputSchema":{"type":"object","properties":{"contact_id":{"type":"string","description":"Client contact ID"},"estimate_date":{"type":"string","description":"Estimate date (YYYY-MM-DD)"},"valid_until":{"type":"string","description":"Expiry date (YYYY-MM-DD)"},"items":{"type":"array","description":"Line items: [{description, quantity, unit_price, vat_rate?}]","items":{"type":"object","properties":{"description":{"type":"string"},"quantity":{"type":"number"},"unit_price":{"type":"number"},"vat_rate":{"type":"number"}},"required":["description","quantity","unit_price"]}},"notes":{"type":"string","description":"Notes to client"}},"required":["contact_id","estimate_date","items"]}},{"name":"get_profit_and_loss","description":"Get Profit and Loss (income statement) report for a period.","inputSchema":{"type":"object","properties":{"from_date":{"type":"string","description":"Start date (YYYY-MM-DD)"},"to_date":{"type":"string","description":"End date (YYYY-MM-DD)"}}}},{"name":"get_balance_sheet","description":"Get Balance Sheet report as at a given date.","inputSchema":{"type":"object","properties":{"as_at":{"type":"string","description":"Report date (YYYY-MM-DD). Default: today"}}}},{"name":"get_trial_balance","description":"Get Trial Balance showing all account balances.","inputSchema":{"type":"object","properties":{"from_date":{"type":"string","description":"Start date (YYYY-MM-DD)"},"to_date":{"type":"string","description":"End date (YYYY-MM-DD)"}}}},{"name":"get_tasks","description":"Get tasks and to-dos for the company.","inputSchema":{"type":"object","properties":{"completed":{"type":"boolean","description":"Filter by completion status"},"priority":{"type":"string","description":"Filter: low, medium, high, urgent"},"limit":{"type":"number","description":"Max results (default 20)"}}}},{"name":"create_task","description":"Create a new task or to-do item.","inputSchema":{"type":"object","properties":{"title":{"type":"string","description":"Task title"},"description":{"type":"string","description":"Task description"},"priority":{"type":"string","description":"Priority: low, medium, high, urgent"},"due_date":{"type":"string","description":"Due date (YYYY-MM-DD)"},"type":{"type":"string","description":"Task type: general, chase_invoice, pay_bill, filing_deadline, reconcile, review"}},"required":["title"]}},{"name":"get_expense_claims","description":"Get expense claims and reimbursement requests.","inputSchema":{"type":"object","properties":{"status":{"type":"string","description":"Filter: draft, submitted, approved, reimbursed, rejected"},"limit":{"type":"number","description":"Max results (default 20)"}}}},{"name":"get_bank_accounts","description":"List bank accounts connected to the company.","inputSchema":{"type":"object","properties":{}}},{"name":"get_journal_entries","description":"Get General Ledger journal entries. Double-entry accounting records.","inputSchema":{"type":"object","properties":{"from_date":{"type":"string","description":"Start date (YYYY-MM-DD)"},"to_date":{"type":"string","description":"End date (YYYY-MM-DD)"},"limit":{"type":"number","description":"Max results (default 50)"}}}},{"name":"list_opportunities","description":"List sales pipeline opportunities/deals. Shows prospects, their stage, value, and next actions.","inputSchema":{"type":"object","properties":{"stage":{"type":"string","description":"Filter by pipeline stage name"},"status":{"type":"string","description":"Filter: active, won, lost, all. Default: active"},"limit":{"type":"number","description":"Max results (default 50)"}}}},{"name":"get_opportunity","description":"Get detailed information about a specific pipeline opportunity/deal, including notes and activity history.","inputSchema":{"type":"object","properties":{"opportunity_id":{"type":"string","description":"Opportunity/project ID"}},"required":["opportunity_id"]}},{"name":"create_opportunity","description":"Create a new sales pipeline opportunity/deal.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Deal/opportunity name"},"contact_id":{"type":"string","description":"Contact ID for the prospect"},"value":{"type":"number","description":"Estimated deal value"},"stage_id":{"type":"string","description":"Pipeline stage ID (get from list_opportunities)"},"source":{"type":"string","description":"Lead source (e.g., referral, website, linkedin)"},"next_action":{"type":"string","description":"Next planned action"},"next_action_at":{"type":"string","description":"When the next action is due (YYYY-MM-DD)"},"notes":{"type":"string","description":"Initial notes"}},"required":["name"]}},{"name":"add_opportunity_note","description":"Add a note or activity log to a pipeline opportunity.","inputSchema":{"type":"object","properties":{"opportunity_id":{"type":"string","description":"Opportunity/project ID"},"content":{"type":"string","description":"Note content"},"type":{"type":"string","description":"Note type: note, call, email, meeting, task"}},"required":["opportunity_id","content"]}},{"name":"update_opportunity_stage","description":"Move an opportunity to a different pipeline stage (e.g., from Lead to Proposal).","inputSchema":{"type":"object","properties":{"opportunity_id":{"type":"string","description":"Opportunity/project ID"},"stage_id":{"type":"string","description":"New pipeline stage ID"},"next_action":{"type":"string","description":"Updated next action"},"next_action_at":{"type":"string","description":"Updated next action date (YYYY-MM-DD)"}},"required":["opportunity_id","stage_id"]}}],"resources":[{"uri":"accountsos://company","name":"Company","description":"Company details and settings","mimeType":"application/json"},{"uri":"accountsos://transactions","name":"Transactions","description":"Recent transactions","mimeType":"application/json"},{"uri":"accountsos://documents","name":"Documents","description":"Uploaded documents","mimeType":"application/json"},{"uri":"accountsos://deadlines","name":"Deadlines","description":"Tax and filing deadlines","mimeType":"application/json"}]}