import { McpError, McpErrorCode, Redop } from "@redopjs/redop";
new Redop({
serverInfo: {
name: "unkey-demo",
version: "0.1.0",
},
})
.middleware(async ({ request, next }) => {
const identifier =
request.headers["x-user-id"] ??
request.headers["x-forwarded-for"] ??
request.ip ??
"anonymous";
const { limit, remaining, reset, success } =
await ratelimit.limit(identifier);
if (!success) {
throw new McpError(
McpErrorCode.InvalidRequest,
`Rate limit exceeded. Limit ${limit}, remaining ${remaining}, reset at ${new Date(
reset
).toISOString()}.`
);
}
return next();
})
.tool("ping", {
handler: () => ({ ok: true }),
});