kindle-mcp
Server Quality Checklist
Latest release: v1.0.3
- Disambiguation4/5
Tools have distinct purposes clearly marked in descriptions (e.g., 'PRIMARY TOOL', 'Use this when...'), though `parse_kindle_clippings` and `process_kindle_export` both parse exports, and `generate_personal_summary` overlaps with the internal generation step of the primary workflow.
Naming Consistency5/5Excellent consistency: all five tools use snake_case with imperative verb_noun structure (generate_, initialize_, parse_, process_, push_). The pattern is predictable and readable throughout.
Tool Count5/5Five tools is ideal for this focused scope: parsing (2 variants), summary generation, Notion database setup, and Notion publishing. Each tool earns its place without bloat.
Completeness4/5Covers the full Kindle-to-Notion lifecycle including setup, parsing, generation, and publishing. Minor gap: no update or delete operations for existing Notion entries, requiring agents to only create new summaries.
Average 4.3/5 across 5 of 5 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 0 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds crucial context that the tool builds a 'prompt package' rather than generating the summary directly, which prevents confusion about return values. However, it lacks details about the prompt structure, caching behavior, or what the output format looks like given the absence of an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two efficient sentences with zero waste. The first sentence front-loads the core functionality (building prompt packages), while the second provides usage constraints, making it easy for an agent to quickly grasp both purpose and context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three parameters and no output schema, the description adequately explains the high-level mechanism but remains incomplete regarding input requirements and return values. Given the complexity of 'prompt package' construction, additional details about the output structure or parameter interactions would strengthen completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, requiring the description to compensate significantly. While the text mentions 'highlights alone,' implying the highlights parameter, it does not explicitly document the title or author parameters or describe expected formats (e.g., whether highlights should be raw strings or formatted text). This leaves substantial gaps in parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'builds a prompt package for the host model to generate a personal book memory summary,' specifying the verb (builds), resource (prompt package), and scope (from highlights alone). This effectively distinguishes it from siblings like parse_kindle_clippings and push_to_notion, which handle parsing and external system integration rather than summary generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context with 'Use this when processing a single book manually,' which helps identify when to select this tool over bulk-processing siblings like process_kindle_export. However, it does not explicitly name alternatives or state exclusion criteria (e.g., 'do not use for batch processing').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. 'Push' implies write/create operation, and 'structured page' hints at the data format. However, lacks disclosure on failure modes, authentication requirements, whether it overwrites existing pages, or rate limiting behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. First sentence front-loads the core action (what), second sentence provides critical workflow timing (when). Every word earns its place in a compact, scannable format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complex nested summary object and lack of output schema, the description adequately establishes the tool's role in the workflow pipeline. Missing explicit success/failure behavior disclosure, but the tight integration with sibling tool references (process_kindle_export, generate_personal_summary) provides sufficient context for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing detailed structure for the summary object and noting notionDatabaseId is provided by process_kindle_export. Description adds workflow context but no additional parameter syntax or validation rules beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb 'Push' + resource 'Notion database' + format 'structured page' clearly defines the operation. The phrase 'generated book summary' distinguishes this from sibling parse_kindle_clippings (raw data) and aligns with generate_personal_summary (content creation step).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit sequencing guidance 'Call this once per book after generating each summary' establishes workflow order relative to generate_personal_summary. Mentions 'once per book' implying idempotency expectation. Lacks explicit 'when not to use' or alternative export paths.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It specifies the database name ('Kindle Book Summaries') which hints at schema intent, but fails to disclose idempotency behavior, required permissions, what happens if the database already exists, or what the tool returns. It meets minimum expectations for a creation tool but lacks safety/reversibility details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste: first states the action, second states the trigger condition and input source. Information is front-loaded with the core purpose, followed by procedural context. Every word serves the agent's decision-making process.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema exists, the description should ideally disclose return values (likely the database ID needed for subsequent push_to_notion calls). The workflow integration is well-explained, but the missing output specification leaves a gap for an agent orchestrating the full pipeline from initialization to content pushing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the baseline is 3. The description adds value by specifying the semantic source of the parentPageId ('created by the Notion MCP tool'), guiding the agent on which specific ID to use rather than accepting any arbitrary page ID. This contextualizes the parameter beyond the schema's technical definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Creates') with a specific resource ('Kindle Book Summaries database') and location context ('under a given parent page'). It clearly distinguishes from siblings like push_to_notion or parse_kindle_clippings by establishing this as the structural initialization step rather than content processing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit conditional guidance: 'Call this automatically when process_kindle_export returns status='setup_required''. This establishes a clear workflow trigger and prerequisite condition. It also specifies the parameter source ('page ID created by the Notion MCP tool'), guiding the agent on how to obtain valid input.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden of behavioral disclosure. It explains that the tool returns 'prompt packages plus explicit instructions' rather than final data, and mandates a specific multi-step workflow (generate internally → push to Notion). Lacks details on error handling or malformed input behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero waste. Front-loaded with 'PRIMARY TOOL' to establish hierarchy among siblings. Each sentence serves distinct purposes: (1) capability definition, (2) mandatory workflow instructions, (3) output constraints. Efficient and actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite missing annotations and output schema, the description provides sufficient context for an AI agent to execute correctly. It compensates for the lack of structured output description by explaining the return type (prompt packages + instructions) and the critical post-call orchestration sequence involving sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single 'rawText' parameter, which is well-described in the schema itself. The description essentially restates the schema's content ('Given the raw content...'), meeting the baseline expectation for high-coverage schemas without adding significant semantic depth.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verbs (parses, returns) and clearly identifies the resource (Kindle HTML export or My Clippings.txt). It distinguishes from sibling 'parse_kindle_clippings' by explicitly handling both formats (HTML and txt), positioning itself as the comprehensive option.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit workflow instructions: 'After calling this tool, you MUST follow the returned instructions exactly' and mandates subsequent calls to sibling 'push_to_notion'. Includes clear exclusions: 'Do not display summaries in chat — only report the Notion page URLs', defining exactly when and how to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It successfully explains the grouping logic (by book) and the raw/unprocessed nature of the output. It could explicitly state this is a read-only/idempotent operation, but 'Parse' implies this adequately for a single string input tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste: the first states purpose and I/O, the second provides usage guidance. Information is 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.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter parsing tool with no output schema, the description is complete. It compensates for the missing output schema by describing the return structure ('highlights grouped by book') and clarifies the input domain despite the schema already documenting the parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing a baseline of 3. The description adds value by specifying the two acceptable file formats ('HTML export' vs 'My Clippings.txt') for the rawText parameter, helping the agent understand what content to provide beyond the generic schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Parse') with clear resources ('Kindle HTML export or My Clippings.txt') and output format ('highlights grouped by book'). It effectively distinguishes from sibling 'generate_personal_summary' by explicitly stating this returns 'raw highlights without generating summaries', clarifying its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance ('Use this when you only need the raw highlights without generating summaries'), implicitly identifying when NOT to use it and naming the alternative (generate_personal_summary). This gives the agent clear decision criteria for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Silcfcr/kindle-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server