Invoice MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Invoice MCP Serverlist all overdue invoices"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Invoice MCP Server
A Model Context Protocol (MCP) server for invoice management with modular architecture.
Documentation
Examples Guide - Comprehensive usage examples, workflows, and error handling
Development Guide - Developer setup, testing, and contributing
Architecture Guide - Technical architecture and component details
API Reference - MCP tools, resources, and prompts reference
Contributing - Contribution guidelines
Related MCP server: temporal-invoice-mcp
Features
MCP Protocol Support: Full implementation of Tools, Resources, and Prompts
Multiple Transports: STDIO and HTTP/SSE support
Dual GUI: CLI and Web interfaces
SDK Layer: All operations through unified SDK
Modular Design: Swappable components without code changes
Architecture
┌─────────────────────────────────────────────────────────────┐
│ GUI Layer │
│ ┌─────────┐ ┌─────────┐ │
│ │ CLI │ │ Web │ │
│ └────┬────┘ └────┬────┘ │
├───────────────────┴──────────────┴──────────────────────────┤
│ SDK Layer │
│ CustomerOperations │ InvoiceOperations │ ReportOperations │
├─────────────────────────────────────────────────────────────┤
│ MCP Server │
│ ┌─────────┐ ┌───────────┐ ┌─────────┐ │
│ │ Tools │ │ Resources │ │ Prompts │ │
│ └─────────┘ └───────────┘ └─────────┘ │
├─────────────────────────────────────────────────────────────┤
│ Transport Layer │
│ ┌─────────┐ ┌─────────┐ │
│ │ STDIO │ │ HTTP │ │
│ └─────────┘ └─────────┘ │
├─────────────────────────────────────────────────────────────┤
│ Infrastructure │
│ Database │ Repositories │ Lock Manager │ Config │
└─────────────────────────────────────────────────────────────┘Quick Start
# 1. Clone and install
git clone <repository-url>
cd MCP_Server
pip install -e ".[dev]"
# 2. Test the CLI
python -m invoice_mcp_server cli customer list
# 3. Run the MCP server
python -m invoice_mcp_server stdioInstallation
Requirements
Python 3.10+
pip
Install for Development
# Install with dev dependencies (pytest, mypy, ruff)
pip install -e ".[dev]"Install for Production
pip install -e .Configuration
All configuration via environment variables or .env file:
# Server
SERVER_HOST=127.0.0.1
SERVER_PORT=8080
# Database
DB_PATH=data/invoices.db
# Invoice
VAT_RATE=0.17
CURRENCY=ILS
# Transport
TRANSPORT_TYPE=stdio
# Logging
LOG_LEVEL=INFORunning the Server
MCP Server (STDIO) - For MCP Clients
python -m invoice_mcp_server stdioUse this mode when connecting from Claude Desktop or other MCP clients.
MCP Server (HTTP)
python -m invoice_mcp_server httpWeb Interface
python -m invoice_mcp_server web
# Access at http://localhost:8080Help
python -m invoice_mcp_server --helpCLI Reference
The CLI provides direct access to all operations for testing and management.
Customer Commands
# List all customers
python -m invoice_mcp_server cli customer list
# Create a new customer
python -m invoice_mcp_server cli customer create --name "Acme Corp" --email "contact@acme.com"
# Create with all fields
python -m invoice_mcp_server cli customer create --name "Acme Corp" --email "contact@acme.com" --address "123 Main St" --phone "555-1234"
# Delete a customer
python -m invoice_mcp_server cli customer delete <customer-id>Invoice Commands
# List all invoices
python -m invoice_mcp_server cli invoice list
# Create a new invoice
python -m invoice_mcp_server cli invoice create --customer-id <customer-id>
# Create with due date and notes
python -m invoice_mcp_server cli invoice create --customer-id <customer-id> --due-date "2024-12-31" --notes "Project payment"
# Add item to invoice
python -m invoice_mcp_server cli invoice add-item --invoice-id <invoice-id> --description "Consulting services" --quantity 10 --price 150.00
# Send invoice
python -m invoice_mcp_server cli invoice send <invoice-id>
# Record payment
python -m invoice_mcp_server cli invoice pay --invoice-id <invoice-id> --amount 1500.00 --method "bank_transfer"Report Commands
# Show statistics
python -m invoice_mcp_server cli report stats
# Show overdue invoices
python -m invoice_mcp_server cli report overdueMCP Client Configuration
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"invoice-server": {
"command": "python",
"args": ["-m", "invoice_mcp_server", "stdio"],
"cwd": "/path/to/MCP_Server"
}
}
}Testing MCP Connection
You can test the MCP server by sending JSON-RPC messages via stdio:
# Start the server and send an initialize request
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"capabilities":{}}}' | python -m invoice_mcp_server stdioMCP Primitives
Tools (Write Operations)
create_customer- Create new customerupdate_customer- Update customer detailsdelete_customer- Delete customercreate_invoice- Create new invoiceadd_invoice_item- Add item to invoiceupdate_invoice_status- Change invoice statusrecord_payment- Record paymentsend_invoice- Send invoice to customer
Resources (Read Operations)
invoice://config- Server configurationinvoice://vat-rates- VAT ratesinvoice://customers/list- Customer listinvoice://invoices/list- Invoice listinvoice://invoices/recent- Recent invoicesinvoice://invoices/overdue- Overdue invoicesinvoice://statistics/overview- Statistics
Prompts (Model Guidance)
create_invoice- Guide for invoice creationmanage_customer- Guide for customer managementprocess_payment- Guide for payment processinggenerate_report- Guide for report generation
Testing
Run All Tests
pytestRun with Coverage Report
pytest --cov=src/invoice_mcp_server --cov-report=term-missingRun Specific Test Files
# Test models
pytest tests/test_models.py -v
# Test database
pytest tests/test_database.py -v
# Test SDK
pytest tests/test_sdk.py -v
# Test MCP server
pytest tests/test_mcp_server.py -vRun Tests by Pattern
# Run all customer-related tests
pytest -k "customer" -v
# Run all invoice-related tests
pytest -k "invoice" -vCode Quality
# Type checking
mypy src/invoice_mcp_server
# Linting
ruff check src/invoice_mcp_server
# Format check
ruff format --check src/invoice_mcp_serverExample Workflow
# 1. Create a customer
python -m invoice_mcp_server cli customer create --name "Test Company" --email "test@company.com"
# Returns: {"id": "uuid-here", "name": "Test Company", ...}
# 2. List customers to get the ID
python -m invoice_mcp_server cli customer list
# 3. Create an invoice for the customer
python -m invoice_mcp_server cli invoice create --customer-id <customer-id-from-step-2>
# 4. Add items to the invoice
python -m invoice_mcp_server cli invoice add-item --invoice-id <invoice-id> --description "Service" --quantity 1 --price 100
# 5. Check statistics
python -m invoice_mcp_server cli report statsLicense
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/morenoraf/MCP_Server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server