语义搜索工具

一个为AI代理提供Applesauce文档和代码示例语义搜索功能的MCP服务器,帮助快速查找相关信息并减少编码错误。

  • by hzrd149
  • TypeScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 hzrd149/applesauce-mcp

使用说明

苹果酱MCP服务器

一个MCP(模型上下文协议)工具,旨在帮助AI代理构建Nostr 应用程序使用 苹果酱SDK. 该工具为AI代理提供了Applesauce的语义搜索功能 文档和代码示例,使他们能够快速找到相关内容 信息,了解API使用模式,并用更少的资源编写正确的代码 错误。

通过将此MCP服务器集成到您的AI驱动IDE或编码助手中, 您的代理可以立即访问全面的Applesauce文档, 真实世界的代码示例和最佳实践——所有这些都可以通过自然搜索 语言查询。这大大减少了幻觉,并有助于药物 更快地生成可用的Nostr应用程序。

先决条件

用于使用公共HTTP端点

无需安装! 只需连接到 https://mcp.applesauce.build/mcp

用于本地运行(JSR/Deno或克隆存储库)

  1. 奥拉玛:必须在本地运行

    # Install Ollama from https://ollama.ai
    # The MCP server will automatically attempt to download the embedding model
    # Or you can manually download it:
    ollama pull nomic-embed-text:v1.5
    
  2. 德诺:从安装https://deno.land

添加到IDE或AI助手

开源代码

添加 ~/.config/opencode/opencode.json:

使用公共HTTP端点(最简单)

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "applesauce": {
      "type": "remote",
      "url": "https://mcp.applesauce.build/mcp"
    }
  }
}

在Deno中使用JSR

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "applesauce": {
      "type": "local",
      "command": ["deno", "run", "-P", "jsr:@applesauce/mcp"]
    }
  }
}

在OpenCode中了解有关MCP的更多信息

光标

添加 .cursor/mcp.json (项目)或 ~/.cursor/mcp.json (全球):

使用公共HTTP端点(最简单)

{
  "mcpServers": {
    "applesauce": {
      "url": "https://mcp.applesauce.build/mcp"
    }
  }
}

在Deno中使用JSR

{
  "mcpServers": {
    "applesauce": {
      "command": "deno",
      "args": ["run", "-P", "jsr:@applesauce/mcp"]
    }
  }
}

在Cursor中了解有关MCP的更多信息

其他MCP兼容IDE

对于Claude Desktop、Cline和其他MCP兼容工具,请使用此 配置格式:

使用公共HTTP端点

{
  "mcpServers": {
    "applesauce": {
      "url": "https://mcp.applesauce.build/mcp"
    }
  }
}

在Deno中使用JSR

{
  "mcpServers": {
    "applesauce": {
      "command": "deno",
      "args": ["run", "-P", "jsr:@applesauce/mcp"]
    }
  }
}

有关确切的文件,请参阅特定IDE的MCP配置文档 位置。

可用的MCP工具

配置后,您的AI代理将可以访问这6个工具:

文档工具

search_docs -使用自然语言语义搜索Applesauce文档 语言查询。当您需要了解特定API的工作原理时,请使用此选项, 查找使用模式,或了解Applesauce概念。

  • query (字符串,必填):自然语言搜索查询
  • limit (数字,可选):最大结果,1-20(默认值:5)

list_docs -列出所有可用的文档文件。用它来探索 可用的文档或查找文档的确切路径 文件。

read_docs -阅读特定文档文件的完整内容。使用 这是在通过搜索或列表找到相关文件后完成的 细节。

  • path (string,必填):文档文件路径(例如。, “core/EventStore.md”)

示例代码工具

search_examples -使用自然语言语义搜索代码示例 查询。使用此功能查找显示如何实现特定代码的真实代码 功能或使用特定的API。

  • query (字符串,必填):自然语言搜索查询
  • limit (数字,可选):最大结果,1-20(默认值:5)

list_examples -列出所有可用的代码示例。用这个来探索什么 示例是可用的。

read_example -阅读特定内容的完整源代码和元数据 例子。在找到 相关示例。

  • name (string,必填):不带扩展名的示例名称(例如。, “铸造/螺纹”)
  • 返回:完整源代码、导入、导出、函数和依赖关系

配置嵌入提供程序

MCP服务器支持多个嵌入提供者进行语义搜索。你 可以使用环境变量配置提供程序。

支持的提供商

Ollama(默认)

无需配置-服务器默认使用Ollama qwen3-embedding:4b 模型。

定制Ollama配置:

export EMBEDDING_PROVIDER=ollama
export OLLAMA_HOST=http://localhost:11434  # Custom Ollama host
export EMBEDDING_MODEL=nomic-embed-text:latest  # Custom model

开放人工智能

使用OpenAI的嵌入模型:

export EMBEDDING_PROVIDER=openai
export EMBEDDING_MODEL=text-embedding-3-small
export OPENAI_API_KEY=sk-your-api-key-here
# OPENAI_BASE_URL defaults to https://api.openai.com/v1

OpenAI兼容提供商

服务器与任何与OpenAI兼容的API(OpenRouter、Together.ai, 烟花AI等):

export EMBEDDING_PROVIDER=openai
export EMBEDDING_MODEL=nomic-ai/nomic-embed-text-v1.5  # Provider-specific model name
export OPENAI_API_KEY=sk-or-v1-your-api-key
export OPENAI_BASE_URL=https://openrouter.ai/api/v1

环境变量

变量 描述 默认值
EMBEDDING_PROVIDER 提供者类型(ollama 或 openai) ollama
EMBEDDING_MODEL 要使用的型号名称 qwen3-embedding:4b
OLLAMA_HOST Ollama服务器URL(使用Ollama时) http://localhost:11434
OPENAI_API_KEY OpenAI兼容提供程序的API密钥 (OpenAI必需)
OPENAI_BASE_URL OpenAI兼容API的基本URL https://api.openai.com/v1
APPLESAUCE_REPO_PATH applesauce存储库的自定义路径 特定于操作系统的缓存目录(请参阅数据存储)
APPLESAUCE_DB_PATH 矢量数据库的自定义路径 特定于操作系统的缓存目录(请参阅数据存储)

注: 切换提供商时,您需要重新运行 deno task cli rebuild 使用新的提供者重新生成嵌入。

本地运行

大多数用户将使用公共HTTP端点 (https://mcp.applesauce.build/mcp)或者通过JSR/Deno运行。但是,如果你愿意 要在本地运行服务器,请执行以下操作:

设置和运行

# Clone the repository
git clone https://github.com/hzrd149/applesauce-mcp.git
cd applesauce-mcp

# Run the server (first run will automatically setup the database)
deno task cli

# Or run in HTTP mode
deno task cli -- --mode http --port 3000

第一次运行服务器时,它将自动:

  1. 将Applesauce存储库克隆到缓存目录
  2. 提取并索引所有文档和代码示例
  3. 使用Ollama生成语义搜索的嵌入

数据存储位置

MCP服务器将数据存储在操作系统相应的缓存目录中:

  • Linux: ~/.cache/applesauce-mcp/
  • macOS: ~/Library/Caches/applesauce-mcp/
  • 视窗: %LOCALAPPDATA%\applesauce-mcp\

在缓存目录中:

  • applesauce/ -克隆苹果酱库
  • *.lance/ -LanceDB矢量数据库(文档、示例、方法)

自定义位置:使用环境变量覆盖默认路径:

export APPLESAUCE_REPO_PATH=/path/to/applesauce  # Custom repo location
export APPLESAUCE_DB_PATH=/path/to/databases     # Custom database location

这对于你可能想挂载的Docker容器特别有用 特定路径上的卷。

更新数据

要获取最新的Applesauce文档和示例:

# Update the repository and automatically rebuild databases
deno task cli update

# Or update without rebuilding (if you want to rebuild manually later)
deno task cli update --skip-rebuild

或者,如果通过JSR运行:

# Update and rebuild automatically
deno run -P jsr:@applesauce/mcp update

# Or skip automatic rebuild
deno run -P jsr:@applesauce/mcp update --skip-rebuild

使用Docker运行

服务器包括Docker和Docker Compose配置,便于使用 部署。

使用Docker Compose(推荐)

默认配置使用Ollama进行嵌入:

# Start both MCP server and Ollama
docker-compose up -d

# View logs
docker-compose logs -f

# Stop services
docker-compose down

使用OpenAI或与OpenAI兼容的提供者:

编辑 docker-compose.yml 并更新环境变量:

environment:
  - EMBEDDING_PROVIDER=openai
  - EMBEDDING_MODEL=text-embedding-3-small
  - OPENAI_API_KEY=sk-your-api-key-here
  # - OPENAI_BASE_URL=https://openrouter.ai/api/v1  # For OpenRouter, etc.

直接使用Docker

# Build the image
docker build -t applesauce-mcp .

# Run with Ollama (requires Ollama running on host)
docker run -p 3000:3000 \
  -e EMBEDDING_PROVIDER=ollama \
  -e OLLAMA_HOST=http://host.docker.internal:11434 \
  applesauce-mcp

# Run with OpenAI
docker run -p 3000:3000 \
  -e EMBEDDING_PROVIDER=openai \
  -e EMBEDDING_MODEL=text-embedding-3-small \
  -e OPENAI_API_KEY=sk-your-api-key-here \
  applesauce-mcp

许可证

麻省理工学院