원불교 교서
Server Details
원불교 교서 15책 4,969절 원문을 좌표·출처와 함께 찾아 읽는다. 성가 201곡, 원불교대사전 4,523항목, 개념 관계망 포함. 정본은 hub.won.or.kr.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
7 toolsget_outline책 차례ARead-onlyInspect
책의 차례. part 없이 부르면 편/품 목록, part를 주면 그 편에 든 절 목록(id 포함). 특정 자리를 알고 찾아갈 때 쓴다.
| Name | Required | Description | Default |
|---|---|---|---|
| book | Yes | 책 id. jeongjeon(정전) daejonggyeong(대종경) buljoyogyeong(불조요경) yejeon(예전) jeongsan(정산종사법어) daesan(대산종사법어) gyosa(원불교 교사) gyoheon(원불교 교헌) seonoerok(대종경선외록) hanulan(한울안 한 이치에) daesanbm1~5(대산종사법문집 1~5집) | |
| part | No | 편/품 이름(공백 무시 부분 일치, 예: '교의편') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral detail beyond annotations: without part it returns 편/품 list, with part it returns 절 list including ids. It stops short of describing exact output shape or error handling, but this is sufficient for a read-only outline tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences with no filler. It front-loads the resource, then efficiently gives conditional behavior and the intended use case. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only tool with no output schema, the description covers the two invocation modes, the optional parameter, and the use case. A minor gap is that the no-part list is not explicitly said to include ids, but the overall purpose is clear enough for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the schema already documents book IDs and part partial matching. The description adds the conditional semantics of the optional part parameter and notes the returned data includes ids, which helps the agent decide whether to pass part. This goes slightly beyond the schema without repeating it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (책의 차례, a book's table of contents) and a clear action: retrieve structural navigation. It distinguishes two invocation modes (with or without part) and contrasts itself with lookup/search tools via the phrase '특정 자리를 알고 찾아갈 때 .'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says the tool is for navigating to a specific known location ('특정 자리를 알고 찾아갈 때 다'), which implies it should be used when the agent already knows the structural place. It does not explicitly name sibling alternatives or state when not to use it, but the usage context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_passage절 원문 보기ARead-onlyInspect
절 하나의 원문 전체 — 본문 문단·각주·좌표·앞뒤 절·웹 주소. 인용은 반드시 이 도구로 확인한 원문을 쓴다.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 절 id (검색 결과의 [book/id]) | |
| book | Yes | 책 id. jeongjeon(정전) daejonggyeong(대종경) buljoyogyeong(불조요경) yejeon(예전) jeongsan(정산종사법어) daesan(대산종사법어) gyosa(원불교 교사) gyoheon(원불교 교헌) seonoerok(대종경선외록) hanulan(한울안 한 이치에) daesanbm1~5(대산종사법문집 1~5집) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only/non-destructive behavior. The description adds the concrete output inventory (paragraph, footnotes, coords, adjacent verses, URL) and a normative citation rule, which is useful behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, information-dense sentences are front-loaded with the core result and followed by the citation rule. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with no output schema, the description covers the essential return contents, the id provenance via schema, and the intended citation use. It does not explain coordinates, but the enumeration is sufficient for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: id and book are already well-described, including allowed book identifiers and the [book/id] format from search results. The description itself adds no parameter detail, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource (a single verse) and the returned content (full original text including main paragraphs, footnotes, coords, neighboring verses, URL), so an agent knows what the tool retrieves. It is clear but names no sibling tool, so differentiation from get_outline/get_related is implicit rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence makes the use case explicit: any quotation/citation must be based on original text confirmed by this tool. This is strong when-to-use guidance, but there is no explicit when-not-to-use or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_books교서 목록ARead-onlyInspect
원불교 교서 15책의 목록과 절 수. 어떤 책이 있는지 모를 때 먼저 부른다.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and non-destructive. The description adds behavioral context by specifying the exact output contents (book list and section counts) and its role as the recommended first call, which is useful beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose and follows with the usage scenario. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, read-only list tool with no output schema, the description is complete: it states what is returned, how many items, and when to call it. No critical context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description does not need to explain parameters, and it correctly implies that no input is required to retrieve the complete list.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it lists the 15 Won-Buddhist scriptures along with their section counts. It also differentiates the tool from siblings by framing it as the initial discovery step when the user does not know which books exist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: call this first when you do not know which books are available. It does not explicitly name alternatives or state when not to use it, but the guidance is sufficient for this simple list tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_dictionary원불교대사전ARead-onlyInspect
원불교 대사전 4,523항목. q로 표제어·한자·정의문을 찾는다(표제어가 정확히 하나 걸리면 곧바로 본문). id를 주면 그 항목. get_passage의 각주에 붙은 [대사전 ****]가 그 id다. 긴 항목(일원상·사은·법위등급 등)은 첫 절만 내주고 나머지 절 목록을 알려 준다 — 필요한 절을 section으로 다시 부른다.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | 찾을 말(표제어·한자·정의문) | |
| id | No | 대사전 항목 id — 주면 q는 무시하고 그 항목을 낸다 | |
| limit | No | 돌려줄 최대 건수(기본 10) | |
| section | No | 긴 항목에서 읽을 절 이름(부분 일치). 앞선 호출이 알려 준 절 목록에서 고른다 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only annotations, it disclosures a nontrivial truncation behavior: long entries return only the first section plus a section list, requiring a follow-up call with section. It also discloses the exact-one-hit shortcut and the id-overrides-q behavior, which are practical execution details an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences with no filler: resource identity, q/id semantics, and long-entry handling are each covered in one focused sentence. The most important usage modes are front-loaded, and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only lookup tool with all parameters documented and no output schema, this description covers the key operational edge cases: single-hit vs multi-hit behavior, direct id lookup, and the truncation/section workflow. Nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by explaining the source of id (get_passage footnote markers), the exact-match behavior for q, and the two-step section workflow for long entries. This exceeds what the parameter descriptions alone provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: '원불교 대사전 4,523항목. q로 ... 찾는다' and 'id를 주면 그 항목'. It clearly identifies the tool as a dictionary lookup with multiple access modes, and the dictionary scope separates it from siblings like search_scripture or search_sungga.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear invocation contexts: q for headword/hanja/definition search, id for direct lookup, and section for re-reading truncated long entries. The cross-reference to get_passage's [대사전 ****] footnote is a concrete routing cue. It doesn't explicitly list when-not-to-use alternatives, hence not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_scripture경전 원문 검색ARead-onlyInspect
경전 원문 전문 검색. 띄어쓰기를 무시한 부분 문자열 일치라 '상시일기'와 '상시 일기'가 같은 결과를 준다. 글자가 겹치지 않는 뜻 검색은 안 된다 — 실제 본문에 나오는 말로 찾을 것. 인용하려면 결과의 id로 get_passage를 불러 원문 전체를 확인한다.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | 찾을 말 | |
| book | No | 책 id. jeongjeon(정전) daejonggyeong(대종경) buljoyogyeong(불조요경) yejeon(예전) jeongsan(정산종사법어) daesan(대산종사법어) gyosa(원불교 교사) gyoheon(원불교 교헌) seonoerok(대종경선외록) hanulan(한울안 한 이치에) daesanbm1~5(대산종사법문집 1~5집) | |
| mode | No | phrase(기본)는 질의 전체를 한 덩어리로, all은 낱말이 모두 들어 있으면 일치(떨어져 있어도 걸림) | |
| limit | No | 돌려줄 최대 건수(기본 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds valuable behavioral context: spacing is ignored ('상시일기' and '상시 일기' yield the same result), matching is partial substring based, and word-overlap/semantic search is not supported. It doesn't mention pagination or ordering details, but the description covers key behavioral traits that an agent needs beyond the static schema. A 4 is appropriate given the annotations carry the read-only burden and the description adds meaningful matching behavior disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is 4 sentences, all dense with useful information. It front-loads the core purpose, then gives matching rules ('띄어쓰기를 무시한 부분 문자열 일치'), a negation constraint ('뜻 검색은 안 된다'), and a concrete follow-up routing instruction for quotations. No filler or repetition of schema fields that don't add value. Very efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with 4 parameters, full schema coverage, and no output schema, the description covers the main gaps: matching semantics, what it can't do, and the retrieval next step (get_passage). It doesn't cover potential edge cases like limit=0 or result sorting order, but those are minor for an agent's correct invocation. Given the sibling context and annotations, this is reasonably complete, though not exhaustive about output format or pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds semantic value by explaining the matching semantics for the q parameter (space-insensitive substring matching), which is not explicitly in the parameter description. It also clarifies that mode has a phrase(default) vs all option, which aligns with the schema enum, but the description's matching rule gives more operational meaning. It doesn't describe how limit behaves beyond max count, but the schema already says '최대 건수(기본 10)'. The added q semantics justify a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a clear verb+resource statement: '경전 원문 전문 검색' (search full scripture text). It goes beyond just naming the tool by specifying the object (scripture original texts) and the action (search), and it differentiates from siblings by noting this is full-text search over scripture texts, unlike search_sungga which presumably searches different material. The distinction is supported by the sibling list where other tools handle navigation (get_outline), retrieval (get_passage), related content (get_related), book listing (list_books), dictionary (lookup_dictionary), and another search (search_sungga).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage conditions: it matches partial strings ignoring spacing, it cannot do semantic/concept search, so users must search with words that actually appear in the text. It also directs the agent to use get_passage with the result's id to verify the full original text when quoting. This clearly distinguishes when to use this tool versus alternatives, naming the alternative get_passage explicitly for the follow-up step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_sungga성가 검색ARead-onlyInspect
원불교 성가 201곡을 제목·가사로 검색. 숫자만 주면 그 번호의 곡을 찾는다(가사 검색이 아니라 곡 번호).
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | 찾을 말 또는 곡 번호 | |
| limit | No | 돌려줄 최대 건수(기본 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/non-destructive behavior. The description adds meaningful behavioral detail beyond annotations, especially that a bare number is treated as a hymn number rather than a lyrics query, and that the corpus is limited to 201 hymns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, each earning its place: the first states the main search capability and scope, the second clarifies an important edge case. No redundant filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter search tool with full schema coverage and read-only annotations, the description is largely complete. It could be slightly stronger by explicitly naming the return behavior or sibling distinction, but nothing essential is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds genuine value by explicitly clarifying that a numeric-only q triggers song-number lookup rather than lyric search, removing ambiguity that the schema alone leaves open.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Describes a specific action: searching 원불교 성가 201곡 by title, lyrics, or number. This clearly distinguishes it from sibling tools like search_scripture or lookup_dictionary by naming the exact resource and the special numeric behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool (when searching hymns by title, lyrics, or number) and explains the numeric-input special case. It does not explicitly name alternative tools or exclusions, but the resource scope makes the intended use apparent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
7 tool updates
- First observed
get_outline - First observed
get_passage - First observed
get_related - First observed
list_books - First observed
lookup_dictionary - First observed
search_scripture - First observed
search_sungga
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Read-only Buddhist scripture search, verified explanations, situation matching, and practice.
Buddhist canon tools: search, passages, cross-canon parallels, dictionaries — all URN-cited.
Read-only Wheel of Heaven corpus: myth search, primary texts, datasets, typed graph. CC0.
Bible corpus MCP server: scripture, Greek/Hebrew interlinear data, cross-refs, semantic search.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server for the full Pāli Tipiṭaka — ~444,000 segments at parity with SuttaCentral (Sutta + Vinaya + Abhidhamma). Hybrid search, full-sutta fetch with cross-references, segment-aligned translation comparison, and Pāli word lookup. Offered as Dhamma Dāna.118MIT
- AlicenseAqualityAmaintenanceEnables access to Korean Bible translations from bskorea.or.kr, allowing users to retrieve chapters, verses, search for keywords, and compare translations across different Korean Bible versions.6872MIT
- AlicenseNot gradedqualityNot gradedmaintenanceProvides access to the Chinese Buddhist Electronic Text Association (CBETA) online library of over 100 million characters of Buddhist scripture. It enables users to search, browse catalogs, and retrieve content from major collections like the Taishō Tripiṭaka.-
- FlicenseAqualityBmaintenanceEnables searching and retrieving full text and translations from the Korean Classics Database (ITKC), including collections such as the Annals of the Joseon Dynasty, Seungjeongwon Ilgi, Ilseongnok, and more.6-
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool maps to a distinct operation: structural navigation, passage reading, related-passage discovery, book listing, dictionary lookup, scripture search, and hymn search. There is no meaningful overlap, and tools such as search_scripture and lookup_dictionary are clearly differentiated by corpus and lookup behavior.
All tool names follow the same snake_case verb_noun pattern: get_outline, get_passage, get_related, list_books, lookup_dictionary, search_scripture, search_sungga. The verbs are uniform in style and the object of each action is immediately clear.
Seven tools is well-scoped for a scripture research server, covering navigation, reading, searching, dictionary lookup, cross-referencing, and hymn lookup. Each tool earns its place and none feels redundant or unnecessary.
The tool surface covers the full research workflow: discovering books, navigating outlines, reading and citing passages, full-text searching, dictionary lookup, related-passage discovery, and hymn search. Search results return ids that feed into get_passage, and dictionary footnotes are linked via ids, so there are no obvious dead ends.