InvoiceLens MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| INVOICELENS_API_TOKEN | No | Optional token that, when set, requires Authorization: Bearer … on REST and MCP. Recommended when binding to 0.0.0.0 (Docker, cloud) instead of localhost. | |
| INVOICELENS_FMP_API_KEY | No | Optional Financial Modeling Prep API key enabling the invoicelens_company_financials tool. Without it, that tool returns a clear error and everything else keeps working. | |
| INVOICELENS_TAVILY_API_KEY | No | Optional Tavily API key enabling the invoicelens_web_search tool. Without it, that tool returns a clear error and everything else keeps working. | |
| INVOICELENS_ALLOW_LOCAL_PATHS | No | Set to false on any networked deployment to prevent tools from accepting server-side file paths. |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| invoicelens_ingest_documentA | Parse a PDF, split it with hybrid chunking (tables, header fields, totals and text kept as separate chunks), embed the chunks and store them in the FAISS index. Ingesting the same file again replaces its previous version (doc_id is a content hash). Returns the doc_id plus chunk counts by type. |
| invoicelens_search_documentsA | Semantic search over ingested invoices. Returns the top-k passages with doc_id, filename, page, chunk type and similarity score — cite filename and page in answers. Use the doc_id with invoicelens_extract_invoice to read a document's fields precisely. |
| invoicelens_extract_invoiceA | Extract one invoice into structured fields (vendor, invoice number, dates, currency, line items, subtotal, tax, total) and check them: line items vs subtotal, subtotal + tax vs total, tax rate, dates. validation.valid = false means the numbers don't add up — either a misread (retry with
|
| invoicelens_company_financialsA | Share price, market capitalisation, sector/industry, CEO, employees and annual growth (revenue, net income, EPS; fractions, 0.12 = +12%) for a publicly listed company, from Financial Modeling Prep. Check |
| invoicelens_web_searchA | Search the web (Tavily) and return ranked results with title, URL, snippet and publication date. Use for recent news, growth narrative and strategy; cite the URLs. Don't take share prices or market caps from snippets — use invoicelens_company_financials for numbers. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 5 tools
Most tools are clearly distinct: ingest stores documents, extract reads structured fields with validation, company_financials pulls market data, and web_search queries the internet. The only potential confusion pairs are ingest vs. extract (both document-processing) and search_documents vs. web_search, but the descriptions explicitly delineate their roles and cross-reference each other.
All names are snake_case with a consistent invoicelens_ prefix, and the first three follow a verb_noun pattern (ingest_document, extract_invoice, search_documents). The last two (company_financials, web_search) are noun-based rather than verb-based, a minor deviation from the otherwise predictable scheme.
Five tightly scoped tools cover the invoice-analysis workflow from ingestion through extraction, search, and external enrichment. Each tool has a clear, non-redundant job, so nothing feels padded or missing at this scale.
The core lifecycle is covered: ingest, extract with validation, semantic search, plus financial and web enrichment. Minor gaps exist — no explicit list-documents or delete-document operation, and no batch or export tool, though re-ingesting replaces duplicates and search partly substitutes for listing.