@foundrole/ai-job-search-mcp
Version:
Run your job search from your AI assistant. Connect FoundRole to Claude, ChatGPT, Cursor, or any MCP client and search live jobs right away — no sign-up. Sign in once (your AI does it for you) to save and track applications on a Kanban board, set follow-u
54 lines • 2.88 kB
JavaScript
import { CallToolRequestSchema, CompleteRequestSchema, GetPromptRequestSchema, ListPromptsRequestSchema, ListResourcesRequestSchema, ListResourceTemplatesRequestSchema, ListToolsRequestSchema, LoggingMessageNotificationSchema, ReadResourceRequestSchema, ResourceUpdatedNotificationSchema, SubscribeRequestSchema, UnsubscribeRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
export const proxyServer = async ({ client, getClient, server, serverCapabilities, }) => {
const getCurrentClient = () => getClient?.() || client;
if (serverCapabilities?.logging) {
server.setNotificationHandler(LoggingMessageNotificationSchema, async (args) => {
return getCurrentClient().notification(args);
});
getCurrentClient().setNotificationHandler(LoggingMessageNotificationSchema, async (args) => {
return server.notification(args);
});
}
if (serverCapabilities?.prompts) {
server.setRequestHandler(GetPromptRequestSchema, async (args) => {
return getCurrentClient().getPrompt(args.params);
});
server.setRequestHandler(ListPromptsRequestSchema, async (args) => {
return getCurrentClient().listPrompts(args.params);
});
}
if (serverCapabilities?.resources) {
server.setRequestHandler(ListResourcesRequestSchema, async (args) => {
return getCurrentClient().listResources(args.params);
});
server.setRequestHandler(ListResourceTemplatesRequestSchema, async (args) => {
return getCurrentClient().listResourceTemplates(args.params);
});
server.setRequestHandler(ReadResourceRequestSchema, async (args) => {
return getCurrentClient().readResource(args.params);
});
if (serverCapabilities?.resources.subscribe) {
server.setNotificationHandler(ResourceUpdatedNotificationSchema, async (args) => {
return getCurrentClient().notification(args);
});
server.setRequestHandler(SubscribeRequestSchema, async (args) => {
return getCurrentClient().subscribeResource(args.params);
});
server.setRequestHandler(UnsubscribeRequestSchema, async (args) => {
return getCurrentClient().unsubscribeResource(args.params);
});
}
}
if (serverCapabilities?.tools) {
server.setRequestHandler(CallToolRequestSchema, async (args) => {
return getCurrentClient().callTool(args.params);
});
server.setRequestHandler(ListToolsRequestSchema, async (args) => {
return getCurrentClient().listTools(args.params);
});
}
server.setRequestHandler(CompleteRequestSchema, async (args) => {
return getCurrentClient().complete(args.params);
});
};
//# sourceMappingURL=proxy-server.js.map