Order Status Server
by 10xroadmap
README.md
# Laravel MCP Server
### Youtube Video
[Build MCP Server with Laravel](https://www.youtube.com/watch?v=9yFzD-1JoQE)
## Why Choose a Laravel-Based MCP Server?
- If your application is built on `Laravel`, developing a `MCP Server` directly within your existing codebase is often more efficient and secure than maintaining a separate Python microservice.
- By using Laravel as your MCP host, you create a seamless translation layer that exposes your data, business logic, and internal functions directly to AI agents like Antigravity or Claude Code
---
### Key Advantages
* **Native Access to Business Logic:** Skip the overhead of building and securing custom REST APIs. Your AI tools can interact directly with your database, Eloquent models, relationships, and internal services using code you already have.
* **Enterprise-Grade Security:** Leverage Laravel’s mature security ecosystem. You can utilize built-in features like Laravel Sanctum for authentication and standard middleware for rate-limiting, ensuring your AI integrations are protected by the same rigorous standards as your web app.
* **Robust, Familiar Architecture:** Benefit from built-in Artisan scaffolding to generate tools quickly, keep AI-specific logic organized in a dedicated `app/Mcp` directory, and offload resource-intensive tasks to your existing Laravel Queue infrastructure for better performance.
## Requirements
- PHP: 8.3 or Higher
- Laravel: 13.8 or Higher
- MySql: 9.3.0 or Higher
## How to run
1. Clone this repository
```
git clone
```
2. Create `.env` file
```
copy .env.example .env
```
3. Update `.env` file with MySQL connection settings
```
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mcp-db
DB_USERNAME=root
DB_PASSWORD='Password'
```
4. Generate encryption key for App
```
php artisan key generate
```
5. run migration
```
php artisan migrate
```
6. run db-seed
```
php artisan db:seed
```
7. run the app
```
php artisan server
```
## Design
1. Database Model
| Model | App\Models\OrderStatus |
| :--- | :---: |
| Table | order_status |
| Fields | order_id(integer),product,status |
2. Database seed
- Database\Seeders\OrderStatusSeeder
- contains some entries for order status
| order_id | product | status \
| :--- | :---: | :---: |
| 1 | Noodles | PENDING |
| 2 | Sauce | PROCESSING|
3. MCP Tool
- App\Mcp\Tools\OrderStatusFinderTool
- name : `order-status-finder`
- what it do : Find and return status of order in structured format
4. MCP Server
- App\Mcp\Servers\OrderStatusServer
- name : `Order Status Server`
- contains : One tool (OrderStatusFinderTool), no resources, no prompts
## How to test
- make sure MCP Server is running
- execute `php artisan serve` at terminal to run MCP Server
### Via Postman
1. File -> New -> MCP
2. Request Type : Change from STDIO to HTTP
3. URL : http://127.0.0.1:8000/mcp/order-status
3. Press Connect
4. Now Click Tools::Order Status Finder Tool
5. Enter Order Id as `1` or `2` and Press run
6. Click response at Bottom to View Output
### Via Antigravity CLI
1. Config
Open ~/.gemini/config/mcp_config.json
Add:
```json
{
"mcpServers": {
"order-status": {
"serverUrl": "http://127.0.0.1:8000/mcp/order-status/",
"headers": {
"Accept": "application/json, text/event-stream",
"Content-Type": "application/json"
}
}
}
}
```
2. Launch Antigravity CLI
```
agy
```
Prompt: `What is the status of order id 2`
## Via ADK 2.0 Agent
```
# mcp_client.py
from google.adk.agents import LlmAgent
from google.adk.tools.mcp_tool import McpToolset
from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams
# Configure connection parameters for the remote HTTP server
connection_params = StreamableHTTPConnectionParams(
url="http://127.0.0.1:8000/mcp/order-status",
headers={
"Accept": "application/json, text/event-stream",
"Content-Type":"application/json"
}
)
# Instantiate the toolset
mcp_tools = McpToolset(connection_params=connection_params)
root_agent = LlmAgent(
model="gemini-2.5-flash-lite",
name="order_status_agent",
instruction="""
You are a helpful assistant who has insight about github accounts
""",
tools=[mcp_tools],
)
```
Prompt: `What is the status of order id 2`
## Laravel MCP Documentation
Visit: https://laravel.com/docs/13.x/mcp
## GIT REPO URL
https://github.com/10xroadmap/laravel-mcp-server-tool-demo
## License or Terms of Use
This project is open-source. However, no part of the source code may be republished, modified, or distributed for commercial or public purposes without giving appropriate credit to the original author.