第20回 将AI代理与搜索连接起来 – 通过MCP服务器将Fess集成到外部AI工具中

前言

在上一篇文章中,我们使用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插件的形式提供。

  1. 在管理界面中选择 [系统] > [插件]

  2. 安装 fess-webapp-mcp

  3. 重启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代理能够直接访问企业内部知识,知识利用的可能性将大大拓展。

下一篇文章将介绍多模态搜索。

参考资料