sam_lookup_organization
Resolve a SAM.gov federal organization ID to its full parent path name, such as 'VETERANS AFFAIRS, DEPARTMENT OF.VETERANS AFFAIRS, DEPARTMENT OF.245-NETWORK CONTRACT OFFICE 5'. Use when an opportunity returns only an organization ID.
Instructions
Resolve a SAM.gov federal-organization id to its canonical fullParentPathName (e.g. 'VETERANS AFFAIRS, DEPARTMENT OF.VETERANS AFFAIRS, DEPARTMENT OF.245-NETWORK CONTRACT OFFICE 5'). Use when sam_get_opportunity returned only an organizationId.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| organizationId | Yes | SAM.gov federal-organization id (numeric) |
Implementation Reference
- src/server.ts:273-275 (schema)Zod schema for sam_lookup_organization input — requires a single `organizationId` string field.
const SamLookupOrgInput = z.object({ organizationId: z.string().describe("SAM.gov federal-organization id (numeric)"), }); - src/server.ts:311-316 (registration)Tool registration entry defining name, description, and inputSchema for sam_lookup_organization.
{ name: "sam_lookup_organization", description: "Resolve a SAM.gov federal-organization id to its canonical fullParentPathName (e.g. 'VETERANS AFFAIRS, DEPARTMENT OF.VETERANS AFFAIRS, DEPARTMENT OF.245-NETWORK CONTRACT OFFICE 5'). Use when sam_get_opportunity returned only an organizationId.", inputSchema: SamLookupOrgInput, }, - src/server.ts:643-680 (handler)Handler that resolves a SAM.gov federal-organization id by calling the public SAM.gov API endpoint directly, returning fullParentPathName, agencyName, name, type, and level.
case "sam_lookup_organization": { const { organizationId } = SamLookupOrgInput.parse(args); // SamGovClient internal method — exposed via direct fetch since // it's not on the public surface. Use the public sam.gov endpoint // directly (already keyless). const r = await fetch( `https://sam.gov/api/prod/federalorganizations/v1/organizations/${encodeURIComponent(organizationId)}`, { headers: { Accept: "application/hal+json" }, signal: AbortSignal.timeout(10_000), }, ); if (!r.ok) { return { found: false, organizationId, status: r.status }; } type Resp = { _embedded?: { org?: { fullParentPathName?: string; agencyName?: string; name?: string; type?: string; level?: number; }; }[]; }; const json = (await r.json()) as Resp; const org = json._embedded?.[0]?.org; return { found: !!org, organizationId, fullParentPathName: org?.fullParentPathName ?? "", agencyName: org?.agencyName ?? "", name: org?.name ?? "", type: org?.type, level: org?.level, }; }