|  Download MCP ExamplesThis directory contains example implementations of the Laravel MCP package, demonstrating different transport methods and use cases. PrerequisitesBefore running the examples, make sure you have:
1. PHP 8.1 or higher installed
2. Composer dependencies installed (composer install)
3. Terminal access to run PHP scripts Examples Overview1. HTTP Transport ExampleBasic request/response communication using HTTP transport. Server (http_server.php)
Implements a simple MCP server
Handles tool calls, resource requests, and prompts
Uses HTTP transport on port 8080
 To run: php http_server.php
 Client (http_client.php)
Demonstrates making requests to the HTTP server
Shows error handling
Includes examples of all request types
 To run (in a separate terminal): php http_client.php
 2. WebSocket Transport ExampleReal-time bidirectional communication with progress updates and streaming. Server (websocket_server.php)
Implements a real-time MCP server
Demonstrates progress updates and streaming
Manages client connections
Simulates long-running tasks
 To run: php websocket_server.php
 Client (websocket_client.php)
Connects to WebSocket server
Handles different message types
Shows progress and streaming updates
Includes error handling
 To run (in a separate terminal): php websocket_client.php
 3. CLI Tool Example (cli_tool.php)Interactive command-line interface using STDIO transport. Features:
- Calculator tool with basic operations
- Greeting tool with customizable name
- File reading capability
- Built-in help system To run: php cli_tool.php
 Available commands: # Get help
{"type": "prompt_request", "name": "help"}
# Greet someone
{"type": "tool_call", "name": "greet", "arguments": {"name": "John"}}
# Calculate
{"type": "tool_call", "name": "calculate", "arguments": {"num1": 10, "num2": 5, "operation": "+"}}
# Read a file
{"type": "resource_request", "uri": "file://path/to/file.txt"}
 Common PatternsAll examples demonstrate:
1. Implementing the MCPServerInterface2. Setting up appropriate transport
3. Handling different request types
4. Error handling
5. Response formatting Troubleshooting
Port already in use
- Change the port number in the server configuration
- Make sure no other service is using port 8080
Connection refused
- Ensure the server is running
- Check if the host and port match between client and server
Permission issues with file reading
- Ensure PHP has read permissions for the files
- Use absolute paths or relative paths from the script location 
 |