loading…
Search for a command to run...
loading…
Read-only MCP server for TourScale ERPNext, enabling agents to query franchisees, agreements, invoices, and GL entries via natural language.
Read-only MCP server for TourScale ERPNext, enabling agents to query franchisees, agreements, invoices, and GL entries via natural language.
Read-only Model Context Protocol server for the TourScale ERPNext / FranOS instance at erp.tourscale.com. Lets agents query Franchisees, Franchise Agreements, FBUs, Assets, COIs, and ERPNext invoices/GL entries.
| Tool | Purpose |
|---|---|
whoami |
Connectivity probe — returns the API user identity |
list_franchisees(status, brand, limit) |
Franchisees with optional filters |
get_franchisee(name) |
Full Franchisee doc by name (e.g. FZE-00001) |
list_fas(franchisee, status, expiring_within_days, limit) |
Franchise Agreements; expiring window key for Compliance Watchdog |
get_fa(name) |
One FA with child tables (brands/royalty/territory) |
list_fbus(franchisee, brand, limit) |
FBUs |
get_fbu(name) |
One FBU with operating addresses |
list_assets(franchisee, asset_type, limit) |
Vehicles/vessels |
list_cois(franchisee, expiring_within_days, limit) |
Certificate of Insurance, with renewal-window filter |
frappe_list_docs(doctype, filters_json, fields_json, limit, order_by) |
Generic escape hatch for any doctype |
frappe_get_doc(doctype, name) |
Generic get-by-name |
frappe_count(doctype, filters_json) |
Count records |
erpnext_list_invoices(franchisee, status, date_from, date_to, limit) |
Sales Invoices |
erpnext_gl_entries(account, party, date_from, date_to, limit) |
GL ledger entries |
Talks to ERPNext REST API as the [email protected] user via API key + secret (Frappe-native auth scheme: Authorization: token <key>:<secret>).
The user has the System Manager role on ERPNext. The MCP layer is the trust boundary — the tools above are read-only by design. Don't add write tools casually; agents that need to mutate should call narrow, purpose-specific tools, not generic CRUD.
To rotate keys: re-run the generate_keys flow in bench --site erp.tourscale.local console, update FRAPPE_API_KEY + FRAPPE_API_SECRET in master env, restart ts-frappe-mcp.
ts-frappe-mcp on tourscale-net127.0.0.1:8096 (loopback only — reach via local agent client or SSH tunnel)/opt/tourscale/docker-compose.services.yml/opt/tourscale/frappe-mcp/.env (sourced from master env)FRAPPE_API_URL=https://erp.tourscale.com \
FRAPPE_API_KEY=... \
FRAPPE_API_SECRET=... \
python3 server.py
Then call tools via any MCP client (Claude Code, FastMCP debug tools, etc.).
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"frappe-mcp": {
"command": "npx",
"args": []
}
}
}