sieve_dataroom
Get a list of all documents in a deal's data room, including uploaded file names and current processing status.
Instructions
List all documents in a deal's data room.
Shows what files and content have been uploaded for a deal, along with their processing status.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| deal_id | Yes | The deal ID (from sieve_deals or sieve_dataroom_add). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/sieve_mcp/server.py:247-253 (registration)The @mcp.tool decorator registers sieve_dataroom as an MCP tool with read-only annotation.
@mcp.tool( annotations={ "readOnlyHint": True, "destructiveHint": False, "openWorldHint": True, } ) - src/sieve_mcp/server.py:254-263 (handler)The handler function sieve_dataroom takes a deal_id and delegates to client.dataroom().
async def sieve_dataroom(deal_id: str) -> dict: """List all documents in a deal's data room. Shows what files and content have been uploaded for a deal, along with their processing status. Args: deal_id: The deal ID (from sieve_deals or sieve_dataroom_add). """ return await client.dataroom(deal_id) - src/sieve_mcp/client.py:212-214 (helper)The client.dataroom() function sends a GET request to /api/v1/public/dataroom/{deal_id}.
async def dataroom(deal_id: str) -> dict[str, Any]: """List data room contents for a deal.""" return await _request("GET", f"/dataroom/{deal_id}") - src/sieve_mcp/client.py:40-77 (helper)The _request helper function makes the actual HTTP call with error handling for the Sieve Public API.
async def _request( method: str, path: str, *, json_body: dict[str, Any] | None = None, timeout: float = 15.0, ) -> dict[str, Any]: """Execute an HTTP request and return the JSON response or an error dict.""" if not SIEVE_API_KEY: return { "error": "Missing API key", "detail": "Set the SIEVE_API_KEY environment variable. " "Get your key at https://app.sieve.arceusxventures.com/settings", } url = f"{SIEVE_API_URL.rstrip('/')}{_BASE}{path}" start = time.monotonic() result: dict[str, Any] = {} try: async with httpx.AsyncClient(timeout=timeout) as client: response = await client.request( method, url, headers=_headers(), json=json_body ) response.raise_for_status() result = response.json() return result # type: ignore[no-any-return] except httpx.HTTPStatusError as exc: try: body = exc.response.json() except Exception: body = exc.response.text result = { "error": f"HTTP {exc.response.status_code}", "detail": body, } return result