create_project
Submit a real-world project by specifying location, requirements, and budget. The system decomposes work into tasks for human workers.
Instructions
Submit a new project to RobotFail.
Describe what you need done in the physical world. Be specific about location, requirements, and deliverables. The PM engine decomposes it into atomic tasks and assigns them to human workers.
Args: description: What you need done. Include location, requirements, deliverables. budget_dollars: Budget in USD (e.g. 50.00 = $50). Minimum $5.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| description | Yes | ||
| budget_dollars | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- robotfail_mcp/server.py:55-71 (handler)The tool handler function for 'create_project' — it posts a project description and budget to the RobotFail API and returns the JSON response.
@mcp.tool() async def create_project(description: str, budget_dollars: float) -> str: """Submit a new project to RobotFail. Describe what you need done in the physical world. Be specific about location, requirements, and deliverables. The PM engine decomposes it into atomic tasks and assigns them to human workers. Args: description: What you need done. Include location, requirements, deliverables. budget_dollars: Budget in USD (e.g. 50.00 = $50). Minimum $5. """ data = await _post("/api/projects", { "description": description, "budget": budget_dollars, }) return json.dumps(data, indent=2) - robotfail_mcp/server.py:55-55 (registration)The @mcp.tool() decorator registers 'create_project' as a tool with the FastMCP server instance, making it available via the MCP interface.
@mcp.tool() - robotfail_mcp/server.py:41-45 (helper)The _post helper function used by create_project to make the HTTP POST request to the RobotFail API.
async def _post(path: str, body: dict = None) -> dict: async with httpx.AsyncClient(timeout=60) as client: r = await client.post(f"{API_BASE}{path}", headers=_headers(), json=body or {}) r.raise_for_status() return r.json() - robotfail_mcp/server.py:56-65 (schema)Input parameters for create_project: description (str) and budget_dollars (float).
async def create_project(description: str, budget_dollars: float) -> str: """Submit a new project to RobotFail. Describe what you need done in the physical world. Be specific about location, requirements, and deliverables. The PM engine decomposes it into atomic tasks and assigns them to human workers. Args: description: What you need done. Include location, requirements, deliverables. budget_dollars: Budget in USD (e.g. 50.00 = $50). Minimum $5.