
Simple Timer MCP Server
An MCP server that provides interval timing functionality using token-based time tracking, allowing users to start timers with unique identifiers and check elapsed time in milliseconds or human-readable format.
README
Simple Timer MCP Server
An MCP (Model Context Protocol) Server that provides interval timing functionality using token-based time tracking. This project serves as a beginner-friendly example of an MCP Server implementation, demonstrating core MCP development concepts through minimal, practical functionality.
Features
- Token-based Timers: Start and check timers using unique string identifiers (tokens).
- Elapsed Time Calculation: Calculates and returns the time elapsed since a timer was started.
- Human-Readable Output: Option to get elapsed time in a human-readable format (e.g., "2 hours, 15 minutes ago").
- SQLite Database: Uses a lightweight SQLite database for persistent storage of timer data.
Getting Started
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
Prerequisites
- Node.js (v18.x or later recommended)
- Yarn (v1.x or later)
Installation
-
Clone the repository:
git clone https://github.com/tonyOgbonna/Simple-Timer-MCP-Server.git cd Simple-Timer-MCP-Server
-
Install dependencies:
yarn install
Building the Project
The project is written in TypeScript and needs to be compiled to JavaScript.
yarn build
This will compile the TypeScript files from src/
into the dist/
directory.
Running the Server
To start the MCP server, run the following command:
yarn start
The server will initialize the SQLite database (timer.db
in the project root) if it doesn't exist and start listening for MCP requests via StdioServerTransport
. You should see output similar to:
Database initialized and 'timers' table ensured.
MCP Server 'Simple Timer' started and listening via StdioServerTransport.
Integration with MCP Hosts
This section provides general guidance on how to integrate this local MCP server with various MCP-compatible hosts (e.g., Cline, Roo Code, Cursor, Claude Code). The exact steps may vary slightly depending on the host's interface.
Typically, you will need to provide the host with the command to execute this server.
-
Ensure the server is built: Before integrating, make sure the project is built by running
yarn build
. -
Provide the execution command: The command to run this server is
node dist/index.js
.- For hosts that accept a direct command: Simply provide
node dist/index.js
. - For hosts that require a full path: You might need to provide the absolute path to your project's
dist/index.js
file, e.g.,/path/to/your/project/timer_mcp_server/dist/index.js
. - For hosts that use
package.json
scripts: Some hosts might automatically detect and use thestart
script defined inpackage.json
(i.e.,yarn start
).
Consult your specific MCP host's documentation for precise instructions on adding a local MCP server.
Generally:
"mcpServers": { "Simple-Timer-MCP-Server": { "command": "node", "args": [ "/path/to/install/folder/dist/index.js" ] } }
- For hosts that accept a direct command: Simply provide
MCP Tools
This MCP Server exposes two tools: start_timer
and check_timer
.
start_timer
Starts a new timer for a given token. If a timer for the token already exists, it will inform you of the existing timer's start time.
-
Arguments:
token
(string, required): A unique string identifier for the timer.
-
Example Usage (Conceptual - via MCP Client):
{ "tool_name": "start_timer", "arguments": { "token": "my_first_timer" } }
-
Example Response:
Timer for token 'my_first_timer' started at: 2025-06-03T01:55:00.000Z
or
Timer for token 'my_first_timer' already exists. Started at: 2025-06-03T01:00:00.000Z
check_timer
Checks the elapsed time for an existing timer.
-
Arguments:
token
(string, required): The unique string identifier for the timer.format
(enum, optional):raw
(default) for milliseconds, orhuman_readable
for a descriptive string.
-
Example Usage (Conceptual - via MCP Client):
{ "tool_name": "check_timer", "arguments": { "token": "my_first_timer", "format": "human_readable" } }
-
Example Response (human_readable):
Elapsed time for token 'my_first_timer': 1 hour, 30 minutes, 45 seconds.
-
Example Response (raw):
Elapsed time for token 'my_first_timer': 5445000 milliseconds.
or
No timer found for token 'non_existent_timer'.
Project Structure
.
├── .git/ # Git version control directory
├── dist/ # Compiled JavaScript output
├── src/ # TypeScript source code
│ └── index.ts # Main MCP server logic
├── .gitignore # Specifies intentionally untracked files to ignore
├── package.json # Project metadata and dependencies
├── README.md # This file
├── tsconfig.json # TypeScript configuration
├── yarn.lock # Yarn dependency lock file
└── test-client.ts # Script for testing server functionality
Contributing
Contributions are welcome! Please feel free to open issues or submit pull requests.
License
This project is licensed under the ISC License.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.