使用说明
Frappe MCP
一种模型上下文协议(MCP),旨在帮助人工智能代理理解和操作Frappe应用程序。该工具为Frappe代码库提供了语义分析和探索功能。
特点/特性
- 自动分析在服务器启动时,自动分析文件变化时的Frappe应用程序结构
- 文档类型管理完整的文档类型(DocType)生命周期,包括信息检索、模板生成和数据库模式访问
- 代码分析符号搜索、函数签名提取和字段使用追踪
- 测试集成为模块或特定的文档类型执行Frappe单元测试
- 开发工具为文档类型(DocTypes)和网页生成样板代码
- 数据库访问直接执行MariaDB查询并集成bench命令
- 关系映射分析并可视化DocType之间的关系和依赖性
- MCP集成用于AI代理通信的标准MCP服务器接口
可用工具
核心分析工具
- **
find_symbols**在应用程序的源代码文件中搜索符号,支持模糊匹配 - **
find_field_usage**在代码中搜索对特定DocType字段的引用 - **
search_frappe_docs**使用模糊匹配和类别过滤搜索嵌入的Frappe框架文档 - **
read_frappe_doc**通过ID阅读特定Frappe文档文件的全部内容
文档类型管理
- **
get_doctype**通过名称获取全面的文档类型(DocType)信息(例如,“销售发票”) - **
get_doctype_db_schema**获取特定文档类型的数据库模式 - **
create_doctype**生成带有JSON元数据、Python控制器和JS表单文件的模板DocType结构 - **
analyze_links**通过检查链接(Link)、表格(Table)和选择(Select)字段,分析并绘制文档类型(DocTypes)之间的关系图 - **
list_doctypes**列出当前Frappe应用程序中所有可用的文档类型(DocTypes),可选择按模块过滤
开发与测试
- **
create_web_page**生成包含HTML、CSS和JavaScript结构的网页模板文件 - **
create_custom_page**生成带有表单和后端API端点的Frappe自定义页面脚手架 - **
create_test_template**为Frappe DocType创建具有适当测试结构的测试模板文件 - **
create_report**创建报告模板文件(脚本报告、查询报告或报告生成器) - **
run_tests**使用 `bench run-tests` 执行特定模块、文档类型或整个应用程序的单元测试
系统集成
- **
run_bench_command**运行带有参数的任意基准测试命令(例如,迁移、安装应用) - **
run_db_command**通过 bench mariadb 命令执行 SQL 查询 - **
bench_execute**通过 `bench execute` 命令执行 Frappe 函数,并可选地传递参数和关键字参数
安装与使用
先决条件
- Rust(最新稳定版)
- 对Frappe应用程序代码库进行分析
设置
- 克隆并构建:
git clone https://github.com/anvie/frappe-mcp.git
cd frappe-mcp
cargo build --release
-
通过创建一个来配置您的Frappe应用程序
frappe-mcp.conf文件(见下文的配置部分) -
运行MCP服务器:
cargo run -- --config frappe-mcp.conf run
服务器将在首次运行或源文件更改时自动分析您的Frappe应用程序。
与Claude代码一起使用:
claude mcp add frappe_mcp ./target/release/frappe_mcp run
确保你已 frapppe-mcp.conf 在你运行的同一目录下的文件
“the claude”可以翻译为“克劳德(这个人/事物)”。具体翻译可能需要根据上下文来确定“claude”所指的具体对象或含义。
测试
使用MCP检查器测试服务器:
cargo build --release
npx @modelcontextprotocol/inspector -- ./target/release/frappe_mcp --config frappe-mcp.conf run
可用的测试方法包括上述所有工具: find_symbols, get_doctype, create_doctype, run_tests, analyze_links, create_web_page, find_field_usage, run_bench_command, get_doctype_db_schema, run_db_command, search_frappe_docs, read_frappe_doc, list_doctypes, create_custom_page, create_test_template, create_report, bench_execute
配置
创建一个 frappe-mcp.conf 用于配置服务器的文件。示例配置:
frappe_bench_dir = "/path/to/frappe-bench"
app_relative_path = "your-app-name"
app_name = "Your App Name"
site = "yoursite.localhost"
配置参数:
frappe_bench_dir到您的Frappe基准目录的路径app_relative_path在 bench/apps 文件夹中,您应用目录的名称app_name您应用的显示名称site站点名称(如果未指定,默认为“frontend”)
手动分析(可选)
当服务器在启动时自动分析您的应用时,您也可以手动运行分析:
cargo run -- --config frappe-mcp.conf analyze --app-dir /path/to/frappe-bench/apps/your-app
这会产生一个 analyzed_output.dat 包含有关您应用程序模块和文档类型(DocTypes)的结构化信息的文件。
命令行界面工具(CLI Tools)
函数工具命令
这个(或“它”) functool 子命令允许从命令行直接执行MCP功能,对于测试和调试非常有用:
# Get DocType information
cargo run -- functool get-doctype "Sales Invoice"
cargo run -- functool get-doctype "Sales Invoice" json # JSON output only
# List all DocTypes in a module
cargo run -- functool list-doctypes "Selling"
# Search for symbols in the codebase
cargo run -- functool find-symbols "get_doc" "accounts" true 10
# Find field usage
cargo run -- functool find-field-usage "Sales Invoice" "customer" 20
# Run bench commands
cargo run -- functool run-bench-command "list-apps"
可用功能:
get-doctype获取完整的文档类型(DocType)信息list-doctypes列出文档类型,可选择按模块过滤find-symbols在代码中搜索函数/类符号find-field-usage查找DocType字段的引用位置run-bench-command执行基准测试命令
文档搜索
该服务器内置了用于搜索嵌入式Frappe文档的CLI(命令行界面)命令:
注文档通过基于哈希的短ID(例如,“48b014”)来引用,而不是使用文件路径,以避免与文件系统操作产生混淆。使用 search-docs 查找文档ID。
搜索文档
# Search for documentation about DocTypes
cargo run -- search-docs "DocType" --category doctypes --limit 5
# Fuzzy search for API documentation
cargo run -- search-docs "databse" --category api --fuzzy
# Search across all categories
cargo run -- search-docs "getting started"
阅读特定文档
# First, search to get document IDs
cargo run -- search-docs "Frappe Framework Documentation" --limit=1
# Then read the document using its ID
cargo run -- read-doc "48b014" # ID for main documentation index
# Read DocType creation guide
cargo run -- read-doc "3b7f1e" # ID for creating_doctypes.md
# Read API documentation
cargo run -- read-doc "454ba4" # ID for database_api.md
CLI 选项
--category按类别筛选(doctypes,api,tutorial)--fuzzy启用模糊搜索(默认:true)--limit最大结果数量(默认:10)
作者罗宾·西哈布
