Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions packages/loopover-mcp/bin/loopover-mcp.js
Original file line number Diff line number Diff line change
Expand Up @@ -2252,7 +2252,7 @@ server.registerResource(

server.registerResource(
"loopover_enrichment_analyzers",
"gittensory://enrichment-analyzers",
"loopover://enrichment-analyzers",
{
title: "LoopOver Enrichment Analyzers",
description: "Static taxonomy of REES enrichment analyzers: names, categories, and cost classes.",
Expand All @@ -2265,7 +2265,7 @@ server.registerResource(
} catch {
data = { status: "unavailable" };
}
return { contents: [{ uri: "gittensory://enrichment-analyzers", mimeType: "application/json", text: JSON.stringify(data, null, 2) }] };
return { contents: [{ uri: "loopover://enrichment-analyzers", mimeType: "application/json", text: JSON.stringify(data, null, 2) }] };
},
);

Expand Down
2 changes: 1 addition & 1 deletion src/api/routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2062,7 +2062,7 @@ export function createApp() {

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

// #6593: REST mirrors of the `loopover://finding-taxonomy` / `gittensory://enrichment-analyzers` MCP
// #6593: REST mirrors of the `loopover://finding-taxonomy` / `loopover://enrichment-analyzers` MCP
// resources, so a plain HTTP client (a dashboard, a non-MCP integration) can discover the same static
// documents. Both builders are pure, argument-free, and return no PR/user/private data — the same class of
// public static discovery data as /v1/scoring/model and /v1/upstream/ruleset alongside them, so they carry no
Expand Down
2 changes: 1 addition & 1 deletion src/review/enrichment-analyzers-taxonomy.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import analyzerMetadata from "../../review-enrichment/analyzer-metadata.json";

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

type AnalyzerMetadataFile = {
defaultProfile: string;
Expand Down
2 changes: 1 addition & 1 deletion test/unit/enrichment-analyzers-taxonomy.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ describe("enrichment analyzers taxonomy document", () => {
});

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

Expand Down
4 changes: 2 additions & 2 deletions test/unit/mcp-discovery.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ describe("MCP resource discovery", () => {
expect(uris).toContain("loopover://compatibility");
// #6620: the two static-document mirrors, using the same URIs the remote server registers.
expect(uris).toContain("loopover://finding-taxonomy");
expect(uris).toContain("gittensory://enrichment-analyzers");
expect(uris).toContain("loopover://enrichment-analyzers");
});

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

it.each(["loopover://finding-taxonomy", "gittensory://enrichment-analyzers"])(
it.each(["loopover://finding-taxonomy", "loopover://enrichment-analyzers"])(
"can read the %s resource and get structured JSON (#6620)",
async (uri) => {
const result = await client.readResource({ uri });
Expand Down
2 changes: 1 addition & 1 deletion test/unit/mcp-enrichment-analyzers.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ async function connectTestClient() {
const mcpServer = new LoopoverMcp(createTestEnv()).createServer();
const [clientTransport, serverTransport] = InMemoryTransport.createLinkedPair();
await mcpServer.connect(serverTransport);
const client = new Client({ name: "gittensory-enrichment-analyzers-test", version: "0.1.0" }, { capabilities: {} });
const client = new Client({ name: "loopover-enrichment-analyzers-test", version: "0.1.0" }, { capabilities: {} });
await client.connect(clientTransport);
return { client, mcpServer };
}
Expand Down
2 changes: 1 addition & 1 deletion test/unit/routes-taxonomy-mirrors.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { buildEnrichmentAnalyzersTaxonomyDocument } from "../../src/review/enric
import { buildFindingTaxonomyDocument } from "../../src/review/finding-taxonomy";
import { createTestEnv } from "../helpers/d1";

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