L

Laravel文档MCP服务器

@brianirish/laravel-docs-mcp
0 Stars 151 次浏览 brianirish 更新于 2026-08-23

一个模型上下文协议服务器,为AI助手和语言模型提供对Laravel 12文档的访问,使它们能够列出、阅读和搜索文档文件。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "laravel-mcp-companion": {
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/brianirish/laravel-mcp-companion:latest"
      ],
      "command": "docker"
    }
  }
}

该服务需要配置环境变量:docs-path、force-update、host、log-level、port、server-name、transport、update-docs、version

服务介绍

Laravel 文档 MCP 服务器

smithery 徽章

这是一个模型上下文协议(MCP)服务器,为AI助手和语言模型提供访问Laravel文档和包推荐的功能。

概览

该服务器使AI助手能够通过模型上下文协议(MCP)访问Laravel文档和包推荐。它允许AI工具:

  • 访问和搜索Laravel文档
  • 根据特定用例接收包推荐
  • 获取流行Laravel包的实现指南
  • 从Laravel的GitHub仓库自动更新文档

安装

通过Smithery快速安装

npx -y @smithery/cli install @brianirish/laravel-docs-mcp --client claude

手动安装

前提条件

  • Python 3.12+
  • uv 包管理器(推荐)

步骤

  1. 克隆仓库:

    git clone https://github.com/yourusername/laravel-docs-mcp.git
    cd laravel-docs-mcp
    
  2. 设置环境并安装依赖项:

    # 创建并激活虚拟环境
    uv venv
    source .venv/bin/activate  # Linux/macOS
    # 或者
    .venv\Scripts\activate     # Windows
    
    # 安装依赖项
    uv pip install .
    

使用

启动服务器

python laravel_docs_server.py

服务器在首次运行时会自动获取Laravel文档,并可以通过Ctrl+C停止。

命令行选项

选项 描述
--docs-path PATH 文档目录路径 (默认: ./docs)
--server-name NAME 服务器名称 (默认: LaravelDocs)
--log-level LEVEL 日志级别: DEBUG, INFO, WARNING, ERROR, CRITICAL (默认: INFO)
--transport TYPE 传输方法: stdio, websocket, sse (默认: stdio)
--host HOST 绑定主机 (网络传输)
--port PORT 监听端口 (网络传输)
--version VERSION Laravel版本分支 (默认: 12.x)
--update-docs 在启动前更新文档
--force-update 强制更新文档

使用自定义选项的示例:

python laravel_docs_server.py --docs-path /path/to/docs --version 11.x --update-docs --transport websocket --host localhost --port 8000

文档更新器

你可以单独更新文档:

# Update documentation
python docs_updater.py --target-dir ./docs --version 12.x

# Check if update is needed
python docs_updater.py --check-only

# Force update
python docs_updater.py --force

API参考

客户端示例

import asyncio
from fastmcp import Client

async def main():
    client = Client("path/to/laravel_docs_server.py")
    
    async with client:
        # List documentation
        result = await client.call_tool("list_docs", {})
        print(result)
        
        # Search documentation
        result = await client.call_tool("search_docs", {"query": "routing"})
        print(result)
        
        # Get package recommendations
        result = await client.call_tool("get_package_recommendations", 
                                       {"use_case": "implementing subscription billing"})
        print(result)
        
        # Read documentation
        resource = await client.read_resource("laravel://routing.md")
        print(resource)

if __name__ == "__main__":
    asyncio.run(main())

可用工具

文档工具

  • list_docs() - 列出所有文档文件
  • search_docs(query: str) - 搜索特定术语的文档
  • update_docs(version: Optional[str], force: bool) - 更新文档
  • docs_info() - 获取文档版本信息

包推荐工具

  • get_package_recommendations(use_case: str) - 获取某个用例的包推荐
  • get_package_info(package_name: str) - 获取特定包的详细信息
  • get_package_categories(category: str) - 列出特定类别的包
  • get_features_for_package(package: str) - 获取包的可用功能

资源访问

可以使用以下方式将文档文件作为资源访问:

laravel://{path}

Examples:

  • laravel://routing.md
  • laravel://authentication.md

功能和路线图

当前功能:

  • ✅ 从 Laravel 的 GitHub 仓库动态更新文档
  • ✅ 优雅的关闭处理
  • ✅ 通过命令行选项实现版本灵活性
  • ✅ 基于使用场景的包推荐
  • ✅ 对常用 Laravel 包的实现指导
  • ✅ Docker 部署支持

计划中的功能:

  • 多版本支持(同时访问多个 Laravel 版本的文档)
  • 用户项目分析,以提供定制化建议

许可证

本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。

贡献

欢迎贡献!请参阅 CONTRIBUTING.md 获取指南。

致谢

  • 感谢 Laravel 提供了优秀的文档
  • 感谢 Laravel 包作者对生态系统的贡献

相关 MCP 服务