Skip to main content
Glama
kaneyxx

Weekly Report Checker

by kaneyxx

Weekly Report Checker MCP Server

An MCP (Model Context Protocol) server that checks weekly report submissions in a Google Sheet.

Features

  • Check who hasn't submitted their weekly reports

  • Get detailed information about a specific person's report status

  • View submission statistics

  • Get a list of all team members who should submit reports

Related MCP server: Observability MCP Server

Prerequisites

  • Python 3.10 or higher

  • A Google Sheets service account JSON file (service_account.json)

  • Access to the "週報" Google Sheet

Installation

# Install the package
pip install -e .

# Install in Claude Desktop
./install_server.sh
# or
mcp install mcp_server.main --name "週報檢查器"

Usage

# Run in development mode
./run_server.sh
# or
mcp dev mcp_server.main

# Run directly
python -m mcp_server.main
# or
weekly-report-server

Example Client

Run the example client:

python example_usage.py

API Reference

Resources

  • weekly-report://status - Get who hasn't submitted reports

  • weekly-report://stats - Get submission statistics

  • weekly-report://all-members - Get all team members

  • weekly-report://person/{name} - Get a specific person's status

Tools

  • check_missing_reports - Check missing reports

  • check_person_report - Check a specific person's report

  • get_submission_stats - Get submission statistics

Available Tools

3 tools
check_missing_reportsB

Check who hasn't submitted their weekly reports yet

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/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 the tool checks for missing reports but doesn't describe what data is returned (e.g., list of names, timestamps), how it determines 'missing' (e.g., based on deadlines), or any side effects like notifications. This leaves significant gaps for a tool with potential behavioral implications.

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, clear sentence that efficiently conveys the core purpose without unnecessary details. It is front-loaded and wastes no words, making it highly concise and well-structured.

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 has no parameters and an output schema exists, the description doesn't need to explain inputs or return values. However, it lacks context on how the tool operates (e.g., data sources, criteria for 'missing'), which could be important for an agent to use it effectively. The description is minimal but adequate for a simple check tool.

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 has 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description adds no parameter information, which is appropriate here. Baseline is 4 for zero parameters, as no compensation is needed.

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: checking who hasn't submitted weekly reports. It uses a specific verb ('check') and resource ('weekly reports'), though it doesn't explicitly differentiate from sibling tools like 'check_person_report' or 'get_submission_stats'.

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 like 'check_person_report' or 'get_submission_stats'. It implies usage for checking missing reports but offers no context on prerequisites, timing, or exclusions.

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

check_person_reportB

Check if a specific person has submitted their weekly report

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/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 states the tool 'checks' a report, implying a read-only operation, but doesn't clarify what 'check' entails (e.g., returns a boolean, detailed status, or error if not found). It also lacks information on permissions, rate limits, or error handling, leaving significant gaps for a tool with no annotation coverage.

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, clear sentence that efficiently conveys the core purpose without unnecessary words. It is appropriately sized and front-loaded, making it easy to understand quickly, which is ideal for a simple tool.

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 low complexity (1 parameter) and the presence of an output schema (which should cover return values), the description is minimally adequate. However, with no annotations and incomplete parameter semantics, it lacks details on behavioral aspects like what the check returns or error conditions, making it incomplete for full agent understanding.

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

Parameters2/5

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

The input schema has 1 parameter with 0% description coverage, and the tool description provides no additional parameter information. It mentions 'specific person' but doesn't specify what 'name' parameter represents (e.g., full name, username, ID) or its format. With low schema coverage, the description fails to compensate, leaving the parameter's meaning unclear.

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 with a specific verb ('check') and resource ('weekly report') for a specific person. It distinguishes from sibling tools like 'check_missing_reports' (which likely checks for missing reports across multiple people) and 'get_submission_stats' (which likely provides statistical data). However, it doesn't explicitly mention how it differs from siblings beyond the specific person focus.

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 specifying 'weekly report' and 'specific person,' suggesting it should be used when checking individual submission status. However, it provides no explicit guidance on when to use this tool versus alternatives like 'check_missing_reports' or 'get_submission_stats,' nor does it mention prerequisites or exclusions.

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

get_submission_statsB

Get statistics about weekly report submissions

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/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 the tool retrieves statistics but doesn't specify what kind of statistics, whether it's read-only, if it requires authentication, or any rate limits. This leaves significant gaps in understanding the tool's 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/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 appropriately sized and front-loaded, making it easy for an agent to parse quickly.

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 has no parameters and an output schema exists, the description doesn't need to explain return values. However, with no annotations and sibling tools present, it lacks context on usage and behavioral traits, making it minimally adequate but with clear gaps in guiding the agent effectively.

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 input schema has 0 parameters with 100% coverage, so the schema fully documents the lack of inputs. The description doesn't need to add parameter details, and it appropriately avoids mentioning any, earning a baseline score of 4 for tools with no parameters.

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 'statistics about weekly report submissions', making the purpose understandable. However, it doesn't differentiate from sibling tools like 'check_missing_reports' or 'check_person_report', which likely serve related but distinct purposes in the reporting domain.

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 like the sibling tools. It lacks context about specific scenarios, prerequisites, or exclusions, leaving the agent to infer usage based on 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.

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: checking missing reports (broad), checking a specific person's report (targeted), and getting submission statistics (aggregate). There is no overlap or ambiguity between these functions.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (check_missing_reports, check_person_report, get_submission_stats) with clear, descriptive verbs and nouns. The naming is uniform and predictable throughout.

Tool Count5/5

With 3 tools, the server is well-scoped for its purpose of managing weekly report submissions. Each tool serves a distinct and necessary function without being overly sparse or bloated.

Completeness4/5

The tools cover the core read-only operations for checking and analyzing report submissions effectively. A minor gap exists in write operations (e.g., submitting or updating reports), but agents can likely work around this for the stated checking purpose.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

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/kaneyxx/weekly-report-mcp'

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