AI Tools
Define an LLM tool once and emit validated function-calling payloads for OpenAI, Anthropic and Gemini.
Call this tool from your code in three languages.
curl -X POST 'http://127.0.0.1:3003/en/api/tools/llm-tool-calling-json-schema-builder' \
-H 'Content-Type: application/json' \
-d '{"toolName":"get_weather","toolDescription":"Get the current weather for a city. Use when the user asks about temperature, conditions, or whether it will rain today.","paramsInput":"city | string | required | City name, e.g. \"Paris\"\nunits | enum<celsius,fahrenheit> | optional | Temperature unit for the report\nforecast_days | integer | optional | Days of forecast to include (1-7)","strictMode":true,"toolChoice":"auto"}'Send a POST request with your inputs as JSON. File parameters require a separate upload first.
POST http://127.0.0.1:3003/en/api/tools/llm-tool-calling-json-schema-builder| Name | Type | Required | Description |
|---|---|---|---|
| toolName | text | Yes | — |
| toolDescription | textarea | Yes | — |
| paramsInput | textarea | Yes | — |
| strictMode | checkbox | No | — |
| toolChoice | select | Yes | — |
Add this tool to your Model Context Protocol server so AI agents can list and call it.
Add this block to your MCP client configuration:
{
"mcpServers": {
"elysiatools-llm-tool-calling-json-schema-builder": {
"name": "llm-tool-calling-json-schema-builder",
"description": "Define an LLM tool once and emit validated function-calling payloads for OpenAI, Anthropic and Gemini.",
"baseUrl": "http://127.0.0.1:3003/mcp/sse?toolId=llm-tool-calling-json-schema-builder",
"command": "",
"args": [],
"env": {},
"isActive": true,
"type": "sse"
}
}
}After connecting to the SSE endpoint, list the exposed tools:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}Invoke the tool by its id, passing arguments built from its parameters:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "llm-tool-calling-json-schema-builder",
"arguments": {
"toolName": "get_weather",
"toolDescription": "Get the current weather for a city. Use when the user asks about temperature, conditions, or whether it will rain today.",
"paramsInput": "city | string | required | City name, e.g. \"Paris\"\nunits | enum<celsius,fahrenheit> | optional | Temperature unit for the report\nforecast_days | integer | optional | Days of forecast to include (1-7)",
"strictMode": true,
"toolChoice": "auto"
}
}
}HTML result
{
"result": "<div>Processed HTML content</div>",
"error": "Error message (optional)",
"message": "Notification message (optional)",
"metadata": {
"key": "value"
}
}Questions or issues? Contact [email protected]