LunaTask MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | Port for future HTTP transport (currently unused as server only supports stdio transport). | 8080 |
| token | No | LunaTask API bearer token. Required to authenticate with the LunaTask API if not provided in the configuration file. | |
| base_url | No | LunaTask API base URL. | https://api.lunatask.app/v1/ |
| log_level | No | Logging level. Valid values: DEBUG, INFO, WARNING, ERROR, CRITICAL. | INFO |
| config_file | No | Path to the custom TOML configuration file (defaults to ./config.toml). | |
| rate_limit_rpm | No | Rate limit in requests per minute. | 60 |
| rate_limit_burst | No | Rate limit burst size. | 10 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pingA | Ping health-check tool that returns a static 'pong' response. This tool serves as a basic health-check endpoint to verify that the MCP server is functioning correctly. Args: ctx: The execution context providing access to logging and other MCP capabilities. Returns: str: The 'pong' response text. Raises: asyncio.CancelledError: If the operation is cancelled during execution. |
| create_taskC | Create a new task in LunaTask. |
| update_taskC | Update an existing task in LunaTask. |
| delete_taskB | Delete an existing task in LunaTask. |
| track_habitC | Track an activity for a specific habit on a given date |
| create_noteA | Create a note in LunaTask. Accepts notebook_id, optional name/content, an ISO date_on, and optional source/source_id metadata for duplicate detection. Returns note_id or duplicate status. |
| update_noteA | Update an existing note in LunaTask. Requires note_id (UUID). Optional fields: name, content (replaces entire content due to E2E encryption), notebook_id (to move note), date_on (YYYY-MM-DD). At least one field must be provided. Returns updated note data. |
| delete_noteA | Delete a note in LunaTask by note_id. Requires note_id (UUID). Returns success status with note_id and deleted_at timestamp. Note: deletion is not idempotent - second delete will return not found error. |
| create_journal_entryC | Create a journal entry for a specific date. Provide the date in YYYY-MM-DD format along with optional name and content fields. |
| create_personA | Create a person/contact in LunaTask. Requires first_name and last_name. Optional relationship_strength (family, intimate-friends, close-friends, casual-friends, acquaintances, business-contacts, almost-strangers), source/source_id for duplicate detection, email, birthday (YYYY-MM-DD), and phone. Returns person_id or duplicate status. |
| create_person_timeline_noteA | Create a timeline note for a person in LunaTask. Requires person_id and content. Optional date_on (YYYY-MM-DD) to associate the note with a specific day. |
| delete_personA | Delete a person/contact in LunaTask by person_id. Requires person_id. Returns success status with person_id and deleted_at timestamp. Note: deletion is not idempotent - second delete will return not found error. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| _tasks_discovery | |
| _tasks_discovery | |
| _global_now | |
| _global_today | |
| _global_overdue | |
| _global_next7 | |
| _global_high | |
| _global_recent |
TDQS
Scored across 12 tools
Each tool has a distinct purpose targeting a specific entity or action (e.g., create, delete, update). There is no overlap in functionality, and descriptions clearly separate the operations for notes, persons, tasks, journal entries, and habits.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_note, delete_person, update_task). The naming is uniform and predictable across the entire set.
With 12 tools, the count is well within the optimal 3-15 range. Each tool addresses a specific operation, and the scope feels appropriate for a personal task/note/habit manager.
The tool set lacks read/list operations for all entities (notes, persons, tasks, journal, habits). Update is missing for persons and journal entries, and delete is missing for journal entries and habits. These gaps will hinder agents that need to retrieve or modify existing data.