Skip to content

feat: improve axanta-erp MCP server with lazy auth and new tools#6

Draft
vidaunited wants to merge 1 commit into
mainfrom
claude/firecrawl-scrape-test-ydig28
Draft

feat: improve axanta-erp MCP server with lazy auth and new tools#6
vidaunited wants to merge 1 commit into
mainfrom
claude/firecrawl-scrape-test-ydig28

Conversation

@vidaunited

Copy link
Copy Markdown
Owner

Summary

  • Lazy authentication: Server now starts without connecting to the ERP. Authenticates on first tool call, preventing crashes if the ERP is unreachable at startup.
  • New tools: list_models (discover available data), get_model_fields (inspect field definitions), count_records, get_pos_orders, get_accounting_summary (payments/journal entries/vendor bills)
  • Pagination support via offset parameter in search_records
  • Batch reads (multiple IDs) in get_record
  • Refactored dispatch into separate function for clarity

Setup

pip install mcp
export AXANTA_URL="https://yourinstance.axantacloud.com"
export AXANTA_DB="your_db_name"
export AXANTA_USER="your_email"
export AXANTA_KEY="your_api_key"
claude mcp add axanta-erp -- python3 tools/mcp-servers/axanta_mcp_server.py

Available Tools (17 total)

Tool Description
list_models Discover available Odoo models
get_model_fields Inspect field definitions for a model
search_records Search any model with domain filters
count_records Count matching records
get_record Read one or more records by ID
get_sales_summary Sales orders with totals
get_inventory Product stock levels
get_customers Customer contacts
get_invoices Customer invoices
get_purchase_orders Vendor purchase orders
get_employees Employee directory
get_stock_movements Inventory transfers
get_pos_orders POS order data
get_accounting_summary Payments, journal entries, vendor bills
create_record Create new records
update_record Update existing records
get_report_data Aggregated reports

Test plan

  • Verify server starts without ERP connection (lazy auth)
  • Test list_models to discover available data
  • Test search_records with domain filters
  • Test POS and accounting tools against live instance
  • Verify error handling when credentials are missing

🤖 Generated with Claude Code

https://claude.ai/code/session_01CtScfT7iyhuTPV5rd8mQ5W


Generated by Claude Code

- Lazy authentication: server starts without connecting, authenticates on
  first tool call. Prevents crash if ERP is unreachable at startup.
- New tools: list_models (discover available data), get_model_fields
  (inspect field definitions), count_records, get_pos_orders,
  get_accounting_summary (payments/journal entries/vendor bills)
- Support pagination via offset parameter in search_records
- Support batch reads (multiple IDs) in get_record
- Refactored dispatch into separate function for clarity

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CtScfT7iyhuTPV5rd8mQ5W
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants