1. Go to this page and download the library: Download dalehurley/php-mcp-sdk library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
dalehurley / php-mcp-sdk example snippets
#!/usr/bin/env php
r;
use MCP\Server\Transport\StdioServerTransport;
use MCP\Types\Implementation;
use function Amp\async;
// Create the simplest possible MCP server
$server = new McpServer(
new Implementation(
'hello-world-server',
'1.0.0'
)
);
// Add a simple "say_hello" tool
$server->tool(
'say_hello',
'Says hello to someone',
[
'type' => 'object',
'properties' => [
'name' => [
'type' => 'string',
'description' => 'Name of the person to greet'
]
],
'
#!/usr/bin/env php
use MCP\Client\Transport\StdioClientTransport;
use MCP\Types\Implementation;
use Amp\Loop;
// Create client
$client = new Client(
new Implementation('weather-client', '1.0.0')
);
// Connect to weather server
$transport = new StdioClientTransport([
'command' => 'php',
'args' => [__DIR__ . '/weather-server.php']
]);
Amp\async(function() use ($client, $transport) {
try {
// Connect to server
yield $client->connect($transport);
echo "ā Connected to weather server\n";
// List available tools
$result = yield $client->listTools();
echo "š Available tools:\n";
foreach ($result['tools'] as $tool) {
echo " - {$tool['name']}: {$tool['description']}\n";
}
// Call the weather tool
$result = yield $client->callTool('get-weather', [
'location' => 'London, UK'
]);
echo "\nš¤ļø Weather result:\n";
echo $result['content'][0]['text'] . "\n";
yield $client->close();
} catch (\Exception $error) {
echo "ā Error: " . $error->getMessage() . "\n";
} finally {
Loop::stop();
}
});
Loop::run();
// In a Laravel controller or service
use MCP\Server\McpServer;
use MCP\Types\Implementation;
class McpController extends Controller
{
public function createServer()
{
$server = new McpServer(
new Implementation('my-laravel-app', '1.0.0')
);
// Register your tools, resources, and prompts
$server->tool('search-users', 'Search for users', [
'type' => 'object',
'properties' => [
'query' => ['type' => 'string', 'description' => 'Search query']
]
], function($params) {
return [
'content' => [
[
'type' => 'text',
'text' => json_encode(User::where('name', 'like', "%{$params['query']}%")->get())
]
]
];
});
return $server;
}
}
bash
composer
bash
# Run the hello-world server
php examples/getting-started/hello-world-server.php
# Test with Claude Desktop by adding to your configuration:
{
"mcpServers": {
"hello-world": {
"command": "php",
"args": ["/path/to/examples/getting-started/hello-world-server.php"]
}
}
}
# Or test with the MCP Inspector (Node.js
bash
composer
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.