> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP

> Laravel Copilot SDK의 세션 설정과 Server RPC API로 MCP 서버를 구성, 관리하는 방법을 설명합니다.

## MCP

SessionConfig의 `mcpServers`에 MCP 서버를 지정하면 사용할 수 있습니다.

Copilot CLI에서 Laravel Boost를 사용하는 경우 [laravel-boost-copilot-cli](https://github.com/invokable/laravel-boost-copilot-cli)도 함께 사용해 주세요.
`'type' => 'stdio'`(또는 `'local'`)와 `'tools' => ['*']`가 필수라는 것이 확인되었습니다. 이것이 없으면 MCP 서버로 인식되지 않습니다.

```php theme={null}
Artisan::command('copilot:mcp', function () {
    $config = new SessionConfig(
        mcpServers: [
            'laravel-boost' => [
                'type' => 'stdio',
                'command' => 'php',
                'args' => ['artisan', 'boost:mcp'],
                'tools' => ['*'],
            ],
        ],
    );

    Copilot::start(function (CopilotSession $session) {
        info('Starting Copilot with Laravel Boost MCP: '.$session->id());

        $prompt = '어떤 MCP가 로드되어 있어? laravel-boost를 사용할 수 있다면 application-info로 앱 정보를 가져와줘.';

        warning($prompt);

        $response = spin(
            callback: fn () => $session->sendAndWait($prompt),
            message: 'Thinking...',
        );

        note($response->content());
    }, config: $config);
});
```

## MCP 서버의 상태

세션 내 MCP 서버의 상태는 다음 값을 가집니다.

| 상태               | 설명     |
| ---------------- | ------ |
| `connected`      | 접속됨    |
| `failed`         | 접속 실패  |
| `needs-auth`     | 인증이 필요 |
| `pending`        | 접속 대기  |
| `disabled`       | 비활성화됨  |
| `not_configured` | 미설정    |

## MCP 서버 설정 관리(Server RPC)

세션과 별개로, 서버 레벨에서 MCP 서버의 설정을 관리할 수 있습니다.

```php theme={null}
use Revolution\Copilot\Facades\Copilot;
use Revolution\Copilot\Types\Rpc\McpConfigAddRequest;
use Revolution\Copilot\Types\Rpc\McpConfigUpdateRequest;
use Revolution\Copilot\Types\Rpc\McpConfigRemoveRequest;
use Revolution\Copilot\Types\Rpc\McpServerValue;

// 설정된 MCP 서버 목록 가져오기
$result = Copilot::client()->rpc()->mcp()->list();
foreach ($result->servers as $name => $config) {
    dump($name, $config->type, $config->command);
}

// MCP 서버 추가
Copilot::client()->rpc()->mcp()->add(new McpConfigAddRequest(
    name: 'laravel-boost',
    config: new McpServerValue(
        type: 'stdio',
        command: 'php',
        args: ['artisan', 'boost:mcp'],
        tools: ['*'],
    ),
));

// MCP 서버 설정 업데이트
Copilot::client()->rpc()->mcp()->update(new McpConfigUpdateRequest(
    name: 'laravel-boost',
    config: new McpServerValue(
        type: 'stdio',
        command: 'php',
        args: ['artisan', 'boost:mcp', '--verbose'],
        tools: ['*'],
    ),
));

// MCP 서버 삭제
Copilot::client()->rpc()->mcp()->remove(new McpConfigRemoveRequest(name: 'laravel-boost'));
```

<Info>
  최신 정보는 [GitHub 저장소](https://github.com/invokable/laravel-copilot-sdk)를 참고하세요.
</Info>


## Related topics

- [Laravel MCP](/ko/mcp.md)
- [Laravel에서 MCP 서버 만들기](/ko/advanced/mcp-server.md)
- [Boost의 커스텀 에이전트 만들기](/ko/advanced/boost-custom-agent.md)
- [Laravel AI SDK](/ko/ai-sdk.md)
- [Laravel Boost](/ko/boost.md)
