Laravel MCP (Model Context Protocol)
一个使用 Laravel 开发 MCP 服务器的软件包。
InnoGE
README
Laravel MCP (模型上下文协议)
一个 Laravel 扩展包,实现了 模型上下文协议 (MCP),通过标准化的 API 实现你的 Laravel 应用和 AI 助手或其他系统之间的无缝通信。 请注意,此扩展包仍在开发中,尚未准备好用于生产环境。
安装
你可以通过 composer 安装此扩展包:
composer require innoge/laravel-mcp
基本用法
设置 MCP 服务器
此扩展包目前仅支持通过 STDIO 传输创建 MCP 服务器。 HTTP 传输尚未支持,但将在未来添加。
创建一个命令来启动你的 MCP 服务器:
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use InnoGE\LaravelMcp\Commands\ServesMcpServer;
class McpServerCommand extends Command
{
use ServesMcpServer;
protected $signature = 'mcp:serve';
protected $description = '启动一个 MCP 服务器';
public function handle(): int
{
return $this->serveMcp('your-app-name', '1.0.0');
}
private function getTools(): array
{
return [
// 在这里列出你的工具类
];
}
private function getResources(): array
{
return [
// 在这里列出你的资源提供者
];
}
}
资源
资源允许你通过 MCP 协议暴露你的应用程序的数据模型。 此扩展包提供了两种类型的资源提供者:
- EloquentResourceProvider: 暴露 Eloquent 模型
use InnoGE\LaravelMcp\Resources\EloquentResourceProvider;
use App\Models\User;
// 在你的 getResources() 方法中:
return [
new EloquentResourceProvider(User::query(), 'users', '应用程序的用户')
];
- InMemoryResourceProvider: 暴露自定义数据结构或非 Eloquent 数据
use InnoGE\LaravelMcp\Resources\InMemoryResourceProvider;
use InnoGE\LaravelMcp\Types\Resources\ResourceContent;
use InnoGE\LaravelMcp\Types\Resources\ResourceItem;
// 创建一个资源提供者
$resourceProvider = new InMemoryResourceProvider();
// 添加示例文档作为资源
$resourceProvider->addResource(
new ResourceItem('doc://example/document1', '示例文档 1', '这是一个示例文档', 'text/plain', 1024),
new ResourceContent('doc://example/document1', 'text/plain', '这是文档的内容')
);
$resourceProvider->addResource(
new ResourceItem('doc://example/document2', '示例文档 2', '这是示例文档 2', 'text/plain', 1024),
new ResourceContent('doc://example/document2', 'text/plain', '这是文档 2 的内容')
);
// 在你的 getResources() 方法中:
return [
$resourceProvider
];
工具
工具定义了可以通过 MCP 协议执行的操作:
-
内置示例工具:
HelloTool
: 一个简单的 hello world 示例ClockTool
: 返回当前时间
-
自定义工具: 通过实现
ToolInterface
创建你自己的工具
use InnoGE\LaravelMcp\Tools\Examples\HelloTool;
use InnoGE\LaravelMcp\Tools\Examples\ClockTool;
use App\MCP\Tools\YourCustomTool;
// 在你的 getTools() 方法中:
return [
HelloTool::class,
ClockTool::class,
YourCustomTool::class,
];
创建一个工具
工具是 MCP 的核心功能,允许 AI 助手与你的 Laravel 应用程序进行交互。 它们提供了一种通过明确定义的接口在你的应用程序中执行特定操作的方法。
MCP 工具的实际示例包括:
- 数据库操作: 创建、读取、更新或删除记录
- 外部 API 集成: 调用第三方服务的 API
- 文件管理: 上传、下载或处理文件
- 身份验证: 验证用户凭据或生成令牌
- 报告: 生成报告或导出数据
- 电子邮件/通知: 向用户发送消息
示例工具:
<?php
namespace App\MCP\Tools;
use Illuminate\Support\Facades\Artisan;
use InnoGE\LaravelMcp\Tools\Tool;
use Symfony\Component\Console\Output\BufferedOutput;
class CallArtisanCommandTool implements Tool
{
/**
* 获取工具名称
*/
public function getName(): string
{
return 'call-artisan-command';
}
/**
* 获取工具描述
*/
public function getDescription(): string
{
return '调用 Laravel Artisan 命令';
}
/**
* 获取工具的输入模式
*/
public function getInputSchema(): array
{
return [
'type' => 'object',
'properties' => [
'command' => [
'type' => 'string',
'description' => '要调用的 Artisan 命令 (例如 "migrate")',
],
],
'required' => ['command'],
];
}
/**
* 使用提供的参数执行工具
*/
public function execute(array $arguments): string
{
$command = $arguments['command'];
$outputBuffer = new BufferedOutput;
Artisan::call($command, [], $outputBuffer);
return $outputBuffer->fetch();
}
}
测试你的 MCP 服务器
使用 Modelcontext Protocol Inspector 测试 MCP 服务器:
npx @modelcontextprotocol/inspector php /path/to/your/app/artisan mcp:serve
将你的 MCP 服务器添加到 Claude Desktop
编辑你的 Claude Desktop 配置文件:
~/Library/Application Support/Claude/claude_desktop_config.json
将你的 MCP 服务器添加到配置文件:
{
"mcpServers": {
"laravel-mcp": {
"command": "php",
"args": [
"/path/to/your/app/artisan",
"mcp:serve"
]
}
}
}
现在你可以在 Claude Desktop 中使用你的 MCP 服务器了。 请注意,Claude 目前不使用 MCP 资源。 如果你想访问你的应用程序的数据,你可以使用工具调用。
测试
composer test
更新日志
请查看 CHANGELOG 以获取最近更改的更多信息。
贡献
请查看 CONTRIBUTING 了解详情。
安全漏洞
请查看 我们的安全策略 了解如何报告安全漏洞。
鸣谢
许可证
MIT 许可证 (MIT)。 请查看 License File 了解更多信息。
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
MCP Package Docs Server
促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。
Claude Code MCP
一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。
@kazuph/mcp-taskmanager
用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。
mermaid-mcp-server
一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。
Jira-Context-MCP
MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

Linear MCP Server
一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。
Curri MCP Server
通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。