govtoolspro-mcp-server 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"findPartnersNear.js","sourceRoot":"","sources":["../../src/tools/findPartnersNear.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"findPartnersNear.js","sourceRoot":"","sources":["../../src/tools/findPartnersNear.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export const getSolicitationTool = {
1
+ export const getSolicitationDef = {
2
2
  name: "get_solicitation",
3
3
  description: "Retrieve a single SAM.gov solicitation's structured fields by notice ID (or, best-effort, by solicitation number). " +
4
4
  "Returns title, solicitation number, type, NAICS, PSC, set-aside, place of performance, response deadline (with timezone), " +
@@ -89,41 +89,40 @@ export const getSolicitationTool = {
89
89
  idempotentHint: true,
90
90
  openWorldHint: true,
91
91
  },
92
+ async run(ctx, args) {
93
+ const noticeId = typeof args.noticeId === "string" ? args.noticeId : undefined;
94
+ const solicitationNumber = typeof args.solicitationNumber === "string" ? args.solicitationNumber : undefined;
95
+ if (!noticeId && !solicitationNumber) {
96
+ throw new Error("Provide either noticeId or solicitationNumber");
97
+ }
98
+ const body = {};
99
+ if (noticeId)
100
+ body.noticeId = noticeId;
101
+ if (solicitationNumber)
102
+ body.solicitationNumber = solicitationNumber;
103
+ if (typeof args.includeAttachments === "boolean")
104
+ body.includeAttachments = args.includeAttachments;
105
+ return ctx.post("/get-solicitation", body);
106
+ },
107
+ toText(data, disclaimer) {
108
+ const pop = data.placeOfPerformance;
109
+ const popStr = pop
110
+ ? [pop.city, pop.state, pop.zip].filter(Boolean).join(", ")
111
+ : "n/a";
112
+ const poc = data.pointOfContact?.[0];
113
+ const lines = [
114
+ `${data.title || "(untitled)"} ${data.solicitationNumber ? `[${data.solicitationNumber}]` : ""}`.trim(),
115
+ `Type: ${data.typeLabel || data.type || "n/a"}${data.cancelled ? " — CANCELLED" : ""}${data.archived ? " — ARCHIVED" : ""}`,
116
+ `NAICS: ${data.naicsCode || "n/a"}${data.naicsCodes && data.naicsCodes.length > 1 ? ` (+${data.naicsCodes.length - 1} more)` : ""} | PSC: ${data.pscCode || "n/a"} | Set-aside: ${data.setAside || "none"}`,
117
+ `Response deadline: ${data.responseDeadline || "n/a"}${data.responseTimeZone ? ` (${data.responseTimeZone})` : ""}`,
118
+ `Place of performance: ${popStr}`,
119
+ poc ? `Primary contact: ${poc.fullName || "n/a"}${poc.email ? ` <${poc.email}>` : ""}${poc.phone ? ` ${poc.phone}` : ""}` : null,
120
+ data.attachments ? `Attachments: ${data.attachments.length}${data.attachmentsError ? ` (lookup error: ${data.attachmentsError})` : ""}` : null,
121
+ data.link ? `Link: ${data.link}` : null,
122
+ data.description ? `\nDescription:\n${data.description.slice(0, 600)}${data.description.length > 600 ? " …" : ""}` : null,
123
+ disclaimer ? `\n${disclaimer}` : null,
124
+ ].filter((s) => s !== null);
125
+ return lines.join("\n");
126
+ },
92
127
  };
93
- export async function runGetSolicitation(api, args) {
94
- const noticeId = typeof args.noticeId === "string" ? args.noticeId : undefined;
95
- const solicitationNumber = typeof args.solicitationNumber === "string" ? args.solicitationNumber : undefined;
96
- if (!noticeId && !solicitationNumber) {
97
- throw new Error("Provide either noticeId or solicitationNumber");
98
- }
99
- const body = {};
100
- if (noticeId)
101
- body.noticeId = noticeId;
102
- if (solicitationNumber)
103
- body.solicitationNumber = solicitationNumber;
104
- if (typeof args.includeAttachments === "boolean")
105
- body.includeAttachments = args.includeAttachments;
106
- const { data, disclaimer } = await api.post("/get-solicitation", body);
107
- const pop = data.placeOfPerformance;
108
- const popStr = pop
109
- ? [pop.city, pop.state, pop.zip].filter(Boolean).join(", ")
110
- : "n/a";
111
- const poc = data.pointOfContact?.[0];
112
- const lines = [
113
- `${data.title || "(untitled)"} ${data.solicitationNumber ? `[${data.solicitationNumber}]` : ""}`.trim(),
114
- `Type: ${data.typeLabel || data.type || "n/a"}${data.cancelled ? " — CANCELLED" : ""}${data.archived ? " — ARCHIVED" : ""}`,
115
- `NAICS: ${data.naicsCode || "n/a"}${data.naicsCodes && data.naicsCodes.length > 1 ? ` (+${data.naicsCodes.length - 1} more)` : ""} | PSC: ${data.pscCode || "n/a"} | Set-aside: ${data.setAside || "none"}`,
116
- `Response deadline: ${data.responseDeadline || "n/a"}${data.responseTimeZone ? ` (${data.responseTimeZone})` : ""}`,
117
- `Place of performance: ${popStr}`,
118
- poc ? `Primary contact: ${poc.fullName || "n/a"}${poc.email ? ` <${poc.email}>` : ""}${poc.phone ? ` ${poc.phone}` : ""}` : null,
119
- data.attachments ? `Attachments: ${data.attachments.length}${data.attachmentsError ? ` (lookup error: ${data.attachmentsError})` : ""}` : null,
120
- data.link ? `Link: ${data.link}` : null,
121
- data.description ? `\nDescription:\n${data.description.slice(0, 600)}${data.description.length > 600 ? " …" : ""}` : null,
122
- disclaimer ? `\n${disclaimer}` : null,
123
- ].filter((s) => s !== null);
124
- return {
125
- content: [{ type: "text", text: lines.join("\n") }],
126
- structuredContent: data,
127
- };
128
- }
129
128
  //# sourceMappingURL=getSolicitation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getSolicitation.js","sourceRoot":"","sources":["../../src/tools/getSolicitation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getSolicitation.js","sourceRoot":"","sources":["../../src/tools/getSolicitation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ export const lookupLaborRatesDef = {
2
+ name: "lookup_labor_rates",
3
+ description: "Benchmark federal labor rates for a NAICS code and/or a specific labor category. Returns GSA CALC " +
4
+ "awarded ceiling rates (min/median/max by category) plus BLS OEWS wage data with a +55% government " +
5
+ "wrap (loaded hourly) estimate. Free. Public GSA + BLS data — verify allowable rates against the RFP.",
6
+ inputSchema: {
7
+ type: "object",
8
+ properties: {
9
+ naicsCode: { type: "string", description: "NAICS code — maps to GSA labor categories + BLS SOC occupations." },
10
+ laborCategory: {
11
+ type: "string",
12
+ description: "Specific labor category for a direct GSA search, e.g. 'program manager', 'software engineer'.",
13
+ },
14
+ },
15
+ additionalProperties: false,
16
+ },
17
+ outputSchema: {
18
+ type: "object",
19
+ properties: {
20
+ gsaRates: {
21
+ type: "array",
22
+ items: {
23
+ type: "object",
24
+ properties: {
25
+ category: { type: "string" },
26
+ minRate: { type: "number" },
27
+ medianRate: { type: "number" },
28
+ maxRate: { type: "number" },
29
+ avgRate: { type: "number" },
30
+ sampleCount: { type: "number" },
31
+ },
32
+ },
33
+ },
34
+ blsWages: {
35
+ type: "array",
36
+ items: {
37
+ type: "object",
38
+ properties: {
39
+ occupation: { type: "string" },
40
+ socCode: { type: "string" },
41
+ meanHourly: { type: "number" },
42
+ loadedHourly: { type: "number" },
43
+ meanAnnual: { type: "number" },
44
+ },
45
+ },
46
+ },
47
+ summary: { type: "object", additionalProperties: true },
48
+ },
49
+ required: ["gsaRates", "blsWages"],
50
+ additionalProperties: true,
51
+ },
52
+ annotations: {
53
+ title: "Look up labor rates",
54
+ readOnlyHint: true,
55
+ destructiveHint: false,
56
+ idempotentHint: true,
57
+ openWorldHint: true,
58
+ },
59
+ async run(ctx, args) {
60
+ const naicsCode = typeof args.naicsCode === "string" ? args.naicsCode.trim() : "";
61
+ const laborCategory = typeof args.laborCategory === "string" ? args.laborCategory.trim() : "";
62
+ if (!naicsCode && !laborCategory) {
63
+ throw new Error("Provide naicsCode and/or laborCategory");
64
+ }
65
+ const body = {};
66
+ if (naicsCode)
67
+ body.naicsCode = naicsCode;
68
+ if (laborCategory)
69
+ body.laborCategory = laborCategory;
70
+ return ctx.post("/lookup-labor-rates", body);
71
+ },
72
+ toText(data, disclaimer) {
73
+ const lines = [
74
+ `GSA CALC ceiling rates (${data.gsaRates.length} categor${data.gsaRates.length === 1 ? "y" : "ies"}):`,
75
+ ...data.gsaRates.slice(0, 6).map((r) => ` • ${r.category}: $${r.minRate}–$${r.maxRate}/hr (median $${r.medianRate}, n=${r.sampleCount})`),
76
+ "",
77
+ `BLS loaded wage benchmarks (${data.blsWages.length} occupation${data.blsWages.length === 1 ? "" : "s"}):`,
78
+ ...data.blsWages.slice(0, 6).map((w) => ` • ${w.occupation} (${w.socCode}): $${w.meanHourly}/hr mean → $${w.loadedHourly}/hr loaded`),
79
+ data.summary?.blendedHourlyRange
80
+ ? `\nBlended hourly range: $${data.summary.blendedHourlyRange.low}–$${data.summary.blendedHourlyRange.high} (median $${data.summary.blendedHourlyRange.median})`
81
+ : null,
82
+ disclaimer ? `\n${disclaimer}` : null,
83
+ ].filter((s) => s !== null);
84
+ return lines.join("\n");
85
+ },
86
+ };
87
+ //# sourceMappingURL=lookupLaborRates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lookupLaborRates.js","sourceRoot":"","sources":["../../src/tools/lookupLaborRates.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export const lookupNecoDataTool = {
1
+ export const lookupNecoDataDef = {
2
2
  name: "lookup_neco_data",
3
3
  description: "Fetch and parse a Navy NECO (Navy Electronic Commerce Online) solicitation page into structured data — " +
4
4
  "solicitation number, title, response deadline, NSN/line items, buyer contact, set-aside, and document links. " +
@@ -55,38 +55,37 @@ export const lookupNecoDataTool = {
55
55
  idempotentHint: true,
56
56
  openWorldHint: true,
57
57
  },
58
+ async run(ctx, args) {
59
+ const necoUrl = typeof args.necoUrl === "string" ? args.necoUrl : undefined;
60
+ const solicitationNumber = typeof args.solicitationNumber === "string" ? args.solicitationNumber : undefined;
61
+ if (!necoUrl && !solicitationNumber) {
62
+ throw new Error("Provide either necoUrl or solicitationNumber");
63
+ }
64
+ const body = {};
65
+ if (necoUrl)
66
+ body.necoUrl = necoUrl;
67
+ if (solicitationNumber)
68
+ body.solicitationNumber = solicitationNumber;
69
+ if (typeof args.hkey === "string")
70
+ body.hkey = args.hkey;
71
+ return ctx.post("/lookup-neco-data", body);
72
+ },
73
+ toText(data, disclaimer) {
74
+ const s = data.summary ?? {};
75
+ const lines = [
76
+ `${s.title ?? "(untitled)"} ${s.solicitationNumber ? `[${s.solicitationNumber}]` : ""}`.trim(),
77
+ `Issue date: ${s.issueDate ?? "n/a"} | Response deadline: ${s.responseDeadline ?? "n/a"}`,
78
+ `Contract type: ${s.contractType ?? "n/a"} | Set-aside: ${s.setAside ?? "none"}`,
79
+ s.nsn ? `NSN: ${s.nsn}${s.quantity ? ` | Qty: ${s.quantity}` : ""}` : null,
80
+ s.buyingOffice ? `Buying office: ${s.buyingOffice}` : null,
81
+ s.buyerName || s.buyerEmail || s.buyerPhone
82
+ ? `Buyer: ${s.buyerName ?? "n/a"}${s.buyerEmail ? ` <${s.buyerEmail}>` : ""}${s.buyerPhone ? ` ${s.buyerPhone}` : ""}`
83
+ : null,
84
+ s.documentsUrl ? `Documents: ${s.documentsUrl}` : null,
85
+ `Source: ${data.requestedUrl}`,
86
+ disclaimer ? `\n${disclaimer}` : null,
87
+ ].filter((s2) => s2 !== null);
88
+ return lines.join("\n");
89
+ },
58
90
  };
59
- export async function runLookupNecoData(api, args) {
60
- const necoUrl = typeof args.necoUrl === "string" ? args.necoUrl : undefined;
61
- const solicitationNumber = typeof args.solicitationNumber === "string" ? args.solicitationNumber : undefined;
62
- if (!necoUrl && !solicitationNumber) {
63
- throw new Error("Provide either necoUrl or solicitationNumber");
64
- }
65
- const body = {};
66
- if (necoUrl)
67
- body.necoUrl = necoUrl;
68
- if (solicitationNumber)
69
- body.solicitationNumber = solicitationNumber;
70
- if (typeof args.hkey === "string")
71
- body.hkey = args.hkey;
72
- const { data, disclaimer } = await api.post("/lookup-neco-data", body);
73
- const s = data.summary ?? {};
74
- const lines = [
75
- `${s.title ?? "(untitled)"} ${s.solicitationNumber ? `[${s.solicitationNumber}]` : ""}`.trim(),
76
- `Issue date: ${s.issueDate ?? "n/a"} | Response deadline: ${s.responseDeadline ?? "n/a"}`,
77
- `Contract type: ${s.contractType ?? "n/a"} | Set-aside: ${s.setAside ?? "none"}`,
78
- s.nsn ? `NSN: ${s.nsn}${s.quantity ? ` | Qty: ${s.quantity}` : ""}` : null,
79
- s.buyingOffice ? `Buying office: ${s.buyingOffice}` : null,
80
- s.buyerName || s.buyerEmail || s.buyerPhone
81
- ? `Buyer: ${s.buyerName ?? "n/a"}${s.buyerEmail ? ` <${s.buyerEmail}>` : ""}${s.buyerPhone ? ` ${s.buyerPhone}` : ""}`
82
- : null,
83
- s.documentsUrl ? `Documents: ${s.documentsUrl}` : null,
84
- `Source: ${data.requestedUrl}`,
85
- disclaimer ? `\n${disclaimer}` : null,
86
- ].filter((s2) => s2 !== null);
87
- return {
88
- content: [{ type: "text", text: lines.join("\n") }],
89
- structuredContent: data,
90
- };
91
- }
92
91
  //# sourceMappingURL=lookupNecoData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lookupNecoData.js","sourceRoot":"","sources":["../../src/tools/lookupNecoData.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lookupNecoData.js","sourceRoot":"","sources":["../../src/tools/lookupNecoData.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export const predictRecompeteTool = {
1
+ export const predictRecompeteDef = {
2
2
  name: "predict_recompete",
3
3
  description: "Discover federal contracts expiring within a window (recompete opportunities) via public USAspending data, " +
4
4
  "optionally enriched with procurement-history signals (all-options-exercised, offers received, set-aside, competition type). " +
@@ -65,31 +65,30 @@ export const predictRecompeteTool = {
65
65
  idempotentHint: true,
66
66
  openWorldHint: true,
67
67
  },
68
+ async run(ctx, args) {
69
+ if (args.filters !== undefined && (typeof args.filters !== "object" || Array.isArray(args.filters))) {
70
+ throw new Error("filters must be an object if provided");
71
+ }
72
+ const body = {};
73
+ for (const k of ["filters", "page", "limit", "sortOrder", "enrich", "enrichCount"]) {
74
+ if (args[k] !== undefined)
75
+ body[k] = args[k];
76
+ }
77
+ return ctx.post("/predict-recompete", body);
78
+ },
79
+ toText(data, disclaimer) {
80
+ const lines = [
81
+ `${data.totalCount} recompete candidate(s)${data.hasMore ? " (more available — page through)" : ""}:`,
82
+ ...data.contracts.slice(0, 10).map((c, i) => {
83
+ const val = c.awardAmount ? `$${Number(c.awardAmount).toLocaleString()}` : "n/a";
84
+ const days = c.daysUntilExpiration !== undefined ? `${c.daysUntilExpiration}d to expiry` : "expiry n/a";
85
+ const opt = c.procurementHistory?.allOptionsExercised ? " · all options exercised" : "";
86
+ return ` ${i + 1}. ${c.recipientName ?? "n/a"} — ${val} [${c.urgency ?? "?"}, ${days}]${opt}\n ${c.awardId ?? ""} ends ${c.endDate ?? "?"}`;
87
+ }),
88
+ data.contracts.length > 10 ? ` … and ${data.contracts.length - 10} more in structuredContent.contracts` : null,
89
+ disclaimer ? `\n${disclaimer}` : null,
90
+ ].filter((s) => s !== null);
91
+ return lines.join("\n");
92
+ },
68
93
  };
69
- export async function runPredictRecompete(api, args) {
70
- if (args.filters !== undefined && (typeof args.filters !== "object" || Array.isArray(args.filters))) {
71
- throw new Error("filters must be an object if provided");
72
- }
73
- const body = {};
74
- for (const k of ["filters", "page", "limit", "sortOrder", "enrich", "enrichCount"]) {
75
- if (args[k] !== undefined)
76
- body[k] = args[k];
77
- }
78
- const { data, disclaimer } = await api.post("/predict-recompete", body);
79
- const lines = [
80
- `${data.totalCount} recompete candidate(s)${data.hasMore ? " (more available — page through)" : ""}:`,
81
- ...data.contracts.slice(0, 10).map((c, i) => {
82
- const val = c.awardAmount ? `$${Number(c.awardAmount).toLocaleString()}` : "n/a";
83
- const days = c.daysUntilExpiration !== undefined ? `${c.daysUntilExpiration}d to expiry` : "expiry n/a";
84
- const opt = c.procurementHistory?.allOptionsExercised ? " · all options exercised" : "";
85
- return ` ${i + 1}. ${c.recipientName ?? "n/a"} — ${val} [${c.urgency ?? "?"}, ${days}]${opt}\n ${c.awardId ?? ""} ends ${c.endDate ?? "?"}`;
86
- }),
87
- data.contracts.length > 10 ? ` … and ${data.contracts.length - 10} more in structuredContent.contracts` : null,
88
- disclaimer ? `\n${disclaimer}` : null,
89
- ].filter((s) => s !== null);
90
- return {
91
- content: [{ type: "text", text: lines.join("\n") }],
92
- structuredContent: data,
93
- };
94
- }
95
94
  //# sourceMappingURL=predictRecompete.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"predictRecompete.js","sourceRoot":"","sources":["../../src/tools/predictRecompete.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"predictRecompete.js","sourceRoot":"","sources":["../../src/tools/predictRecompete.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export const scoreGoNoGoTool = {
1
+ export const scoreGoNoGoDef = {
2
2
  name: "score_go_no_go",
3
3
  description: "Score a federal solicitation as GO / NO-GO (0-100) against a company profile. " +
4
4
  "Detects hard blockers (CMMC certification gaps, geographic/OEM constraints, set-aside ineligibility), " +
@@ -60,35 +60,34 @@ export const scoreGoNoGoTool = {
60
60
  idempotentHint: true,
61
61
  openWorldHint: true,
62
62
  },
63
+ async run(ctx, args) {
64
+ if (!Array.isArray(args.documentAnalyses) || args.documentAnalyses.length === 0) {
65
+ throw new Error("documentAnalyses (non-empty array) is required");
66
+ }
67
+ const body = { documentAnalyses: args.documentAnalyses };
68
+ if (args.profile)
69
+ body.profile = args.profile;
70
+ if (args.solicitationData)
71
+ body.solicitationData = args.solicitationData;
72
+ if (args.incumbentData)
73
+ body.incumbentData = args.incumbentData;
74
+ return ctx.post("/score-go-no-go", body);
75
+ },
76
+ toText(data, disclaimer) {
77
+ const blockers = data.blockers ?? [];
78
+ const lines = [
79
+ `Recommendation: ${data.recommendation ?? "n/a"} (score ${data.score ?? "n/a"}/100)`,
80
+ blockers.length > 0
81
+ ? `Blockers (${blockers.length}):\n${blockers
82
+ .map((b) => ` • ${b.type ?? "blocker"}: ${b.message ?? b.reason ?? ""}`.trimEnd())
83
+ .join("\n")}`
84
+ : "Blockers: none",
85
+ data.reasons && data.reasons.length > 0
86
+ ? `Key reasons:\n${data.reasons.slice(0, 8).map((r) => ` • ${r}`).join("\n")}`
87
+ : null,
88
+ disclaimer ? `\n${disclaimer}` : null,
89
+ ].filter((s) => s !== null);
90
+ return lines.join("\n");
91
+ },
63
92
  };
64
- export async function runScoreGoNoGo(api, args) {
65
- if (!Array.isArray(args.documentAnalyses) || args.documentAnalyses.length === 0) {
66
- throw new Error("documentAnalyses (non-empty array) is required");
67
- }
68
- const body = { documentAnalyses: args.documentAnalyses };
69
- if (args.profile)
70
- body.profile = args.profile;
71
- if (args.solicitationData)
72
- body.solicitationData = args.solicitationData;
73
- if (args.incumbentData)
74
- body.incumbentData = args.incumbentData;
75
- const { data, disclaimer } = await api.post("/score-go-no-go", body);
76
- const blockers = data.blockers ?? [];
77
- const lines = [
78
- `Recommendation: ${data.recommendation ?? "n/a"} (score ${data.score ?? "n/a"}/100)`,
79
- blockers.length > 0
80
- ? `Blockers (${blockers.length}):\n${blockers
81
- .map((b) => ` • ${b.type ?? "blocker"}: ${b.message ?? b.reason ?? ""}`.trimEnd())
82
- .join("\n")}`
83
- : "Blockers: none",
84
- data.reasons && data.reasons.length > 0
85
- ? `Key reasons:\n${data.reasons.slice(0, 8).map((r) => ` • ${r}`).join("\n")}`
86
- : null,
87
- disclaimer ? `\n${disclaimer}` : null,
88
- ].filter((s) => s !== null);
89
- return {
90
- content: [{ type: "text", text: lines.join("\n") }],
91
- structuredContent: data,
92
- };
93
- }
94
93
  //# sourceMappingURL=scoreGoNoGo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scoreGoNoGo.js","sourceRoot":"","sources":["../../src/tools/scoreGoNoGo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scoreGoNoGo.js","sourceRoot":"","sources":["../../src/tools/scoreGoNoGo.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,52 +1,53 @@
1
- {
2
- "name": "govtoolspro-mcp-server",
3
- "version": "0.1.2",
4
- "mcpName": "io.github.smythmyke/govtoolspro-mcp-server",
5
- "description": "MCP server for GovToolsPro — go/no-go scoring, incumbent intelligence, teaming-partner search, recompete prediction, Navy NECO lookup, and SAM.gov solicitation retrieval for federal contractors, from Claude Code, Claude Desktop, and Cursor.",
6
- "license": "MIT",
7
- "type": "module",
8
- "bin": {
9
- "govtoolspro-mcp-server": "dist/index.js"
10
- },
11
- "main": "dist/index.js",
12
- "files": [
13
- "dist",
14
- "README.md"
15
- ],
16
- "scripts": {
17
- "build": "tsc",
18
- "build:watch": "tsc --watch",
19
- "start": "node dist/index.js",
20
- "smoke": "node scripts/smoke-test.mjs",
21
- "gen:manifests": "node scripts/gen-manifests.mjs",
22
- "prepublishOnly": "npm run build"
23
- },
24
- "dependencies": {
25
- "@modelcontextprotocol/sdk": "^1.0.0"
26
- },
27
- "devDependencies": {
28
- "@types/node": "^22.0.0",
29
- "typescript": "^5.3.0"
30
- },
31
- "engines": {
32
- "node": ">=18.0.0"
33
- },
34
- "keywords": [
35
- "mcp",
36
- "mcp-server",
37
- "model-context-protocol",
38
- "govcon",
39
- "government-contracting",
40
- "sam.gov",
41
- "federal-contracting",
42
- "go-no-go",
43
- "incumbent",
44
- "recompete",
45
- "govtoolspro"
46
- ],
47
- "repository": {
48
- "type": "git",
49
- "url": "https://github.com/smythmyke/govtoolspro-mcp-server"
50
- },
51
- "homepage": "https://github.com/smythmyke/govtoolspro-mcp-server"
52
- }
1
+ {
2
+ "name": "govtoolspro-mcp-server",
3
+ "version": "0.1.4",
4
+ "mcpName": "io.github.smythmyke/govtoolspro-mcp-server",
5
+ "description": "MCP server for GovToolsPro — go/no-go scoring, incumbent intelligence, teaming-partner search, recompete prediction, Navy NECO lookup, and SAM.gov solicitation retrieval for federal contractors, from Claude Code, Claude Desktop, and Cursor.",
6
+ "license": "MIT",
7
+ "type": "module",
8
+ "bin": {
9
+ "govtoolspro-mcp-server": "dist/index.js"
10
+ },
11
+ "main": "dist/index.js",
12
+ "files": [
13
+ "dist",
14
+ "README.md"
15
+ ],
16
+ "scripts": {
17
+ "build": "tsc",
18
+ "build:watch": "tsc --watch",
19
+ "start": "node dist/index.js",
20
+ "test": "npm run build && node scripts/protocol-test.mjs && node scripts/totext-test.mjs",
21
+ "smoke": "node scripts/smoke-test.mjs",
22
+ "gen:manifests": "node scripts/gen-manifests.mjs",
23
+ "prepublishOnly": "npm run build"
24
+ },
25
+ "dependencies": {
26
+ "@modelcontextprotocol/sdk": "^1.0.0"
27
+ },
28
+ "devDependencies": {
29
+ "@types/node": "^22.0.0",
30
+ "typescript": "^5.3.0"
31
+ },
32
+ "engines": {
33
+ "node": ">=18.0.0"
34
+ },
35
+ "keywords": [
36
+ "mcp",
37
+ "mcp-server",
38
+ "model-context-protocol",
39
+ "govcon",
40
+ "government-contracting",
41
+ "sam.gov",
42
+ "federal-contracting",
43
+ "go-no-go",
44
+ "incumbent",
45
+ "recompete",
46
+ "govtoolspro"
47
+ ],
48
+ "repository": {
49
+ "type": "git",
50
+ "url": "https://github.com/smythmyke/govtoolspro-mcp-server"
51
+ },
52
+ "homepage": "https://github.com/smythmyke/govtoolspro-mcp-server"
53
+ }