Skip to content
Agentmart
Submit a tool

Foxmayn Frappe CLI

Read and change documents, reports and workflows on Frappe and ERPNext sites.

Connector by nasroykh · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 16
Write a review

Chalk Labs

Need help deploying Foxmayn Frappe CLI?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Desktop. Read the repository before you give any tool access to your data.

Download the bundle

MCP bundle (.mcpb): open it with Claude Desktop.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Read and change documents, reports and workflows on Frappe and ERPNext sites.

Use cases: workflow-automation, finance-accounting

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
24 read · 16 write · 6 delete · 2 not yet classified
Secrets
None asked for
Install scripts
None found
Runs as
Downloaded binary

Tools by what they do 48

Read from the source code; the running server may list different tools.

Read 24 · Look things up without changing anything.

  • aggregate
  • check_permission
  • count_docs
  • erp_item
  • erp_party
  • erp_stock
  • get_doc
  • get_doc_context
  • get_print_html
  • get_schema
  • get_transitions
  • list_attachments
Show 12 more tools
  • list_docs
  • list_doctypes
  • list_errors
  • list_jobs
  • list_reports
  • list_sites
  • ping
  • run_report
  • scheduler_status
  • search
  • site_health
  • whoami

Write 16 · Create, change, send or run things.

  • add_comment
  • add_tag
  • amend_doc
  • apply_workflow
  • assign_to
  • attach_file
  • bulk_create
  • bulk_update
  • cancel_doc
  • create_doc
  • erp_payment
  • rename_doc
Show 4 more tools
  • restore_doc
  • share_doc
  • submit_doc
  • update_doc

Delete 6 · Delete, drop, revoke or wipe things.

  • bulk_delete
  • call_method
  • delete_doc
  • remove_assignment
  • remove_tag
  • unshare_doc

Not yet classified 2 · We could not tell from the name and description.

  • copy_doc
  • erp_map

Network hosts it talks to 29

  • ::1 · found in code
  • a.test · found in code
  • acme.test · found in code
  • ai.google.dev · found in code
  • api.anthropic.com · found in code
  • api.github.com · found in code
  • api.githubcopilot.com · found in code
  • api.openai.com · found in code
  • apple.com · found in code
  • b.test · found in code
  • developers.openai.com · found in code
  • elsewhere.test · found in code
  • erp.example.com.evil.com · found in code
  • erp.example.com.evil.test · found in code
  • example.invalid · found in code
  • fresh.test · found in code
  • generativelanguage.googleapis.com · found in code
  • github.com · found in install command, code
  • ko-fi.com · found in code
  • localhost.evil.com · found in code
  • localhost.evil.x · found in code
  • objects.githubusercontent.com · found in code
  • ollama.com · found in code
  • openrouter.ai · found in code
  • other.test · found in code
  • platform.claude.com · found in code
  • raw.githubusercontent.com · found in code
  • schemas.openxmlformats.org · found in code
  • ui.shadcn.com · found in code

Files it touches

  • /dev/null
  • /home/linuxbrew/.linuxbrew/Cellar/ffc/1.16.0/bin/ffc
  • /home/me
  • /home/me/.local/bin/ffc
  • /home/me/go/bin/ffc
  • /home/u/.config/ffc/config.yaml
  • /opt/ffc
  • /opt/ffc/bin/ffc
  • /opt/homebrew/bin/ffc
  • /opt/homebrew/Caskroom/ffc/1.0.0/ffc
  • /opt/homebrew/Caskroom/ffc/1.12.0/ffc
  • /opt/homebrew/Caskroom/ffc/1.16.0/ffc
  • /opt/homebrew/Caskroom/ffc/1.2.3/ffc
  • /opt/homebrew/Caskroom/ffc/1.3.0/ffc
  • /opt/homebrew/Cellar/ffcx/1.0/bin/ffc
  • /opt/preview/ffc
  • /private
  • /private/files
  • /private/files/a.bin
  • /private/files/a.txt
  • /private/files/big.bin
  • /private/files/ffc-contract-missing.bin
  • /private/files/in.bin
  • /private/files/inv.pdf
  • /private/files/nope.bin
  • /private/files/p.txt
  • /private/files/report.bin
  • /private/files/scan.pdf
  • /private/files/t
  • /private/files/TD-1-c.txt
  • /private/files/x
  • /private/files/x.bin
  • /private/files/x.txt
  • /tmp/foxmayn-frappe-desktop
  • /tmp/x
  • /Users/me
  • /Users/me/.config/ffc/config.yaml
  • /Users/me/.local/bin
  • /usr/local/Caskroom/ffc/1.16.0/ffc
  • Your home directory (~)

Tools (48)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • add_comment

    Add a comment to a document's timeline as the signed-in user. text is plain text (escaped, line breaks kept) unless html is true; Frappe sanitises HTML either way and saves data-URI images in it as private Files attached to the document (then the DocType rules for File apply). Needs read permission on the document. Returns the Comment's name and stored content.

  • add_tag

    Add tags to a document, creating each Tag that does not exist. Needs write permission on the document. A tag cannot contain a comma. Returns added, already_tagged and tags (all the document's tags).

  • aggregateread-only

    Description is built at runtime.

  • amend_doc

    Create the amendment of a cancelled document: a new draft linked by amended_from, named <name>-1 (an amendment of <name>-1 is <name>-2). Returns the new draft.

  • apply_workflow

    Apply a workflow action (e.g. Approve) to a document. The action must be one get_transitions lists; it may submit or cancel the document. Returns the document.

  • assign_to

    Assign a document to users: each gets an open ToDo and a notification. Users already assigned are reported in already_assigned, not assigned twice. An assignee who cannot read the document gets read access to it through a share, so the user may be asked to confirm. Needs read permission on the document. Returns assigned, already_assigned and assignees (everyone assigned now).

  • attach_file

    Description is built at runtime.

  • bulk_create

    Description is built at runtime.

  • bulk_deletecan change or delete data

    Description is built at runtime.

  • bulk_update

    Description is built at runtime.

  • call_methodcan change or delete data

    Call a whitelisted Frappe server method. This is a low-level escape hatch for operations not covered by other tools. The method must be whitelisted (@frappe.whitelist()) on the server. It may read or mutate data depending on the method.

  • cancel_doc

    Cancel a submitted document (docstatus 1 to 2). This cannot be undone; amend_doc makes a corrected copy. Submitted documents that link to it block the cancel. Refused for DocTypes with an active Workflow (use apply_workflow). Returns the cancelled document.

  • check_permissionread-only

    Check whether the configured user holds a permission on a DocType or on one document, without changing anything. Use it before a write to avoid a refused call. With name, the site judges that document (user permissions, sharing and controller rules count): basis is 'document'. Without name, the DocType's role permission rows are applied to the user's roles (if_owner rows narrow a right to the user's own documents, select is implied by read, submit/cancel/amend need a submittable DocType, import an importable one): basis is 'doctype', and user permissions, sharing, controller rules and the disa…

  • copy_doc

    Duplicate a document like the desk's Duplicate: identity and "no copy" fields are left out, child rows are copied. Returns the new document.

  • count_docsread-only

    Count the number of documents in a DocType, optionally filtered. Returns a single integer count. More efficient than list_docs when you only need the count.

Show 33 more tools
  • create_doc

    Create a new document in a Frappe DocType. Provide field values as a JSON object. Returns the created document with all server-generated fields (name, creation date, etc.).

  • delete_doccan change or delete data

    Permanently delete a Frappe document. This action cannot be undone. Returns a confirmation message on success.

  • erp_item

    Look up what ERPNext fills into a document row when an item is picked, as the desk does: the rate (price list rate, pricing rules), UOM, warehouse, accounts, taxes and stock levels. Nothing is written. ERPNext 15 or 16. doctype is the document the row is for: a sales one (Quotation, Sales Order, Delivery Note, Sales Invoice) with customer, or a purchase one (Supplier Quotation, Purchase Order, Purchase Receipt, Purchase Invoice, Material Request) with supplier; default Sales Invoice, or Purchase Invoice with supplier. Prices are not converted between currencies. Returns the row's fields.

  • erp_map

    Map an ERPNext document into the next one in its chain, as the desk's Create button does (items, taxes and links come across): Quotation to Sales Order; Sales Order to Sales Invoice or Delivery Note; Delivery Note to Sales Invoice; Purchase Order to Purchase Receipt or Purchase Invoice; Purchase Receipt to Purchase Invoice; Material Request to Purchase Order. ERPNext 15 or 16. Returns {draft}: an UNSAVED document, nothing is written. Save it with create_doc (doctype = to_doctype, data = draft), then submit_doc if it should be final. A Quotation made out to a Lead or Prospect with no customer i…

  • erp_party

    Look up what ERPNext fills into a document when a customer or supplier is picked, as the desk does: address and contact, price list, currency, taxes template, payment terms and, with an invoice doctype (Sales Invoice, Purchase Invoice), the receivable or payable account and the due date. Nothing is written. ERPNext 15 or 16. Give customer or supplier, not both; company is optional but the accounts, taxes and payment terms depend on it. Returns the fields.

  • erp_payment

    Make a Payment Entry against a Sales Invoice, Sales Order, Purchase Invoice, Purchase Order or Dunning, as the desk's Create > Payment button does: ERPNext picks the party account, the bank or cash account, the payment type and the amount still outstanding. ERPNext 15 or 16. Returns {draft, warnings?}: an UNSAVED Payment Entry, nothing is written. Save it with create_doc (doctype 'Payment Entry', data = draft), then submit_doc. warnings says when the draft has no bank or cash account (set the Company's default or pass bank_account; the insert would fail) or when bank_account was not used becau…

  • erp_stock

    Show an item's stock. With warehouse: the balance there (actual_qty, and valuation_rate with valuation), now or, with date, at the end of that day. Without warehouse: {item_code, rows, truncated}, one row per warehouse that holds any quantity or has a reservation, order or plan (actual, reserved, projected quantity, valuation rate), at most 504 rows. date and valuation need warehouse. The Item, and the Warehouse when given, must exist (a typo is not-found, not zero). Quantities keep the number the site sends. ERPNext 15 or 16.

  • get_docread-only

    Retrieve a single Frappe document by its DocType and name. Returns all fields of the document, or only the requested fields. Use this when you know the exact document identifier. For Single DocTypes (e.g. 'System Settings', 'HR Settings'), omit name — the DocType name is used automatically.

  • get_doc_contextread-only

    Everything around one document in one call, as the desk's form sidebar shows it: who changed which fields (the last 10 versions, newest first; each version lists changed fields with from/to, child-row changes as "items[2].qty"; changes to fields the user may not read are left out and counted in hidden_fields), comments, emails, attachments (names and URLs, not contents), assignments, shares, tags, the workflow log and the user's permissions on it. With links (default true), the number of linked documents per DocType as the Connections panel counts them (DocTypes from the DocType's dashboard, e…

  • get_print_html

    Render a document with a print format, as HTML (frappe.www.printview.get_html_and_style): returns {html, style}, or {text} with text_only, which is the readable text without tags. Needs read access to the document. Rendering runs the DocType's before_print hook (app code), as printing in the desk does, so it may have side effects an app put there. Results over 512 KiB drop the style, then cut the HTML (truncated: true). For a PDF use the CLI: ffc pdf.

  • get_schemaread-only

    Get the definition of a Frappe DocType as the desk sees it (custom fields and Customize Form overrides applied): module, naming rule, submittability, permissions and all field metadata (fieldname, label, fieldtype, required, options, defaults, constraints). By default returns a compact view with zero-value noise and internal Frappe metadata stripped. Pass full=true for the raw response, or keys to select specific top-level properties.

  • get_transitions

    List the workflow actions the current user can apply to a document in its current state (action, next_state, allowed). Empty when none apply.

  • list_attachments

    List the files attached to a document (File documents with attached_to_doctype/attached_to_name), oldest first: name, file_name, file_url, is_private, file_size, attached_to_field, folder, creation. File contents are not returned.

  • list_docsread-only

    List documents from a Frappe DocType with optional filtering, field selection, ordering, and pagination. Returns an array of document objects. Use this to search and browse records; page with start and limit rather than fetching everything.

  • list_doctypes

    List all DocTypes available on the Frappe site, optionally filtered by module. Returns name, module, and description for each DocType. Use this to discover what data types exist on the site.

  • list_errors

    List the site's Error Log, newest first (System Manager only). Answers {errors, hidden_by_policy}: each entry has method (its title), the document it concerns (reference_doctype, reference_name) and error, the last line of its traceback; entries about a DocType this server may not read are left out and counted in hidden_by_policy. Pass name for one entry with its full traceback. since counts back in the site's time zone. Reading does not mark entries as seen.

  • list_jobs

    List the site's background jobs (RQ Job) that Redis still holds, newest first (System Manager only). Redis keeps finished and failed jobs only for a while. Each job has error, the last line of its traceback; pass name (a job_id) for one job with its arguments and full traceback (exc_info), which can hold any DocType's data. Answers {jobs, warning?}, or the job with name. On Frappe v15 at most 20 jobs come back, not necessarily the newest (warning): filter with status or queue.

  • list_reports

    List available reports on the Frappe site, optionally filtered by module. Returns report name, type, module, and reference DocType.

  • list_sitesread-only

    List the Frappe sites this MCP server serves: name, URL, how ffc signs in, and whether MCP may only read it. When the server serves several sites, every other tool requires one of these names in its site argument; there is no default.

  • pingread-only

    Check that the Frappe site is reachable. frappe.ping answers without credentials, so a pong does not prove the configured login works; any other tool call does.

  • remove_assignment

    Remove users' assignments of a document: their open ToDos are cancelled and they are notified. Users not assigned are reported in not_assigned. Returns unassigned, not_assigned and assignees.

  • remove_tag

    Remove tags from a document (the match ignores case). Needs write permission on the document. Returns removed, not_tagged and tags.

  • rename_doc

    Rename a document; links to it are updated. With merge=true it is merged into the existing document named new_name and disappears, which cannot be undone. Returns the new name.

  • restore_doc

    Restore a deleted document from its "Deleted Document" record, the undo of delete_doc. Name the Deleted Document (deleted_document), or the deleted document (doctype and name: its latest unrestored deletion is used), not both. The DocType rules apply to the deleted document's own DocType, so a deleted Server Script, User or Webhook is refused unless allow_doctypes lists it. A DocType named by hash or naming series may get a new name. Returns restored, deleted_document and the restored name.

  • run_reportread-only

    Execute a Frappe query report and return its columns and data rows. Strips execution metadata (timing, chart config). Includes report_summary if the report provides one. When rows are cut by limit, total_rows and truncated are included. Use list_reports first to discover available report names.

  • scheduler_status

    Show whether the site's scheduler is active, how many scheduled job types are enabled and stopped, and which ones failed within since, with their failure count and the last line of the last error (System Manager only; list_errors and list_jobs have whole tracebacks). Only job types with Create Log leave a log (Frappe sets it for every frequency but All and Cron); other failures show only in list_jobs status=failed.

  • searchread-only

    Description is built at runtime.

  • share_doc

    Give a user, or every user, access to one document beyond what their roles allow. Read is always granted; write, submit (submittable DocTypes only) and share (may share further) add rights. Sharing again with the same user replaces that share's rights. The user may be asked to confirm. Returns the share's rights.

  • site_health

    Read the site's System Health Report (System Manager only): background workers and queues, the scheduler and failing scheduled jobs, emails (7 days), errors (24 hours), database, cache, storage and users. attention lists what needs attention. Building it takes a few seconds and, as the desk's page does, queues one frappe.ping background job to test the queue; it changes nothing else. A check that failed on the site leaves its fields out.

  • submit_doc

    Submit a draft document (docstatus 0 to 1), which makes it final: a submitted document can only be cancelled, not edited. Refused for DocTypes with an active Workflow (use apply_workflow). Returns the submitted document.

  • unshare_doc

    Remove a user's (or everyone's) share of a document. Access their roles give is not affected. Returns removed: false when there was no such share.

  • update_doc

    Update an existing Frappe document. Provide only the fields you want to change as a JSON object (a "name" key in data is ignored). Returns the full updated document. For Single DocTypes (e.g. 'System Settings'), omit name — the DocType name is used automatically.

  • whoamiread-only

    Show which user the configured credentials belong to on the Frappe site, the user's roles, and the installed apps with their versions (Frappe major version included). Unlike ping this proves the login works. Versions are cached for 24 hours.

Signals

Stars
16
Forks
6
Open issues
0
Last commit
Oct 22, 2026 (8 days ago)
Last release
Oct 25, 2026 (5 days ago)

From GitHub (fetched Oct 24, 2026).

Details

Registry name
io.github.nasroykh/ffc
Version
1.21.1
Auth
No auth
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 26, 2026

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get Foxmayn Frappe CLI running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying Foxmayn Frappe CLI?

CallGet help
Cite this page

Foxmayn Frappe CLI MCP server. Agent Mart. https://agentmart.dev/connectors/nasroykh-ffc (last updated 2026-10-26)