Skip to main content
Glama
oksure

Bible Korean MCP Server

by oksure

search-bible

Find Bible verses containing specific keywords in Korean or English across multiple Korean Bible translations. Search limited books to locate relevant scripture passages.

Instructions

Search for verses containing specific keywords (searches limited books for demo)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query (Korean or English)
versionNoBible translation version (default: GAE)GAE

Implementation Reference

  • The handler for the 'search-bible' tool. It extracts parameters, calls the searchVerses helper function, and formats the search results into markdown or a no-results message.
    case "search-bible": { const { query, version = "GAE" } = args as { query: string; version?: string; }; const results = await searchVerses(query, version); if (results.length === 0) { return { content: [ { type: "text", text: `No results found for "${query}" (searched limited books for demo)`, }, ], }; } let result = `# Search Results for "${query}"\n`; result += `Found ${results.length} verses:\n\n`; for (const verse of results) { result += `**${verse.book} ${verse.chapter}:${verse.verse}**\n`; result += `${verse.text}\n\n`; } return { content: [{ type: "text", text: result }], }; }
  • The input schema definition for the 'search-bible' tool, specifying the required 'query' parameter and optional 'version'.
    { name: "search-bible", description: "Search for verses containing specific keywords (searches limited books for demo)", inputSchema: { type: "object", properties: { query: { type: "string", description: "Search query (Korean or English)", }, version: { type: "string", description: "Bible translation version (default: GAE)", enum: ["GAE", "GAE1", "NIR", "KOR", "CEV"], default: "GAE", }, }, required: ["query"], }, },
  • Helper function implementing the core search logic by fetching chapters from limited books (demo) and matching verses against the query.
    async function searchVerses( query: string, version: string = "GAE", books?: string[] ): Promise<Array<{ book: string; chapter: number; verse: number; text: string }>> { const results: Array<{ book: string; chapter: number; verse: number; text: string }> = []; const searchLower = query.toLowerCase(); // Determine which books to search const booksToSearch = books || Object.keys(BIBLE_BOOKS); // For demo purposes, we'll search Genesis and Matthew only // In production, you'd want to implement proper search or use the website's search feature const limitedBooks = booksToSearch.slice(0, 2); for (const bookName of limitedBooks) { const bookInfo = BIBLE_BOOKS[bookName]; if (!bookInfo) continue; // Search first few chapters (limit to avoid too many requests) for (let chapter = 1; chapter <= 3; chapter++) { try { const chapterData = await fetchChapter(bookInfo.code, chapter, version); for (const verse of chapterData.verses) { if (verse.text.toLowerCase().includes(searchLower)) { results.push({ book: chapterData.book, chapter: chapterData.chapter, verse: verse.number, text: verse.text, }); } } } catch (error) { // Skip chapters that don't exist break; } } } return results; }
  • src/index.ts:376-378 (registration)
    Registers the list of available tools (including 'search-bible') for the ListToolsRequestSchema.
    server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools }; });

Latest Blog Posts

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/oksure/bible-ko-mcp'

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