Laravel文档MCP服务器
一个模型上下文协议服务器,为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 服务器
这是一个模型上下文协议(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包管理器(推荐)
步骤
-
克隆仓库:
git clone https://github.com/yourusername/laravel-docs-mcp.git cd laravel-docs-mcp -
设置环境并安装依赖项:
# 创建并激活虚拟环境 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.mdlaravel://authentication.md
功能和路线图
当前功能:
- ✅ 从 Laravel 的 GitHub 仓库动态更新文档
- ✅ 优雅的关闭处理
- ✅ 通过命令行选项实现版本灵活性
- ✅ 基于使用场景的包推荐
- ✅ 对常用 Laravel 包的实现指导
- ✅ Docker 部署支持
计划中的功能:
- 多版本支持(同时访问多个 Laravel 版本的文档)
- 用户项目分析,以提供定制化建议
许可证
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。
贡献
欢迎贡献!请参阅 CONTRIBUTING.md 获取指南。
致谢
- 感谢 Laravel 提供了优秀的文档
- 感谢 Laravel 包作者对生态系统的贡献