Skip to main content
Glama
flask_tools_api.py1.88 kB
""" Flask-based API for FreeCAD AI tools endpoint (migration template) """ from dataclasses import asdict, dataclass from typing import Any, Dict from flask import Blueprint, Flask, abort, jsonify, request # Example dataclass for request/response (replace with real logic as needed) @dataclass class ToolRequest: parameters: Dict[str, Any] @dataclass class ToolResponse: tool_id: str status: str result: Dict[str, Any] tools_bp = Blueprint("tools", __name__, url_prefix="/tools") # Assume server.tools['primitives'] is available in the global context or via dependency injection def get_tool_provider(): # Replace with actual tool provider lookup from freecad_ai_workbench import MCPServer server = MCPServer() return server.tools.get("primitives") @tools_bp.route("/primitives.<tool_id>", methods=["POST"]) def execute_primitive_tool(tool_id): if not request.is_json: abort(400, description="Request must be JSON") data = request.get_json() parameters = data.get("parameters", {}) tool_provider = get_tool_provider() if not tool_provider: abort(404, description="Primitive tool provider not found") try: # Replace with actual async/sync call as needed result = tool_provider.execute_tool(tool_id, parameters) response = ToolResponse(tool_id=tool_id, status="success", result=result) return jsonify(asdict(response)), 200 except Exception as e: abort(500, description=f"Error executing primitive tool: {str(e)}") from flask_events_api import events_bp from flask_resources_api import resources_bp from flask_tools_api import tools_bp # Flask app setup app = Flask(__name__) app.register_blueprint(tools_bp) app.register_blueprint(resources_bp) app.register_blueprint(events_bp) if __name__ == "__main__": app.run(host="0.0.0.0", port=5000)

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jango-blockchained/mcp-freecad'

If you have feedback or need assistance with the MCP directory API, please join our Discord server