搜索协议服务器

一个基于Go的Meilisearch搜索协议服务器,为大型语言模型提供搜索能力。

  • by cnosuke
  • Go
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 cnosuke/mcp-meilisearch

使用说明

Meilisearch MCP服务器(Go)

Meilisearch搜索引擎的基于Go的包装器,用作模型上下文协议(MCP)服务器。

概述

该项目是一个Go应用程序,旨在使Meilisearch搜索引擎能够用作MCP(模型上下文协议)服务器。通过MCP服务器,像Claude这样的大型语言模型(LLM)可以访问Meilisarch强大的搜索功能。

特性

  • Go中实现的轻量级快速MCP服务器
  • 与美搜索API无缝集成
  • 符合MCP协议的接口
  • 支持搜索、索引管理和文档操作等关键功能

安装

先决条件

  • 达到1.24或更高
  • 正在运行Meilisearch实例

构建说明

# Clone the repository
git clone https://github.com/cnosuke/mcp-meilisearch.git
cd mcp-meilisearch

# Install dependencies
make deps

# Build
make bin/mcp-meilisearch

配置

使用 config.yml 用于配置Meilisearch服务器连接设置的文件:

meilisearch:
  host: http://localhost:7700 # Address of Meilisearch server
  api_key: '' # Set API key if needed

您还可以使用环境变量进行配置:

  • MEILISEARCH_HOST:Meilisearch服务器地址
  • MEILISEARCH_API_KEY:美搜索API密钥

用法

启动服务器

./bin/mcp-meilisearch server --config config.yml

选项:

  • --no-logs:最小化日志输出(仅显示错误)
  • --log <file path>:将日志输出到指定文件

与Claude Desktop一起使用

要与Claude Desktop集成,请在您的 claude_desktop_config.json 文件。 由于MCP使用stdio进行通信,因此必须使用 --no-logs 和 --log 旗帜。 下面是一个通过环境变量注入SQLite文件路径的示例配置:

{
  "mcpServers": {
    "sqlite": {
      "command": "./bin/mcp-meilisearch",
      "args": ["server", "--no-logs", "--log", "path_to_log_file"],
      "env": {
        "MEILISEARCH_HOST": "http://localhost:7700",
        "MEILISEARCH_API_KEY": "api_key"
      }
    }
  }
}

此配置将MCP SQLite服务器注册到Claude Desktop,确保所有日志都指向指定的日志文件,而不会干扰通过stdio传输的MCP协议消息。

可用工具

此MCP服务器提供以下工具:

服务器管理

  • health_check:检查Meilisearch服务器的状态。
    • 参数:无
    • 返回:服务器运行状况信息

索引管理

  • list_indexes:检索所有索引的列表。

    • 参数:无
    • 返回值:索引数组
  • create_index:创建新索引。

    • 参数:
      • uid:索引的唯一标识符(必需)
      • primary_key:文档主键(可选)
    • 返回:创建任务信息

文档操作

  • get_documents:从索引中检索文档。

    • 参数:
      • index_uid:索引UID(必需)
      • limit:要检索的最大文档数(可选)
      • offset:要跳过的文档数(可选)
      • fields:要检索的字段数组(可选)
    • 返回:文档数组
  • add_documents:将文档添加到索引中。

    • 参数:
      • index_uid:索引UID(必需)
      • documents:要添加的文档数组(必需)
      • primary_key:主键(可选)
    • 返回:添加任务信息

搜索

  • search:在索引中搜索文档。
    • 参数:
      • index_uid:要搜索的索引的UID(必需)
      • query:搜索查询(必填)
      • limit:要返回的最大结果数(可选)
      • offset:要跳过的结果数(可选)
      • filter:筛选表达式(可选)
      • sort:排序条件数组(可选)
    • 返回:搜索结果

贡献

欢迎投稿!请分叉存储库并提交改进或bug修复的pull请求。对于重大变化,先打开一个问题来讨论你的想法。

许可证

该项目根据MIT许可证获得许可。

作者

中海油(x.com/cnosuke)