mcp-client / gradio-api.md
bolleman's picture
Update Gradio API documentation for public apps; specify production endpoint and response details
e62fa69
# Using Gradio API with curl.exe on Windows
This guide explains how to interact with any Gradio app as an API using `curl.exe` from Windows PowerShell. It covers both public Hugging Face Spaces and local Gradio apps.
## Prerequisites
- Windows with PowerShell
- `curl.exe` (included in Windows 10+)
- The URL of your Gradio app (public or local, e.g., http://127.0.0.1:7860/)
## Step 1: Prepare Your Input
Create a file named `payload.json` in your working directory. For a local MCP Gradio app, the payload might look like:
```json
{
"data": [
"https://mcp.composio.dev/composio/server/ca1477ae-dffb-404c-9021-ef25ff440221/mcp",
"SALESFORCE_RETRIEVE_LEAD_BY_ID",
"{\"id\": \"00QgK0000005yjVUAQ\"}"
]
}
```
## Step 2: Make the POST Request (Local Gradio)
Send your input to the local Gradio API endpoint using this command:
```powershell
curl.exe -X POST http://127.0.0.1:7860/gradio_api/call/predict -s -H "Content-Type: application/json" -d '@payload.json'
```
This returns a JSON response with an `event_id`, e.g.:
```json
{"event_id":"YOUR_EVENT_ID"}
```
## Step 3: Fetch the Result (Local Gradio)
Use the `event_id` from the previous step to fetch the result:
```powershell
curl.exe -N http://127.0.0.1:7860/gradio_api/call/predict/YOUR_EVENT_ID
```
You will see output like:
```
event: complete
data: [ ... ]
```
## Example for Public Gradio Apps (Production)
For the production Gradio Space, use the following endpoint and adjust the payload as needed:
```powershell
curl.exe -X POST https://boardflare-mcp-client.hf.space/gradio_api/call/predict -s -H "Content-Type: application/json" -d '@payload.json'
```
This returns a JSON response with an `event_id`, e.g.:
```json
{"event_id":"YOUR_EVENT_ID"}
```
Then fetch the result with:
```powershell
curl.exe -N https://boardflare-mcp-client.hf.space/gradio_api/call/predict/YOUR_EVENT_ID
```
You will see output like:
```
event: complete
data: [ ... ]
```
## Notes
- For Gradio apps with multiple inputs, adjust the `data` array in `payload.json` accordingly.
- For private Spaces, add your Hugging Face token with `-H "Authorization: Bearer YOUR_TOKEN"` to both requests.
- For file inputs, use a dictionary with a `path` key pointing to a file URL.
- If authentication is required, first POST to `/login` and use the returned cookies in subsequent requests.
## Troubleshooting
- Always use single quotes around `@payload.json` in PowerShell to avoid variable expansion errors.
- If you get JSON errors, check your `payload.json` formatting.
- If you get a 404 or "Not Found" error, check the endpoint path (e.g., `/gradio_api/call/predict` for local apps).
---
This guide is based on the official Gradio documentation and adapted for both public and local Windows PowerShell use cases.