Skip to main content
Glama

Server Details

Marcus Aurelius, Epictetus and Seneca a few lines a day, and their whole books to read.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
GoodTurnStudio/goodturn-mcp
GitHub Stars
0
Server Listing
goodturn-mcp

TDQS

B3/5.0

Scored across 7 tools

Disambiguation2/5

get_card, get_today, and get_reading all return 'a reading line by line' with nearly identical boilerplate descriptions, making it hard to tell which to pick for a given need (voice card vs. today's app reading vs. arbitrary reading/plan). The distinctions are only hinted at, not clearly delineated.

Naming Consistency5/5

All tools follow a consistent snake_case verb_noun pattern: get_card, get_reading, get_today, list_books, list_readings, read_book, search_readings. No mixing of conventions.

Tool Count5/5

Seven tools is well-scoped for a curated Stoic reading app, covering retrieval, listing, search, and sequential reading without bloat.

Completeness4/5

The surface covers listing books/readings, fetching today's or specific readings, paging through books, and searching, which is solid lifecycle coverage for the domain. Minor gaps like plan-specific retrieval or reading progress tracking are workarounds-able.

Available Tools

7 tools
get_cardToday's reading one line at a time, for voiceC
Read-onlyIdempotent
Inspect

Today's reading one line at a time, for voice.. The Stoics: daily readings from Marcus Aurelius, Epictetus and Seneca explained line by line, plans, search, and the whole Meditations, Enchiridion and Seneca's letters read a passage at a time.

ParametersJSON Schema
NameRequiredDescriptionDefault
nNoWhich card, starting at 1. Defaults to 1.
dateNoOptional day as YYYY-MM-DD. Defaults to today (UTC).
readingNoA reading or plan id from list_readings. Defaults to today's reading.

TDQS

C2.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds that output is 'one line at a time' and 'for voice', which is useful behavioral context beyond the annotations, but it does not cover return format, error handling, or pagination.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence redundantly restates the title with a double period, and the second is a long, comma-separated list of content types that is not front-loaded with the tool's action. The description could be much shorter and more action-oriented.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description should explain what is returned and how it relates to sibling tools, but it does neither. While annotations and the input schema cover safety and parameters, the description remains incomplete for disambiguating this tool from get_reading and get_today.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so n, date, and reading are already fully documented in the input schema. The description adds no parameter-level meaning or syntax beyond what the schema provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title is repeated verbatim as the first sentence, and the rest of the description lists Stoic content and app features rather than stating a specific action for get_card. It doesn't clarify whether this retrieves a card, a reading, or a plan, so it does not distinguish itself from siblings like get_reading or get_today.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use get_card versus get_reading, get_today, or search_readings. The description mentions 'plans, search' but never indicates which conditions select this tool, leaving the agent to infer from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_readingOne reading or plan, line by lineC
Read-onlyIdempotent
Inspect

One reading or plan, line by line. The Stoics: daily readings from Marcus Aurelius, Epictetus and Seneca explained line by line, plans, search, and the whole Meditations, Enchiridion and Seneca's letters read a passage at a time.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesA reading or plan id from list_readings, or a plan name such as "japji" or "The Gita in 18 Days".

TDQS

C2.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld, so the safety profile needs no repetition. The description contributes modest extra context about content scope (Marcus Aurelius, Epictetus, Seneca; Meditations, Enchiridion, letters) and that content is delivered passage by passage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, but the first is wasted on restating the title and the second is a long, comma-heavy content inventory that mixes unrelated facts. Front-loading is poor because the actual action is never stated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should clarify what a fetched reading looks like; 'line by line' and 'read a passage at a time' gesture at the return shape but never confirm it. For a one-parameter read tool with full annotation coverage, this is adequate but under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single id parameter is already documented there, including that it accepts a plan name like "japji" or "The Gita in 18 Days". The description adds no id semantics beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence is a verbatim restatement of the title, and the remainder is catalog copy about the Stoic source texts rather than a statement of what the tool does. It never says explicitly that it retrieves a single reading or plan by id, so an agent must infer the fetch semantics from the tool name and schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no mention of alternatives such as list_readings or search_readings, even though sibling names make the choice non-obvious. The only routing hint ('a reading or plan id from list_readings') lives in the schema, not the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_todayToday's reading, line by line (same as the app shows today)C
Read-onlyIdempotent
Inspect

Today's reading, line by line (same as the app shows today). The Stoics: daily readings from Marcus Aurelius, Epictetus and Seneca explained line by line, plans, search, and the whole Meditations, Enchiridion and Seneca's letters read a passage at a time.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoOptional day as YYYY-MM-DD. Defaults to today (UTC).

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds only the 'same as the app shows today' output-parity note, with no mention of default-date behavior, freshness, or return shape. Modest added value over annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The front-loaded first sentence is efficient, but the second sentence is promotional filler enumerating unrelated app features (plans, search, whole Meditations and letters). That text does not earn its place and risks implying this tool performs search or returns full books.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

It is a simple annotated read tool with one optional param and no output schema, so requirements are low. Still, it omits any relationship to the sibling reading tools a caller would need to choose correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single optional `date` parameter is fully documented in the schema, so the baseline is 3. The description adds nothing about the date parameter beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence gives a clear verb+resource: it returns today's reading, matching what the app displays today. It does not differentiate from siblings such as get_reading or get_card, and the trailing sentence muddies the scope by describing the whole app (plans, search, full Meditations/Enchiridion).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus get_reading, get_card, or list_readings, nor any stated precondition. The description merely asserts what the tool returns.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_booksThe whole books in the Library that can be read a passage at a timeC
Read-onlyIdempotent
Inspect

The whole books in the Library that can be read a passage at a time. The Stoics: daily readings from Marcus Aurelius, Epictetus and Seneca explained line by line, plans, search, and the whole Meditations, Enchiridion and Seneca's letters read a passage at a time.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context of its own - no note on result size, ordering, or completeness - so beyond the annotations it is essentially silent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences of which the second is entirely marketing copy listing authors and works; the functional point is not front-loaded and the reader must infer 'this lists books' from the title echo. Significant content earns no place in helping an agent invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should explain what a 'book' listing returns (fields, ordering, pagination), but it does not. Combined with zero-parameter ambiguity and no sibling differentiation, the definition is too thin for correct routing despite its simple read-only nature.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters and the schema is fully self-describing (empty object, no required fields), so the baseline of 4 applies. The description neither needs to nor does document any parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title almost verbatim ('The whole books in the Library that can be read a passage at a time') and then pivots to promotional content about Stoic authors rather than stating a clear verb+resource such as 'list all books'. It never distinguishes itself from siblings like list_readings or read_book, so an agent gains little beyond what the name already implies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no exclusions, and no reference to the sibling tools (list_readings, read_book, search_readings) that an agent must choose between. The mention of 'plans, search' hints at scope but gives no actionable selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_readingsAll curated daily readings and plansC
Read-onlyIdempotent
Inspect

All curated daily readings and plans. The Stoics: daily readings from Marcus Aurelius, Epictetus and Seneca explained line by line, plans, search, and the whole Meditations, Enchiridion and Seneca's letters read a passage at a time.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond that — no note on pagination, result volume, ordering, or whether it returns every reading ever curated versus a manageable set.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core statement is front-loaded in the first sentence, but the second sentence is a marketing-flavored domain blurb ('explained line by line', listing three works) that does not help an agent decide or invoke. It is short enough overall, but part of it does not earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless read-only list tool with no output schema, the description should make clear what the agent receives (all readings? summaries? metadata?). It conveys scope loosely ('all curated daily readings and plans') but no return shape or volume, leaving real gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so per the rubric the baseline is 4. The description adds no parameter information, but there is none to add.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence ('All curated daily readings and plans') implies a bulk list of readings, but the verb is implicit and the rest of the description is promotional content scope ('The Stoics... explained line by line'). It never distinguishes this from siblings like list_books or get_today, so an agent cannot tell which listing tool to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance at all: nothing says whether to call this instead of get_today, get_reading, or list_books. The word 'search' appears in the description but is not routed to the search_readings sibling, which could actively mislead an agent into thinking this tool searches.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_bookFollow next for the next passage; it carries on into the next chapterC
Read-onlyIdempotent
Inspect

Follow next for the next passage; it carries on into the next chapter. The Stoics: daily readings from Marcus Aurelius, Epictetus and Seneca explained line by line, plans, search, and the whole Meditations, Enchiridion and Seneca's letters read a passage at a time.

ParametersJSON Schema
NameRequiredDescriptionDefault
nNoPassage within the section, starting at 1.
refNoOptional: jump straight to a passage by its reference, for example "Havamal 139", "Meditations 4.3", "Gita 2.47", "Iliad 1.5" or "10b". Overrides section and n.
bookYesBook id or title from list_books, for example meditations, enchiridion.
sectionNoChapter, book, poem, letter or daf to start at, as listed in the book (for example 5, "chapter 2", "havamal", or 10b for the second side of a daf). Defaults to the beginning; Bekhorot defaults to today's Daf Yomi page while the cycle is in it.

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral context beyond that: passage-by-passage reads and the 'follow next' continuation that carries into the next chapter. It still omits any return-format or pagination termination details, so a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence duplicates the title verbatim, which is wasted space, and it is front-loaded with a confusing UI hint before establishing the actual purpose. The second sentence is a long inventory of content rather than a crisp statement of behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with full schema coverage and annotations, the key missing piece is disambiguation from get_reading, list_readings, get_today, and search_readings, none of which are addressed. The sequential-reading behavior is a useful addition, but the description is only minimally complete for correct tool selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents book, ref, section, and n, including ref examples and the Daf Yomi default. The description adds nothing about parameters, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

It conveys that this reads out a passage at a time from Stoic works (Meditations, Enchiridion, Seneca's letters), which hints at the resource. But the leading sentence 'Follow next for the next passage; it carries on into the next chapter' reads like a UI hint rather than a purpose statement, and the tool is not clearly distinguished from siblings like get_reading or list_readings. The verb+resource is only weakly established.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance and no named alternatives. The mention of 'plans, search' gestures at sibling functionality (search_readings, get_today) but never tells the agent when to prefer read_book over them. Usage must be inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_readingsSearch the curated readings, best match firstB
Read-onlyIdempotent
Inspect

Search the curated readings, best match first. The Stoics: daily readings from Marcus Aurelius, Epictetus and Seneca explained line by line, plans, search, and the whole Meditations, Enchiridion and Seneca's letters read a passage at a time.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesWords to search for, for example anger or death.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds only the relevance-ordering behavior ('best match first'); it says nothing about result counts, pagination, or how matches are scored.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The actionable content is front-loaded in the first sentence, which is good. However, the second sentence reads as run-on marketing copy ('plans, search, and the whole Meditations, Enchiridion and Seneca's letters read a passage at a time') and does not clearly earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only one parameter and full schema coverage, plus annotations covering the safety profile, the definition is close to adequate. But with no output schema, the description never gives a hint about the shape of returned results, leaving a small but real gap for a search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter already documents its purpose with examples ('anger or death'), so the schema does the heavy lifting. The description adds corpus context (Marcus Aurelius, Epictetus, Seneca) that hints at useful query vocabulary but no syntax or matching rules.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence gives a specific verb (search) and resource (curated readings) plus result-ordering behavior (best match first), which clearly separates it from read-oriented siblings like get_reading or list_readings. It does not explicitly name a sibling as the alternative, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this search versus list_readings, get_today, or get_reading. The only implied guidance comes from the word 'search', leaving the agent to infer the retrieval strategy.

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.

  1. 3 tool updates
    • Changedget_card1 field changed
      • changedInput schema / properties / reading / description
        Previous value: -"A reading or plan id from /readings. Defaults to today's reading."New value: +"A reading or plan id from list_readings. Defaults to today's reading."
    • Changedget_reading1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"A reading or plan id from /readings, or a plan name such as \"japji\" or \"The Gita in 18 Days\"."New value: +"A reading or plan id from list_readings, or a plan name such as \"japji\" or \"The Gita in 18 Days\"."
    • Changedread_book1 field changed
      • changedInput schema / properties / book / description
        Previous value: -"Book id or title from /books, for example meditations, enchiridion."New value: +"Book id or title from list_books, for example meditations, enchiridion."
  2. 7 tool updates
    • First observedget_card
    • First observedget_reading
    • First observedget_today
    • First observedlist_books
    • First observedlist_readings
    • First observedread_book
    • First observedsearch_readings

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Provides philosophical thinking frameworks and tools based on Stoic, cognitive, mindfulness, and strategic traditions to assist with decision-making and perspective. It enables AI models to apply structured wisdom from 2,500 years of tested frameworks to user problems.
    9
    65 npm
    3
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Semantic search over 4.6 million text chunks from 20,000+ classical philosophy and humanities works (pre-1928). Covers Aristotle, Plato, Kant, Hegel, Nietzsche and hundreds more. Multilingual: English, German, Latin, French, Italian, Greek, Russian.
    3
    2
    MIT
  • A
    license
    C
    quality
    A
    maintenance
    A personal board of AI advisors grounded in public-domain texts, with a fail-closed fidelity contour: every quote is checked word-for-word against its source by code, or the advisor abstains. Runs locally as a stdio MCP server.
    65
    9
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.