Token导航 LogoToken导航TokenDH.com
Go Doc MCP logo
搜索检索未说明官方级别未说明来源级核验

Go Doc MCP

MCP Server

一个基于Golang实现的文档向量搜索服务器,支持多种文档格式的语义搜索,可集成到Claude Code中。

工具数

11

提示词数

0

GitHub Stars

0

资源数

0
搜索开发工具GoClaude文档处理Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

asakuno

提供方

asakuno

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

转到文档MCP服务器

Golang中描述的场景,使用下列步骤创建明细表,以便在概念设计中分析体量的周长MCP(Model Context Protocol)服务器。将文档矢量化PostgreSQL + pgvector中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。

特徴

  • 📚 文档矢量化: OpenAI Embeddings API或 Ollama(完全无料) 使用
  • 🔍 语义搜索:使用余弦相似度的高级搜索功能
  • 💾 PostgreSQL+pgvector:支持快速矢量相似度搜索
  • 🔧 MCP协议: Claude Code可集成的工具
  • 📝 支持多种格式:.md、.txt、.go、.js、.ts、.py、.java、.c、.cpp、.h、.hpp
  • 💰 完全免费选项: Ollama如果使用API无需钥匙,完全免费使用

交付工具

MCP服务器提供以下工具:

基本工具

  1. 搜索文档:在矢量搜索中搜索文档
  2. 索引文档:索引单个文件
  3. 索引目录:索引目录中的所有文件
  4. list_文档:显示索引文档列表
  5. 删除文档:删除文档
  6. get_stats:获取统计信息(包括按文件类型统计)

高级功能🆕

  1. search_with_context:上下文搜索(同时显示上下信息块)
  2. 搜索与筛选:筛选搜索(通过文件类型或路径进行筛选)
  3. reindex_document:重新索引文档
  4. 索引目录增量:增量索引(仅更新更改文件)
  5. get_document_info:获取文档详细信息

安装,安装

前提条件

  • Go 1.21以上
  • Docker&Docker编写

安装说明

  1. 克隆存储库:
git clone 
cd go-doc-mcp
  1. 安装依赖关系:
go mod download
  1. 设置环境变量:
cp .env.example .env
# .envファイルを編集(無料で使うならデフォルトのままでOK)
  1. PostgreSQL和Ollama启动:
docker-compose up -d

数据库和Ollama进行动态观察时的轴心点

docker-compose logs -f
# "database system is ready to accept connections"が表示されるまで待つ
  1. Ollama下载嵌入式模型(仅第一次):
docker exec -it go-doc-mcp-ollama ollama pull nomic-embed-text

单击功能区上Makefile使用:

make ollama-pull

构建和运行

# ビルド
go build -o go-doc-mcp main.go

# 実行
./go-doc-mcp

或直接运行:

go run main.go

选择嵌入式供应商

选项1:Ollama(推荐・完全免费)

优点:

  • 完全无料
  • API无需按键
  • 隐私保护(数据仅限本地)
  • 快速(本地运行)

设定(默认值):

EMBEDDING_PROVIDER=ollama
OLLAMA_URL=http://localhost:11434
EMBEDDING_MODEL=nomic-embed-text
EMBEDDING_DIMENSIONS=768

推荐型号:

  • nomic-embed-text:768维,平衡良好(默认)
  • mxbai-embed-large:1024维,更高质量
  • all-minilm: 384次元、軽量・高速

切换模型:

# 別のモデルをダウンロード
docker exec -it go-doc-mcp-ollama ollama pull mxbai-embed-large

# .envファイルで設定を変更
EMBEDDING_MODEL=mxbai-embed-large
EMBEDDING_DIMENSIONS=1024

选项2:OpenAI(收费)

优点:

  • 高质量嵌入
  • 不需要服务器

设定:

EMBEDDING_PROVIDER=openai
OPENAI_API_KEY=your-api-key-here
EMBEDDING_MODEL=text-embedding-3-small
EMBEDDING_DIMENSIONS=1536

成本(2024年時点):

  • text-embedding-3-small:0.02美元/1M代币
  • text-embedding-3-large:0.13美元/1M代币

使用方法

Claude Code中的设置

Claude Code的配置文件(claude_desktop_config.jsonclaude_code_config.json)中添加以下内容:

Ollama(免费):

{
  "mcpServers": {
    "go-doc-mcp": {
      "command": "/path/to/go-doc-mcp",
      "env": {
        "EMBEDDING_PROVIDER": "ollama",
        "OLLAMA_URL": "http://localhost:11434",
        "EMBEDDING_MODEL": "nomic-embed-text",
        "EMBEDDING_DIMENSIONS": "768",
        "POSTGRES_HOST": "localhost",
        "POSTGRES_PORT": "5432",
        "POSTGRES_USER": "postgres",
        "POSTGRES_PASSWORD": "postgres",
        "POSTGRES_DB": "vectordb",
        "CHUNK_SIZE": "1000",
        "CHUNK_OVERLAP": "200"
      }
    }
  }
}

OpenAI(收费):

{
  "mcpServers": {
    "go-doc-mcp": {
      "command": "/path/to/go-doc-mcp",
      "env": {
        "EMBEDDING_PROVIDER": "openai",
        "OPENAI_API_KEY": "your-api-key",
        "EMBEDDING_MODEL": "text-embedding-3-small",
        "EMBEDDING_DIMENSIONS": "1536",
        "POSTGRES_HOST": "localhost",
        "POSTGRES_PORT": "5432",
        "POSTGRES_USER": "postgres",
        "POSTGRES_PASSWORD": "postgres",
        "POSTGRES_DB": "vectordb"
      }
    }
  }
}

基本用例

  1. 索引目录(增量更新):
Claude Codeで: "index_directory_incremental ツールを使って ./docs ディレクトリをインデックス化して"

*添加新文件,更新变更文件,跳过未变更文件*

  1. 查找文档:
Claude Codeで: "search_documents ツールで 'authentication' を検索して"
  1. 上下文搜索(建议):
Claude Codeで: "search_with_context ツールで 'database connection' を検索して、前後のコンテキストも表示して"

*搜索结果前后的信息块也会显示出来,更容易理解*

  1. 筛选搜索:
Claude Codeで: "search_with_filter ツールで 'error handling' を .go ファイルのみで検索して"
  1. 重新索引文档:
Claude Codeで: "reindex_document ツールで ./docs/api.md を再インデックス化して"
  1. 查看统计信息:
Claude Codeで: "get_stats ツールでドキュメントの統計を表示して"

高级用例

仅搜索特定文件类型:

search_with_filter で "memory management" を [".c", ".cpp", ".h"] で検索

仅在特定目录中搜索:

search_with_filter で "API documentation" を paths: ["docs/api/"] で検索

查看文档详细信息:

get_document_info で ./src/main.go の情報を表示

*显示文件散列、大小、信息块数、更新日期和时间等*

设定

环境变数

|变量名|说明|默认值| |--------|------|--------------| | EMBEDDING_PROVIDER 嵌入式供应商 ollama | | OLLAMA_URL | Ollama API的,之URL | http://localhost:11434 | | OPENAI_API_KEY | OpenAI API密钥(仅在使用openai时必需) | EMBEDDING_MODEL 使用的嵌入模型 nomic-embed-text (奥拉马)/ text-embedding-3-small (openai)| | EMBEDDING_DIMENSIONS |嵌入向量的维数| 768 (奥拉马)/ 1536 (openai)| | POSTGRES_HOST | PostgreSQL主机| localhost | | POSTGRES_PORT | PostgreSQL端口 5432 | | POSTGRES_USER | PostgreSQL用户| postgres | | POSTGRES_PASSWORD | PostgreSQL密码 postgres | | POSTGRES_DB 数据库名称 vectordb | | CHUNK_SIZE 块大小(字符数) 1000 | | CHUNK_OVERLAP 块重叠 200 |

调整区块大小

  • CHUNK_SIZE:越大上下文越多,但精度越低
  • 大块重叠:越大,块间的连续性越强

推奨设定:

  • コード:CHUNK_SIZE=800,CHUNK_OVERLAP=100
  • 文档:CHUNK_SIZE=1000, CHUNK_OVERLAP=200
  • 長文:CHUNK_SIZE=1500,CHUNK_OVERLAP=300

体系结构

┌─────────────────┐
│  Claude Code    │
└────────┬────────┘
         │ MCP Protocol
┌────────▼────────┐
│  Go MCP Server  │
│                 │
│  ┌───────────┐  │
│  │Document   │  │
│  │Loader     │  │
│  └─────┬─────┘  │
│        │        │
│  ┌─────▼─────┐  │
│  │Document   │  │
│  │Chunker    │  │
│  └─────┬─────┘  │
│        │        │
│  ┌─────▼─────┐  │
│  │Embedding  │◄─┼─► Ollama (無料) or OpenAI (有料)
│  │Service    │  │
│  └─────┬─────┘  │
│        │        │
│  ┌─────▼─────┐  │
│  │Vector     │  │
│  │Store      │  │
│  └─────┬─────┘  │
└────────┼────────┘
         │
┌────────▼────────┐
│  PostgreSQL +   │
│  pgvector       │
└─────────────────┘

项目结构

go-doc-mcp/
├── main.go                    # エントリーポイント
├── go.mod                     # Go modules
├── docker-compose.yml         # PostgreSQL + pgvector + Ollama設定
├── init.sql                   # データベース初期化SQL
├── .env.example              # 環境変数サンプル
├── Makefile                  # ビルド/開発タスク
├── README.md
└── internal/
    ├── mcp/
    │   ├── server.go         # MCPサーバー実装
    │   └── tools.go          # MCPツール実装
    ├── vectorstore/
    │   ├── store.go          # ベクトルストア
    │   └── embeddings.go     # 埋め込み生成(Ollama/OpenAI対応)
    └── document/
        ├── loader.go         # ドキュメント読み込み
        └── chunker.go        # テキスト分割

故障排除

PostgreSQL挂牵

# PostgreSQLが起動しているか確認
docker-compose ps

# ログを確認
docker-compose logs postgres

# 再起動
docker-compose restart postgres

Ollama挂牵

# Ollamaが起動しているか確認
docker-compose ps

# Ollamaのログを確認
docker-compose logs ollama

# モデルがダウンロードされているか確認
docker exec -it go-doc-mcp-ollama ollama list

# モデルを再ダウンロード
docker exec -it go-doc-mcp-ollama ollama pull nomic-embed-text

嵌入生成出错

Ollama使用时:

  • Ollama确认是否启动
  • 确认是否下载了模型(ollama list
  • OLLAMA_URL确认是否正确

OpenAI使用时:

  • OpenAI API确认密钥是否正确设置
  • API查看项目中可用的所有族
  • 检查网络连接

内存不足错误

  • CHUNK_SIZE缩小
  • 减少一次索引的文件数
  • PostgreSQL调整内存设置
  • Ollama类型的多个类型参数的着色器的编译器中可能发生的故障

性能优化

Ollama性能

  • nomic嵌入文本:平衡型(推荐)
  • mxbai嵌入大质量高,但有点慢
  • 所有minilm:虽然速度很快,但精度很低

索引

数据库已包含HNSW(Hierarchical Navigable Small World)正在创建索引。 要索引大量文档,请考虑:

  1. 使用增量索引 - index_directory_incremental仅重新索引已修改的文件
  2. 通过批处理逐步索引
  3. 使用轻巧的嵌入式模型
  4. PostgreSQL的,之work_mem增加

検索速度

  • 利用筛选搜索 - search_with_filter排除不需要的文件类型
  • limit正确设置参数(默认值:5)
  • 上下文搜索(search_with_context)比通常的搜索慢一些,但会得到更有用的结果
  • 定期删除不需要的文档

重复防止

系统使用文件散列自动检测重复:

  • 尝试重新索引同一文件时将自动跳过
  • 仅当文件更改时才重新索引
  • get_document_info查看项目中可用的所有族

Makefile 命令

make help              # ヘルプ表示
make deps              # 依存関係のダウンロード
make build             # ビルド
make run               # 実行
make test              # テスト実行
make clean             # クリーンアップ
make docker-up         # Docker起動
make docker-down       # Docker停止
make docker-logs       # Dockerログ表示
make docker-reset      # Dockerデータリセット
make ollama-pull       # Ollamaモデルダウンロード
make ollama-list       # Ollamaモデル一覧
make dev               # 開発環境セットアップ

常见问题

Q: 可以免费使用吗?

A: 是!Ollama使用的话完全可以免费使用。API也不需要键。

Q: 我应该选择哪一个嵌入式供应商?

A: 个人使用和小规模项目Ollama(推荐免费)。如果大型项目需要最高质量OpenAI中所述修改相应参数的值。

Q: Ollama的嵌入质量OpenAI比起来怎么样?

A: 很多用途都是足够的质量。特别nomic-embed-text啊mxbai-embed-large提供高质量的结果。

Q: 隐私没问题吗?

A: Ollama将条目添加到文档注册表。OpenAI中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积OpenAI的规格化距离的幂函数。

Q: 可以将现有数据库更改为不同的维数吗?

A: init.sql中所述修改相应参数的值make docker-reset)。

许可证

麻省理工学院

貢献

欢迎拉式点播!

支持

在您查看完详细信息后,单击GitHub的,之Issues请通知我。

目录标签

目录标签

搜索开发工具GoClaude文档处理语义搜索本地部署向量数据库自然语言处理

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

11

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP