get_sourcing_request
Read the current status and normalized line items for one authenticated buyer sourcing request.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sourcing_request | Yes |
Read the current status and normalized line items for one authenticated buyer sourcing request.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | Yes |
| Name | Required | Description | Default |
|---|---|---|---|
| sourcing_request | Yes |
Changes observed during successful MCP inspections.
Output schema / (root)Previous value: -nullNew value: +{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "additionalProperties": {},
+ "properties": {
+ "sourcing_request": {
+ "additionalProperties": {},
+ "properties": {
+ "artifacts": {
+ "items": {
+ "additionalProperties": {},
+ "properties": {
+ "artifact_type": {
+ "type": "string"
+ },
+ "checksum_sha256": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "data_classification": {
+ "type": "string"
+ },
+ "disclosure_status": {
+ "type": "string"
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "media_type": {
+ "type": "string"
+ },
+ "original_filename": {
+ "type": "string"
+ },
+ "project_id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "purpose": {
+ "type": "string"
+ },
+ "scan_status": {
+ "type": "string"
+ },
+ "size_bytes": {
+ "anyOf": [
+ {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "original_filename",
+ "media_type",
+ "artifact_type",
+ "purpose",
+ "data_classification",
+ "scan_status"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "category": {
+ "type": "string"
+ },
+ "demand_lane": {
+ "type": "string"
+ },
+ "dispatches": {
+ "items": {
+ "additionalProperties": {},
+ "properties": {
+ "channel": {
+ "type": "string"
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "status": {
+ "type": "string"
+ },
+ "supplier_id": {
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "supplier_id",
+ "channel",
+ "status"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "items": {
+ "items": {
+ "additionalProperties": {},
+ "properties": {
+ "description": {
+ "type": "string"
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "quantity": {
+ "type": "number"
+ },
+ "unit": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "description",
+ "quantity",
+ "unit"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "matches": {
+ "items": {
+ "additionalProperties": {},
+ "properties": {
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "match_reasons": {
+ "items": {},
+ "type": "array"
+ },
+ "status": {
+ "type": "string"
+ },
+ "supplier_id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "supplier_name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "supplier_id",
+ "status"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "project_id": {
+ "anyOf": [
+ {
+ "minLength": 1,
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "status": {
+ "type": "string"
+ },
+ "workflow_status": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "category",
+ "status"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "sourcing_request"
+ ],
+ "type": "object"
+}Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the access-control nuance of 'authenticated buyer' and specifies the data returned (status, line items), which is not in the annotations. The annotations already declare readOnlyHint and idempotentHint, so the description complements them with useful scoping context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence of 12 words that leads with the action verb and identifies the resource and data scope. There is no repetition, filler, or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with one parameter, a clear safety profile from annotations, and an output schema, the description provides all necessary invocation context: the resource, its scope, and what is returned. It is complete without needing to explain return values or error cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter request_id is given a regex in the schema, but no description. The tool description implies that this ID identifies a buyer sourcing request, adding some meaning beyond the raw schema. However, with 0% schema description coverage, more explicit parameter explanation would be expected.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads the current status and normalized line items for one authenticated buyer sourcing request. The verb 'Read' and the specific resource 'one authenticated buyer sourcing request' make the purpose unambiguous and distinguish it from siblings like list_sourcing_requests.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context that this tool is for retrieving a single, specific sourcing request belonging to the authenticated buyer, which implicitly tells you not to use it for listing or other entity types. However, it does not explicitly reference alternatives or provide when-not-to-use guidance, preventing a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.