Aggregator fΓΌr AI/ML/Dev-Jobs aus offenen APIs β mit MCP-Tool-Export, damit jede Suchanfrage direkt als Model Context Protocol Tool nutzbar ist.
Lade Jobs von RemoteOK...
Das Model Context Protocol (Anthropic, 2024) standardisiert, wie LLM-Clients (Claude Desktop, Cursor, etc.) auf externe Tools/Daten zugreifen β via JSON-RPC ΓΌber stdio oder HTTP/SSE. Ein MCP-Server deklariert tools (aufrufbare Funktionen) und resources (lesbare Datenquellen). Dieses Tool zeigt, wie sich der Job-Feed als echtes MCP-Tool-Schema exportieren lΓ€sst β eine HTML-Datei kann keinen Server hosten, aber das Schema ist 1:1 in einen echten Node/Python-MCP-Server kopierbar.
// Lade zuerst Jobs im "Job-Feed"-Tab, das Schema aktualisiert sich automatisch.
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new Server({ name: "ai-dev-jobs", version: "1.0.0" });
server.setRequestHandler("tools/list", async () => ({
tools: [{
name: "search_ai_jobs",
description: "Durchsucht aktuelle Remote AI/ML-Jobs nach Keyword",
inputSchema: {
type: "object",
properties: { keyword: { type: "string" } },
required: ["keyword"]
}
}]
}));
server.setRequestHandler("tools/call", async (req) => {
const jobs = await fetch("https://remoteok.com/api").then(r => r.json());
const filtered = jobs.filter(j => j.tags?.includes(req.params.arguments.keyword));
return { content: [{ type: "text", text: JSON.stringify(filtered.slice(0, 10)) }] };
});
const transport = new StdioServerTransport();
await server.connect(transport);
MCP-Tool/Resource-Schema korrekt nach JSON-Schema modelliert, inkl. inputSchema-Validierung.
Live-Fetch von RemoteOK (ΓΆffentliche API, kein Key), Normalisierung uneinheitlicher Tag-Daten.
HTML-Entities in Job-Titeln dekodiert, Duplikate/leere Felder gefiltert, AI/ML-Keyword-Matching gegen Tag-Liste.
Echtzeit-Filterung ohne erneuten API-Call β alle Jobs einmal geladen, dann lokal durchsucht.
Strukturierter JSON-Export im MCP-Resource-Format, direkt downloadbar als .json.
Tab-basierte SPA-Struktur ohne Framework, reines Vanilla-JS mit State-Management ΓΌber DOM.
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββββββ
β RemoteOK API β ββ> β Normalisierung β ββ> β UI: Job-Feed β
β (ΓΆffentlich) β β + AI-Keyword-Tag β β + Filter + Export β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββ¬ββββββββββββ
β
ββββββββββββΌββββββββββββ
β MCP Resource Export β
β (JSON, Tool-Schema) β
ββββββββββββββββββββββββ