Skip to content

Commit feec18c

Browse files
authored
Merge pull request #6786 from JSONbored/fix/enrichment-analyzers-uri-rebrand
fix(mcp): rename enrichment-analyzers resource URI to loopover://
2 parents 544cb31 + 7ec9f69 commit feec18c

7 files changed

Lines changed: 9 additions & 9 deletions

File tree

packages/loopover-mcp/bin/loopover-mcp.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2271,7 +2271,7 @@ server.registerResource(
22712271

22722272
server.registerResource(
22732273
"loopover_enrichment_analyzers",
2274-
"gittensory://enrichment-analyzers",
2274+
"loopover://enrichment-analyzers",
22752275
{
22762276
title: "LoopOver Enrichment Analyzers",
22772277
description: "Static taxonomy of REES enrichment analyzers: names, categories, and cost classes.",
@@ -2284,7 +2284,7 @@ server.registerResource(
22842284
} catch {
22852285
data = { status: "unavailable" };
22862286
}
2287-
return { contents: [{ uri: "gittensory://enrichment-analyzers", mimeType: "application/json", text: JSON.stringify(data, null, 2) }] };
2287+
return { contents: [{ uri: "loopover://enrichment-analyzers", mimeType: "application/json", text: JSON.stringify(data, null, 2) }] };
22882288
},
22892289
);
22902290

src/api/routes.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2062,7 +2062,7 @@ export function createApp() {
20622062

20632063
app.get("/v1/scoring/model", async (c) => c.json(await getOrCreateScoringModelSnapshot(c.env)));
20642064

2065-
// #6593: REST mirrors of the `loopover://finding-taxonomy` / `gittensory://enrichment-analyzers` MCP
2065+
// #6593: REST mirrors of the `loopover://finding-taxonomy` / `loopover://enrichment-analyzers` MCP
20662066
// resources, so a plain HTTP client (a dashboard, a non-MCP integration) can discover the same static
20672067
// documents. Both builders are pure, argument-free, and return no PR/user/private data — the same class of
20682068
// public static discovery data as /v1/scoring/model and /v1/upstream/ruleset alongside them, so they carry no

src/review/enrichment-analyzers-taxonomy.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import analyzerMetadata from "../../review-enrichment/analyzer-metadata.json";
22

33
/** MCP resource URI for the REES enrichment analyzer taxonomy (#2226). */
4-
export const ENRICHMENT_ANALYZERS_URI = "gittensory://enrichment-analyzers" as const;
4+
export const ENRICHMENT_ANALYZERS_URI = "loopover://enrichment-analyzers" as const;
55

66
type AnalyzerMetadataFile = {
77
defaultProfile: string;

test/unit/enrichment-analyzers-taxonomy.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ describe("enrichment analyzers taxonomy document", () => {
4444
});
4545

4646
it("uses the stable MCP resource URI", () => {
47-
expect(ENRICHMENT_ANALYZERS_URI).toBe("gittensory://enrichment-analyzers");
47+
expect(ENRICHMENT_ANALYZERS_URI).toBe("loopover://enrichment-analyzers");
4848
});
4949
});
5050

test/unit/mcp-discovery.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ describe("MCP resource discovery", () => {
117117
expect(uris).toContain("loopover://compatibility");
118118
// #6620: the two static-document mirrors, using the same URIs the remote server registers.
119119
expect(uris).toContain("loopover://finding-taxonomy");
120-
expect(uris).toContain("gittensory://enrichment-analyzers");
120+
expect(uris).toContain("loopover://enrichment-analyzers");
121121
});
122122

123123
it("resource descriptions do not expose forbidden public terms", async () => {
@@ -154,7 +154,7 @@ describe("MCP resource discovery", () => {
154154
expect(() => JSON.parse(content.text ?? "")).not.toThrow();
155155
});
156156

157-
it.each(["loopover://finding-taxonomy", "gittensory://enrichment-analyzers"])(
157+
it.each(["loopover://finding-taxonomy", "loopover://enrichment-analyzers"])(
158158
"can read the %s resource and get structured JSON (#6620)",
159159
async (uri) => {
160160
const result = await client.readResource({ uri });

test/unit/mcp-enrichment-analyzers.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ async function connectTestClient() {
1313
const mcpServer = new LoopoverMcp(createTestEnv()).createServer();
1414
const [clientTransport, serverTransport] = InMemoryTransport.createLinkedPair();
1515
await mcpServer.connect(serverTransport);
16-
const client = new Client({ name: "gittensory-enrichment-analyzers-test", version: "0.1.0" }, { capabilities: {} });
16+
const client = new Client({ name: "loopover-enrichment-analyzers-test", version: "0.1.0" }, { capabilities: {} });
1717
await client.connect(clientTransport);
1818
return { client, mcpServer };
1919
}

test/unit/routes-taxonomy-mirrors.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { buildEnrichmentAnalyzersTaxonomyDocument } from "../../src/review/enric
44
import { buildFindingTaxonomyDocument } from "../../src/review/finding-taxonomy";
55
import { createTestEnv } from "../helpers/d1";
66

7-
// #6593: REST mirrors of the `loopover://finding-taxonomy` / `gittensory://enrichment-analyzers` MCP resources.
7+
// #6593: REST mirrors of the `loopover://finding-taxonomy` / `loopover://enrichment-analyzers` MCP resources.
88
// Both delegate to a pure, argument-free builder, so these tests pin the ROUTE contract — served byte-identical
99
// to the document the MCP resource already returns, and gated exactly like the sibling static-data routes it
1010
// sits with (no new auth middleware of its own) — rather than re-testing the builders themselves.

0 commit comments

Comments
 (0)