Initial commit
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
# Python Endpoints Demo
|
||||
|
||||
This example demonstrates how to create and use Python-based endpoints in MXCP.
|
||||
|
||||
## Features Demonstrated
|
||||
|
||||
### 1. Basic Python Functions
|
||||
- `analyze_numbers` - Statistical analysis with various operations
|
||||
- `create_sample_data` - Database operations from Python
|
||||
|
||||
### 2. Async Functions
|
||||
- `process_time_series` - Demonstrates async Python endpoint
|
||||
|
||||
### 3. Database Access
|
||||
- Using `mxcp.runtime.db` to execute SQL queries
|
||||
- Parameter binding for safe SQL execution
|
||||
|
||||
## Running the Examples
|
||||
|
||||
In a terminal, test the endpoints:
|
||||
|
||||
```bash
|
||||
# Create sample data
|
||||
mxcp run tool create_sample_data --param table_name=test_data --param row_count=100
|
||||
|
||||
# Analyze numbers
|
||||
mxcp run tool analyze_numbers --param numbers="[1, 2, 3, 4, 5]" --param operation=mean
|
||||
|
||||
# Process time series (async function)
|
||||
mxcp run tool process_time_series --param table_name=test_data --param window_days=7
|
||||
```
|
||||
|
||||
Or, if you prefer, you can also start the MXCP server and use any MCP client to call the tools:
|
||||
```bash
|
||||
mxcp serve
|
||||
```
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
python-demo/
|
||||
├── mxcp-site.yml # Project configuration
|
||||
├── python/ # Python modules
|
||||
│ └── data_analysis.py # Python endpoint implementations
|
||||
├── tools/ # Tool definitions
|
||||
│ ├── analyze_numbers.yml
|
||||
│ ├── create_sample_data.yml
|
||||
│ └── process_time_series.yml
|
||||
└── README.md
|
||||
```
|
||||
|
||||
## Key Concepts
|
||||
|
||||
1. **Language Declaration**: Set `language: python` in the tool definition
|
||||
2. **Function Names**: The function name must match the tool name
|
||||
3. **Return Types**: Functions must return data matching the declared return type
|
||||
4. **Database Access**: Use `db.execute()` for SQL queries
|
||||
5. **Async Support**: Both sync and async functions are supported
|
||||
Reference in New Issue
Block a user