@oss-scout/mcp 0.12.2 → 0.13.0
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.
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/mcp-server.bundle.cjs +15 -7
- package/dist/tools.js +6 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export { registerResources } from "./resources.js";
|
|
|
12
12
|
/** Server identity, kept in one place for the bin and any embedding host. */
|
|
13
13
|
export declare const SERVER_INFO: {
|
|
14
14
|
readonly name: "oss-scout-mcp";
|
|
15
|
-
readonly version: "0.
|
|
15
|
+
readonly version: "0.13.0";
|
|
16
16
|
};
|
|
17
17
|
/**
|
|
18
18
|
* Build a fully-wired MCP server (tools + resources) around a scout.
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,7 @@ export { registerResources } from "./resources.js";
|
|
|
15
15
|
/** Server identity, kept in one place for the bin and any embedding host. */
|
|
16
16
|
export const SERVER_INFO = {
|
|
17
17
|
name: "oss-scout-mcp",
|
|
18
|
-
version: "0.
|
|
18
|
+
version: "0.13.0", // x-release-please-version
|
|
19
19
|
};
|
|
20
20
|
/**
|
|
21
21
|
* Build a fully-wired MCP server (tools + resources) around a scout.
|
|
@@ -40692,15 +40692,17 @@ var OssScout = class {
|
|
|
40692
40692
|
starred: rotation.starredOffset ?? 0,
|
|
40693
40693
|
maintained: rotation.maintainedOffset ?? 0
|
|
40694
40694
|
},
|
|
40695
|
-
|
|
40695
|
+
// A full search runs every enabled phase in one run, so it skips the
|
|
40696
|
+
// one-strategy round-robin (#336) that the default search uses.
|
|
40697
|
+
strategyRotationOffset: options?.full ? void 0 : rotation.strategyOffset ?? 0
|
|
40696
40698
|
}));
|
|
40697
40699
|
} catch (err) {
|
|
40698
40700
|
if (err instanceof ValidationError) {
|
|
40699
|
-
this.advanceRotation(rotation, err.strategiesUsed ?? []);
|
|
40701
|
+
this.advanceRotation(rotation, err.strategiesUsed ?? [], options?.full);
|
|
40700
40702
|
}
|
|
40701
40703
|
throw err;
|
|
40702
40704
|
}
|
|
40703
|
-
this.advanceRotation(rotation, strategiesUsed);
|
|
40705
|
+
this.advanceRotation(rotation, strategiesUsed, options?.full);
|
|
40704
40706
|
for (const c of candidates) {
|
|
40705
40707
|
this.updateRepoSignalsFromHealth(c.projectHealth);
|
|
40706
40708
|
}
|
|
@@ -40722,9 +40724,10 @@ var OssScout = class {
|
|
|
40722
40724
|
* nothing must still rotate, or the same barren slice would lead every
|
|
40723
40725
|
* subsequent run. Skipped/gated phases don't burn a rotation slot. The
|
|
40724
40726
|
* round-robin strategy cursor (#336) moves to just after the strategy that
|
|
40725
|
-
* led (the first one used), so the next search starts with the next one.
|
|
40727
|
+
* led (the first one used), so the next search starts with the next one. A
|
|
40728
|
+
* full search ran every strategy, so it leaves that cursor where it was.
|
|
40726
40729
|
*/
|
|
40727
|
-
advanceRotation(rotation, strategiesUsed) {
|
|
40730
|
+
advanceRotation(rotation, strategiesUsed, full = false) {
|
|
40728
40731
|
const ran = (strategy) => strategiesUsed.includes(strategy) ? 1 : 0;
|
|
40729
40732
|
if (strategiesUsed.length === 0)
|
|
40730
40733
|
return;
|
|
@@ -40734,7 +40737,7 @@ var OssScout = class {
|
|
|
40734
40737
|
phase0Offset: (rotation.phase0Offset ?? 0) + ran("merged"),
|
|
40735
40738
|
starredOffset: (rotation.starredOffset ?? 0) + ran("starred"),
|
|
40736
40739
|
maintainedOffset: (rotation.maintainedOffset ?? 0) + ran("maintained"),
|
|
40737
|
-
strategyOffset: CONCRETE_STRATEGIES.indexOf(strategiesUsed[0]) + 1,
|
|
40740
|
+
strategyOffset: full ? rotation.strategyOffset : CONCRETE_STRATEGIES.indexOf(strategiesUsed[0]) + 1,
|
|
40738
40741
|
lastRotatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
40739
40742
|
};
|
|
40740
40743
|
this.dirty = true;
|
|
@@ -41548,6 +41551,9 @@ function registerTools(server, scout) {
|
|
|
41548
41551
|
strategies: external_exports3.string().optional().describe(
|
|
41549
41552
|
"Comma-separated search strategies: merged, orgs, starred, broad, maintained, all"
|
|
41550
41553
|
),
|
|
41554
|
+
full: external_exports3.boolean().optional().describe(
|
|
41555
|
+
"Run every enabled strategy in this search instead of one per search in rotation. More API calls, so it can take a few minutes"
|
|
41556
|
+
),
|
|
41551
41557
|
preferLanguages: external_exports3.array(external_exports3.string()).optional().describe(
|
|
41552
41558
|
"Soft-boost ranking for candidates whose repo language matches one of these (case-insensitive). Personalization tier between recommendation and viabilityScore (#1244). Not a filter; only reorders."
|
|
41553
41559
|
),
|
|
@@ -41567,6 +41573,7 @@ function registerTools(server, scout) {
|
|
|
41567
41573
|
async ({
|
|
41568
41574
|
maxResults,
|
|
41569
41575
|
strategies,
|
|
41576
|
+
full,
|
|
41570
41577
|
preferLanguages,
|
|
41571
41578
|
preferRepos,
|
|
41572
41579
|
avoidRepos,
|
|
@@ -41588,6 +41595,7 @@ function registerTools(server, scout) {
|
|
|
41588
41595
|
scout.search({
|
|
41589
41596
|
maxResults: maxResults ?? 10,
|
|
41590
41597
|
strategies: parsedStrategies,
|
|
41598
|
+
full,
|
|
41591
41599
|
preferLanguages,
|
|
41592
41600
|
preferRepos,
|
|
41593
41601
|
avoidRepos,
|
|
@@ -41894,7 +41902,7 @@ function registerResources(server, scout) {
|
|
|
41894
41902
|
// src/index.ts
|
|
41895
41903
|
var SERVER_INFO = {
|
|
41896
41904
|
name: "oss-scout-mcp",
|
|
41897
|
-
version: "0.
|
|
41905
|
+
version: "0.13.0"
|
|
41898
41906
|
// x-release-please-version
|
|
41899
41907
|
};
|
|
41900
41908
|
function createServer(scout) {
|
package/dist/tools.js
CHANGED
|
@@ -45,6 +45,10 @@ export function registerTools(server, scout) {
|
|
|
45
45
|
.string()
|
|
46
46
|
.optional()
|
|
47
47
|
.describe("Comma-separated search strategies: merged, orgs, starred, broad, maintained, all"),
|
|
48
|
+
full: z
|
|
49
|
+
.boolean()
|
|
50
|
+
.optional()
|
|
51
|
+
.describe("Run every enabled strategy in this search instead of one per search in rotation. More API calls, so it can take a few minutes"),
|
|
48
52
|
preferLanguages: z
|
|
49
53
|
.array(z.string())
|
|
50
54
|
.optional()
|
|
@@ -67,7 +71,7 @@ export function registerTools(server, scout) {
|
|
|
67
71
|
.max(1)
|
|
68
72
|
.optional()
|
|
69
73
|
.describe("Diversity counterweight (#1244): fraction of result slots reserved for candidates that matched NEITHER preference list. Counters echo-chamber bias when boosts accumulate over time. 0 disables, 1 reserves every slot for diversity. Default 0."),
|
|
70
|
-
}, async ({ maxResults, strategies, preferLanguages, preferRepos, avoidRepos, boostIssueTypes, diversityRatio, }) => {
|
|
74
|
+
}, async ({ maxResults, strategies, full, preferLanguages, preferRepos, avoidRepos, boostIssueTypes, diversityRatio, }) => {
|
|
71
75
|
try {
|
|
72
76
|
// Validate each CSV entry with a readable error instead of letting a
|
|
73
77
|
// raw ZodError string reach the model (#295).
|
|
@@ -84,6 +88,7 @@ export function registerTools(server, scout) {
|
|
|
84
88
|
const result = await withTimeout(scout.search({
|
|
85
89
|
maxResults: maxResults ?? 10,
|
|
86
90
|
strategies: parsedStrategies,
|
|
91
|
+
full,
|
|
87
92
|
preferLanguages,
|
|
88
93
|
preferRepos,
|
|
89
94
|
avoidRepos,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oss-scout/mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "MCP server for oss-scout — exposes issue discovery and vetting as MCP tools",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@modelcontextprotocol/sdk": "^1.32.1",
|
|
20
20
|
"zod": "^4.3.6",
|
|
21
|
-
"@oss-scout/core": "^1.
|
|
21
|
+
"@oss-scout/core": "^1.9.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@types/node": "^25.5.0",
|