前言
在上一篇文章中,我们使用Fess内置的AI搜索模式构建了AI助手。 然而,AI的应用方式并不仅限于此。 还有一种方法可以从Claude Desktop等AI代理中将Fess作为”搜索工具”来使用。
本文将介绍如何将Fess作为MCP(Model Context Protocol)服务器公开,构建一个外部AI工具能够无缝搜索企业内部文档的环境。
目标读者
对AI代理与搜索系统集成感兴趣的人员
希望了解MCP概念的人员
在业务中使用Claude Desktop等AI工具的人员
什么是MCP
MCP(Model Context Protocol)是一种使AI应用程序能够访问外部数据源和工具的协议。 它使AI模型能够以标准化的方式执行”搜索”、”读取文件”、”调用API”等操作。
将Fess作为MCP服务器公开后,AI代理就可以在自然的上下文中执行”搜索内部文档”这样的操作。
范式转换
传统搜索遵循的是”人类输入关键词并阅读结果”的模式。 通过MCP,”AI代理自主搜索、解读结果并将其融入回答中”这一新模式得以实现。
这是从”人类搜索”到”AI代替人类搜索”的转变。
构建Fess MCP服务器
安装插件
Fess的MCP服务器功能以webapp插件的形式提供。
在管理界面中选择 [系统] > [插件]
安装
fess-webapp-mcp重启Fess
MCP服务器提供的功能
Fess的MCP服务器向AI代理提供以下功能。
Tools
search:企业内部文档的全文搜索
get_index_stats:获取索引文档数量和JVM内存信息
AI代理可以调用这些工具来搜索Fess的索引或检查系统状态。
Resources
fess://index/stats:索引统计信息(文档数量、配置信息、JVM内存)
Prompts
basic_search:生成基本搜索查询
advanced_search:生成包含排序和数量指定的详细搜索查询
与Claude Desktop的集成
配置Claude Desktop
要将Fess的MCP服务器连接到Claude Desktop,需要在Claude Desktop的配置文件中添加MCP服务器信息。
在配置文件(claude_desktop_config.json)中添加以下配置。
{
"mcpServers": {
"fess": {
"url": "http://localhost:8080/mcp"
}
}
}
使用示例
当Fess作为MCP服务器在Claude Desktop中连接后,可以进行如下对话。
示例1:搜索企业内部文档
用户:”请告诉我出差报销的手续。”
Claude:(调用Fess的search工具) 我搜索了关于出差报销的内部文档。 出差报销的步骤如下: 1. 编写出差报告书… [来自出差报销手册(portal/manual/travel-expense.html)]
示例2:跨文档调查
用户:”请汇总我公司安全策略中关于密码的规定。”
Claude:(在Fess中搜索”密码 安全策略”并整合多个结果) 密码相关规定记录在以下文档中: - 信息安全基本方针:密码须12个字符以上… - 账号管理规程:需每90天更改一次… - 远程访问规程:须同时使用多因素认证…
AI代理解读搜索结果,并生成整合了多个文档信息的回答。
与其他AI工具的集成
由于MCP是标准协议,除Claude Desktop外,其他支持MCP的AI工具也可以使用Fess。
从自定义AI代理使用
也可以从自主开发的AI代理通过MCP协议连接到Fess。 使用MCP客户端库,可以在程序中调用Fess的搜索功能。
安全注意事项
以下是公开MCP服务器时的安全注意事项。
访问控制
将MCP服务器的访问限制为可信客户端
网络层面的限制(防火墙、VPN)
通过API令牌进行认证
搜索结果的权限控制
通过MCP进行的搜索同样适用Fess的基于角色的搜索(第5回)。 通过将角色与API令牌关联,可以控制AI代理能够获取的文档范围。
数据处理
与基于云的AI服务集成时,请注意搜索结果的文本会被发送到外部。 如果包含高度机密的文档,请考虑与本地LLM(Ollama)结合使用或对搜索结果进行过滤。
总结
本文介绍了如何将Fess作为MCP服务器公开并与AI代理集成。
MCP协议的概念和”AI进行搜索”的范式
fess-webapp-mcp插件的安装和配置
与Claude Desktop的集成示例
安全注意事项(访问控制、权限、数据处理)
通过让AI代理能够直接访问企业内部知识,知识利用的可能性将大大拓展。
下一篇文章将介绍多模态搜索。