td_get_project
Retrieve workflow project details by ID to access metadata, creation time, last update, and revision hash for version tracking and verification.
Instructions
Get workflow project details by ID to check metadata and revision.
Retrieves project information including creation time, last update, and
revision hash. Use after finding project ID from td_list_projects.
Common scenarios:
- Get project metadata before downloading archive
- Check when project was last updated
- Verify project exists by ID
- Get revision for version tracking
Note: Use numeric project ID (e.g., "123456") not project name.
For project contents, use td_download_project_archive.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes |
Implementation Reference
- td_mcp_server/mcp_impl.py:350-388 (handler)The primary handler implementation for the td_get_project tool. It is decorated with @mcp.tool() which registers it with the MCP server. The function validates the project_id input, creates a TD client, fetches the project details, and returns them or an appropriate error response.@mcp.tool() async def td_get_project(project_id: str) -> dict[str, Any]: """Get workflow project details by ID to check metadata and revision. Retrieves project information including creation time, last update, and revision hash. Use after finding project ID from td_list_projects. Common scenarios: - Get project metadata before downloading archive - Check when project was last updated - Verify project exists by ID - Get revision for version tracking Note: Use numeric project ID (e.g., "123456") not project name. For project contents, use td_download_project_archive. """ # Input validation - prevent path traversal if not _validate_project_id(project_id): return _format_error_response("Invalid project ID format") client = _create_client(include_workflow=True) if isinstance(client, dict): return client try: project = client.get_project(project_id) if project: return {"project": project.model_dump()} else: return _format_error_response(f"Project with ID '{project_id}' not found") except (ValueError, requests.RequestException) as e: return _format_error_response( f"Failed to retrieve project '{project_id}': {str(e)}" ) except Exception as e: return _format_error_response( f"Unexpected error while retrieving project '{project_id}': {str(e)}" )