Grok MCP集成工具

一个免费开源的Docker化工具,用于将Grok(通过xAI API和CodeGPT插件)与MCP(模型上下文协议)服务器集成,支持Git版本控制、隐私保护网页搜索和本地文件库操作。

  • by madking2099
  • Dockerfile
  • 本地部署
  • 更新于
在 GitHub 查看 madking2099/grok_mcp_setup

使用说明

Grok MCP设置

A. 免费、开源的Docker化堆栈 用于集成 格罗克 (通过xAI API和CodeGPT插件) MCP(模型上下文协议) 服务器。此设置链接:

  • Git MCP:本地存储库上的版本控制操作(diff、commit、grep)。
  • 网络搜索MCP:以隐私为中心的浏览/搜索,无需外部API(通过自托管的SearXNG)。
  • 本地图书馆MCP:扫描/提取PDF、MD和文件库(如电子书)。

非常适合希望Grok“看到”您局域网的PyCharm用户:研究网站→ 交叉引用本地文档→ 在一个提示中更新Git。在单个工作站或家庭实验室服务器上运行。 无需第三方密钥.

文件概述

此仓库提供了两种部署方式: 模块化 (为简单起见,建议使用单独的容器)和 捆绑的 (通过Dockerfile/entrypoint.sh实现高级链接的一体化映像)。

  • docker-compose.yml:编排模块化堆栈(三个服务)。使用官方图片;不需要建造。
  • Dockerfile:构建一个捆绑所有服务器(Python/Node-deps)的单个“mcp-hub”映像。用于捆绑变体。
  • 入口点.sh:在捆绑映像中同时启动Git/Web/Library服务器。处理env变量,如 ALLOWED_PATHS.
  • README.md:你在读!(此文件。)
  • 可选的: .env.example (用于路径/端口), searxng-settings.yml (网络配置), pdf_server.py (PDF提取存根——通过PR添加)。

对于捆绑模式,将撰写服务交换为 build: . 以及引用入口点.sh。

特性

  • 模块化和轻量化:<1GB RAM,局域网暴露HTTP。
  • 气隙就绪:地方行动;SearXNG聚合了免费引擎(无云)。
  • Grok Synergy:CodeGPT工具调用类似“Diff repo,搜索‘PyTorch async’,提取ebook.pdf”的链
  • 可扩展:通过撰写添加MCP(例如OCR)。
  • 安全:只读卷,白名单路径。

先决条件

  • Docker和Docker Compose(v2+)。
  • PyCharm中的CodeGPT(Grok的xAI API密钥)。
  • 安装的dirs(例如。, /pub/your-repo 对于Git, /pub/ebooks libs)。
  • 可选:将MCP源克隆到 ./src 用于捆绑构建(git clone https://github.com/modelcontextprotocol/servers src).

快速开始

  1. 克隆和准备:

    git clone https://github.com/madking2099/grok_mcp_setup.git
    cd grok_mcp_setup
    cp .env.example .env  # Customize paths/ports
    # For bundled: git clone https://github.com/modelcontextprotocol/servers src
    
  2. (可选)添加PDF提取:

    • 创建 pdf_server.py (MCP包装带 pdfplumber--看 MCP PDF示例 或打开一个问题)。
  3. 启动(模块化-推荐):

    docker compose up -d
    # Verify: docker compose ps
    # Logs: docker compose logs -f mcp-git
    
  4. 或发射(捆绑-高级):

    • 编辑 docker-compose.yml:更改 mcp-hub 服务于 build: . 并添加 entrypoint: ["/app/entrypoint.sh"].
    • 然后: docker compose up -d --build.
  5. 配置CodeGPT:

    • 编辑 ~/.codegpt/mcp.json:
      {
        "mcpServers": {
          "lan-git": { "type": "http", "url": "http://localhost:8001" },
          "lan-web": { "type": "http", "url": "http://localhost:8002/search?q=query" },
          "lan-lib": { "type": "http", "url": "http://localhost:8003" }
        }
      }
      
    • 在PyCharm中刷新。测试:“使用lan git,ls/项目;lan web,搜索‘MCP提示’;lan lib,提取/ebooks/sample.pdf。”
  6. 访问:

    • Git: curl http://localhost:8001/health
    • 网状物: http://localhost:8002 (SearXNG用户界面)
    • 库: curl http://localhost:8003/list?path=/ebooks

定制

  • .env示例:
    PROJECTS_PATH=/pub/your-repo
    LIBRARY_PATH=/pub/ebooks
    GIT_PORT=8001
    WEB_PORT=8002
    LIB_PORT=8003
    
  • SearXNG配置:编辑 searxng-settings.yml 适用于发动机(例如仅适用于DuckDuckGo)。 文档.
  • 捆绑Tweaks:In entrypoint.sh,调整 BRAVE_API_KEY env如果添加回(可选)。
  • 扩展:添加Markdownify服务:
    mcp-md:
      image: node:20-slim
      command: ["npx", "@modelcontextprotocol/server-markdownify", "--http", "0.0.0.0:8004"]
      ports: ["8004:8004"]
    

建筑

  • mcp git:语义仓库查询(组合中的命令).
  • mcp网站:SearXNG元搜索(无关键字)。
  • mcp库:文件系统+PDF阅读器(通过 pdf_server.py).

捆绑备用: Dockerfile + 入口点.sh 用于单集装箱链。

提示流:Grok→ CodeGPT→ MCP → 工具响应。

故障排除

  • 混合组合错误:如果端口/卷冲突,请使用上面的模块化版本。
  • 构建失败:确保 ./src 用于复制 Dockerfile;检查日志。
  • 权限: chmod -R o+r /pubLAN 的 UFW: ufw allow from 192.168.0.0/24 to any port 8001:8003.
  • SearXNG慢:颠簸 UWSGI_WORKERS=4;初始运行索引引擎。
  • 没有PDF摘录?:实施 pdf_server.py 或者仅回退到文件系统。

贡献

Fork/PR想法:Tesseract OCR,Kavita电子书API,VS代码端口。漏洞开放问题!

许可证

麻省理工学院©madking2099。看 许可证 (如果缺少,请添加)。

致谢

如果它能为你的设置提供动力,请打星! @疯狂2099上X.