replicate-flux-mcp
Version:
MCP for Replicate Flux Model
44 lines (43 loc) • 1.48 kB
JavaScript
import { server } from "../server/index.js";
import { ResourceTemplate, } from "@modelcontextprotocol/sdk/server/mcp.js";
import { replicate } from "../services/replicate.js";
export const registerPreditionListResource = () => {
const list = async () => {
try {
const predictions = [];
for await (const page of replicate.paginate(replicate.predictions.list)) {
predictions.push(...page);
}
return {
resources: predictions.map((prediction) => ({
uri: `predictions://${prediction.id}`,
name: `Prediction ${prediction.id}`,
mimeType: "application/json",
})),
nextCursor: undefined,
};
}
catch (error) {
console.error("Error listing predictions:", error);
return {
resources: [],
nextCursor: undefined,
};
}
};
server.resource("predictions", new ResourceTemplate("predictions://{id}", {
list,
}), async (uri, { id }) => {
const prediction = await replicate.predictions.get(id);
return {
contents: [
{
name: "prediction",
uri: uri.href,
text: JSON.stringify(prediction),
mimeType: "application/json",
},
],
};
});
};