Skip to main content
Glama
tourscale-repos

Frappe MCP

Frappe MCP

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.

What it exposes

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

How auth works

Talks to ERPNext REST API as the claude-mcp@tourscale.com 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.

Deployment

  • Container: ts-frappe-mcp on tourscale-net

  • Port: bound to 127.0.0.1:8096 (loopback only — reach via local agent client or SSH tunnel)

  • Compose entry lives in /opt/tourscale/docker-compose.services.yml

  • Env file: /opt/tourscale/frappe-mcp/.env (sourced from master env)

Local dev

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.).

F
license - not found
-
quality - not tested
C
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

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/tourscale-repos/frappe-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server