返回市场
弗拉佩-MCP

弗拉佩-MCP

作者:anvie12 星标更新:2025-10-14

项目介绍

Frappe MCP

一种旨在帮助AI代理理解并处理Frappe应用程序的模型上下文协议(MCP)。此工具提供了对Frappe代码库进行语义分析和探索的能力。

Frappe MCP 在线运行

特性

  • 自动分析:在服务器启动时或文件更改时自动分析Frappe应用程序结构
  • DocType管理:完整的DocType生命周期,包括信息检索、模板生成和数据库模式访问
  • 代码分析:符号搜索、函数签名提取和字段使用跟踪
  • 测试集成:执行Frappe模块或特定DocType的单元测试
  • 开发工具:为DocType和网页生成样板代码
  • 数据库访问:直接执行MariaDB查询和整合bench命令
  • 关系映射:分析和可视化DocType之间的关系和依赖
  • MCP集成:用于AI代理通信的标准MCP服务器接口

可用工具

核心分析工具

  • find_symbols:支持模糊匹配的跨应用源文件符号搜索
  • find_field_usage:在代码中查找特定DocType字段的引用
  • search_frappe_docs:支持模糊匹配和类别过滤的嵌入式Frappe框架文档搜索
  • read_frappe_doc:通过ID读取特定Frappe文档文件的全部内容

DocType管理

  • get_doctype:通过名称获取全面的DocType信息(例如,“销售发票”)
  • get_doctype_db_schema:获取特定DocType的数据库模式
  • create_doctype:生成包含JSON元数据、Python控制器和JS表单文件的DocType结构
  • analyze_links:通过检查链接、表格和选择字段来分析和映射DocType之间的关系
  • list_doctypes:列出当前Frappe应用中的所有可用DocType,可选地按模块过滤

开发与测试

  • create_web_page:生成包含HTML、CSS和JavaScript结构的网页文件
  • create_custom_page:生成包含表单和后端API端点的Frappe自定义页面框架
  • create_test_template:为Frappe DocType创建具有适当测试结构的测试模板文件
  • create_report:创建报告模板文件(脚本报告、查询报告或报告构建器)
  • run_tests:使用bench run-tests命令执行特定模块、DocType或整个应用的单元测试

系统集成

  • run_bench_command:运行带有参数的任意bench命令(例如,迁移、安装应用)
  • run_db_command:通过bench mariadb命令执行SQL查询
  • bench_execute:通过bench execute命令执行Frappe函数,可选地带有参数和关键字参数

安装与使用

先决条件

  • Rust(最新稳定版)
  • 要分析的Frappe应用程序代码库

设置

  1. 克隆并构建:
git clone https://github.com/anvie/frappe-mcp.git
cd frappe-mcp
cargo build --release
  1. 创建一个frappe-mcp.conf文件以配置您的Frappe应用(参见下面的配置部分)

  2. 运行MCP服务器:

cargo run -- --config frappe-mcp.conf run

服务器将在首次运行或源文件更改时自动分析您的Frappe应用程序。

使用Claude Code:

claude mcp add frappe_mcp ./target/release/frappe_mcp run

确保您在运行claude的同一目录下有frapppe-mcp.conf文件。

测试

使用MCP Inspector测试服务器:

cargo build --release
npx @modelcontextprotocol/inspector -- ./target/release/frappe_mcp --config frappe-mcp.conf run

可用的测试方法包括上述列出的所有工具:find_symbolsget_doctypecreate_doctyperun_testsanalyze_linkscreate_web_pagefind_field_usagerun_bench_commandget_doctype_db_schemarun_db_commandsearch_frappe_docsread_frappe_doclist_doctypescreate_custom_pagecreate_test_templatecreate_reportbench_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:基准/apps文件夹内应用目录的名称
  • app_name:应用的显示名称
  • site:Frappe站点名称(未指定时默认为“frontend”)

手动分析(可选)

虽然服务器会在启动时自动分析您的应用,但您也可以手动运行分析:

cargo run -- --config frappe-mcp.conf analyze --app-dir /path/to/frappe-bench/apps/your-app

这将生成一个包含有关您的应用模块和DocType结构化信息的analyzed_output.dat文件。

命令行工具

Functool 命令

functool子命令允许从命令行直接执行MCP函数,这对于测试和调试非常有用:

# 获取DocType信息
cargo run -- functool get-doctype "Sales Invoice"
cargo run -- functool get-doctype "Sales Invoice" json  # 仅JSON输出

# 列出模块中的所有DocType
cargo run -- functool list-doctypes "Selling"

# 在代码库中搜索符号
cargo run -- functool find-symbols "get_doc" "accounts" true 10

# 查找字段使用情况
cargo run -- functool find-field-usage "Sales Invoice" "customer" 20

# 运行bench命令
cargo run -- functool run-bench-command "list-apps"

可用函数:

  • get-doctype:获取全面的DocType信息
  • list-doctypes:列出DocType,可选地按模块过滤
  • find-symbols:在代码中搜索函数/类符号
  • find-field-usage:查找DocType字段被引用的位置
  • run-bench-command:执行bench命令

文档搜索

服务器内置了CLI命令,用于搜索嵌入式Frappe文档:

注意:文档通过基于短哈希的ID(例如,“48b014”)而不是文件路径引用,以避免与文件系统操作混淆。使用search-docs找到文档ID。

搜索文档

# 搜索关于DocType的文档
cargo run -- search-docs "DocType" --category doctypes --limit 5

# 对API文档进行模糊搜索
cargo run -- search-docs "databse" --category api --fuzzy

# 跨所有类别搜索
cargo run -- search-docs "getting started"

阅读特定文档

# 首先搜索以获取文档ID
cargo run -- search-docs "Frappe Framework Documentation" --limit=1

# 然后使用其ID阅读文档
cargo run -- read-doc "48b014"  # 主文档索引的ID

# 阅读创建DocType指南
cargo run -- read-doc "3b7f1e"  # 创建_doctypes.md的ID

# 阅读API文档
cargo run -- read-doc "454ba4"  # database_api.md的ID

CLI选项

  • --category:按类别过滤(doctypesapitutorial
  • --fuzzy:启用模糊搜索(默认:true)
  • --limit:结果的最大数量(默认:10)

作者:Robin Syihab