Skip to main content
Glama

Fun MCP Server

by TheJeetSingh
index.js2.88 kB
#!/usr/bin/env node import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { z } from "zod"; const server = new McpServer({ name: "mcp-fun-server", version: "1.0.0" }); // No input needed since we're getting random content const inputSchema = {}; async function getRandomJoke() { try { const response = await fetch('https://v2.jokeapi.dev/joke/Any?blacklistFlags=nsfw,religious,political,racist,sexist,explicit'); if (!response.ok) { throw new Error('Failed to fetch joke'); } const joke = await response.json(); let jokeText; if (joke.type === 'single') { jokeText = joke.joke; } else { jokeText = `${joke.setup}\n\n${joke.delivery}`; } return { content: [{ type: "text", text: jokeText }] }; } catch (error) { throw new Error(`Failed to get joke: ${error.message}`); } } async function getRandomQuote() { try { const response = await fetch('https://zenquotes.io/api/random'); if (!response.ok) { throw new Error('Failed to fetch quote'); } const [quote] = await response.json(); return { content: [{ type: "text", text: `"${quote.q}"\n\n- ${quote.a}` }] }; } catch (error) { throw new Error(`Failed to get quote: ${error.message}`); } } async function getRandomFact() { try { const response = await fetch('https://uselessfacts.jsph.pl/api/v2/facts/random'); if (!response.ok) { throw new Error('Failed to fetch fact'); } const fact = await response.json(); return { content: [{ type: "text", text: fact.text }] }; } catch (error) { throw new Error(`Failed to get fact: ${error.message}`); } } async function getRandomAdvice() { try { const response = await fetch('https://api.adviceslip.com/advice'); if (!response.ok) { throw new Error('Failed to fetch advice'); } const advice = await response.json(); return { content: [{ type: "text", text: advice.slip.advice }] }; } catch (error) { throw new Error(`Failed to get advice: ${error.message}`); } } server.registerTool("random-joke", { title: "Random Joke Tool", description: "Get a random joke", inputSchema, }, getRandomJoke); server.registerTool("random-quote", { title: "Random Quote Tool", description: "Get a random inspirational quote", inputSchema, }, getRandomQuote); server.registerTool("random-fact", { title: "Random Fact Tool", description: "Get a random interesting fact", inputSchema, }, getRandomFact); server.registerTool("random-advice", { title: "Random Advice Tool", description: "Get a random piece of advice", inputSchema, }, getRandomAdvice); const transport = new StdioServerTransport(); await server.connect(transport);

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TheJeetSingh/Fun-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server