Skip to main content
Glama

Summary MCP

AI-powered daily and weekly productivity summaries from Slack, Calendar, and Gmail

An MCP (Model Context Protocol) server that provides comprehensive productivity summaries by analyzing your Slack messages, Calendar events, and Gmail activity.

🌟 Features

  • šŸ“… Daily Summaries: Concise end-of-day wrap-ups with tomorrow's preview

  • šŸ“Š Weekly Summaries: Comprehensive 7-day productivity analysis

  • ⚔ Quick Stats: Fast metrics without full summary generation

  • šŸ“ˆ Period Comparison: Compare productivity across different weeks

  • šŸ“ File Management: List and retrieve past summaries

  • šŸ¤– Automated Generation: Scheduled daily (Mon-Fri 8:30 AM) and weekly (Mon 9:00 AM) summaries

  • 🚫 Smart Filtering: Automatically excludes personal conversations (sports, politics, entertainment)

šŸš€ Quick Start

Installation

  1. Clone and setup:

cd ~/shopify-projects
git clone <repo-url> summary-mcp
cd summary-mcp
npm install
  1. Configure Cursor MCP: Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "summary-mcp": {
      "type": "stdio",
      "command": "node",
      "args": ["/Users/philipbloch/shopify-projects/summary-mcp/src/index.js"],
      "env": {}
    }
  }
}
  1. Install Automation (optional):

./scripts/install-automation.sh

This sets up:

  • Daily summaries: Monday-Friday at 8:30 AM PT

  • Weekly summaries: Mondays at 9:00 AM PT

šŸ“– Available Tools

1. generate_daily_summary

Generate a concise daily productivity summary.

Parameters:

  • date (optional): Date in YYYY-MM-DD format (default: today)

  • output_format: html, markdown, both, or json

  • save_to_file: Whether to save to summaries folder (default: true)

  • include_sections: Array of sections to include

Example:

Generate my daily summary and save to summaries folder

2. generate_weekly_summary

Generate a comprehensive weekly productivity summary.

Parameters:

  • days_back (optional): Number of days to analyze (default: 7)

  • start_date / end_date (optional): Custom date range

  • output_format: html, markdown, both, or json

  • save_to_file: Whether to save to summaries folder (default: true)

Example:

Generate my weekly summary for the last 7 days

3. get_quick_stats

Get quick productivity metrics without generating a full summary.

Parameters:

  • days_back (optional): Number of days to analyze (default: 7)

  • start_date / end_date (optional): Custom date range

Example:

Show me quick stats for the past week

4. list_summaries

List previously generated summaries.

Parameters:

  • limit: Max results (default: 10)

  • sort: newest or oldest

  • format: Filter by html, markdown, or all

5. get_summary

Retrieve a specific summary by filename or date range.

Parameters:

  • filename: Specific summary file

  • start_date / end_date: Find by date range

  • format: Return html, markdown, or both

6. compare_periods

Compare productivity between two time periods.

Parameters:

  • period1: { start_date, end_date }

  • period2: { start_date, end_date }

  • metrics: Array of metrics to compare

šŸ“ Project Structure

summary-mcp/
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ index.js              # MCP server entry point
│   ā”œā”€ā”€ config.js             # Configuration
│   ā”œā”€ā”€ tools/
│   │   ā”œā”€ā”€ index.js          # Tool definitions
│   │   ā”œā”€ā”€ handler.js        # Tool routing
│   │   ā”œā”€ā”€ generate-daily-summary.js
│   │   ā”œā”€ā”€ generate-summary.js
│   │   ā”œā”€ā”€ list-summaries.js
│   │   ā”œā”€ā”€ get-summary.js
│   │   ā”œā”€ā”€ quick-stats.js
│   │   └── compare-periods.js
│   ā”œā”€ā”€ analyzers/
│   │   ā”œā”€ā”€ slack-analyzer.js
│   │   ā”œā”€ā”€ calendar-analyzer.js
│   │   └── gmail-analyzer.js
│   └── utils/
│       ā”œā”€ā”€ date-utils.js
│       └── file-utils.js
ā”œā”€ā”€ scripts/
│   ā”œā”€ā”€ generate-daily-summary.sh
│   ā”œā”€ā”€ generate-weekly-summary.sh
│   ā”œā”€ā”€ install-automation.sh
│   └── uninstall-automation.sh
ā”œā”€ā”€ summaries/                # Generated summaries
ā”œā”€ā”€ logs/                     # Automation logs
ā”œā”€ā”€ com.philipbloch.dailysummary.plist
ā”œā”€ā”€ com.philipbloch.weeklysummary.plist
└── package.json

šŸ¤– Automation

Schedules

  • Daily Summary: Monday-Friday at 8:30 AM PT

  • Weekly Summary: Mondays at 9:00 AM PT

Managing Automation

Install:

./scripts/install-automation.sh

Uninstall:

./scripts/uninstall-automation.sh

Check Status:

launchctl list | grep philipbloch

View Logs:

# Daily summary logs
tail -f logs/daily-summary-*.log

# Weekly summary logs
tail -f logs/weekly-summary-*.log

# LaunchD logs
tail -f logs/launchd-daily.out.log
tail -f logs/launchd-weekly.out.log

Manual Trigger

Daily Summary:

./scripts/generate-daily-summary.sh

Weekly Summary:

./scripts/generate-weekly-summary.sh

šŸ› ļø Development

Running the Server

# Start the server
npm start

# Development mode with auto-reload
npm run dev

Testing

npm test

Debug Mode

Set DEBUG=true in your environment to enable detailed logging:

{
  "mcpServers": {
    "summary-mcp": {
      "type": "stdio",
      "command": "node",
      "args": ["/Users/philipbloch/shopify-projects/summary-mcp/src/index.js"],
      "env": {
        "DEBUG": "true"
      }
    }
  }
}

šŸ“Š Data Sources

The MCP server integrates with:

  1. Slack MCP: Messages, threads, reactions

  2. Google Calendar: Events, attendees, meeting duration

  3. Gmail: Emails, threads, important contacts

🚫 Content Filtering

By default, Summary MCP filters out personal conversations about sports, politics, and entertainment to keep your summaries focused on work.

  • Enabled by default - Only work-related content in summaries

  • Easily toggle - Set CONTENT_FILTERING_ENABLED=false in .env to disable

  • Customizable - Add your own keywords and topics to filter

See FILTERING.md for complete documentation.

šŸŽØ Output Formats

Format Generation Rules

Daily & Weekly Summaries: Generate both .html and .md by default

  • Can optionally generate JSON for programmatic access

  • Default: output_format: 'both'

Period Comparisons: Generate both .html and .md only (no JSON)

  • Optimized for human-readable trend analysis

  • Default: output_format: 'both'

HTML

Professional, Shopify-branded styling with:

  • Syntax highlighting

  • Interactive sections

  • Visual metrics

  • Print-friendly layout

  • Perfect for sharing and presentations

Markdown

Clean, portable text format:

  • Easy to edit

  • Version control friendly

  • Great for notes and documentation

  • Plain text searchable

JSON (Daily/Weekly only)

Structured data for:

  • Programmatic access

  • Custom processing

  • Integration with other tools

  • Not available for comparisons

šŸ”’ Privacy

All data processing happens locally. The MCP server:

  • āœ… Reads data from your connected services

  • āœ… Processes summaries locally

  • āœ… Saves to your local filesystem

  • āŒ Never sends data to external services

  • āŒ No cloud processing or storage

šŸ› Troubleshooting

Automation not running?

  1. Check if jobs are loaded:

launchctl list | grep philipbloch
  1. Check logs:

tail -f logs/launchd-daily.err.log
tail -f logs/launchd-weekly.err.log
  1. Verify Cursor is running (required for automation)

Summaries not saving?

Ensure the summaries directory exists:

mkdir -p ~/shopify-projects/summary-mcp/summaries

MCP server not responding?

  1. Restart Cursor

  2. Check MCP config in ~/.cursor/mcp.json

  3. Verify Node.js is installed: node --version

šŸ“ License

MIT

šŸ‘¤ Author

Philip Bloch philip.bloch@shopify.com


Need Help? Check the AUTOMATION.md for detailed automation setup and troubleshooting.

Available Tools

6 tools
compare_periodsC

Compare productivity statistics between two time periods. Generates comparison reports in HTML and Markdown formats showing trends and changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
period1YesFirst period to compare
period2YesSecond period to compare
metricsNoMetrics to compare (default: all)
output_formatNoOutput format(s) to generate (default: both)both
save_to_fileNoWhether to save comparison to summaries directory (default: true)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers limited behavioral insight. It mentions output formats and that reports are 'generated,' but doesn't disclose whether this is a read-only operation, if it requires specific permissions, whether it's computationally intensive, or what happens when save_to_file=true (where files are saved, naming conventions, overwrite behavior). For a tool with 5 parameters and no annotation coverage, this is insufficient.

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

Conciseness4/5

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

The description is efficiently structured in two sentences: first states the core purpose, second specifies output formats. There's no wasted language, though it could be slightly more front-loaded by mentioning key parameters. Every sentence earns its place by adding distinct information.

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?

Given 5 parameters with nested objects, no annotations, and no output schema, the description is moderately complete but has significant gaps. It covers the what (comparison) and output formats but lacks behavioral context (permissions, side effects), usage guidance, and output details. For a comparative analysis tool that likely produces complex reports, more context about report structure, data sources, or limitations would be helpful.

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 already documents all parameters thoroughly. The description adds minimal value beyond the schema - it mentions 'productivity statistics' which loosely relates to metrics, and 'HTML and Markdown formats' which relates to output_format, but provides no additional semantic context about parameter interactions or interpretation. Baseline 3 is appropriate when schema does the heavy lifting.

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 description clearly states the tool's purpose: 'Compare productivity statistics between two time periods' with specific outputs ('HTML and Markdown formats showing trends and changes'). It distinguishes from siblings like generate_daily_summary or get_quick_stats by focusing on comparative analysis rather than single-period reporting. However, it doesn't explicitly differentiate from all siblings (e.g., get_summary could potentially involve comparisons).

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when this comparative tool is preferred over single-period tools like generate_daily_summary or get_quick_stats, nor does it specify prerequisites or appropriate contexts for comparison. The agent must infer usage from the purpose alone.

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

generate_daily_summaryB

Generate a concise daily productivity summary from today's Slack, Calendar, and Gmail activity. Perfect for end-of-day wrap-ups and next-day planning.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoDate to summarize in YYYY-MM-DD format (default: today)
output_formatNoOutput format(s) to generate (default: both)both
save_to_fileNoWhether to save output to summaries directory (default: true)
include_sectionsNoSections to include (default: all)

TDQS

B3.2/5.0
Behavior2/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 of behavioral disclosure. It mentions generating a summary and saving it (implied by 'save_to_file' parameter), but doesn't cover critical aspects like authentication requirements, rate limits, data privacy implications, or what happens when saving fails. For a tool that aggregates personal data from multiple sources, this is a significant gap in transparency.

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

Conciseness4/5

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

The description is appropriately concise with two sentences that directly address purpose and usage. It's front-loaded with the core functionality and avoids unnecessary fluff. However, the second sentence could be slightly more specific (e.g., 'Use for end-of-day wrap-ups' instead of 'Perfect for'), keeping it efficient but not perfectly polished.

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?

Given the tool's complexity (aggregating data from multiple sources, 4 parameters, no output schema, and no annotations), the description is moderately complete. It covers the 'what' and hints at the 'why,' but lacks details on behavioral aspects, error handling, or output structure. Without annotations or an output schema, users might not fully understand what to expect from the tool's operation.

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%, meaning all parameters are documented in the schema itself. The description doesn't add any parameter-specific details beyond what's in the schema (e.g., it doesn't explain the 'include_sections' options further). With high schema coverage, the baseline is 3, as the description doesn't compensate but also doesn't detract.

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 description clearly states the tool's purpose: 'Generate a concise daily productivity summary from today's Slack, Calendar, and Gmail activity.' It specifies the verb (generate), resource (daily productivity summary), and data sources (Slack, Calendar, Gmail). However, it doesn't explicitly differentiate from sibling tools like 'generate_weekly_summary' or 'get_summary', which prevents a perfect score.

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

Usage Guidelines3/5

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

The description provides implied usage context with 'Perfect for end-of-day wrap-ups and next-day planning,' suggesting when to use it. However, it lacks explicit guidance on when to choose this tool over alternatives like 'generate_weekly_summary' or 'get_quick_stats,' and doesn't mention any prerequisites or exclusions, leaving room for ambiguity.

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

generate_weekly_summaryC

Generate a comprehensive weekly productivity summary from Slack, Calendar, and Gmail data. Returns structured summary with optional HTML/Markdown output.

ParametersJSON Schema
NameRequiredDescriptionDefault
days_backNoNumber of days to analyze (default: 7)
start_dateNoOptional start date in YYYY-MM-DD format (overrides days_back)
end_dateNoOptional end date in YYYY-MM-DD format (default: today)
output_formatNoOutput format(s) to generate (default: both)both
save_to_fileNoWhether to save output to summaries directory (default: true)
include_sectionsNoSections to include (default: all)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions 'Returns structured summary with optional HTML/Markdown output' and implies data aggregation, but lacks critical behavioral details: whether this is a read-only operation, if it requires specific permissions, processing time, rate limits, or what happens when 'save_to_file' is true. For a complex 6-parameter tool with no annotations, this is insufficient.

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

Conciseness4/5

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

The description is concise and front-loaded, stating the core purpose in the first clause. Both sentences are relevant: the first defines the tool's function, the second adds output details. There's no wasted text, though it could be slightly more structured for clarity.

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?

Given the tool's complexity (6 parameters, data aggregation from multiple sources, no output schema, and no annotations), the description is incomplete. It doesn't explain the summary's structure, data sources' integration, error handling, or output behavior beyond format options. For a tool that likely involves significant processing and file operations, more context is needed.

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 parameters are well-documented in the schema. The description adds minimal value beyond the schema: it mentions 'optional HTML/Markdown output' which relates to 'output_format', and 'comprehensive weekly productivity summary' hints at 'include_sections'. However, it doesn't provide additional context about parameter interactions or semantics not in the schema.

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 description clearly states the tool's purpose: generating a comprehensive weekly productivity summary from specific data sources (Slack, Calendar, Gmail). It specifies the verb 'generate' and resource 'weekly productivity summary', but doesn't explicitly differentiate from siblings like 'generate_daily_summary' or 'get_summary' beyond the weekly focus.

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?

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'generate_daily_summary', 'get_quick_stats', and 'get_summary', there's no indication of comparative use cases, prerequisites, or exclusions. The agent must infer usage from the tool name alone.

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

get_quick_statsB

Get quick productivity metrics (Slack, Calendar, Gmail) without generating a full summary. Fast lightweight query.

ParametersJSON Schema
NameRequiredDescriptionDefault
days_backNoNumber of days to analyze (default: 7)
start_dateNoOptional start date in YYYY-MM-DD format
end_dateNoOptional end date in YYYY-MM-DD format

TDQS

B3.2/5.0
Behavior2/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 of behavioral disclosure. It mentions 'fast lightweight query' which hints at performance characteristics, but doesn't describe what specific metrics are returned, whether authentication is required, rate limits, error conditions, or the format of the response. For a tool with no annotations and no output schema, this leaves significant behavioral gaps.

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

Conciseness5/5

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

The description is two concise sentences that efficiently convey purpose and key characteristics. Every word earns its place: 'Get quick productivity metrics' establishes the core function, '(Slack, Calendar, Gmail)' specifies scope, 'without generating a full summary' differentiates from siblings, and 'Fast lightweight query' adds behavioral context. No wasted words.

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?

Given no annotations, no output schema, and 3 parameters, the description is incomplete. While it clearly states purpose and differentiates from some siblings, it lacks details about what metrics are returned, authentication requirements, rate limits, or error handling. For a tool that presumably returns productivity data across multiple services, more context about the output format and behavioral constraints would be helpful.

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%, with all three parameters (days_back, start_date, end_date) well-documented in the schema including descriptions, defaults, and constraints. The description adds no parameter-specific information beyond what's in the schema, so it meets the baseline of 3 for high schema coverage without compensating value.

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 description clearly states the verb 'Get' and the resource 'quick productivity metrics (Slack, Calendar, Gmail)', specifying what data sources are included. It distinguishes from siblings by noting it provides 'quick metrics without generating a full summary', differentiating it from summary-generation tools like generate_daily_summary or get_summary. However, it doesn't explicitly contrast with compare_periods or list_summaries.

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

Usage Guidelines3/5

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

The description implies usage context by stating 'without generating a full summary' and 'fast lightweight query', suggesting this tool is for quick overviews rather than detailed reports. It doesn't explicitly state when to use this tool versus alternatives like compare_periods or list_summaries, nor does it provide exclusions or prerequisites. The guidance is present but not comprehensive.

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

get_summaryC

Retrieve a specific weekly summary by filename or date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameNoFilename of the summary to retrieve
start_dateNoStart date to find summary (YYYY-MM-DD)
end_dateNoEnd date to find summary (YYYY-MM-DD)
formatNoFormat to retrieve (default: both)both
include_contentNoInclude full content or just metadata (default: true)

TDQS

C2.9/5.0
Behavior2/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 states it 'retrieves' a summary, implying a read operation, but doesn't disclose any behavioral traits such as error handling (e.g., what happens if no summary matches), performance characteristics, rate limits, or authentication needs. It lacks details on what 'retrieve' entails beyond the basic action.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core purpose ('Retrieve a specific weekly summary') and adds necessary qualification ('by filename or date range'). There's zero waste, and it's appropriately sized for the tool's complexity.

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?

Given the tool has 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain the return format, error conditions, or how parameters interact (e.g., whether 'filename' overrides 'date range'). For a retrieval tool with multiple input options, more context is needed to guide effective use.

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 all parameters. The description adds minimal value by mentioning 'filename or date range', which loosely maps to parameters but doesn't provide additional semantics beyond what's in the schema (e.g., it doesn't explain interactions between parameters or usage scenarios). Baseline 3 is appropriate as the schema does the heavy lifting.

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 description clearly states the action ('Retrieve') and resource ('weekly summary'), specifying it can be retrieved by 'filename or date range'. It distinguishes from siblings like 'list_summaries' (which likely lists multiple) by focusing on retrieving a specific summary. However, it doesn't explicitly differentiate from 'get_quick_stats' or 'compare_periods', keeping it at 4 rather than 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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose 'filename' vs 'date range', or how it differs from 'list_summaries' (which might list multiple summaries) or 'get_quick_stats' (which might provide aggregated data). There's no explicit context or exclusions provided.

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

list_summariesC

List previously generated weekly summaries from the summaries directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of summaries to return (default: 10)
sortNoSort order (default: newest)newest
formatNoFilter by format (default: all)all

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions listing from a directory but doesn't disclose behavioral traits like whether it's read-only (implied by 'List' but not explicit), potential rate limits, authentication needs, error handling, or output format details. This leaves significant gaps for a tool with no structured safety hints.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and every part earns its place, making it highly concise and well-structured for quick understanding.

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?

Given the tool has no annotations and no output schema, the description is incomplete. It doesn't explain what the returned summaries look like (e.g., list of files, metadata), potential pagination, or error cases. For a list operation with three parameters and no structured output info, more context is needed to guide effective use.

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?

The input schema has 100% description coverage, fully documenting all three parameters (limit, sort, format) with defaults and enums. The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline score of 3 for high schema coverage without extra value.

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 description clearly states the action ('List') and resource ('previously generated weekly summaries from the summaries directory'), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'get_summary' or 'get_quick_stats', which might also retrieve summary-related data, so it doesn't reach the highest score.

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?

The description provides no guidance on when to use this tool versus alternatives such as 'get_summary' (which might fetch a single summary) or 'generate_weekly_summary' (which creates new ones). There's no mention of prerequisites, exclusions, or specific contexts, leaving usage unclear relative to siblings.

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.

  1. 6 tool updates
    • First observedcompare_periods
    • First observedgenerate_daily_summary
    • First observedgenerate_weekly_summary
    • First observedget_quick_stats
    • First observedget_summary
    • First observedlist_summaries

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have distinct purposes, with clear separation between daily vs. weekly summaries, quick stats vs. full summaries, and retrieval vs. generation. However, 'generate_weekly_summary' and 'get_summary' could cause some confusion since both relate to weekly summaries, though one generates new data while the other retrieves existing ones.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with clear, descriptive verbs (compare, generate, get, list) and nouns (periods, daily_summary, weekly_summary, quick_stats, summary, summaries). There are no deviations in style or convention throughout the set.

Tool Count5/5

Six tools is well-scoped for a productivity summary server, covering generation (daily, weekly, comparison), retrieval (list, get), and quick queries without being overwhelming. Each tool appears to serve a specific, necessary function in the workflow.

Completeness4/5

The tool set covers core productivity summary operations well, including generation, comparison, and retrieval. A minor gap is the lack of update or delete tools for managing existing summaries, which might limit agent flexibility, but the core workflows for creating and accessing summaries are adequately supported.

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

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/philipbloch/summary-mcp'

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